Skriptbeispiel: Georeferenzierte Karten clippen

screen & paper | 29.01.2024 |Optimierung von Arbeitsabläufen

Dieses Skriptbeispiel illustriert den Prozess, gescannte Karten zu georeferenzieren und mit den Referenzergebnissen automatisiert zu beschneiden, sodass ein zusammenhängendes Bild entsteht.

Der Prozess, um mehrere Karten auf einmal zu beschneiden, wird über eine Loop-Funktion angestoßen.

Schritt 1: Georeferenzieren der gescannten Karte

  • Ausgangsbasis: PDF
  • Datei öffnen -> automatisch wird das Fenster zur Georeferenzierung geöffnet
1_PDF_referenzieren.png

  • Da die Eckpunkte der Karte die geographischen Koordinaten tragen, wird unter »Projektion Bodenkontrollpunkte« die passende Projektion für die eingegebenen Koordinaten ausgewählt.
  • Nacheinander werden alle vier Eckkoordinaten eingegeben – beim Drücken des Button »Punkt zur Liste hinzufügen« werden die Werte automatisch in Dezimalschreibweise umgewandelt.
  • Reihenfolge: Beginnen Sie oben links und erfassen Sie die Punkte entgegen dem Uhrzeigersinn.
  • Wenn die Eckkoordinaten erfasst sind, werden die Koordinaten exportiert – dabei muss der Name identisch wie das PDF lauten, um im anschließenden Prozess der automatischen Skripterstellung den Namen als Referenz auswerten zu können.
1a_Kontrollpunkte_speichern.png

Schritt 2: Skript vorbereiten

Das Skript startet mit dem Entladen aller Daten, der Definition der beiden eingesetzten Projektionen und dem Laden der Zielprojektion:

Bildschirmfoto1 2024-01-29 um 16.57.09.png

Schritt 3: Automatisierte Elemente

Der anschließende Schritt kann automatisiert über das Auslesen der Bodenkontrollpunkte-GCP-Dateien erfolgen.

Aufbau GCP-Datei: Pixelkoordinaten, Weltkoordinaten, Punktinfo

Beispiel:

5832.84938080,804.87331521,13.6649166667,51.1987500000,«Point 1«,0.00,51.19875000∞ N,13.66491667∞ E

5811.68780246,11316.27712057,13.6649166667,50.9987777778,«Point 2«,0.00,50.99877778∞ N,13.66491667∞ E

16863.09679180,11314.71584620,13.9981944444,50.9987777778,«Point 3«,0.00,50.99877778∞ N,13.99819444∞ E

16834.49896701,807.15023907,13.9981944444,51.1987500000,«Point 4«,0.00,51.19875000∞ N,13.99819444∞ E

Über die Auslese der GCP-Datei werden alle Werte ermittelt, die in den folgenden Skriptelementen enthalten sind:

  • Import des PDF mit Angabe der GCP-Werte - damit wird die Datei automatisch georeferenziert platziert:

IMPORT FILENAME=«M745_L4948_Dresden_08 DGID.pdf«

TYPE=«PDF« PROJ_NAME=«GEO_WGS84« CLIP_COLLAR=«NONE« SAMPLING_METHOD=«BILINEAR«

  • Über die Auslese der .gcp-Datei wird ein Flächenelement erzeugt, das als Clip-Rahmen eingesetzt wird.

IMPORT_ASCII FILENAME=«M745_L4948_Dresden_08 DGID.gcp« PROJ_NAME=«GEO_WGS84«

TYPE=«AREA_ONLY« COORD_DELIM=«COMMA« COORD_FORMAT=«DECIMAL«

COORD_ORDER=«X_FIRST« INC_COORD_LINE_ATTRS=«YES« COL_HEADERS=«NO«

INC_ELEV_COORDS=«NO« SKIP_COLUMNS=«0«

// Optional ab 20.1 (seit April 2019): SKIP_COLUMNS=«2«

  • Im letzten Schritt wird das Ergebnis als Rasterdatei exportiert; dabei wird die .gcp-Ebene »ClipboundsArea« zum Beschneiden eingesetzt (POLYGON_CROP_FILE):

EXPORT_RASTER FILENAME=«M745_L4948_Dresden_08 DGID.tif«

TYPE=GEOTIFF POLYGON_CROP_FILE=«M745_L4948_Dresden_08 DGID.gcp« POLYGON_CROP_FILE_PROJ=«GEO_WGS84«

Anzeige der im Beispielskript erzeugten Clipbounds

2_Clipbounds_Area.png

Ergebnis – zwei angrenzende Kacheln

3_Ausschnitt.png

Der Pfeil verweist auf die Schnittkante zwischen zwei Kartenblättern.

4_Schnittkante.png

Beispielskript

Im Beispielskript werden alle in einem Verzeichnis liegenden Karten bearbeitet und anschließend platziert. Dazu dient der Befehl DIR_LOOP.

Bildschirmfoto2 2024-01-29 um 17.15.50.png

Warenkorb (0 Artikel)