概要
ArcPy を使用して座標変換を行うには、Geometry クラスの各オブジェクトに用意されている projectAs メソッドを使用します。
第 2 引数に地理座標系変換を指定することによって、測地基準系を考慮した座標変換を行うことができます。
サンプル コード
import arcpy
# 各座標系や地理座標変換を設定
inputSRS = arcpy.SpatialReference(4326) # GCS WGS84
outputSRS = arcpy.SpatialReference(30169) # PCS Japan_Zone_9 Tokyo
gt = "Tokyo_To_WGS_1984_NTv2"
# 変換対象の座標値をセット
pt = arcpy.Point()
pt.X =139.692599773537
pt.Y = 35.6476352177892
print("Input XY: {} {}".format(pt.X, pt.Y)) # Python 3.x向け
# PointGeometry オブジェクトを作成
ptgeo = arcpy.PointGeometry(pt, inputSRS)
#指定条件で座標変換を実行
ptgeo1 = ptgeo.projectAs(outputSRS, gt)
#変換後のポイントを取得
pt1=ptgeo1.lastPoint
print ("Output XY: {} {}".format(pt1.X, pt1.Y)) # Python 3.x向け
# 変換後のデータを出力する場合は以下のコードを追加
# arcpy.CopyFeatures_management(ptgeo,r"C:gis_workTestData.gdbProgectedPoint")
補足
指定した地理座標系変換オブジェクトが適切でない場合は、上記のサンプル コードを実行時にエラーが発生します。
入力フィーチャ、出力フィーチャとフィーチャ範囲をもとに、選択可能な地理座標系変換を確認するには、以下のように、ListTransformation メソッドをお使いください。
import arcpy
from_sr = arcpy.SpatialReference(4612) #GCS_JGD_2000
to_sr = arcpy.SpatialReference(6668) #GCS_JGD_2011
extent = arcpy.Extent(122.933289035722, 24.0414782262003,
153.990697239388, 45.554542066686)
lst_trans = arcpy.ListTransformations(from_sr, to_sr, extent)
for strtra in lst_trans:
print(strtra) # Python 3.x向け
参考情報
ArcGIS Pro 向け
ArcMap 向け
このナレッジはお役に立ちましたか?
フィードバックをいただきありがとうございます!