Kontekst To jest moje drugie pytanie związane z georeferencjami nagich map rastrowych w celu ponownej wizualizacji ich na różnych układach współrzędnych i w połączeniu z innymi warstwami danych. Poprzednie pytanie dotyczy Konwertuj dowolny obraz mapy bez metadanych na projekt QGIS
Problem Moim celem jest georeferencja tej mapy:
To nie wydaje się być Plate-Carrée. Tak więc w QGIS stworzyłem kilka rozsądnych punktów kontrolnych, które dla kompletności załączyłem na dole [ref: 1]. Zapewniam QGIS Georeferencer ten sam docelowy SRS, co mój plik projektu, EPSG: 4326. Z Helmertem i transformacją wielomianową uzyskuję wyjątkowo słabe wyniki, ale uzyskuję rozsądny obraz z cienkim splajnem płytkowym (co powoduje, że wynik geoestymulacji przechodzi przez moje punkty kontrolne). Jednak nawet ten wynik jest słaby, np. Na wyższych szerokościach geograficznych (patrz rosyjskie wybrzeże na północ od Japonii). To jest zrzut ekranu mojego ekranu QGIS z wykorzystaniem naturalnego tła Ziemi.
Alternatywna ścieżka Próbowałem podobnego ćwiczenia z dużo łatwiejszym w użyciu narzędziem w MapWarper: zobacz wyniki i punkty kontrolne na http://mapwarper.net/maps/758#Preview_Map_tab, gdzie otrzymuję gorsze wyniki (prawdopodobnie ze względu na fakt dodałem mniej punktów kontrolnych).
Pytania w skrócie
- Czy brakuje mi sztuczek, aby uzyskać dobrą georeferencję?
- Czy ta projekcja jest natychmiast rozpoznawalna?
- Na Unknown układ współrzędnych na starym rysunku ,
gdaltransform
sugeruje się, aby przekształcić kilka współrzędnych punktów w ciągu kilku SRS docelowych, z celem faktycznie odkrywając parametry projekcji wykorzystywane do generowania oryginalną mapę. Próbowałem coś takiego: po zapisaniu QGIS moją listę punktów, zrobiłem pewien ciąg przetwarzania w celu uzyskania listy przestrzeni oddzielonych długo / łata poprzezcat eurasian-steppe-gcp.points | tail -n+2 | cut -d, -f1-2 | sed 's/,/ /'> tmp.txt
i wprowadzania plik wynikowy do gdaltransform:gdaltransform -s_srs EPSG:3785 -t_srs EPSG:4326 < tmp.txt
i przełączającegos_srs
it_srs
flagi (projekt wykorzystuje EPSG: 4326). Wiem, że strzelam w ciemności, mając nadzieję na szczęście, więc nie zdziwiłem się, gdy nie mogłem zrozumieć wyjściowych rezultatów. Czy ktoś może rozwinąć sposób, w jaki użyłbym tej metody, aby znaleźć najlepsze oszacowanie prognozy mapy źródłowej i parametrów projekcji? Uważam, że kryje się za tym to, że zamiast mieszać się z rozmieszczaniem niezliczonych punktów kontrolnych w celu uzyskania dobrej georeferencji, czy łatwiej byłoby uzyskać prawie idealną georeferencję z mniejszą liczbą punktów kontrolnych, po prostu przechodząc przez wszystkie wspólne układy współrzędnych? Czy wiąże się to z wzajemną weryfikacją każdego punktu względem wszystkich pozostałych, dla każdego testowanego CRS?
Chciałbym zrozumieć ten algorytm lub georeferencje, aby móc zautomatyzować ten proces - cały czas spotykam się z tym problemem i dopóki twórcy treści nie przestaną traktować swoich map jako jednorazowych kreacji, które nigdy nie zostaną zintegrowane z innymi treściami nie oczekuję, że przestanę.
Bibliografia
[ref: 1] Plik 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
Brak aktualizacji
Analiza van der Grintena Napisałem narzędzie Python do dopasowania GCP do dowolnej projekcji obsługiwanej przez Proj4 (przez Pyproj) i zastosowałem je do kilku prognoz sugerowanych w odpowiedziach. Kod źródłowy (nieco niechlujny, z góry przepraszam), a także zaktualizowane CPG są dostępne na https://github.com/fasiha/steppe-map
Van der Grinten ma tylko 1 parametr do dostrojenia, a oto wynikowy obraz (używając najnowszego obrazu z Britannicy, wiele dzięki za udostępnienie tak wysokiej rozdzielczości i zaktualizowanej mapy (choć nadal brakuje danych projekcji)).
Van der Grinten ma błąd względny wynoszący 0,035 między punktami GCP i punktami najlepiej dopasowanymi, co jest najgorszym z zestawu, którego próbowałem, a nakładka na wybrzeże wykazuje to jakościowo.
(Może to pomóc, jeśli otworzysz ten obraz na własnej karcie, ma on dość wysoką rozdzielczość. Zobaczysz także zielone strzałki wskazujące punkty georeferencyjne (powinny pasować do znaczących punktów orientacyjnych na obrazie), a także czerwone strzałki wskazujące, gdzie te punkty są dopasowane do (powinny pasować do tych samych punktów orientacyjnych na nakładce linii brzegowej) - odchylenie między nimi może pomóc oku zobaczyć różnice między obrazem a dopasowaniem.)
Analiza równego obszaru Albersa Próbowanie tego samego z projekcją równego obszaru Albersa (co jest tym samym co „stożkowa konformacja Albersa? Przepraszam za moją ignorancję). To dopasowanie, obejmujące 4-wymiarowe dopasowanie parametru, jest lepsze, z błędem względnym wynoszącym 0,025, ale mimo to wygląda dość słabo.
Analiza rzutów Robinsona i Eckerta V. Dopasowałem kilka pseudocylindrycznych rzutów obsługiwanych przez Pyproj (wszystko, co mogłem znaleźć, które miały jeden wolny parametr) i stwierdziłem, że rzuty Robinsona i Eckerta V były „najlepsze” pod względem błędu względnego między GCP i dopasowane punkty, oba z błędami względnymi 0,015.
Oto Robinson:
A oto Eckert V.
Zwróć uwagę na odchylenia dopasowanej linii brzegowej od linii brzegowej obrazu. Myślę, że dzięki temu mogę stwierdzić, że mapa nie jest żadna z powyższych?
Winkel tripel: możliwe rozwiązanie?
Po kolejnych próbach każdej projekcji w tym podręczniku Proj z 1990 roku (aktualizacja 2003) ftp://ftp.remotesensing.org/proj/OF90-284.pdf W końcu doszedłem do projekcji tripel Winkel. Powoduje to najniższe błędy ilościowe (0,011), a linia brzegowa jest jednolicie całkiem dobra (lub równoważnie, jednakowo nieznacznie zła). Czytałem, że jest to projekcja National Geographic Society, co oznacza, że jest znana, a to zwiększa wagę kandydatury tej projekcji na mapę Britannicy. Dopasowanego SRS: +units=m +lon_0=47.0257707403 +proj=wintri
.
(Przepraszamy za zmianę koloru linii brzegowej na szary. Jeśli to kogoś obraża, mogę stworzyć wersję niebieską).
Spróbuję ulepszyć moje CPG, aby obniżyć błąd.