フィーチャクラス、カバレッジ、ラスターなどの地理データセットは、データセットの座標系、x,y ドメイン、M ドメイン、および Z ドメインを定義する空間参照を含んでいます。空間参照の各部分には、座標系をはじめとするいくつかのプロパティがあります。座標系は、水平座標の定義に使用されるマップ投影オプションを定義します。これらすべての情報は、データセットを定義し、その空間参照プロパティにアクセスすることによって取得できます。空間参照プロパティは、実際には複数のプロパティを含む別のオブジェクトです。
import arcpy
# Describe a feature class
#
fc = "D:/St_Johns/data.gdb/roads"
desc = arcpy.Describe(fc)
# Get the spatial reference
#
sr = desc.spatialReference
# Check if the feature class is in projected space
#
if sr.type == "Projected":
arcpy.Copy_management(fc,"D:/St_Johns/data.gdb/roads_UTM")
空間参照の作成
空間参照の詳細すべてを Python スクリプトに記述することは実際には難しい場合もあります。投影ファイル、ファクトリ コード、または空間参照名を SpatialReference クラスの引数として使用すれば、空間参照のプロパティをすばやく指定し、そのオブジェクトをジオプロセシング ツールの入力として使用できます。次の例では、入力引数としてファクトリ コード (権限コード) を使用して空間参照を作成します。
ヒント:
座標系の名前とファクトリ コードについては、ArcGIS Documentation フォルダーにある geographic_coordinate_systems.pdf およびprojected_coordinate_systems.pdf ファイルをご参照ください。
import arcpy
inputWorkspace = "c:/temp"
outputName = "rivers.shp"
# Get the input workspace, the output name for the new feature class
# and path to an input projection file
#
inputWorkspace = arcpy.GetParameterAsText(0)
outputName = arcpy.GetParameterAsText(1)
factoryCode = arcpy.GetParameterAsText(2)
# Use a code as input to the SpatialReference class
#
sr = arcpy.SpatialReference(factoryCode)
# Use the SpatialReference object to create a new feature class with a
# specific coordinate system
#
arcpy.CreateFeatureclass_management(inputWorkspace, outputName,
"POLYLINE", spatial_reference=sr)
メモ:
プロパティとメソッドの詳細なリストについては、空間参照クラスをご参照ください。
メモ:
空間参照は、投影エンジン文字列と呼ばれることもあります。投影エンジン (PE) は、地図投影の定義と投影の変換のために ArcGIS 全体で使用されるコードのライブラリです。