Kann ein vorhandenes, nicht georeferenziertes PDF georeferenziert werden?


18

Ich habe mich gefragt, ob es überhaupt eine Möglichkeit gibt, ein PDF direkt zu georeferenzieren, ohne es zuerst in ein Bild zu konvertieren. Ich habe Zugriff auf ArcGIS 10.1, konnte jedoch keine Informationen finden, die darauf hinweisen, dass dies möglich ist. Ich bin bereit, andere Open-Source-Software zu testen, wenn sie eine Lösung haben.

Ich erhalte Lagepläne in PDF-Form, die häufig aus AutoCAD generiert werden. Momentan speichere ich das PDF als JPG, um es in ArcMap zu importieren, per Georeferenz zu versehen und dann Dinge wie das Erstellen von Fußabdrücken zu digitalisieren. Ich frage mich nur, ob es eine Möglichkeit gibt, die Konvertierung in den JPG-Schritt zu überspringen.



1
Nicht ganz Ihre Frage, aber wenn die ursprüngliche Quelle AutoCAD ist, konvertiert ogr2ogr DXF-Dateien in Shapedateien. In diesem Beitrag finden Sie ein Beispiel. Leider deckt das Beispiel die Flags für die Georeferenzierung nicht ab, aber die gdal-dev-Mailingliste ist sehr aktiv und jemand wird schnell antworten, wenn Sie eine Frage zum Einrichten der Georeferenzierungsflags haben.
Llaves

Antworten:


5

Zum Selbstkostenpreis http://mappingcenter.esri.com/index.cfm?fa=ask.answers&q=2237

Mit der ArcMap-Erweiterung von TerraGo können Sie GeoPDF- Dateien sowohl schreiben als auch lesen http://www.terragotech.com/products/terrago-publisher/publisher-for-arcgis


Funktioniert dies, wenn ich ein normales PDF importieren möchte, kein GeoPDF?
Sarah

Es wird normales PDF importiert, es wird nur kein räumlicher Bezug vorhanden sein.
Mapperz

2
Ermöglicht die Erweiterung die Georeferenzierung der PDF-Datei?
Sarah

Dies kann auch ohne Kosten erfolgen :) Überprüfen Sie meine Antwort unten, um zu sehen, wie
DarkCygnus

4

Ich weiß, dass diese Frage alt ist, aber ich hatte dieses Problem kürzlich und kam schließlich mit einer Möglichkeit heraus, dies zu tun.

Dies kann mithilfe von Osgeo's erreicht werden gdal, in dem zufällig ein PDF-Treiber enthalten ist. Grundsätzlich können Sie Folgendes tun:

from osgeo import gdal
#Open your Unreferenced PDF
src = gdal.Open("originalFile.pdf")

Erhalten oder berechnen Sie dann auf irgendeine Weise das gewünschte Projektionssystem und die gewünschte Geotransformation, die Sie zur PDF-Datei hinzufügen möchten. Zum Beispiel können wir diese aus einem GeoTiff extrahieren, indem wir Folgendes tun:

#Open the Tiff to obtain its data from
geoTiff = gdal.Open("someMap.tif")
#Obtain its Projection system and its Geotransform
coords = geoTiff.GetProjection()
gt = geoTiff.GetGeoTransform()

Stellen Sie schließlich die Projektion und die Geotransformation auf Ihr PDF ein und erstellen Sie dann eine Kopie mit dem PDF-Treiber:

src.SetProjection(coords)
src.SetGeoTransform(gt)
#Instantiate a PDF driver and save your Referenced copy
pdf_driver = gdal.GetDriverByName("PDF")
dst = pdf_driver.CreateCopy("referencedFile.pdf", src, 1)

Das Ergebnis ist eine PDF-Datei, deren obere linke Ecke gtmithilfe des Projektionssystems georeferenziert wird coords. Dies kann überprüft werden, indem Sie die PDF-Datei in QGis oder ArcGis öffnen oder indem Sie den gdalinfoBefehl in der PDF-Datei verwenden, auf die verwiesen wird.


3

Eine wichtige Anmerkung: GeoPDF ist nicht dasselbe wie Geospatial PDF .

Geospatial PDF ist nur eine "normale" PDF-Datei, die mit einigen Geospatial-Tags ausgestattet ist, die zur Georeferenzierung der PDF-Datei verwendet werden (diese Tags sind als von Adobe vorgeschlagene Geospatial-Erweiterungen für ISO 32000 definiert).

Ich bin mir nicht sicher, ob es eine Open Source-Lösung gibt, um diese Tags auf PDF anzuwenden. Ein Open-Source-Weg wäre, eine PDF-Bibliothek zu verwenden (ich habe iText für diesen Zweck verwendet) und den Code selbst zu schreiben. Dies ist jedoch schwierig, da es nicht viele kostenlose Geospatial PDF-Viewer / -Reader gibt, mit denen Sie das testen können Ergebnisse und stellen Sie sicher, dass die Georeferenz gültig ist.

In meinem Fall habe ich an einer Lösung für die Vorbereitung von Karten für den PDF-Kartenspeicher von Avenza gearbeitet . Ich habe GDAL zum Testen der resultierenden PDF-Dateien verwendet, aber als ich diese (von GDAL validierten) Karten an Avenza übermittelte, waren noch einige Probleme zu lösen, bevor der Geospatial PDF-Parser diese Karten schlucken konnte.


Danke, aber das scheint etwas komplizierter zu sein, als ich suche. Ich habe mich nur gefragt, ob es eine Möglichkeit gibt, auf ein PDF zu verweisen, um Features in arcmap zu digitalisieren.
Sarah

1

Mit können Sie gdal_translatedas GeoPDF in eine georeferenzierte TIF-Datei konvertieren. Der Hauptunterschied zwischen Ihrer und dieser Methode besteht darin, dass die Georeferenz beibehalten wird.

Mein Befehl war:

gdal_translate --config GDAL_PDF_DPI 300 -co "TFW=YES" pdf_name.pdf tif_name.tif

Beachten Sie, dass es unter Windows nicht funktioniert hat. Verwenden Sie daher die virtuelle OSGeo-Live- Maschine.

Ich habe dies nicht mit vielen PDF-Dateien getestet, aber es hat mit den USGS-Dateien hervorragend funktioniert.


Obwohl diese Antwort nützlich erscheint, hat sie nichts mit den Fragen in der Frage zu tun. OP hat ein ungeoreferenziertes PDF und möchte es referenzieren (nicht um aus einem georeferenzierten PDF einen TIFF zu erstellen). Würde es Ihnen etwas ausmachen, Ihre Antwort zu klären?
DarkCygnus

0

Tun Sie dies auf wöchentlicher Basis mit Global Mapper. Es ist fantastisch, PDF zu lesen und GeoPDF GEOREFERENCE produziert Geopdf, JP2, Geotif

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.