投影変換(Project) (データの管理)
サマリ
空間データをある座標系から別の座標系に変換します。
使用法
入力フィーチャクラスまたはデータセットの座標系が不明か未指定の場合、入力データセットの座標系を [入力データの座標系] パラメータで指定することができます。これによって、入力データを修正することなく(読み取り専用形式のために修正不可能な場合もあります)、データの座標系を指定することができます。[投影法の定義(Define Projection)] ツールによって、座標系を永続的にデータセットへ割り当てることもできます。
-
有効な入力は、ArcGIS アプリケーション(ArcMap、ArcScene、および ArcGlobe)に含まれる フィーチャクラス(ジオデータベース フィーチャクラス、カバレッジ フィーチャクラス、SDC フィーチャクラス、シェープファイル)、ジオデータベースのフィーチャ データセット、およびフィーチャ レイヤのすべてのタイプです。
-
カバレッジ、VPF カバレッジ、ラスタ データセット、およびラスタ カタログは、このツールの入力としてサポートされていません。カバレッジを投影変換する場合は、[カバレッジ] ツールボックスの [投影変換(Project)] ツールを使用します。ラスタ データセットを投影変換するには、[ラスタの投影変換(Project Raster)] ツールを使用します。
ツールの [地理座標系変換] パラメータはオプションです。地理座標変換や測地基準変換が不要な場合は、パラメータ上にドロップダウン リストは表示されず、空白のままになります。変換が必要な場合は、入力測地基準系および出力測地基準系に基づいてドロップダウン リストが生成され、デフォルトの変換が選択されます。
- たとえば、GCS_North_American_1983 から NAD_1983_UTM_Zone_12N への投影変換は、入力と出力の両方の座標系が NAD_1983 測地基準系であるため、地理座標変換は必要ありません。しかし、GCS_North_American_1983 から WGS_1984_UTM_Zone_12N への投影変換は、入力座標系が NAD_1983 測地基準系を使用しているのに対して、出力座標系が WGS_1984 測地基準系を使用しているため、地理座標変換が必要です。
- 注意:
変換は双方向に行われます。たとえば、WGS 1984 から NAD 1927 へデータを変換する場合、NAD_1927_to_WGS_1984_3 という変換を選択するだけで、ツールが正しく変換パラメータを適用します。
- 変換の一覧とその使用範囲については、次の Knowledge Base の記事をご参照ください。21327 (http://resources.arcgis.com/content/kbase?fa=articleShow&d=21327 )
-
in_memory は、出力データセットに対して無効なワークスペースです。
-
以下に示すような複雑なデータ タイプを投影変換する場合、変換後のデータに対して特定の操作を実行する必要があります。
- ネットワーク データセットを含むフィーチャ データセット: ネットワーク データセットの再構築が必要です。
- トポロジを含むフィーチャ データセット: トポロジの範囲全体に対する整合チェックを実行します。
-
フィーチャリンク アノテーションと同様に、入力がリレーションシップ クラスに属する場合、リレーションシップ クラスが出力に変換されます。このルールの例外は、スタンドアロン テーブルに関連しています。
-
入力フィーチャの座標および出力座標系の水平線(有効範囲)によっては、マルチポイント、ライン、およびポリゴンが、投影変換の一環としてクリップされたり、複数の部分に分割される場合があります。
構文
パラメータ | 説明 | データ タイプ |
in_dataset |
投影変換するフィーチャクラス、フィーチャ レイヤ、フィーチャ データセット。 | Feature Layer; Feature Dataset |
out_dataset |
結果が書き込まれる出力データセット。 | Geodataset |
out_coor_system | 有効な値は、「.prj」拡張子を持つファイル(ArcGIS に付属する「.prj」ファイルは、[座標系] フォルダの ArcGIS インストール ディレクトリに置かれています)、または座標系の文字列表現です。この文字列表現を生成するには、座標系変数を ModelBuilder に追加し、変数の値を適切に設定して、このモデルを Python スクリプトにエクスポートします。これで、文字列を Python スクリプトからコピーできます。 | Coordinate System |
transform_method (オプション) | この方法は、2 つの地理座標系または測地基準系の間のデータ変換に使用できます。入力座標系と出力座標系のデータが異なる場合は、最初にオプションのパラメータが必要になることがあります。 変換は双方向です。たとえば、WGS 1984 から NAD 1927 へデータを変換する場合、NAD_1927_to_WGS_1984_3 という変換を選択するだけで、ツールが正しく変換パラメータを適用します。 | String |
in_coor_system (オプション) |
入力フィーチャクラスまたはデータセットの座標系。入力の座標系が不明または未指定の場合に、このパラメータが有効になります。これによって、入力データを修正することなく(読み取り専用形式のために修正不可能な場合もあります)、データの座標系を指定することができます。 | Coordinate System |
コードのサンプル
次の Python ウィンドウ スクリプトで、Project(投影変換)関数をイミディエイト モードで使用する方法を示します。
import arcpy input_features = "C:/data/input/projections.gdb/wells" output_features_class = "C:/data/output/wells_UTM11N.shp" install_dir = arcpy.GetInstallInfo()['InstallDir'] out_coordinate_system = os.path.join(install_dir, r"Coordinate Systems/Projected Coordinate Systems/UTM/NAD 1983/NAD 1983 UTM Zone 11N.prj") arcpy.Project_management(input_features, output_features_class, out_coordinate_system)
次のスタンドアロン スクリプトで、Project(投影変換)関数をスタンドアロン スクリプトで使用する方法を示します。
# Name: Project_Example2.py # Description: Project all feature classes in a geodatabase # Requirements: os module # Import system modules import arcpy import os # Set environment settings arcpy.env.workspace = "C:/data/Redlands.gdb" # Set local variables outWorkspace = "c:/data/Redlands_utm_11.gdb" # Use ListFeatureClasses to generate a list of inputs for infc in arcpy.ListFeatureClasses(): # Determine if the input has a defined coordinate system, can't project it if it does not dsc = arcpy.Describe(infc) if dsc.spatialReference.Name == "Unknown": print ('skipped this fc due to undefined coordinate system: ' + infc) else: # Determine the new output feature class path and name outfc = os.path.join(outWorkspace, infc) # Set output coordinate system outCS = arcpy.SpatialReference('NAD 1983 UTM Zone 11N') arcpy.Project_management(infc, outfc, outCS)