arcpy를 사용하여 기존 래스터 데이터 세트까지 벡터 피처를 자르는 방법


9

폴리 라인 (형상 도구의)이 오버레이 된 잘린 래스터 데이터 세트가 있습니다 (첨부 파일 참조). 래스터 데이터 세트의 범위까지 폴리 라인을 자르려고 노력하고 있습니다. 충분히 간단 해 보이지만 여러 가지를 시도했지만 제대로 작동하지 않는 것 같습니다. 나는 결국 arcpy를 사용하여 이것을 코딩해야하지만 지금은 어떤 도구가 이것을 달성 할 것인지에 대한 올바른 방향으로 조금만 움직여 지금은 나를 도울 것입니다.

감사.

추신 : 나는 ArcInfo 10.0을 사용하고 있습니다

clipPolylinesToRasterExtent

답변:


12

지오 프로세싱 도구에서 지오메트리 사용 예 와 같이 클립 도구를 사용하여 데이터 세트 범위를 다각형 지오메트리로 사용할 수 있습니다 .

import arcpy

pnt_array = arcpy.Array()
extent = arcpy.Raster(in_raster).extent
pnt_array.add(extent.lowerLeft)
pnt_array.add(extent.lowerRight)
pnt_array.add(extent.upperRight)
pnt_array.add(extent.upperLeft)

poly = arcpy.Polygon(pnt_array)

arcpy.Clip_analysis(in_lines, poly, "out_dataset")

감사합니다!! 이 게시물을보기 전에 적어도 아크 내에서 수동으로 할 수 있었지만 내 방식이 약간 복잡해 보입니다. 더미 shapefile을 만든 다음 래스터 데이터의 경계를 설명하는 편집기 도구를 사용하여 다각형을 구성했습니다. 그런 다음이 더미 모양 파일을 클립으로 사용해야하는 폴리 라인에서 클립 도구를 실행했습니다. 오류가 발생했지만 기능을 다각형에 사용 하고이 결과를 클리핑 할 폴리 라인의 shapefile로 사용했습니다. 나는 아크 피가 필요할 것이다. :-)
niklas24

2

이를 수행하는 간단한 방법이 있습니다.

먼저 래스터 이미지의 범위를 가져옵니다.

환경 범위 속성으로 설정

그런 다음 클립 분석 대신 복사 기능을 사용하십시오 (예 :

arcpy.env.extent = arcpy.Extent(-107.0, 38.0, -104.0, 40.0)
...some code here to ...
arcpy.CopyFeatures_management(shapefile,outFeatureClass)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.