Przekształć dowolny obraz mapy bez metadanych w projekt QGIS

9

Moje doświadczenie : doświadczony programista, historyk amator, kompletny początkujący do GIS (więc używam QGIS). Nauczyłem się jednak korzystać z narzędzia do georeferencji QGIS.

Dane wejściowe: załóżmy, że mam obraz taki jak ta Wikipedia: Plik: VoyagesOfRabbanBarSauma.jpg . Załóżmy, że jest to „nagi” plik JPG bez żadnych metadanych geograficznych, a autor nie może podać żadnych takich informacji. Obraz wejściowy jest objęty licencją GNU FDL, pod którą z przyjemnością wydam moje prace pochodne.

Cel: zaimportuj ścieżkę pokazaną na mapie Wikipedii do QGIS, abym mógł zmienić rzut, nałożyć wysokość, dodać etykiety dla geografii fizycznej itp.

Zastrzeżenie: jednym z obejść może być wprowadzenie długości / długości lokalizacji na mapie do nowego projektu GIS. Nie chcę jechać tą drogą, ponieważ chciałbym mieć zapis szacunkowych danych geograficznych tego konkretnego autora.

Co próbowałem: zastosowałem Georeferencję QGIS do pliku rastrowego JPG z kilkoma punktami wokół krawędzi kontynentów. Ułożenie punktów we wnętrzu kontynentu jest takie sobie.

Co chciałbym wiedzieć: zniekształcenia tej konkretnej mapy są dość zauważalne wokół północnego krańca Eurazji i wydaje się, że jest to dość standardowa projekcja. Wydaje mi się, że powinien istnieć algorytmiczny sposób identyfikacji projekcji i parametrów projekcji, które wygenerowały tę mapę, i odzyskania dokładnej konwersji bez interpolacji między pikselami obrazu a lat / long?

Widzę dwa pytania na ten temat:

  1. Identyfikowanie układu współrzędnych pliku kształtu, gdy jest nieznany?
  2. Nieznany układ współrzędnych na starym rysunku

Wydaje się, że mówią o metodzie brutalnej siły wykorzystującej GDAL lub QGIS, a dla początkującego GIS wydają się nieco pracochłonne (w zasadzie georeferencję i dopasować je do znanych projekcji), ale jestem gotów je wypróbować i sprawdzić, czy potrafię zautomatyzować je.

Instrukcje na obu tych GIS.SE są nieco wyższe niż pozwala na to moje doświadczenie, a wszelkie wskazówki dotyczące tego, jak dokładnie wykonać tę metodę brutalnej siły byłyby bardzo mile widziane. Np. Pytanie 2 powyżej pokazuje, jak użyć gdaltransform do konwersji listy współrzędnych na długość / długość. Czy wejściowe współrzędne xy pikseli lokalizacji?

Ahmed Fasih
źródło

Odpowiedzi:

7

Jak wspomniano, twoja przykładowa mapa to Plate Carree, która w QGIS to WGS84 / lat lon, EPSG: 4326. Ładnie georeferencyjnie w QGIS przy użyciu metody liniowej Helmerta z zaledwie dwoma punktami. W moim przypadku użyłem jednego punktu w pobliżu lewego górnego rogu obrazu, a drugiego w pobliżu prawego dolnego rogu obrazu. Współrzędne lat / lon użyte do georeferencji uzyskano z Google Earth. Pamiętaj, że gdy georeferencje szerokość geograficzna to „y”, a długość geograficzna to „x”.

Dla zabawy załadowałem następnie georeferencyjny raster do QGIS i szybko prześledziłem trasę, zapisując ją jako plik kształtu linii. Następnie załadowałem obraz rastrowy z Natural Earth i nałożyłem go na trasę (patrz dołączone zdjęcie, aby zobaczyć część wynikowej mapy).

Obrazy rastrowe Natural Earth są georeferencyjne (do EPSG: 4326), piękne i darmowe, możesz je pobrać tutaj:

Naturalna ziemia

Są idealne do użycia jako mapy bazowe do kreślenia danych historycznych.

Dodano później:

Nie wiem prawie nic o mapowaniu na skalę światową, ale zanotowałem twoje komentarze na temat oczywistych zniekształceń w oryginalnej mapie WGS84 lat / lon (EPSG: 4326). QGIS ma dobry zestaw narzędzi do przerzucania danych wektorowych i rastrowych, więc (częściowo do własnej samokształcenia!) Myślałem, że spróbuję znaleźć CRS, który przedstawiłby mapę w bardziej „naturalny” sposób.

Załączone zdjęcie pokazuje obcięty raster Ziemi Naturalnej przekształcony w niestandardową projekcję o równej powierzchni Albersa. Dane wektorowe na mapie przekształcono z WGS84 lat / lon w locie. Dlaczego Albers Wydawało się, że warto spróbować. Oczywiście na gotowej mapie można by przypiąć siatkę wektorową (również dzięki uprzejmości Natural Earth) do obrazu. Mimo to uważam, że kształty na mapie są dość naturalistyczne, a mapa podkreśla również fakt, że niezwykła podróż Bar Saumy odbyła się na kuli ziemskiej.

Parametry niestandardowego CRS były następujące:

+proj=aea +lat_1=22.0 +lat_2=56.0 +lat_0=20.0 +lon_0=55.0 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs

Czy była to rozsądna projekcja? Naprawdę nie wiem.

Nacięcie.

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

nhopton
źródło
Nick, dziękuję tak dużo, że jest dokładnie tak, jak chciałem, aby zobaczyć drogę! Gdybym nie wiedział, że projekcją był Plate Carree, czy mógłbym to rozgryźć w QGIS, tak jak ArcGIS? Istnieje mnóstwo takich map na Wikipedii ( przykład ), w których chciałbym wizualizować dane geograficzne na innych projekcjach i z różnymi tłami (wysokość, NDVI, klimat), i wydaje się, że pierwszą rzeczą do zrobienia jest znalezienie projekcja nagiego rastra.
Ahmed Fasih
O ile mi wiadomo, QGIS nie ma możliwości obliczenia rzutu mapy. W przypadku mapy Bar Sauma łatwo było odgadnąć, że był to EPSG: 4326, porównując zniekształcenie u góry z zniekształceniem na innych mapach świata na mapie Carre Plate. Jeśli chodzi o mapę Imperium Mongolskiego w Wikipedii, nie wydaje się, że jest to płyta Carree lub świat Mercator. Myślę, że niektórzy ludzie, którzy tworzą mapy dla Wikipedii, używają niestandardowych prostokątnych rzutów lat / lon, takich jak Plate Carree, ale nie wyśrodkowanych na Lat 0-deg, Lon 0-deg. Możliwe, że ta mapa jest jedną z nich. Zrobię kopanie.
nhopton,
Czy technika „brutalnej siły”, z którą dwa pozostałe pytania StackExchange, do których się powiodłem, nie podlega QGIS? Jeden z nich wydaje się używać GDAL z różnymi przypuszczeniami na podstawie rzutu bazowego, który powinien być skryptowalny z poziomu QGIS? Dzięki jeszcze raz!
Ahmed Fasih
Problem polega na tym, że ta metoda zakłada, że ​​obraz jest już georeferencyjny, ale do nieznanego CRS (projekcji). Obrazy, z którymi będziesz pracować, prawdopodobnie zostaną zeskanowane z książek lub pobrane z miejsc takich jak Wikipedia i będziesz musiał georeferencję je sam. QGIS ma metodę georeferencji, cienkiego splajnu (TPS), która pozwala na użycie dużej liczby punktów kontrolnych. Metoda TPS może być używana do „przyciągania” map rastrowych do kształtu i jest bardzo potężna, ale zakłada, że ​​masz współrzędne dla sporej liczby punktów kontrolnych. Nacięcie.
nhopton,
5

Mapa używa szerokości i długości geograficznej, jakby były współrzędnymi kartezjańskimi. Jest to wersja rzutu prostokątnego lub „Plate Carree”. Zatem wystarczy przesunąć i przeskalować współrzędne xiy, aby uzyskać odpowiednio długość i szerokość geograficzną.

Narzędzie do georeferencji w ArcGIS 10.0 w krótkim czasie tworzy linki do oszacowania transformacji. Chociaż nie zgłasza transformacji, można wyeksportować tabelę linków Ri tam oszacować współczynniki. Umieszczenie środkowego piksela w lewym górnym rogu wysokiej rozdzielczości wersji obrazu na (0,0) daje wynik

latitude = 75.71992178 + 0.0427073 * row index
longitude = -18.86514764 + 0.04275506 * column index

Czarne kontury kraju warstwy odniesienia (dostarczonej przez ESRI z wcześniejszymi wersjami ArcView) pokazują, jak dobrze warstwy pokrywają się po zastosowaniu takiej transformacji. Średnie kwadratowe błędy pierwiastkowe wynoszą 6–7 km wzdłuż każdej osi: około jednego piksela na obrazie, prawie tak dobry, jak można się spodziewać.

Mapa georeferencyjna

Whuber
źródło
0

Mapa prawdopodobnie będzie schematyczna, a rozmieszczenie miast może nie być idealne, co może powodować, że korzystanie z nich podczas georeferencji jest ryzykowne.

Najlepszym podejściem może być przechwycenie mapy okiem przy użyciu odpowiedniej bazy w QGIS. Nie będzie idealnie pasował do oryginału, ale trasy mogą być orientacyjne, więc prawdopodobnie nie stracisz żadnej dokładności.

Matthew Snape
źródło
Doskonałe punkty, dzięki, zrobię to, co doradzasz. Czy istnieje prosty sposób na odzyskanie projekcji i parametrów obrazu?
Ahmed Fasih