モデルまたはスクリプトの投影データセットから10進度でXY座標を計算しますか?


8

フィーチャクラスが投影座標系にあるときに、モデルまたはスクリプトでポイントXY座標を10進度で計算することはできますか?

FCが地理座標系にある場合は簡単です。

  • XY座標の追加ツールを使用するか、
  • Python式を使用します。 !shape.extent.XMax!

ジオメトリフィールドの面積と長さのプロパティは、ジオメトリ単位変換キーワードで変更できることがわかりました。測定の線形単位の場合、@ DECIMALDEGREESを使用できます。XMaxが長さではないため、
残念ながら!shape.extent.XMax@decimaldegrees!機能しません。

(右クリックからアクセスできる)ジオメトリの計算機能では、投影されたフィーチャクラスに対しても、出力の10進度タイプを選択する可能性があります。
ArcPyを使用してこれを実行できますか?


iRfAnのソリューションに基づくコードスニペットを次に示します。

import arcpy, os
projectedFC = r"C:\tmp\test.gdb\points01_Projected"
prjFile = os.path.join(arcpy.GetInstallInfo()["InstallDir"],
            r"Coordinate Systems\Geographic Coordinate Systems\World\WGS 1984.prj")
spatialRef = arcpy.SpatialReference(prjFile)

updCursor = arcpy.UpdateCursor(projectedFC,"", spatialRef)
for row in updCursor:
    pnt = row.Shape.getPart(0)
    row.X = pnt.X
    row.Y = pnt.Y
    updCursor.updateRow(row)

del updCursor, row

投影されたCSでXYポイントを維持する必要はありますか?
Roy

@ロイ:はい、投影されたCSでフィーチャクラスを保持したいが、計算された小数度。
Marcin

回答:


4

できると思います。

WGS-84で空間参照を定義し、この空間参照を使用してカーソルを使用するだけです。

座標は、提供されたspatial_referenceで指定され、オンザフライでデータセットの座標系に変換されます。

詳しくはこちらをご覧ください。


この方法でそれを行うことができます。SHAPEフィールドからX座標とY座標を取得できるポイントジオメトリオブジェクトを取得します。
om_henners 2012

2

スクリプトについてはわかりませんが、モデルビルダーを使用して多少自動化された方法でこれを達成しました。xy座標をインポートしてWGS 1984に投影します。次にフィールドを追加し、小数点のジオメトリを計算します。次に、XYポイントを元の座標系に戻します。


長い道のりです。カーソルを使用し、空間参照としてWGS-84を使用して計算します。再投影し、その後参加する必要はありません。
iRfAn 2012

@mburkenysdot:これは、スクリプトを使用したくない場合の良い回避策です。
Marcin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.