ラスタデータを複雑な形で抽出する方法
ArcGISでラスタを配置した場合、特に処理を行わなければ、元々のラスタの形のまま(四角形のまま)配置されますが、後から必要な範囲だけをくり抜くことが出来ます。
この作業には、ArcGISとSpatialAnalystというエクステンションを使用します。
○必要なデータ
ベースとなるラスタ(数値地図・航空写真・衛星写真・DEMなど)と抽出したい形のポリゴンシェープファイル(どんなに複雑な形状でもOK)を用意する。
○作業手順
ArctoolBoxより、Spatial Analystツール>抽出>マスクで抽出(Extract by Mask)を実行。
【入力ラスタ】欄に、先ほどのラスタを指定
【入力ラスタ、またはフィーチャマスクデータ】欄に、先ほどのshapeファイルを指定
【出力ラスタ】欄は、出力先なのでお好きなフォルダ&ファイル名を指定
これだけの手順で、ポリゴンと重なった部分のみで作られたラスタデータを作成することができます。
ドーナツポリゴン(穴の開いたポリゴン)の作り方
ArcGISでは、一般的に以下のa,bどちらかの手順でドーナツポリゴンを作成できます。
a.フィーチャを新規作成する場合
まず、外側のポリゴンを作成したら「パート編集終了」をクリック
次に内側の境界線を作図したら「スケッチ終了」をクリック
b.すでにあるポリゴンを使う場合
内側のポリゴンを選択し、エディタツールバーよりクリップを選択し、バッファ距離=0、「重なる領域を削除」を指定すると内側が消える
ただ上記手順では、1回に付き穴を1つしか開けることが出来ないため、穴を開けたい箇所が多数ある場合、上記手順では面倒です。
以下の手順を踏めば、穴の開きまくった虫食い状態のポリゴンでも一気に作成することが出来ます。
- 内縁線と外縁線を書いてあるポリゴンshpファイルを用意する。
- そのファイル1つだけを使ってインターセクト
- 出来上がったファイルをコピーし、外縁線よりも大きなポリゴンを作図する(適当な形でOK)。
- 1番と3番のファイルを使ってインターセクト
- 4番のファイルから2番のファイルと「正確に一致する」ポリゴンを削除
CADファイルのXYZ座標を取得するプログラム
このような特殊な物を必要としている人はほとんどいないと思いますが、必要に迫られてAuutoCADで書いた線の座標を片っ端から抽出プログラムを作りました。
- このプログラム(autocad-xyz.exe)と同じフォルダに、AuroCADのログファイルをacad.txtという名前で保存する。
- プログラムを実行すると、同じフォルダにoutput.txtというファイルが作成されます。
- 中身をみれば一目瞭然ですが、不要な行が削除され、X,Y,Zデータのみが抽出されているはずです(特定の条件でしか試していないので、削除漏れがあるかもしれません)。
ArcGISのジオメトリ変換ツールでラインをポイントにしても良いのですが、まぁ、AutoCAD単体で3次元のDMデータを点にしたいときに使ってください。
条件を指定して点を抽出
ArgGISでは、様々な条件を指定してデータを抽出することが可能です。
例えば、距離というフィールドに起点からの距離が入っているとして、属性検索を以下のようにする。
mod (”距離”,500) = 0
距離を500で割った余りが0の物を選択するといった意味で、500mごとの点が抽出されます。
属性検索は、単純な値を抽出するだけではなく特殊な検索もできますので、式さえ組めればデータの抽出・整理が非常に楽になります。