Converti un'immagine di mappa arbitraria senza metadati nel progetto QGIS


9

Il mio background: programmatore esperto, storico dilettante, principiante assoluto di GIS (quindi sto usando QGIS). Ho imparato ad usare lo strumento georeferenziatore QGIS però.

L'input: supponiamo di avere un'immagine come questa Wikipedia: File: VoyagesOfRabbanBarSauma.jpg . Supponiamo che sia un file JPG "nudo" senza metadati geografici e l'autore non può fornire tali informazioni. L'immagine di input è sotto licenza GNU FDL, con la quale sono felice di pubblicare i miei lavori derivati.

L'obiettivo: importare il percorso mostrato nella mappa di Wikipedia in QGIS in modo da poter cambiare la proiezione, sovrapporre l'elevazione, aggiungere etichette per la geografia fisica, ecc.

L'avvertenza: una soluzione alternativa potrebbe essere quella di inserire il lat / long delle posizioni nella mappa in un nuovo progetto GIS. Non voglio seguire questa strada perché mi piacerebbe avere una registrazione della stima di quel particolare autore delle informazioni geografiche.

Cosa ho provato: ho applicato il Georeferencer QGIS al file JPG raster con una serie di punti attorno ai bordi dei continenti. L'allineamento dei punti all'interno del continente è così così.

Quello che mi piacerebbe sapere: le distorsioni di questa particolare mappa sono piuttosto evidenti attorno al margine settentrionale dell'Eurasia e sembra che sia una proiezione piuttosto standard. Mi sembra che dovrebbe esserci un modo algoritmico per identificare i parametri di proiezione e proiezione che hanno generato questa mappa e recuperare un'accurata conversione di non interpolazione tra pixel dell'immagine e lat / long?

Vedo due domande su questo:

  1. Identificazione del sistema di coordinate di Shapefile quando sconosciuto?
  2. Sistema di coordinate sconosciuto sul vecchio disegno

Questi sembrano parlare di un metodo di forza bruta che coinvolge GDAL o QGIS, e per un principiante GIS, sembrano un po 'ad alta intensità di lavoro (fondamentalmente georeferenzialità e adattarli a proiezioni conosciute) ma sono disposto a provarli e vedere se posso automatizzali.

Le istruzioni su entrambi questi GIS.SE sono un po 'più elevate di quanto la mia esperienza consenta e qualsiasi suggerimento su come eseguire esattamente questo metodo della forza bruta sarebbe molto apprezzato. Ad esempio, la domanda 2 sopra mostra come usare gdaltransform per convertire un elenco di coordinate in lat / long. Le coordinate di input sono posizioni dei pixel xy?

Risposte:


7

Come accennato, la tua mappa di esempio è Plate Carree, che in QGIS è WGS84 / lat lon, EPSG: 4326. Georeferenzia piacevolmente in QGIS usando il metodo lineare di Helmert con solo due punti. Nel mio caso ho usato un punto vicino all'angolo in alto a sinistra dell'immagine e un altro punto vicino all'angolo in basso a destra dell'immagine. Le coordinate lat / lon utilizzate per la georeferenziazione sono state ottenute da Google Earth. Ricorda che quando il georeferenziazione Latitude è "y" e Longitude è "x".

Per divertimento, ho quindi caricato il raster georeferenziato in QGIS e ho tracciato rapidamente il percorso, salvandolo come file di forma della linea. Ho quindi caricato un'immagine raster dalla Terra naturale e l'ho sovrapposta con il percorso (vedi l'immagine allegata per una parte della mappa risultante).

Le immagini raster di Natural Earth sono georeferenziate (secondo EPSG: 4326), belle e gratuite, puoi ottenerle da qui:

Terra naturale

Sono ideali per l'uso come mappe di base per la stampa di dati storici.

Aggiunto in seguito:

Non so quasi nulla della mappatura su scala mondiale ma ho notato i tuoi commenti sull'ovvia distorsione nella mappa WGS84 lat / lon (EPSG: 4326) originale. QGIS ha un buon set di strumenti per riproiettare dati vettoriali e raster, quindi (in parte per la mia auto-educazione!) Ho pensato di provare a trovare un CRS che presentasse la mappa in un modo più "naturale".

L'immagine allegata mostra un raster di Terra Naturale troncato trasformato in una proiezione ad area uguale di Albers personalizzata. I dati vettoriali sulla mappa sono stati trasformati al volo da WGS84 lat / lon. Perché Albers? Beh, sembrava una cosa ragionevole da provare. Ovviamente, in una mappa finita si aggancerebbe il reticolo vettoriale (anche per gentile concessione di Natural Earth) all'immagine. Anche così, penso che le forme sulla mappa siano ragionevolmente naturalistiche e che la mappa evidenzi anche il fatto che il notevole viaggio di Bar Sauma è stato fatto su un globo.

I parametri per il CRS personalizzato erano i seguenti:

+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

Era una proiezione ragionevole da usare? Onestamente non lo so.

Nick.

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine


Nick, grazie così tanto, che è esattamente come ho voluto vedere il viaggio! Se non sapessi che la proiezione era Plate Carree, avrei potuto far capire a QGIS, come sembra fare ArcGIS? Ci sono un sacco di mappe come questa su Wikipedia ( esempio ) in cui mi piacerebbe visualizzare i dati geografici su altre proiezioni e con sfondi diversi (elevazione, NDVI, clima), e sembra che la prima cosa da fare sia capire un proiezione di nudo raster.
Ahmed Fasih,

Per quanto ne so, QGIS non ha la possibilità di calcolare la proiezione di una mappa. Nel caso della mappa di Bar Sauma era facile intuire che si trattava di EPSG: 4326 solo confrontando la distorsione nella parte superiore con quella su altre mappe del mondo di Plate Carree. Per quanto riguarda la mappa dell'impero mongolo di Wikipedia, questo non sembra essere né Plate Carree né il mercatore mondiale. Penso che alcune delle persone che creano mappe per Wikipedia utilizzano proiezioni equirettuali lat / lon personalizzate, come Plate Carree ma non centrate su Lat 0-deg, Lon 0-deg. È possibile che questa mappa sia una di queste. Farò qualche scavo.
nhopton,

La tecnica della "forza bruta" a cui le altre due domande StackExchange che ho collegato non è suscettibile di QGIS? Uno di loro sembra usare GDAL con varie ipotesi sulla proiezione sottostante, che dovrebbe essere gestibile da script all'interno di QGIS? Grazie ancora!
Ahmed Fasih,

Il problema è che questo metodo presuppone che l'immagine sia già georeferenziata, ma a un CRS sconosciuto (proiezione). Le immagini con cui lavorerai verranno probabilmente scansionate da libri o scaricate da luoghi come Wikipedia e dovrai georeferenziarle tu stesso. QGIS ha un metodo di georeferenziazione, spline a piastra sottile (TPS), che consente di utilizzare un gran numero di punti di controllo. Il metodo TPS può essere usato per "rimettere in forma" le mappe raster ed è molto potente, ma presuppone che tu abbia le coordinate per un discreto numero di punti di controllo. Nick.
nhopton,

5

La mappa utilizza latitudine e longitudine come se fossero coordinate cartesiane. Questa è una versione della proiezione equirettangolare o "Plate Carree". Quindi tutto ciò che devi fare è spostare e ridimensionare le coordinate xey per ottenere rispettivamente longitudine e latitudine.

Lo strumento di georeferenziazione in ArcGIS 10.0 semplifica la creazione di collegamenti per stimare la trasformazione. Anche se non riporta la trasformazione, è possibile esportare la tabella dei collegamenti Re stimare lì i coefficienti. Posizionando il pixel centrale nell'angolo in alto a sinistra della versione ad alta risoluzione dell'immagine su (0,0), il risultato è

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

I contorni del paese nero del livello di riferimento (fornito da ESRI con le versioni precedenti di ArcView) mostrano quanto i livelli coincidano dopo l'applicazione di tale trasformazione. Gli errori quadrati medi della radice sono 6 - 7 km lungo ciascun asse: circa un pixel nell'immagine, quasi quanto uno ha il diritto di aspettarsi.

Mappa georeferenziata


0

È probabile che la mappa sia schematica e il posizionamento delle città potrebbe non essere perfetto rendendole rischiose da utilizzare durante il georeferenziamento.

L'approccio migliore potrebbe essere quello di catturare la mappa a occhio usando una base appropriata all'interno di QGIS. Non corrisponderà perfettamente all'originale, ma è probabile che i percorsi siano indicativi, quindi è improbabile che tu perda alcuna precisione.


Punti eccellenti, grazie, farò come mi consigli. C'è un modo semplice per recuperare la proiezione e i parametri dell'immagine?
Ahmed Fasih,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.