ArcGIS SpatialReference 객체 팩토리 코드는 EPSG 번호와 일치합니까?


22

텍스트 파일에서 기하학 객체를 읽고 ArcSDE에 넣는 프로젝트가 있습니다. 이 지오메트리 객체에는 EPSG 코드가 연결되어 있으며, 끝났을 때 올바르게 투영되도록하는 방법을 찾고 있습니다.

내가 작업중 인 프로젝트에 대해 내가 관심있는 공장 코드 (GCS GDA94; EPSG : 4283 및 VicGrid 94; EPSG : 3111)를 살펴보면 EPSG 코드가 ESRI와 직접 일치하는 것으로 보입니다. 공간 참조에 대한 팩토리 코드 ( herehere ) 이것은 예를 들어 아래 코드와 같이 SpatialReference 객체 를 만들기 위해 프로젝션 파일을 탐색 할 필요가 없다는 것을 의미하기 때문에 훌륭 합니다.

import arcpy

# Create a spatial reference object using a factory code
#
sr = arcpy.SpatialReference()
sr.factoryCode = int(epsg_code.lstrip("EPSG:"))
sr.create()

불행히도 ESRI 문서에서 이것이 항상 사실인지 아닌지에 대한 언급을 찾을 수는 없습니다. 그렇지만 추측합니다. 아무도 내가 어디에서 찾을 수 있는지 알고 있습니까?

답변:


30

Esri의 잘 알려진 ID가 32767 미만이면 EPSG ID에 해당합니다. 32767 이상인 WKID는 Esri가 정의합니다. 오브젝트가 아직 EPSG 측지 매개 변수 데이터 세트 에 없거나 추가되지 않았을 수 있습니다. 나중에 EPSG Dataset에 개체가 추가되면 Esri는 EPSG와 일치하도록 WKID를 업데이트하지만 이전 값은 계속 작동합니다.

몇 가지 제한 사항이 있습니다. Esri는 EPSG가 수행하는 축 방향을 ArcGIS Desktop에서 따르지 않습니다. ArcGIS Desktop에서는 서버에서 축 순서를 선택하고 있지만 항상 위도 또는 동북도 (xy)입니다.

Esri를 위해 이러한 제품을 처리하는 제품 엔지니어이기 때문에 이에 대해 잘 알고 있습니다.


9

이것은 SDK 도움말에 설명되어 있습니다 (예 : IGeometryServer.FindSRByWKID) .

AuthorityName 은 일반적으로 "EPSG"또는 "ESRI"이지만 임의의 문자열 일 수도 있습니다. 새 공간 참조와 연관된 기본 권한 이름을 원하는 경우 빈 문자열 일 수도 있습니다. 공간 참조를 작성하는 데 WKID 만 사용되므로 클라이언트는 자신의 권한 이름을 현재 EPSG 또는 ESRI 권한 이름과 연관된 팩토리 코드와 연관시킬 수 있습니다. WKID 범위를 기본 권한 이름 에 맵핑하기위한 현재 규칙은 다음과 같습니다 .

  • EPSG 코드 범위 (1000 – 32768) 의 WKID 는 AUTHORITY 이름이 "EPSG"가되며, 현재 사용되는 EPSG 버전 (현재 "6.12")이됩니다.
  • WKID ESRI의 코드 범위 (33000-199999)에서 현재 PE 라이브러리 버전을 "ESRI"의 AUTHORITY 이름을 초래할 것이며, 버전이 될 것입니다 (현재 "9.3").
  • WKID 사용자 (objedit) 범위 (200000-209199)의 그것과 관련된 버전으로, "CUSTOM"의 AUTHORITY 이름을 발생합니다. 이 이름은 OGC에 의해 지정됩니다.

공간 참조 팩토리 코드에서 0 값을 찾은 경우 공간 참조가 승인 / 유효하지 않다고 말할 수 있습니까?
Emi

2
@Emi, 팩토리 코드 / wkid의 0은 일반적으로 ArcGIS가 공간 참조 (좌표계)를 인식하지 않음을 의미합니다. 사용할 수 있기 때문에 유효한 공간 참조라고 부르지 만 ID가 없습니다.
mkennedy

5

내가 EPSG에 대한 찾을 수있는 유일한 참조가 있었다 는 ArcGIS 10의 새로운 기능 말했다

지도 투영 및 좌표 시스템

다음을 포함하여 새로운 좌표계 및 변환이 추가되었습니다.

그것이 당신이 필요한 확인인지 모르겠습니다.

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