「 ArcPy 」一覧

データ処理に役立つ Python コード例その 1 :Describe オブジェクトを使ってデータのプロパティにアクセスする方法

Python で ArcGIS の機能にアクセスすると効率的なデータ処理を実現できます。ArcGIS の API である ArcPy についてはこれまでにもいくつかのブログ記事でご紹介しましたが、本シリーズでは特にデータ処理に特化して ArcPy の機能についてご紹介いたします。まずは第 1 弾として、Describe オブジェクトについてご説明いたします。

 

Describe オブジェクトは、データ タイプやフィールド、インデックスなどデータのさまざまな情報にアクセスすることができます。以下のようなデータのプロパティにアクセスするイメージです。

image1

続きを読む


Python を使って ArcGIS での作業効率を上げよう!

このたび、6 月 27 日に「ArcPy スタートアップ ガイド」を公開しました! ArcPy は、プログラム言語である Python を使用して、ArcGIS を操作するために Esri が開発した API です。 ArcPy を使用すると Python で ArcGIS のマップ作成やフィールド演算、ジオプロセシング ツールといった、ArcGIS 独自の機能が実行可能になります。

また、以下のように ArcGIS 上で地理データを操作する便利なプログラムを開発することができ、作業の効率化が図れます。
・Python の条件分岐(if 文)や繰り返し(for 文)の構文を使用して、繰り返し作業を自動化できる
・スクリプト ツールと呼ばれる独自のジオプロセシング ツールを作り、モデルへ組み込むことができる

このスタートアップ ガイドは、ArcGIS for Desktop をお持ちの方を対象に、これから ArcPy を利用した開発を始めるためのドキュメントです。ArcPy の使用方法をチュートリアル形式でわかりやすく習得できるよう説明しています。

ArcPy スタートアップガイド

続きを読む


ArcPy で画像処理をしてみよう ~その3:ラスタ演算(Spatial Analyst)

当シリーズ:「ArcPy で画像処理をしてみよう」ではこれまで、ラスタオブジェクトの特徴やジオプロセシング関数での使い方について紹介してきましたが、いわゆる「画像処理」として、もっと数値計算的なものを期待していた方もいるかも知れません。今回はそのような期待に応えるべく、ラスタ演算について紹介します。
画像またはラスタを使って様々な演算を行うことをラスタ演算と言います。重ね合わせた複数の画像の同じ位置のピクセル同士で演算を行ったり、画像内の全ピクセルを使って統計量などを計算したり、対象ピクセルの周囲のピクセルで演算をしたりと様々なバリエーションがあります。そのような処理を Python で 0 から書いていくことも可能ですが、ArcGIS では、Spatial Analyst エクステンションで様々なラスタ演算を簡単に行うことができる演算子や関数を提供しています。Spatial Analyst を使用する場合でも、ラスタオブジェクトが重要な役割を果たします。画像データをラスタオブジェクトに格納し、計算結果もラスタオブジェクトに出力します。

ラスタ演算をしてみよう

今回もまずは ArcMap の Python ウィンドウで書いてみましょう。Spatial Analyst には「マップ代数演算」というラスタ演算用の電卓のようなジオプロセシング ツールもありますが、Python ウィンドウの方が何より Python の体系と一緒に使えるため、断然使いやすくなります。ここでは、Spatial Analyst が得意とする DEM (ラスタ形式の地形データ)を使ったラスタ演算を行ってみましょう。

※ ArcMap メインメニューの [カスタマイズ] → [エクステンション] の [Spatial Analyst] にチェックが入っていることが前提ですので、確認しておいてください。

準備

前回行ったのと同様に、まずは適当な DEM ファイルを用意します。適当な DEM なんて持ってない!という方は以下のリンクから SRTM データをダウンロード→解凍して利用すると良いでしょう。

SRTM サンプル データ

このデータ(.hgt ファイル)はそのまま ArcMap で読み込んだ状態で地理座標(緯度経度)を持っていますが、この状態のままでは後で使用する Slope 関数などで不都合がありますので、UTM 等の投影座標に投影変換して「dem.tif」という名前で出力したものを使用してください。

これを ArcMap に追加した状態から始めます。

Python ウィンドウ

続きを読む


ArcPy で画像処理をしてみよう ~その1:ラスタオブジェクトとプロパティ

ArcGIS for Desktop には、画像解析ウィンドウや ArcToolbox のデータ管理ツール→ラスタのツール、Spatial Analyst など様々な画像(またはラスタ)処理ツールがありますが、複雑な処理の自動化や独自のアルゴリズムの実装など、ワンランク上を目指すなら Python でのプログラミングを行うことになります。ここでは ArcGIS の Python モジュールである ArcPy を使用した画像処理をシリーズで紹介します。今回はまず ArcPy の中で最も基本となる「ラスタオブジェクト」についてです。

Python

なお、ここでは Python そのものの基本事項についての解説は省略しますので、Python 初心者の方は一般的な解説書などでコマンドやコードをご確認いただければと思います。

Python ウィンドウで見てみよう

プログラムを書く前に、まずは Python ウィンドウでラスタオブジェクトを確認してみましょう。ArcMap か ArcCatalog のメニューより、 [ジオプロセシング] → [Python] を選択し、Python ウィンドウを起動してください。

Python ウィンドウ

続きを読む


ESRI ジャパン サポートサイトで Python のサンプルコードを公開中

すでに本ブログでも何回かご紹介しておりますように、ArcGIS 10 から登場した ArcGIS 用の Python ライブラリ『ArcPy』を使用することでより簡単、効果的にGIS の処理、解析を実行することが可能となりました。

Ans4334_top

弊社サポート サイトでは、Python のコードを公開して欲しいという多くのリクエストにお応えし、サンプルコードを多数公開しております。

例えば、以下のようなサンプル コードが公開されております。

※サンプル コードのダウンロードにはサポート ページへのログインが必要です。

続きを読む