ArcPyを使用してジオメトリをWKTに変換しますか?


13

PythonおよびArcPy(非ArcPyモジュールなし)を使用したジオプロセシング操作中に、ArcGISレイヤーの単一のフィーチャ(または潜在的に多くのフィーチャ)をWell Known Text(WKT)形式に変換できるようにしたいと思います。その目的は、WKTをSQL Server Spatialに渡し、ArcGIS GPツールセットの外部で追加の処理を行うことです。ArcGISジオメトリフィーチャをArcPy経由でWKTに変換する方法はありますか?

私は自分が何を求めているのかを見つけることなく、すでに以下を読んでいます:

どうやら「と呼ばれるツールがありました書き込みは、テキストファイルに機能サンプルツールボックスにあった(Pythonのスクリプトのように見える)」が、そのツールボックスがされたバージョン10で非推奨と私はサンプルツールボックス(のコピーを見つけることができませんマシンにv10.0)があります。現在の解決策がない場合、誰かが私にサンプルのコピーを指し示すことができれば、そのツールを使用してもまったく問題ありません。

回答:


25

da.searchcursorが動作するはずです。

for row in arcpy.da.SearchCursor("path2data", ["SHAPE@WKT"]):
  print row[0]

ポイントZ(-119.53753379999995 49.854383300000052 303.14500000000407)

こちらのドキュメント:http : //resources.arcgis.com/en/help/main/10.1/index.html#//002z0000001t000000

:SHAPE @ JSON、SHAPE @ WKB、およびSHAPE @ WKTトークンは、ArcGIS 10.1 Service Pack 1で利用可能になりました。

または、あなたが言及したようなサンプルツールボックスを使用している場合、そのツールは廃止されました。まだスクリプトで呼び出すことができます。使用できる実際のツールボックスが必要な場合は、古いモデルとスクリプトギャラリーにあります。

編集(追加の例)...あなたがとてもうまく尋ねたから::)

for row in arcpy.da.SearchCursor("GPX_Layer", ["SHAPE@WKT"],where_clause="TYPE = 'a'"):
    print row[0]

これは、「属性による選択」タイプのクエリ/式とまったく同じです。「TYPE」というフィールドと値「a」があります。


+1例を含めるために---それがどのwhere_clauseように実装されるかを示す2番目の例を過度に要求するでしょうか?:)
elrobis

残念ながら10.1にはまだアクセスできませんが、最終的にはリンク先のPythonスクリプトを更新できました。ありがとう!
RyanKDalton

「POINT Z」の+1は、「POINT」がarcpyの3Dをサポートしていないようです。
geogeek

5

私はこれを確認するために装備しますが、いないよ、このページの文書化SearchCursor (arcpy.da)について議論、field_namesパラメータは、以下のノート:

FROM ArcGISヘルプ10.1-SearchCursor(arcpy.da)

追加情報には、フィールド名の代わりにトークン(OID @など)を使用してアクセスできます。

SHAPE @ WKT —OGCジオメトリの事前割り当てテキスト(WKT)表現。ジオメトリ値の移植可能な表現をテキスト文字列として提供します

注: SHAPE @ JSON、SHAPE @ WKB、およびSHAPE @ WKTトークンは、ArcGIS 10.1 Service Pack 1で利用可能になりました

どう思いますか?


1
+1また、@ RyanDaltonはテキストファイルへの書き込み機能をここで見つけることができると思います
PolyGeo

4

誰かにとって便利な場合にこれを追加するだけです...

# Convert to WKT by field name (Shape)
file_path = 'C:\shapefile.shp'
query= arcpy.SearchCursor(file_path)
for row in query:
  the_geom=row.getValue('Shape') # Get Geometry field
  wkt = the_geom.WKT # Convert to WKT, can also use WKB, JSON etc

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.