マップ ドキュメントの管理および出力のためのジオプロセシング スクリプト

ジオプロセシング arcpy.mapping モジュールの概要

arcpy.mapping モジュールは、Python スクリプト ライブラリの 1 つであり、これを使用して ArcMap のマップ ドキュメント(*.mxd)およびレイヤ ファイル(*.lyr)を開き、操作することができます。arcpy.mapping を使用するジオプロセシング スクリプトを使用すると、マップ ドキュメントとレイヤを開いたり、コンテンツを検索して変更したりできるだけでなく、変更したドキュメントを印刷、エクスポート、または保存することができます。

arcpy.mapping スクリプトの機能は、ArcMap アプリケーション内で実行される操作によく似ています。次の単純なワークフローを ArcMap で行うとします。

  1. C:\GIS\TownCenter_2009.mxd にあるマップ ドキュメントを開きます。
  2. GIS Services Division 2009」というレイアウト テキスト エレメントを見つけ、「GIS Services Division 2010」に変更します。
  3. 更新したマップ レイアウトを PDF にエクスポートします。

arcpy.mapping スクリプトは、これらのステップを次のように表します。

この単純な検索置換スクリプトは、「2009」を「2010」に変更してから、レイアウトを PDF ファイルにエクスポートします。

mxd = arcpy.mapping.MapDocument(r"C:\GIS\TownCenter_2009.mxd")
for textElement in arcpy.mapping.ListLayoutElements(mxd, "TEXT_ELEMENT"):
  if textElement.text == "GIS Services Division 2009":
    textElement.text = "GIS Services Division 2010"
arcpy.mapping.ExportToPDF(mxd, r"C:\GIS\TownCenterUpdate_2010.pdf")
del mxd

ジオプロセシング arcpy.mapping モジュールは、ArcMap でのワークフローを自動化する必要があるユーザが使用することを目的としています。これはプログラミングのように見え、強力な Python プログラミング言語によって制御されますが、GIS ソフトウェア開発者ではなくても arcpy.mapping スクリプトを作成できます。arcpy.mapping の目的は面倒な作業を自動化することであり、これにより重要な制作作業や分析作業に集中できます。

arcpy.mapping の目的と典型的なスクリプトのシナリオ

arcpy.mapping モジュールは、マップの管理および出力(印刷およびエクスポート)のワークフローを自動化するために開発されました。これにより提供される機能は、既存のマップ レイヤおよびレイアウト エレメントを変更することを主な目的としており、完全なマップ コンパイル システムとして設計されているわけではありません。マップ ドキュメントを新規作成し、マップ レイヤおよびレイアウトを作成するためには、対話形式の高度にビジュアルな ArcMap 環境が推奨されるシステムです。しかし、arcpy.mapping のレイアウト エレメント変更機能を正しく使用すると、最終的な製品としてのマップをすばやく作成できます。これらのワークフローを効果的に実行するには、arcpy.mapping スクリプトによって使用される構成要素を準備するためのマップの作成を慎重に行い、arcpy.mapping と ArcMap が正しく一緒に使用されることで、自動化されたマップ生成システムが実際に提供されるようにする必要があります。

arcpy.mapping の機能を理解する最も簡単な方法は、それが対応する主なシナリオを理解することです。arcpy.mapping スクリプトはさまざまなシナリオに対応しますが、以下にその主なものをいくつか示します。

ジオプロセシング、arcpy.mapping、および ArcMap アプリケーションの拡張

arcpy.mapping モジュールは、ジオプロセシング フレームワークの一部です。したがって、arcpy.mapping スクリプトでは ArcGIS で使用できるジオプロセシング ツールを利用できます。また、arcpy.mapping を使用して作成したスクリプトをジオプロセシング スクリプト ツールにして、ArcToolbox および ModelBuilder で使用することもできます。

ジオプロセシング フレームワークの一部として、arcpy.mapping は、ArcMap アプリケーションをカスタマイズするためのフレームワークではなく、バッチ処理ツールとして使用されることを目的としています。arcpy.mapping を使用すると、独自のマップ処理システムを作成できるため、これは ArcMap を新しいツールで拡張する方法の 1 つと考えることができます。ただし、ジオプロセシングでは ArcMap のユーザ インタフェースを完全にカスタマイズすることができないため、arcpy.mapping を使用してすべての ArcMap オブジェクトおよび機能にアクセスすることはできません。

ArcObjects SDK を使用すると、すべてのオブジェクトおよび機能にアクセスできます。ArcObjects SDK とジオプロセシングは相補的な関係にあります。一般に、ArcObjects は ArcGIS を新しい振舞いで拡張するために使用され、ジオプロセシングはタスクを自動化するために使用されます。ArcObjects は、新しいユーザ インタフェースの追加、フィーチャクラスへのカスタム ロジックの追加、特殊なカートグラフィック レンダラの作成などに使用します。ジオプロセシングは、適切に動作しているフレームワークの範囲内でタスクを自動化するために使用されます。

スクリプトの使用と展開

arcpy.mapping を使用するスクリプトは、他のジオプロセシング スクリプトと同様に展開して実行できます。スクリプトを実行する方法は、それをいつ、どのように実行するかに応じて選択します。

arcpy.mapping のすべてのクラスと機能については、次のトピックをご参照ください。


7/10/2012