FAQ
ArcPy: 座標変換 (投影変換) 後の座標値を取得する

ナレッジ番号:3317 | 登録日:2023/05/29 | 更新日:2024/11/21

概要

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_work\TestData.gdb\ProgectedPoint") 

補足

指定した地理座標系変換オブジェクトが適切でない場合は、上記のサンプル コードを実行時にエラーが発生します。
入力フィーチャ、出力フィーチャとフィーチャ範囲をもとに、選択可能な地理座標系変換を確認するには、以下のように、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 向け

メタデータ

種類

製品

バージョン