배경 이것은 다른 좌표계에서 다른 데이터 레이어와 함께 다시 시각화하기 위해 네이 키드 래스터 맵을 지리 참조하는 것과 관련된 두 번째 질문입니다. 이전 질문은 임의의 메타 데이터가없는 맵 이미지를 QGIS 프로젝트로 변환에 있습니다.
문제 내 목표는이지도를 지리 참조하는 것입니다.
Plate-Carrée 인 것으로 보이지 않습니다. 그래서 QGIS에서는 몇 가지 합리적인 제어점을 만들었습니다. QGIS Georeferencer에 프로젝트 파일 EPSG : 4326과 동일한 대상 SRS를 제공합니다. Helmert와 다항식 변환으로 예외적으로 결과가 좋지만 얇은 판 스플라인으로 합리적인 이미지를 얻습니다 (결과적으로 지리적 추정치가 제어점을 통과합니다). 그러나이 결과조차 예를 들어 위도가 높은 곳에서는 좋지 않습니다 (일본 북쪽 러시아 해안 참조). 내추럴 어스 배경을 사용한 QGIS 화면의 스크린 샷입니다.
대체 경로 에서 결과 및 제어 포인트를 참조하십시오 나는 MapWarper에서 훨씬 더 쉽게 사용할 수있는 도구와 유사한 운동을 시도 http://mapwarper.net/maps/758#Preview_Map_tab 아마 사실로 인해 (가난한 결과를 얻을 어디 더 적은 제어점을 추가했습니다).
간단히 말해서
- 좋은 지리 참조를 얻기 위해 누락 된 트릭이 있습니까?
- 이 프로젝션은 즉시 알아볼 수 있습니까?
- 에서 알 수없는 오래된 도면에 좌표계 ,
gdaltransform
실제로 원래의 맵을 생성하는 데 사용되는 프로젝션 매개 변수를 발굴을 목표로하는 여러 대상 SRS에 여러 개의 좌표 점을 변환하는 것이 좋습니다. 나는 이런 식으로 뭔가를 시도 : 포인트 내 QGIS 목록을 저장 한 후, 나는 분리 된 공간의 목록을 가져 처리 일부 문자열을 한 긴 / 라트를 통해cat eurasian-steppe-gcp.points | tail -n+2 | cut -d, -f1-2 | sed 's/,/ /'> tmp.txt
및 gdaltransform에 결과 파일을 입력 :gdaltransform -s_srs EPSG:3785 -t_srs EPSG:4326 < tmp.txt
및 스위칭s_srs
및t_srs
플래그 (프로젝트는 EPSG : 4326을 사용합니다). 나는 운이 좋기를 바라고 어둠 속에서 촬영하고 있다는 것을 알고 있으므로 출력을 이해할 수 없을 때 놀라지 않았습니다. 누군가이 방법을 사용하여 소스 맵의 투영 및 투영 매개 변수에 대한 최상의 추정치를 찾는 방법을 확장 할 수 있습니까? 이것에 대한 나의 생각은 좋은 지리 참조를 위해 무수한 제어점을 배치하는 것보다 엉망이 아니라, 모든 공통 좌표계를 반복하면서 더 적은 제어점으로 거의 완벽한 지리 참조를 얻는 것이 더 쉬울 수 있다는 것입니다. 테스트중인 각 CRS에 대해 다른 모든 포인트에 대해 각 포인트의 교차 검증이 포함됩니까?
프로세스를 자동화 할 수 있도록이 알고리즘 또는 지리 참조에 대해 이해하고 싶습니다 .--이 문제가 항상 발생하고 콘텐츠 제작자가 일회성 제작물을 통합 할 수없는 맵으로 취급하지 않을 때까지 다른 내용으로, 나는 멈출 것으로 기대하지 않습니다.
참고 문헌
[ref : 1] QGIS GCP 파일 :
mapX,mapY,pixelX,pixelY,enable
142.632649100000009,54.453595900000003,505.941176470588232,-95.220588235293974,1
154.934252200000003,59.559921699999997,536.411764705882206,-52.779411764705742,1
80.080158100000006,9.657192300000000,291.558823529411711,-322.661764705882206,1
10.448442600000000,57.819128900000003,21.676470588235190,-103.926470588235134,1
34.007173000000002,27.761438299999998,101.117647058823422,-244.852941176470466,1
50.950890399999999,11.862196600000001,171.852941176470495,-313.955882352941046,1
29.713217199999999,60.024133200000001,90.779411764705799,-92.499999999999829,1
60.000000000000000,0.000000000000000,208.308823529411683,-362.382352941176350,1
69.867506500000005,66.639146199999999,224.088235294117567,-33.191176470588061,1
27.276107100000001,71.049154799999997,89.147058823529306,-21.764705882352814,1
140.000000000000000,0.000000000000000,536.955882352941217,-362.926470588235190,1
20.000000000000000,0.000000000000000,43.441176470588132,-362.926470588235190,1
20.196882700000000,31.243024100000000,47.249999999999901,-231.794117647058698,1
9.171861099999999,42.848309999999998,8.073529411764603,-175.205882352941046,1
131.955786100000012,43.196468600000003,481.999999999999943,-162.691176470588090,1
73.813303700000006,45.169367200000003,256.735294117646959,-161.602941176470438,1
50.602731800000001,44.589102900000000,168.044117647058727,-167.588235294117510,1
121.394975900000006,18.941421099999999,455.882352941176407,-284.029411764705742,1
103.987047000000004,1.417439300000000,389.499999999999943,-357.485294117646959,1
109.325478599999997,55.962283100000001,380.249999999999943,-98.485294117646902,1
31.454010100000001,46.562001500000001,95.132352941176379,-158.882352941176322,1
43.639560299999999,68.844150499999998,137.573529411764611,-40.264705882352814,1
비 업데이트
van der Grinten의 분석 필자는 Proj4가 지원하는 프로젝션 (Pyproj를 통해)에 GCP를 맞추기 위해 Python 툴을 작성하여 답변에서 제안 된 두 프로젝션에 적용했습니다. 업데이트 된 GCP뿐만 아니라 소스 코드 (약간 느슨하고 미리 사과드립니다)는 https://github.com/fasiha/steppe-map 에서 확인할 수 있습니다.
van der Grinten은 조정할 매개 변수가 하나 뿐이며 결과 이미지는 다음과 같습니다 (Brittannica의 최신 이미지를 사용하면 고해상도 및 업데이트 된 맵을 제공하기 때문에 많은 이미지 덕분에 여전히 투영 데이터가 부족함).
Van der Grinten은 GCP와 최적 점 사이의 상대 오차가 0.035로, 이는 내가 시도한 무리 중 최악이며, 해안선 오버레이는이를 정 성적으로 나타냅니다.
(이 이미지를 자체 탭에서 열면 도움이 될 수 있습니다. 고해상도입니다. 또한 지리 참조 된 지점을 나타내는 녹색 화살표 (이미지의 중요한 랜드 마크와 일치해야 함)와 해당 지점을 나타내는 빨간색 화살표도 표시됩니다 (해안선 오버레이에서 동일한 랜드 마크와 일치해야 함) --- 두 이미지 사이의 편차는 눈이 이미지와 맞춤의 차이를 보는 데 도움이됩니다.)
Albers equal-area의 분석 Albers equal-area projection ( "Albers conformal Conic"과 동일합니까? 무지한 것에 대해 죄송합니다)과 같은 것을 시도해보십시오. 4 차원 매개 변수 적합과 관련된이 적합은 0.025의 상대 오차로 더 좋지만 그럼에도 불구하고 상당히 나빠 보입니다.
Robinson 및 Eckert V 투영 분석 Pyproj가 지원하는 여러 의사 원통형 투영법 (하나의 자유 매개 변수가있는 모든 것을 찾을 수 있음)에 적합하고 Robinson과 Eckert V 투영법이 상대 오차 측면에서 "최고"를 달성 한 것을 발견했습니다. 상대 오차가 0.015 인 GCP 및 적합 점.
로빈슨은 다음과 같습니다.
그리고 여기 Eckert V가 있습니다.
이미지의 해안선에서 적합 해안선의 편차에 유의하십시오. 나는 이것으로지도가 위의 어느 것도 아니라고 결론 지을 수 있다고 생각합니까?
Winkel tripel : 가능한 해결책?
1990 년 (2003 년 업데이트) 부터이 Proj 매뉴얼의 모든 프로젝션을 순차적으로 시도한 후 ftp://ftp.remotesensing.org/proj/OF90-284.pdf 마침내 Winkel tripel 프로젝션에 왔습니다. 이것은 가장 낮은 정량적 오류 (0.011)를 생성하고 해안선은 균일하게 상당히 우수합니다 (또는 동등하게 약간 균일하지 않습니다). 나는 이것이 내셔널 지오그래픽 협회 (National Geographic Society)의 투영이라는 것을 읽었으며, 이것은 유명하다는 것을 의미하며, 이것은 브리타니 카의지도에 대한이 투영의 후보에 가중치를 더합니다. 장착 된 SRS : +units=m +lon_0=47.0257707403 +proj=wintri
.
(해안선 색상을 회색으로 변경 한 것에 대한 사과. 이로 인해 다른 사람이 불쾌감을 느끼면 파란색 버전을 만들 수 있습니다.)
오류를 낮추기 위해 GCP를 조정하려고 시도합니다.