ishii-akihiro’s blog

いろいろ試したことやバグ対応の作業履歴を残していきます。

ArcGIS Pro のgdbを Pythonで操作する

概要

ArcGIS Pro で取り扱っているファイルジオデータベース(GDB形式)を、
aprx上ではなくpythonで操作する方法を確認したい。

試しに、選んだフィーチャークラスに1kmのバッファを発生させて、
別のフィーチャークラスに出力してみます。

Pro のバージョンを2.1にしたらJupyter もインストールされたので、
Jupyter を使って操作することにします。

環境

  • Windows 10
  • ArcGIS Pro 2.1
  • Jupyter Notebook(ArcGIS Pro 2.1以降は、自動的にインストールされます!)

事前準備

ArcGIS Pro のプロジェクト

ここでは「PracticeArcpy」プロジェクトを作っておきます。
データは「PracticeArcpy.gdb」内で操作します。
あらかじめ作ったプロジェクト

データ

バッファを発生させるのでポイント、ポリラインでもよいですが、
ここではestatから国勢調査の小地域ポリゴンをダウンロードして使います。
www.e-stat.go.jp

Esriは操作性の面でShapeではなくGDB形式で編集することを推奨しているので、
ダウンロードしたShapeはGDBに変換しておきます。

また、全国分のフィーチャを使うと重そうなので、
新潟県長岡市だけ抽出したフィーチャクラスを作っておきます。

手順

1. 「Windowsメニュー」>「ArcGIS」>「Jupyter Notebook」を起動する。f:id:ishii-akihiro:20180728201415p:plain

2. 表示されたブラウザ上で、用意したプロジェクトのフォルダまで移動する。

3. 画面右上の「New」>「Python3」を選択する。f:id:ishii-akihiro:20180728211449p:plain

4. 以下のコード(python)を入力する。

import arcpy

# バッファを発生させるフィーチャクラス(GDB)を指定
input = "PracticeArcpy.gdb/Nagaoka"

# バッファを発生させた結果を出力するフィーチャクラスを指定
output = "PracticeArcpy.gdb/output"

# 1km のバッファを発生させる処理を実行
arcpy.Buffer_analysis(input, output, "1000 Meters")

5. 「run cell」のアイコン(またはShift + Enter)で実行する。

6. しばらく待つと、処理が終わり Out[]:~ と表示される。f:id:ishii-akihiro:20180728213130p:plain

7. aprxファイルを開いて、出力したフィーチャクラス(output)を確認する。f:id:ishii-akihiro:20180728214101p:plain

まとめ

Pro 2.1 からJupyter Notebookの環境設定が不要になったため、
aprxを開かずして、ジオプロセシングの操作を
手軽に実行できるようになったと思います。

ソースコードは下記リンクを参考にしました。
参考ページではフィーチャクラスが絶対パスで指定されていますが、
ここでは相対パスで指定しても実行できることを確認できました。
pro.arcgis.com