ArcPy를 사용하여 지오메트리를 WKT로 변환 하시겠습니까?


13

Python 및 ArcPy (비 ArcPy 모듈 없음)를 사용하는 지오 프로세싱 작업 중에 ArcGIS 레이어의 단일 기능 (또는 잠재적으로 많은 기능)을 WKT ( 잘 알려진 텍스트 ) 형식으로 변환하고 싶습니다. 그런 다음 WKT를 SQL Server Spatial로 전달하고 ArcGIS GP 툴셋 외부에서 추가 처리를 수행합니다. ArcPy를 통해 ArcGIS 지오메트리 피처를 WKT로 변환하는 방법이 있습니까?

나는 내가 무엇을 추구하지 않고 이미 다음을 읽었습니다.

분명히라는 도구로이 사용 " 쓰기는 텍스트 파일에 기능 샘플 도구 상자에 있었다 (파이썬 스크립트를 것으로 보인다)"하지만, 그 도구가되었다 버전 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 서비스 팩 1에서 제공되었습니다.

또는 앞서 언급 한 샘플 도구 상자를 사용하는 경우 더 이상 사용되지 않습니다. 여전히 스크립트를 사용하여 호출 할 수 있습니다. 사용할 수있는 실제 도구 상자가 필요한 경우 이전 모델 및 스크립트 갤러리에 있습니다.

편집 (추가 예) ... 너무 훌륭하게 요청했기 때문에 : :)

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

"특성 별 선택"유형의 쿼리 / 표현식과 동일합니다. "TYPE"이라는 필드와 'a'값이 있습니다.


+1 예제를 포함하여 ---- 어떻게 where_clause구현 되는지를 보여주는 두 번째 예제를 너무 많이 요구 합니까? :)
elrobis

불행히도 아직 10.1에 액세스 할 수는 없지만 궁극적으로 연결된 Python 스크립트를 업데이트 할 수있었습니다. 감사!
RyanKDalton

"POINT Z"의 경우 +1 "POINT"는 3D를 아크 피로 지원하지 않는 것 같습니다.
geogeek

5

나는 이것을 확인할 준비가되어 있지 않지만 매개 변수를 논의하는 이 페이지를 문서화 하면 다음과 같이 지적합니다.SearchCursor (arcpy.da)field_names

FROM ArcGIS Help 10.1-SearchCursor (arcpy.da)

필드 이름 대신 토큰 (예 : OID @)을 사용하여 추가 정보에 액세스 할 수 있습니다.

SHAPE @ WKT -OGC 지오메트리에 대한 잘 알려진 텍스트 (WKT) 표현입니다. 지오메트리 값을 이식 가능한 텍스트 문자열로 제공합니다.

참고 : SHAPE @ JSON, SHAPE @ WKB 및 SHAPE @ WKT 토큰은 ArcGIS 10.1 서비스 팩 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

3

텍스트 파일에 대한 쓰기 기능 도구를 찾을 수 있습니다 여기에 .

필자의 의견으로는 당면한 표를 거의 얻지 못한 관련 ArcGIS 아이디어가 있습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.