タグ別アーカイブ: ArcScript

Index polygonを作るArcScriptの紹介

以前、複数のラスタの配置図を作るという記事でインデックスポリゴンの作成方法を紹介しましたが、もっと使いやすいArcScriptが公開されていましたのでご紹介します。

Create Raster Index Shapefile

インストールは、インストーラーがついていますので、setup.exeをダブルクリックし、インストール先フォルダを選択するだけです。

ボタンを表示するには、
ツール>カスタマイズ>コマンド>Query Tools>Create Raster Index Shapefile
とすすみ、適当な所にボタンを配置します。

設定は以下の通り、誰でも分かる簡単な内容です。

  • Input Folder:ラスタが入っているフォルダを選択
  • Output Shapefile:保存先及び名前を指定
  • Process Subfolders:サブフォルダも検索してくれます
  • Project polygons WGS84:座標系をWGS84に変換してくれます

あとは、Create Indexボタンを押せば、サブフォルダにあるラスタデータも全て統合した、使いやすいインデックスポリゴンを作成してくれます。進捗率だけではなく、どのファイルを処理中かも表示されますので、本当に作業中なのか不安になることがありません。

で、出来上がるシェイプファイルも扱いやすい。ジオメトリが壊れているのでそのままでは使えなかったり、パス名が長いと途中でパス名が切れてしまうような、困った仕様ではありません。

属性テーブルも扱いやすいです。

  • Shape:当然Polygon
  • NAME:ファイル名
  • PATH:ファイルの保存先(ファイルパス)&ファイル名
  • FORMAT:ファイル形式(TIFFとかJPEG)
  • COMP:圧縮タイプ(無圧縮ならNone)
  • PYRAMID:ピラミッドの有無(作成済みだとTrue)
  • BANDS:バンド数
  • PIXEL_TYPE:画素タイプ(8ビットとか)
  • SP_REF:そのラスタが設定されている空間参照
  • UNIT:単位
  • SIZE_X:ピクセルサイズX(X方向の画素数)
  • SIZE_Y:ピクセルサイズY(Y方向の画素数)
  • COLS:何かを基準にした列数
  • ROWS:何かを基準にした行数
  • X_MIN:X座標の最小値
  • X_MAX:X座標の最大値
  • Y_MIN:Y座標の最小値
  • Y_MAN:Y座標の最大値

これだけの情報がリスト化されていれば、属性で表示すべきラスタをフィルタリングしたり、ハイパーリンクを付けたりが容易ですね。コレは、誰にでもお勧めできて、ぜひ常用したいArcScriptです。

Google Map & ESRI ArcGIS 9

Google関係のあらたなArcscriptが公開されましたので、試してみました。

Google Map & ESRI ArcGIS 9
http://arcscripts.esri.com/details.asp?dbid=15367

インストール方法は、ダウンロード及び解凍したファイル群を適当なフォルダに保存して、_INSTALL.batを実行するだけです。

ArcMapを起動すると、新たにGoogleというツールバーが増えていますので、表示させます。それだけだと何も起こらないため、ツールバーにあるウィンドウ>Googleを選択し、Googleマップを表示させます。

別窓で表示されるGoogleマップは、通常のウェブで見るのと同じく、地図表示と航空写真表示を選択することができます。適当なシェイプファイルを読み込むと、グーグルマップウィンドウに作業範囲と同じ範囲が表示されます。
shpファイルを重ねることが出来れば利用価値が激増しそうですが、現時点では出来ません。

印刷機能等が無いため最終的な成果には使えませんが、作業中に周辺の植生等をざっと把握する程度であれば、オルソ写真の代わりに使えそうです。

ラインを指定間隔に分割する

ArcGISで、既存のポリラインを等間隔に分割してデータ処理を行いたい場合、エディタツールバーにあるスプリットやディバイドを行います。

ただし、上記コマンドでは、複数の線をまとめて処理することが出来ないため、膨大な量のデータを扱うにはとても大変不便です。

そこで、一括処理が可能な Line Editing Toolbar というArcScriptを紹介いたします。

 【インストール】

まず、 http://arcscripts.esri.com/details.asp?dbid=13729 よりファイルををダウンロードし、解凍したファイルを適当なフォルダに保存します。

次に、ArcGISを起動し、ツール>カスタマイズ とすすみ、コマンドを『ファイルから追加』します。

そうするとLine Editing Toos ツールバーが追加されます。

【使い方】

変換したいシェイプを選択して、それぞれ対応するボタンを押せば、分割されます。
 左から4つめのボタン>中点で分割
 左から5つめのボタン>指定した分割数で分割
 左から6つめのボタン>指定した距離で分割

その他、指定した長さや割合に応じて線の延長を変えるなど、標準では出来ないライン編集が可能になりますので、目的に合わせてご使用ください。
・Display vertices and end points.
・Display directional arrows.
・Display dangles.
・Split at midpoint.
・Divide lines.
・Proportion lines.
・Modify length of lines.
・Remove dangles.
・Create intersections.
・Create polygon.
・Replace sketch with selected.

フェンス選択でシェイプを選択する

ArcGISは、AutoCADでいうところのボックス選択しか標準では用意されておりません。

それでは不便なので、ArcScriptというArcScript(フリーソフトみたいなもの)を紹介いたします。

まず、以下よりファイルをダウンロードします。
http://arcscripts.esri.com/details.asp?dbid=12784

解凍すると、以下の2つのファイルが現れますので、
『installation_documentation_9+.zip』を解凍する。
『source_code_9+.zip』は、ソースコードなので、プログラムが分かる人以外は無視して構いません。

上記ファイルを解凍すると、『Fence_Select.msi』が出てきますので、実行してインストールしてください。

インストールが終ったら、ArcGISでFenceSelect機能を使えるようにします。
・ツール>カスタマイズ>キーボードから追加
・C:\Program Files\Fence_Select_9+\FenceSelect.dllを指定
・コマンドのArcScriptカテゴリより、Fence Selectを指定

これで、矩形にしか選択できなかったArcGISで、フェンス選択(任意のラインで囲まれた範囲のオブジェクトを選択)が可能になります。

すごく操作性が向上しますので、お試しください。

DMデータをdxfに変換したい

ArcGIS9.2には、標準で『国内データ変換ツール』がインストールされますので、デジタルマッピング成果(dmデータ)をシェイプファイルに変換するのは簡単にできます。
DMデータをArcGISだけではなく、AutoCAD等でも使いたい場合、DXFファイルに変換すると利便性が向上します。

ちまちまとエクスポートを繰り返しても良いのですが、一括でDXFファイルに変換できるCreate DXF file from feature layer in ArcMapというArcScriptを紹介いたします。

 【インストール】

まず、 http://arcscripts.esri.com/details.asp?dbid=15146 よりファイルををダウンロードし、解凍したファイルを適当なフォルダに保存します。

次に、ArcGISを起動し、ツール>カスタマイズ とすすみ、コマンドを『ファイルから追加』します。

【使い方】

変換したいシェイプを選択して、ExportDXFボタンをクリックするとファイル名を指定するダイアログが出てきますので、適当な保存場所を指定するだけで綺麗にレイヤ分けされたdxfが作成されます。

ただし、pointとpolylineは上手く変換されるのですが、polygonとラベルは一手間かけないと変換できません。

【ポリゴンをDXFにするには】

ポリゴンを上記ツールで変換しようとするとエラーが出ますので、『ジオメトリ変換ツール』を使ってポリラインに変換します。

ジオメトリ変換ツールをダウンロード。

【ラベルをDXFにするには】

ラベルをDXFに変換しないことには、道路名や標高などが良く分からない地形図になってしまいますので、是非とも変換したいところです。

まず、ArcCatalogを使って適当なジオデータベースを作成しておき、そこにラベルのデータ(アノテーション)を保存します。ラベルはアノテーションに変換し、ジオデータベースに保存することで、dxf変換の対象となるようです。

なお、このデータベースは、dxf変換が終わったら消去しても構いません。

TINやラスターから断面データを取得する

EZ ProfilerというArcScript(フリーソフトみたいなもの)を紹介いたします。

EZ Profiler for ArcMap 9.x
http://arcscripts.esri.com/details.asp?dbid=13688

このプログラムはArcMapの機能を拡充させるためのプラグインで、Spatial Analystや3D Analyst等のエクステンションが無くても、polyline、grid、TINなどからデータを取得できるようになります。

TINやラスターデータから線分に沿った値を取得し、グラフ描画やエクセルへのエクスポートの出来るツールで、複数のレイヤからもまとめて取得することも可能。

【インストール】

メニューより、
ツール > カスタマイズ > コマンド
とすすみ、『ファイルから追加』をクリックし、『profile91.dll』を選択。

そうすると、『Easy Profiler 9.1』ツールバーがArcGISに追加されます。

【アンインストール】

アンインストールするときは、付属の『EZPuninstall.bat』を実行してください。

【使い方

PSボタン
細かい設定を行うためのボタン

Choose one method and input the value
> pointを発生させる個数の設定

 Specify the number of points along the profile
 > 指定した線などを等分割してポイントを発生させたい場合に選択

 Specity a set interval distance along the profile
 > 指定した距離でポイントを発生させたい場合に選択

Graph Properties
> グラフの設定

Make Profile From
> 解析の対象とするレイヤが1つかどうか
 既存polylineに沿ってラスタの値を取得したい場合などは、Multiple Layersを選択

Dボタン
ラスタ又はTINの上に、自由に線を書いて、ラスタから取得した属性値を持ったpointシェイプファイルを作成します。
使い方は押せば分かります。

mボタン
既存のポリラインに沿ってラスタから取得した属性値を持ったpointシェイプファイルを作成します。
使い方としては、既存ポリラインを選択してからボタンを押します。そうすると対象とするレイヤのダイアログが表示されますので、解析の対象とするレイヤを選択します。

Eボタン
選択したレイヤのテーブルをExcelに出力します。ArcGISの標準機能でexport等を行うよりも楽チンです。

その他細かいことは、zipファイルに入っているマニュアルに記載されています(英語ですが)。