ArcGISに2つのレイヤーがあります。1つはベクターポイントで、もう1つはラスターレイヤーです。ラスターデータグリッドの値をベクトルポイントに追加したいと思います。問題は、ベクトルポイントが値を持つ既存のラスターグリッドから離れているため、「Sample」コマンドを実行すると、それらのベクトルポイントの値が返されないことです。
だから私の質問です:ベクトルポイントを与えられた最も近いラスターセルを見つけて、セルから値を抽出するにはどうすればよいですか?
実際、私がしなければならないことが2つあります。
- レンジャー内のアウトライナーを識別します(通常、既存のラスターから1〜2セル離れています)。
- それらが範囲内にある場合、最も近いラスターからの値をそれらに割り当てます
編集:私は約3000のベクトルポイントを持っており、私の問題はこれです:
位置に基づくラスター値をベクトルポイントに追加する必要があります。私はツール「サンプル」を使用しましたが、それはほとんどのポイントでうまく機能します。
しかし、このような状況があります
右のポイントはラスターから値を取得できますが(「サンプル」は機能します)、左のポイントは配置の問題により取得できません。
ドメインから外れているため、ベクターに変換できないというエラーメッセージが表示されるため、ラスターからポリゴンへの変換が機能しません。また、このようなポイントがあります
これらの上部のポイントはラスターから離れすぎているため、値を取得してはなりません。
私はいつか回避することを考えました:
ステップ1.最初に「サンプル」を実行する
ステップ2.「サンプル」操作の後でnull値を選択する
ステップ3.ヌルポイントに基づいてバッファーゾーン(小数点以下1度以内)を構築する
ステップ4. ゾーン統計を使用しますか??または、バッファー内のすべてのラスターセルをループし、最も近いものを見つけ、その値を抽出してベクターポイントに配置する他のツール。
手順4で行き詰まりました。この機能を実現するために使用できるArcSDKのツールがわかりません。
それとも...あなたはそれに対処するより良い考えを持っていますか?
このようなラスターレイヤーが20あり、それを自動的に作成したい(モデルビルダーとarcobjectを使用)。
Sample
ツールを適用したときに値を受け取らないポイントになります。