Hoe een kaart of afbeelding georefereren in QGIS
Published

Om een kaart of afbeelding in QGIS te georefereren, open je Layer > Georeferencer, laad je de scan met Open Raster, klik je op minstens vier punten die je kunt identificeren en typ je hun echte coördinaten, kies je Polynomial 1 en een geprojecteerd doel-CRS in Transformation Settings, en druk je daarna op Start Georeferencing. QGIS schrijft een GeoTIFF en voegt die toe aan je project.
De punten plaatsen is het makkelijke deel. Wat de meeste tutorials overslaan is het beoordelen van het resultaat, want het getal dat QGIS je toont kan nul zijn op een kaart die honderden meters ernaast zit. Ik georefereerde een USGS-kaart van San Francisco uit 1947 en mat elk resultaat tegen punten die de fit nooit zag. De cijfers hieronder komen uit die test.
Het korte antwoord
| Jouw invoer | Methode | Tijd of kosten |
|---|---|---|
| Een scan met coördinaten erop gedrukt (gradnet, rasterstreepjes, hoekwaarden) | Methode 1, typ de gedrukte waarden | Gratis. 8 punten, dan een warp van 34 s op een 6,888 x 8,933 px scan |
| Een scan zonder coördinaten, of een foto van een kaart | Methode 1, From Map Canvas op een basiskaart | Gratis. Reken op 10 of meer punten |
| Een GeoPDF van USGS of een andere instantie | Open hem direct, hij staat al op zijn plaats | Gratis, nul punten |
| Punten al gelezen, en je wilt de fit voor je laten controleren | Methode 2, een AI-agent | 1 bericht, 99 s in mijn test |
| Een snelle visuele overlay, geen nauwkeurigheid nodig | Methode 3, de plugin Freehand raster georeferencer | Gratis plugin |
Voordat je begint
Je hebt QGIS 3.26 of nieuwer nodig, waar de Georeferencer in het menu Layer staat. Ik gebruikte QGIS 3.44.7. Oudere tutorials sturen je naar Raster > Georeferencer, waar hij vroeger zat, als de plugin GDAL Georeferencer.
Lees de kaartrand voordat je ergens klikt. Die vertelt je drie dingen die je later intypt: het coördinatensysteem van de gedrukte waarden, het datum, en de schaal. Mijn voorbeeld is het USGS San Francisco North, CA vierkant uit 1947, op 1:24,000, dat iedereen kan downloaden van topoView. Op de rand staat "Polyconic projection. 1927 North American datum", en de hoeken dragen breedtegraden en lengtegraden om de 7'30". Historische USGS-kaarten zijn publiek domein.
Om de test eerlijk te maken nam ik USGS' eigen GeoTIFF van dat blad en verwijderde de georeferentie, dus wat ik in QGIS laadde was een gewone JPEG van 9.2 MB en 6,888 x 8,933 pixels. Dat is ongeveer 300 dpi, of 2.03 m grond per pixel. USGS' georeferentie bleef ernaast liggen als de antwoordsleutel.
Waar het internet dit fout doet
"Hoe lager de RMSE, hoe beter het resultaat." Niet met een thin plate spline. Die transformatie buigt de afbeelding tot ze precies door elk punt gaat, dus de residuen zijn altijd nul. Ik typte expres één breedtegraad fout, 37°47' in plaats van 37°47'30", en liet beide transformaties op dezelfde acht punten lopen. Polynomial 1 gaf een RMSE van 297 m en legde daarvan 762 m op het slechte punt. Thin plate spline gaf 0.00 m, en de kaart zat tot 594 m ernaast op punten die hij niet had gekregen.
"Voer de coördinaten in WGS 84 in." De gedrukte waarden op oudere US-kaarten zijn vaak NAD27, en de rand zegt dat ook. In San Francisco liggen dezelfde breedte- en lengtegraad in NAD27 en in WGS 84 93 m uit elkaar, waarvan 92 m oost-west. Typ je ze als EPSG:4326, dan landt het hele blad een blok verderop, met residuen die perfect lijken, omdat elk punt samen bewoog. Stel in het dialoogvenster Enter Map Coordinates het CRS van de punten in op wat de rand zegt: EPSG:4267 voor NAD27.
"Laat het doel-CRS in graden staan." Dat kan, maar een vlakke affiene fit in breedte- en lengtegraad komt niet overeen met hoe een geprojecteerde kaart is getekend. Met dezelfde acht punten gaf Polynomial 1 een RMSE van 2.98 m met EPSG:4267 als doel, en 0.72 m met NAD27 / UTM zone 10N (EPSG:26710). Kies een geprojecteerd CRS op het datum van de kaart, dan leest de fit ook in meters.
Methode 1: De QGIS Georeferencer
Dit is de ingebouwde tool en degene die je eerst moet leren. Hij werkt voor scans met gedrukte coördinaten en voor scans zonder.
Open de scan
Layer > Georeferencer, dan File > Open Raster en kies de afbeelding. JPEG, PNG en TIFF werken allemaal.
Voeg een controlepunt toe
Klik op Add GCP Point, zoom in en klik op een plek die je exact kunt identificeren: een hoek van de kaartrand, een gradnetkruis, een rasterstreepje. Het dialoogvenster Enter Map Coordinates opent. Typ de gedrukte coördinaat. Het aanvaardt graden, minuten en seconden met spaties (-122 25 0), decimale graden, of geprojecteerde meters. Stel het CRS onder de velden in op degene die de rand noemt.
Of neem de coördinaat van het kaartcanvas
Als de scan geen coördinaten heeft, laad dan eerst een basiskaart in het hoofdvenster van QGIS (de gids voor basiskaarten bevat de klikken), druk dan op From Map Canvas en klik op dezelfde plek erop. QGIS vult de coördinaten en het CRS voor je in.
Verdeel de punten
Zet er een bij elke hoek en een paar in het midden. Punten die in één gebied opeengepakt zitten passen dat gebied en laten de rest van het blad wegzakken. Ik gebruikte de vier hoeken van de kaartrand en de vier gradnetkruisen daarbinnen.

Elk punt dat je toevoegt gaat in een .points-bestand naast de afbeelding. Bewaar het: de Georeferencer laadt het vanzelf de volgende keer dat je dezelfde scan opent, en je kunt een punt corrigeren in plaats van opnieuw te beginnen.
Kies de transformatie
Settings > Transformation Settings bevat de keuze die het meest uitmaakt. De handleiding van QGIS 3.44 noemt zeven transformaties, met deze minimale puntenaantallen:
| Transformatie | Minimum punten | Gebruik het voor |
|---|---|---|
| Linear | 2 | Een schone scan die alleen een verschuiving en een schaal nodig heeft. Schrijft een world file, geen warp |
| Helmert | 2 | Hetzelfde plus een rotatie |
| Polynomial 1 | 3 | De meeste platte scans van gedrukte kaarten. Rechte lijnen blijven recht |
| Projective | 4 | Een foto van een kaart die schuin is genomen |
| Polynomial 2 | 6 | Een gekruld of gebogen blad. Vervormt de randen voorbij je punten |
| Polynomial 3 | 10 | Hetzelfde, sterker. Zelden de moeite waard |
| Thin plate spline | 10 volgens de handleiding | Beschadigde of handgetekende kaarten met veel punten. Verbergt fouten, zie hierboven |
Mijn regel: begin met Polynomial 1. Stap pas over op iets flexibelers wanneer de residuen een patroon vertonen, zoals elk punt aan één kant dat dezelfde kant op trekt, en nooit omdat een hoger getal slechter leek.

Twee instellingen in dat dialoogvenster besparen later problemen. Resampling method verandert hoe de gewarped pixels eruitzien: nearest neighbour behoudt de originele kleuren, cubic leest beter op een scan. En de uitvoer heeft standaard geen compressie: mijn JPEG van 9.2 MB werd een GeoTIFF van 187 MB. Open Raster creation options en kies een compressieprofiel als het bestand zal reizen.
Lees de residuen
Zodra je meer punten hebt dan de transformatie nodig heeft, toont QGIS het residu van elk punt in de GCP-tabel en een gemiddelde fout in de statusbalk, beide in pixels voor een scan zonder coördinaten.

Om een pixelgetal te beoordelen, zet je het om in meters en vergelijk je het met wat de kaart zelf kan leveren.
- Meters per pixel. Vermenigvuldig de schaalnoemer met de grootte van een gescande pixel. Bij 300 dpi is één pixel 0.0847 mm, dus op een 1:24,000-kaart beslaat die 2.03 m. Mijn 0.447 pixels is 0.9 m.
- Wat de kaart kan beloven. De US National Map Accuracy Standards eisen dat 90 procent van de goed gedefinieerde punten op een 1:24,000-blad binnen 1/50 inch ligt, wat USGS geeft als 12.2 m. Een strengere vuistregel is de breedte van een getekende lijn, 0.2 mm op het blad, wat 4.8 m is bij 1:24,000.
- Punten die de fit nooit zag. Een residu zegt alleen dat de punten met elkaar overeenkomen. Ik hield de acht gradnetstreepjes langs de randen buiten de fit en mat waar het resultaat ze neerzette: gemiddeld 1.0 m ernaast, in het slechtste geval 1.6 m.
De georeferentie voegde dus ongeveer een meter fout toe aan een kaart die maar 12 m belooft. Op een oud blad is de kaart bijna altijd de limiet, niet je klikken.
Start Georeferencing schreef de GeoTIFF daarna in 34 seconden en voegde hem toe aan het project. Op OpenStreetMap vallen de straten van 1947 op die van vandaag:


Gebruik het wanneer: je een resultaat wilt dat je kunt verdedigen, met residuen, een .points-bestand en een GeoTIFF die elke GIS leest.
Sla het over wanneer: je alleen een paar minuten een ruwe achtergrond nodig hebt. Methode 3 is daarvoor sneller.
Methode 2: Controlepunten gecontroleerd door een AI-agent
Wij bouwen AI Agent, een gratis QGIS-plugin met een chatpaneel dat de stappen in je open project uitvoert. Deze sectie gaat over onze eigen tool. Hij heeft een georeferentietool die controlepunten als pixel- en coördinatenparen aanneemt, een van de transformaties van de Georeferencer door GDAL laat lopen, en het residu van elk punt in meters teruggeeft, beoordeeld tegen de schaal van de kaart.
Hij kan een scan ook zonder enige punten plaatsen, door de plaatsnamen te lezen en ze tegen referentiekaarten te matchen: een oude kaart van Edinburgh in de AI Agent-gids landde met een mediane fout van 5.9 m. Dat vereist leesbare namen, en heel oude bladen mislukken vaak. Voor een kaart met een gedrukt gradnet zijn de punten de zekerste route, en ze lezen gaat snel: een afbeelding zonder coördinaten zit in QGIS met de pixelkolom als x en min de rij als y, dus de statusbalk toont de pixel onder je cursor. Ik laadde de scan, hield de typfout uit de test hierboven in punt 8, en stuurde één bericht:
Georeferenceer de layer sf-north-1947-scan. Het is het USGS San Francisco North-blad uit 1947, schaal 1:24,000, coördinaten in NAD27. Ik las deze controlepunten op de scan (pixelkolom, rij → breedtegraad, lengtegraad): 1. 1022, 792 → 37°52'30"N, 122°30'W (NW-hoek) [...] 8. 4632, 5344 → 37°47'N, 122°25'W. Is het resultaat nauwkeurig genoeg voor een 1:24,000-kaart?
De run duurde 99 seconden, in het paneel getoond als 14 acties. De agent las de layer, fit de acht punten in Python om ze te controleren, ontdekte dat punt 8 925 m lag van waar zijn rij het neerzette, liet het weg, en schreef de GeoTIFF uit de andere zeven in NAD27 / UTM zone 10N.
Hij vroeg één keer om toestemming, voordat hij zijn eigen Python-controle uitvoerde. Zijn antwoord gaf een RMSE van 0.73 m met een maximum van 0.95 m tegen een tolerantie van 4.8 m, en voegde toe dat dit de overeenkomst tussen punten meet, niet de absolute nauwkeurigheid van de kaart.

Ik controleerde zijn GeoTIFF op dezelfde manier als de mijne, op de acht randstreepjes die hij nooit zag: gemiddeld 1.0 m ernaast, in het slechtste geval 1.6 m, hetzelfde als de Georeferencer. Het verschil is de typfout. In de Georeferencer had ik die zelf in de residukolom moeten opmerken, en met een thin plate spline had ik hem helemaal niet opgemerkt.
Hij liet de punten ook achter als een .points-bestand naast de uitvoer, zodat dezelfde fit in de Georeferencer opent als je een punt met de hand wilt verplaatsen. Elk bericht laat een checkpoint achter in het paneel, en één klik draait de hele run terug. Het gratis plan heeft 10 berichten per maand zonder API-key en zonder creditcard.
Gebruik het wanneer: je de punten hebt en de fit, de uitschietercontrole en het oordeel in één stap wilt, of wanneer je bladen in serie georefereert.
Sla het over wanneer: de kaart geen leesbare plaatsnamen en geen leesbare punten heeft, zoals een handgetekende schets. Punten met de hand plaatsen in Methode 1 is dan de enige route.
Probeer AI Agent gratis in QGIS
Methode 3: Een freehand-overlay met een plugin
De plugin Freehand raster georeferencer, versie 0.8.3 toen ik de documentatie las, laat je een afbeelding op de kaart slepen en met de hand verplaatsen, roteren en schalen tot ze klopt, zoals je in Google Earth zou doen. Het resultaat verschijnt meteen bovenop je andere layers, en de plugin exporteert de afbeelding met een world file wanneer je klaar bent.
De README is duidelijk over de beperkingen: alleen affiene transformaties, geen rubber sheeting, geen residuen, en alleen BMP-, JPEG-, PNG- en TIFF-bestanden. Je krijgt geen getal dat zegt hoe ver je ernaast zit.
Gebruik het wanneer: je een gescande plattegrond ongeveer op zijn plaats nodig hebt om een paar objecten over te trekken of om een klant te tonen waar dingen stonden.
Sla het over wanneer: iemand op het resultaat gaat meten. Gebruik Methode 1.
Wat je moet onthouden
- In QGIS 3.26 en later is de tool
Layer > Georeferencer. Begin met vier goed verdeelde punten, Polynomial 1 en een geprojecteerd doel-CRS op het eigen datum van de kaart. - Een RMSE van nul bewijst niets: een thin plate spline bereikt die altijd, en in mijn test deed hij dat op een kaart die 594 m ernaast zat.
- Zet residuen om in meters (pixels x grondgrootte van één pixel) en vergelijk ze met wat de kaart belooft, 12.2 m voor een USGS-blad van 1:24,000.
- Controleer het resultaat op punten die je buiten de fit liet. Die van mij zaten gemiddeld 1.0 m ernaast op het San Francisco-blad van 1947.
- Typ de punten in het datum dat de rand noemt. NAD27 ligt 93 m van WGS 84 in San Francisco, dus een USGS-blad van 1947 krijgt EPSG:4267.
Vragen die mensen stellen
Waar zit de Georeferencer in QGIS?
In QGIS 3.26 en later zit hij onder Layer > Georeferencer. In oudere versies was het Raster > Georeferencer, geleverd door de plugin GDAL Georeferencer, die in de pluginbeheerder moest worden ingeschakeld. Als geen van beide menu's hem toont, kan een plugin of een aanpassingsprofiel je menu's hebben gewijzigd.
Hoeveel controlepunten heb ik nodig?
Het minimum is 2 voor Linear en Helmert, 3 voor Polynomial 1, 4 voor Projective, 6 voor Polynomial 2 en 10 voor Polynomial 3, en de QGIS-handleiding vraagt om 10 of meer voor een thin plate spline. Gebruik in de praktijk ongeveer het dubbele van het minimum, verdeeld tot in de hoeken, en houd er nog een paar apart als controlepunten. Ik gebruikte er 8 voor Polynomial 1 en nog 8 om te controleren.
Polynomial, Helmert of thin plate spline: welke?
Helmert voor een schone, platte scan die alleen geroteerd en geschaald hoeft te worden. Polynomial 1 voor bijna elke gedrukte kaart, omdat die ook een kleine shear van de scanner opvangt. Thin plate spline alleen voor een beschadigde of handgetekende kaart met veel goede punten, en controleer die dan op punten die je niet gebruikte, want de residuen zijn altijd nul.
Wat is een goede RMSE?
Een die klein is naast wat de kaart kan leveren. Zet hem om in meters en vergelijk hem met 0.2 mm keer de schaalnoemer (4.8 m bij 1:24,000) of met de officiële standaard van de kaart (12.2 m voor USGS-bladen van 1:24,000). Onder één pixel op een schone scan is normaal. Eén enkel punt met een residu ver boven de andere is meestal een typfout of een verkeerde klik, niet een slechte kaart.
Hoe georeferenceer ik een PDF?
Controleer eerst of dat al zo is. USGS-topografische kaarten en veel plannen van instanties zijn GeoPDF's, en QGIS opent ze op hun plaats: de PDF van San Francisco uit 1947 laadde met zijn coördinaten en zonder controlepunten, gerenderd door GDAL op 150 dpi tenzij je GDAL_PDF_DPI hoger zet. Een gewone PDF heeft geen coördinaten: exporteer de pagina naar PNG of TIFF op 300 dpi en gebruik dan Methode 1.
Hoe georeferenceer ik een kaart zonder coördinaten erop?
Gebruik objecten die niet zijn verplaatst sinds de kaart werd getekend, zoals kruispunten, bruggen, kerken en kusthoeken, en kies hun coördinaten met From Map Canvas op een basiskaart of op je nationale orthofoto. Verdeel er 10 of meer over het blad. Verwacht grotere residuen dan met een gedrukt grid, omdat de oude kaart en de wereld van vandaag niet overal meer overeenkomen.
De QGIS AI-hub verzamelt wat AI wel en niet kan binnen QGIS, en de AI Agent-gids behandelt de rest van de plugin. Zodra de oude kaart op zijn plaats staat, kun je OpenStreetMap-gegevens downloaden om ze te vergelijken met de straten van vandaag, een Sentinel-2-beeld van hetzelfde gebied ophalen, of de scan omzetten in vectoren.
te georefereren, open je 

