투영에 대해 ogr2ogr을 어떻게 가르 칩니까?


11

나는 한 JSON는 ArcGIS에서 생성 된 I이 실패 EPSG 4326 년 GeoJSON로 변환 할 것을 :

$ ogr2ogr -f GeoJSON -t_srs EPSG:4326 out.geo.json in.arcgis.json OGRGeoJSON
ERROR 6: EPSG PCS/GCS code 102100 not found in EPSG support files.  Is this a valid
EPSG coordinate system?

102100을 수학적으로 동일한 3857로 변경할 수 있는 포럼 게시물 을 찾았 습니다 . 따라서 동일한 오류 메시지와 함께 작동합니다.

$ ogr2ogr -f GeoJSON -s_srs EPSG:3857 -t_srs EPSG:4326 out.geo.json in.arcgis.json OGRGeoJSON 
ERROR 6: EPSG PCS/GCS code 102100 not found in EPSG support files.  Is this a valid
EPSG coordinate system?

그러나 102100 프로젝션 시스템에 여러 파일이 있습니다. 102100 프로젝션에 대해 ogr2ogr을 가르치고 싶습니다. 변환을 스크립팅 할 수 있습니다. 102100이 3857과 동일하게 인식되고 처리되도록 구성을 업데이트하는 방법이 있습니까?

업데이트 -이 데이터는 ArgGIS Server 9.3.1의 REST API에서 가져온 것입니다. 출력 공간 참조를 지정하지 않으면 투영 좌표계 "WGS_1984_Web_Mercator_Auxiliary_Sphere" 로 정의되는 102100이 표시 됩니다. 내 목표를 달성하는 훨씬 쉬운 방법은 outSR=4326query 매개 변수 를 사용하여 원하는 투영을 요청하는 것 입니다. 원본 데이터에 액세스 할 수없는 경우에도이 질문은 여전히 ​​유효합니다.

답변:


11

102100과 3857은 수학적으로 동일하므로 오류를 무시하고 -s_srs 플래그를 사용하여 소스 srs를 계속 무시할 수 있다고 생각합니다 .

$ GDAL_DATA $에 102100에 대한 정의를 추가 할 수 있지만 실제로 권장되지는 않습니다. 그래도 정말로하고 싶다면 Frank Warmerdam 의 방법과 경고가 있습니다 .

.csv 파일은 주로 EPSG 좌표계 용으로 설계되었으므로 수동으로 확장하는 것은 적절하지 않습니다.

그러나 gdal / data / cubewerx_extra.wkt와 유사한 방식으로 사용자 정의 사전을 추가 할 수 있습니다. 이러한 사전 파일은 짧은 이름, 쉼표 및 좌표계의 WKT 정의가있는 선으로 구성됩니다.

SetFromUserInput () 및 해당 함수를 사용하는 프로그램 (예 : s_srs, a_srs, gdal_translate, ogr2ogr 및 gdalwarp의 경우 t_srs)에서 이러한 정의를 참조 할 수 있습니다.

gdal_translate -a_srs DICT : cubewerx_extra.wkt, 41001

이게 도움이 되길 바란다. 행운을 빕니다!


1
고맙습니다, 당신이 제안한 것과 비슷한 것을했습니다. 내 $GDAL_DATA$디렉토리는에 /usr/local/share/gdal있으며 EPSG 3857은 pcs.csv해당 폴더에 정의되어 있습니다. 해당 줄을로 복사 pcs.override.csv하고 ID (첫 번째 열)를 3857에서 102100으로 변경했습니다.이 시점에서 전환은 -s_srs플래그 없이 작동했습니다 . 장기적인 해결책은 소스 데이터를 알려진 프로젝션으로 가져 와서 프로젝션을 혼합하는 대신 형식 변환에만 ogr2ogr을 사용할 수 있도록하는 것이 었습니다.
jwhitlock
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.