ArcPy를 사용하여 ArcGIS for Desktop의 회전 기능? [닫은]


10

회전하고 싶은 일련의 다각형이 있습니다.

각 다각형에는 회전 각도와 필드 값으로 저장된 고정 점 (xy 좌표)이 있습니다.

이와 같이 모든 앵커 포인트는 다각형의 꼭짓점에 있습니다.

ArcGIS for Desktop 및 ArcPy를 사용하여이를 수행하는 가장 좋은 방법은 무엇입니까?

편집 모드에서 회전 할 수는 있지만 모두 다르기 때문에 수동으로 수행하고 싶지 않습니다.

파이썬 답변을 선호하므로 자동화하여 작업 흐름에 구축 할 수 있습니다.


이것은 내가 한 일이 아니지만 gis.stackexchange.com/questions/13383/…
PolyGeo

ArcObjects로이를 수행 할 수 있습니다. 프로그래밍 솔루션이 허용됩니까?
Jakub Sisak GeoGraphics

지형 또는 투영 좌표의 지형지 물입니까?
blah238

Jakub-예, 프로그래밍 방식의 솔루션이 선호됩니다. Blah238-투영 좌표 (NAD 83 UTM Zone 10)
dklassen

1
Python 스크립트에서 회전 된 Y 좌표를 계산 하려면 빼기 부호 (빼기) 대신 더하기 부호 (더하기)가 필요합니다 . y_transprime = Sin (t) * x_trans + Cos (t) * y_trans

답변:


10

투영 좌표계를 사용한다고 가정하면 ... (그렇지 않으면 더 복잡해집니다)

주어진 회전 지점 (X, Y)과 회전 각도 t는 다각형의 각 점을 순서대로 회전해야합니다. 다각형이 set = [(x0, y0), (x1, y1), (x2, y2) ...]와 같은 점으로 구성되어 있다고 가정합니다.

세트의 각 점을 순서대로 회전하여 set '= [(x0', y0 '), (x1', y1 '), (x2', y2 ') ...]

회전하려면 먼저 회전 지점을 (0,0)으로 이동하여 좌표계를 원점으로 변환해야합니다. (x, y)는 회전 할 지점입니다.

x_trans = x - X
y_trans = y - Y
x_transprime = Cos(t) * x_trans - Sin(t) * y_trans
y_transprime = Sin(t) * x_trans + Cos(t) * y_trans
x_prime = x_transprime + X
y_prime = y_transprime + Y

파이썬 스크립트로 번역하는 것은 매우 간단합니다.


이 작업을 수행하는 방법에 대한 자세한 아이디어를 얻으 려면 파이썬 스크립트를 사용하여 앵커 포인트를 기준으로 다각형을 회전시키는 방법에 도움이 될 수있는 또 다른 Q & A가 있습니다 . .
PolyGeo

잘못된 부호를 지적 해 준 @ user23492에게 감사합니다. 변경 사항 (2 년 후)
blord-castillo

1

여기입니다 논의 당신을위한 해결책이 될 수 있습니다 ESRI의 포럼에서이. Esri 응답을 찾으십시오. 회전 래스터 도구를 사용하여 다각형을 래스터로 변환하고 다시 다각형으로 변환하는 작업이 포함됩니다. 그러나 래스터 / 벡터간에 앞뒤로 변환 할 때 다각형 경계가 엉망이 될 수 있습니다.

좋은 소식은 ArcObjects를 호출하지 않고 파이썬에서 모두 할 수 있다는 것입니다. 그리고 SearchCursor를 사용하여 속성 테이블에서 회전 각도와 앵커 포인트를 가져올 수 있어야합니다.

어쨌든 가능한 대안입니다.

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