Arcpy.mp は、ArcPy サイト パッケージの一部である Python サブモジュールです。 これは、ArcGIS Pro とともにインストールされ、すべてのライセンスで利用可能です。 このモジュールは、主に既存のプロジェクト (.aprx) とレイヤー ファイル (.lyrx) のコンテンツを操作するように設計されています。 プロジェクトのコンテンツを自動化でき、アプリケーションを開く必要すらありません。 ArcGIS Pro に含まれていない機能を使用できることもあります。たとえば、完全なマップ ブックを作成するには arcpy.mp が必要です。このモジュールには、PDF ドキュメントにエクスポートする関数や、PDF ドキュメントを作成、管理する関数が含まれています。
arcpy.mp の機能を簡単に理解できるように、これが役立つシナリオをいくつか説明します。 arcpy.mp Python スクリプトは多くのワークフローに役立ちます。そのいくつかを以下に紹介します。
- レイアウト、マップ ビュー、マップ シリーズ、レポートのエクスポートの自動化
- さまざまな PDF マップ ブックを作成します。たとえば、タイトル ページ、複数のマップ ページ、および表形式レポートや連絡先リストなどの補足コンテンツを記載した任意の数の追加ページを含む参照マップ ブックや主題マップ ブックなどです。
- レイアウト上のエレメントの操作、たとえばピクチャ、企業ロゴ、テキスト文字列の更新、その他多くの操作を行います。
- ジオプロセシング スクリプト ツールを、マップ、レイアウト、その他のプロジェクト エレメントで直接使用できるよう拡張します。
- プロジェクト データ、リンク切れしたデータ ソース、フォルダー接続などについての情報をログに記録するインベントリ スクリプト。
- レイヤー データ ソースを更新、修正、置換します。
- レイアウト、マップ、レポート、フォルダー接続、ビューなどのプロジェクト アイテムを管理します。
- レイヤーのシンボルを変更します。
- 組織サイトでの、オンラインでホストされるプロジェクト アイテムの共有を自動化します。
対象ユーザーと目的
Arcpy.mp は、専門的な GIS アナリストと開発者向けに構築されました。 これまで、上記のシナリオは .NET SDK を使用して行う必要がありました。これは多くの場合、平均的な GIS 専門家にとって習得が困難なプログラミング環境でした。 Arcpy.mp は汎用的なオブジェクト モデルです。つまり、1 つの関数で多くの細かい .NET コードの行を置き換えられるように関数が設計されています。 arcpy.mp を使用して、4 行のコードだけでプロジェクト内の既存のレイアウトを参照し、PDF ドキュメントにエクスポートできます。その簡単な例を以下に示します。
import arcpy
aprx = arcpy.mp.ArcGISProject(r"C:\Projects\YosemiteNP\Yosemite.aprx")
lyt = aprx.listLayouts("Main Attractions*")[0]
lyt.exportToPDF(r"C:\Project\YosemiteNP\Output\Yosemite.pdf", resolution=300)
最初の行では、arcpy モジュールを読み込みます。これは、ArcGIS Pro の外部で実行されるすべてのスクリプトに必要です。 2 行目では、ディスク上の ArcGIS Pro プロジェクトを参照します。 3 行目では (ゼロベースのインデックスを使用して)、名前が「Main Attractions」という語句から始まる最初のレイアウトを検索します。 コードの最後の行では、レイアウトを出力解像度 300 で PDF にエクスポートします。
基本操作を習得するためのヒント
基本操作を習得するため、次の方法をお試しください。
- 「arcpy.mp の基本操作チュートリアル」をお試しください。
- 「arcpy.mp のガイドライン」をご参照ください。
- 以前のバージョンのソフトウェアで arcpy.mapping を使用していて、現在は ArcGIS Pro を使用している場合は、「arcpy.mapping から ArcGIS Pro への移行」をご参照ください。
- 利用可能な機能を確認するには、「arcpy.mp 関数のアルファベット順のリスト」および「arcpy.mp クラスのアルファベット順のリスト」をご参照ください。 これらは、arcpy.mp でスクリプトを作成するときに使用できるように印刷しておくと便利です。
- すべての arcpy.mp 関数とクラスのヘルプ トピックには、詳細な説明とサンプル コードのスニペットがあります。これをコピーして、[Python] ウィンドウに直接貼り付けることができます。
さらに進んだ使用法
既存の arcpy.mp API を使用して多くの優れた機能を実行できますが、.NET SDK ほど充実しているわけではありません。 この API にない機能でも、実行できないとは限りません。 この API は、プロジェクトやレイヤー ファイルに保存されているものすべてを含む、内部コンポーネントへのアクセスにも使用できるように設計されています。 詳細については、「Python CIM へのアクセス」ヘルプ トピックをご参照ください。
「Python マップ自動化のサンプル スクリプト」サイトでは、より高度なソリューションをダウンロードできます。