ArcPy kullanarak geometriyi WKT'ye dönüştürme?


13

Python ve ArcPy (ArcPy olmayan modüller olmadan) kullanarak bir coğrafi işleme işlemi sırasında bir ArcGIS katmanındaki tek bir özelliği (veya potansiyel olarak birçok özelliği) İyi Bilinen Metin (WKT) biçimine dönüştürmek istiyorum. Amaç WKT'yi SQL Server Spatial'a aktarmak ve ArcGIS GP araç setinin dışında ek işlemler yapmaktır. ArcGy geometri özelliklerini ArcPy aracılığıyla WKT'ye dönüştürmenin bir yöntemi var mı?

Neyin peşinde olduğumu bulmadan aşağıdakileri zaten okudum:

Görünüşe göre , Örnekler araç kutusunda bulunan " Metin Dosyasına Özellikler Yaz " (bir Python komut dosyası gibi görünen) adlı bir araç vardı, ancak bu araç kutusu sürüm 10'da kullanımdan kaldırıldı ve Örnekler Araç Kutusu'nun ( V10.0) var. Mevcut çözüm yoksa, biri beni sadece numunenin bir kopyasına yönlendirebilirse, ben de bu aracı kullanmakta iyi olurum.

Yanıtlar:


25

Bir da.searchcursor sizin için çalışmalıdır.

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

NOKTA Z (-119.53753379999995 49.854383300000052 303.14500000000407)

burada doküman: http://resources.arcgis.com/tr/help/main/10.1/index.html#//002z0000001t000000

Not : SHAPE @ JSON, SHAPE @ WKB ve SHAPE @ WKT belirteçleri ArcGIS 10.1 Service Pack 1'de kullanıma sunuldu.

Ya da, bahsettiğiniz gibi örnek araç kutusunun peşindeyseniz - orada, sadece kullanımdan kaldırıldı. Hala scriptlerle çağırabilirsiniz. Kullanabileceğiniz gerçek araç kutusuna ihtiyacınız varsa, eski Model ve Komut Dosyası Galerisi'nde

DÜZENLE (ekstra örnek) ... Çünkü çok güzel sordunuz: :)

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

Sorgu / ifadenin "özniteliklere göre seç" türüyle aynıdır. "TYPE" adlı bir alanım ve 'a' değeri var.


+1 Örneği eklemek için --- bunun nasıl where_clauseuygulanacağını gösteren ikinci bir tane için çok fazla sormak ister misiniz? :)
elrobis

Ne yazık ki henüz 10.1'e erişimim olmasa da, sonunda bağlandığınız Python komut dosyasını güncelleyebildim. Teşekkürler!
RyanKDalton

+1 "POINT Z" için "POINT" 3D'yi arcpy'de desteklemiyor gibi görünüyor.
geogeek

5

Bunu onaylamak için donanımlı değilim, ancak parametreyi tartışarak belgeleyen bu sayfa aşağıdakileri not eder:SearchCursor (arcpy.da)field_names

ArcGIS Yardım 10.1 - SearchCursor (arcpy.da)

Alan adlarının yerine jetonlar (OID @ gibi) kullanılarak ek bilgilere erişilebilir:

SHAPE @ WKT - OGC geometrisi için iyi bilinen metin (WKT) gösterimi. Bir geometri değerinin metin dizesi olarak taşınabilir bir temsilini sağlar

Not: SHAPE @ JSON, SHAPE @ WKB ve SHAPE @ WKT belirteçleri ArcGIS 10.1 Service Pack 1'de kullanıma sunuldu .

Ne düşünüyorsun?


1
+1 Ayrıca, @RyanDalton'un Metin Dosyasına Yazma Özelliklerini burada bulabileceğini düşünüyorum .
PolyGeo

4

Birisi için yararlı olması durumunda bunu eklemek ...

# 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

3

Metin Dosyası için Yaz Özellikleri aracı bulunabilir burada .

Burada, bence şaşırtıcı derecede az oy alan bir ArcGIS Fikri var .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.