Nodata値を管理する算術ルールは何ですか?これらのnull値の定義方法に関係なく?ArcMap Raster Calculatorを使用しています。
1 * Nodata(または1 * null)、1 / Nodata、1 + Nodata、1-Nodata、Nodata-1などの操作について具体的に考えています...
Nodata値を管理する算術ルールは何ですか?これらのnull値の定義方法に関係なく?ArcMap Raster Calculatorを使用しています。
1 * Nodata(または1 * null)、1 / Nodata、1 + Nodata、1-Nodata、Nodata-1などの操作について具体的に考えています...
回答:
さて、誰もこの質問に答えてくれなかったので、私は口を揃えると思いました。NoData値のサポートを提供するすべてのGISは、まったく同じ方法でそうしていると思います。ラスターイメージに適用される各数学演算は、NoData値を含むグリッドセルの特殊なケースを探し、その演算を効果的に無視して、出力イメージの対応するグリッドセルのNoData値を出力するパスを実行します。以下は、オープンソースのGISホワイトボックスGAT の追加ツールから取得した例です。
ちなみに、これはWhiteboxのRaster Calculatorで2つの画像を追加した場合にも実行されるコードです。ホワイトボックスでは、ラスターのヘッダーファイルで指定されているため、各ラスターは一意のNoData値を持つことができます。そのため、追加される両方の画像で同じである必要はありません。そのため、上記のコードで変数noData1とnoData2が定義されています。重要なのは、コードがラスタースタックの各グリッドセルをループするときに、セルの対応する入力画像(z1とz2)の2つの値を取得し、両方がNoDataに等しくないことを確認することです。 。したがって、追加は、両方のラスタの入力に有効な値が含まれている場合にのみ行われます。そうでない場合、出力グリッドセルには何も入力されません。実際、出力画像は独自のNoData値で作成および初期化されました。したがって、グリッドセルの追加値を入力しないことにより(入力の少なくとも1つがNoDataであるため)、出力にもNoData値が含まれます。数学演算のそれぞれに対して同様の演算が行われ、実際には、入力ラスターデータセットを含むほとんどのツールは、NoData値の特殊なケースを処理するための同様のアプローチに従います。操作がNoData入力に対してNoData値を出力するというこのルールの2つの一般的な例外は、ほとんどのGISのConおよびSet Nullツール。ArcGIS のConツールは、「NoDataがを満たさない場合、の値を受信せず、NoDataのままです」と述べています。したがって、「NoData」が条件ステートメントの一部であり、この値が「TRUE」に減少したグリッドセルの場合、NoData以外の値が出力される可能性があります。同様に、Set Nullツールは実際には、NoDataを含む入力セルに対して非NoData値を出力します。
神秘的なNoData値の仕組みを理解するのに役立つことを願っています。そして、ゼロはNoDataと同じではないことを忘れないでください!(もちろん、ゼロが特定のラスターのNoData値としてタグ付けされていない限り)。
あなたの例のそれぞれが答えは実際にはNoDataです
1 * Nodata(または1 * null)= NoData
1 / Nodata = NoData
1 + Nodata = NoData
1-Nodata = NoData
Nodata-1 = NoData
多くの操作で、関数内のNoDataを「スキップ」するオプションが提供されることを付け加えておきます。