回答:
現在の返信はすべて良いアドバイスを与えます。真のnullまたはNaNを格納できない場合にうまく機能する(科学計算コミュニティーからの)一般的なルールは、フィールドが(有効に)保持する最小(最も負の)値を使用することです。
例:
7.2 10進数フィールドは、-9999.99までの小さい値を保持できます。
整数ラスターは-32768までの小さい数値を保持できますが、多くの場合(バイナリへの嫌悪と10進数への親和性のため)代わりに値-9999が使用されます。
floatは-10 ^(38)の数値を保持できます。フィールドにNaNを配置できない場合は、収まる最小の浮動小数点数を見つけるか(苦痛です)、または-10 ^(38)自体のようなものを使用します。倍精度浮動小数点数の場合、-10 ^(303)は正常に機能しますが、-10 ^(38)も機能します。これは、null値の明確なマーカーとして機能するのに十分な大きさで負の値です。
このルールは覚えやすく、一貫性があり、適用しやすく、定型的な方法で(メタデータの場合)文書化が容易であり、不注意によるエラーを引き起こすことはほとんどありません(通常、最も負の数はデータとは非常に異なるため、データとして誤用されるためです。 nullの代わりに実際の値を使用すると、統計の要約やその他の計算が破損し、問題があることを示すフラグが立てられます)。
データがデータベースにある場合は、理想的にはNULL値を使用します。
「欠落している情報と不適切な情報」の表現
ただし、これによりクライアントアプリケーションとコードで問題が発生する可能性があり、DBFでNULLがサポートされているとは思いません。その値が何であるべきかは、組織の慣習によって異なります。どのダミー値を選択する場合でも、データセットのメタデータに記録されていることを確認してください。
データセットのどのポイントにもZ値がない場合、なぜ0を使用できなかったのかわかりませんが、その場合は混乱を避けるためにデータセットのZ認識を完全に削除するのが最善です。
私が出会ったほとんどのラスターは、慣習として浮動小数点データに-9999.0を使用します。GDALは、nodata / dummy値を持たない画像のコードを記述しているときに-dbl_infを使用します。8ビットRGBは通常0 0 0または255 255 255を使用するか、アルファまたはマスクチャネルを持っています。
GML 3カバレッジ(現時点ではあまりサポートされていませんが、WCS 2仕様が承認されると変更されます)には、「欠落」や「保留」などのテキストとして表されるいくつかのダミー値があります。
私の経験では、デフォルトはドメイン固有またはベンダー固有の傾向があります。あなたがコンシューマーではなくデータのプロデューサーである場合は、番号を選択してそれに固執し、コンシューマーがそれを認識していることを確認してください。
数学演算は他のNaNを生成するか、例外をスローするため、私はNaNを使用します。そうすれば、偽の値を使用しているために、めちゃくちゃになっていることをはっきりと検出できます