È possibile georeferenziare un pdf esistente, non georeferenziato?


18

Mi chiedevo se ci fosse comunque la georeferenziazione di un pdf direttamente senza prima convertirlo in un'immagine. Ho accesso ad ArcGIS 10.1 ma non sono stato in grado di trovare alcuna informazione che indichi che è possibile. Sono disposto a provare altri software open source se hanno una soluzione.

Ricevo piani del sito in formato PDF, spesso generati da AutoCAD. Attualmente salvo il pdf come jpg per importarlo in ArcMap, georeferenziarlo e quindi digitalizzare cose come costruire impronte. Mi chiedo solo se c'è un modo per saltare la conversione al passaggio jpg.



1
Non esattamente la tua domanda, ma se l'origine originale è AutoCAD, ogr2ogr convertirà i file dxf in file di forma. Vedi questo post per un esempio. Sfortunatamente l'esempio non copre i flag per il georeferenziazione, ma la mailing list di gdal-dev è molto attiva e qualcuno risponderà rapidamente se hai una domanda su come impostare i flag di georeferenziazione.
Llaves,

Risposte:


5

Al costo sì, http://mappingcenter.esri.com/index.cfm?fa=ask.answers&q=2237

L'estensione ArcMap di TerraGo consente sia di scrivere che di leggere file GeoPDF http://www.terragotech.com/products/terrago-publisher/publisher-for-arcgis


Funziona se voglio importare un normale PDF, non un GeoPDF?
Sarah,

Importerà il normale pdf, non ci sarà alcun riferimento spaziale.
Mapperz

2
L'estensione ti consente di georeferenziare il PDF?
Sarah,

Questo può essere fatto anche gratuitamente :) controlla la mia risposta qui sotto per vedere come
DarkCygnus

4

So che questa domanda è vecchia, ma ho avuto questo problema di recente e alla fine sono uscito con un modo per farlo.

Ciò può essere realizzato utilizzando Osgeo's gdal, che sembra avere un driver PDF incluso. Fondamentalmente puoi fare qualcosa del tipo:

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

Quindi ottenere o calcolare in qualche modo il sistema di proiezione e la geotrasformazione desiderati che si desidera aggiungere al PDF. Ad esempio, possiamo estrarre quelli da un GeoTiff facendo:

#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()

Infine, imposta la proiezione e la geotrasformazione sul tuo PDF e creane una copia con il driver PDF:

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)

Il risultato è un PDF georeferenziato per posizionare l'angolo in alto a sinistra in posizione gtutilizzando il sistema di proiezione coords. Questo può essere verificato aprendo il PDF su QGis o ArcGis, oppure usando il gdalinfocomando sul PDF di riferimento.


3

Una cosa importante da notare: GeoPDF non è lo stesso del PDF geospaziale .

Il PDF geospaziale è solo un PDF "ordinario" dotato di alcuni tag geospaziali utilizzati per georeferenziare il PDF (tali tag sono definiti come estensioni geospaziali proposte da Adobe a ISO 32000).

Non sono sicuro se esiste una soluzione open source per l'applicazione di questi tag in PDF. Un modo open source sarebbe quello di utilizzare una libreria PDF (ho usato iText per questo scopo) e scrivere tu stesso il codice, ma questo è difficile, dal momento che non ci sono molti visualizzatori / lettori PDF geospaziali gratuiti che potresti usare per testare il risultati e assicurarsi che la georeferenza sia valida.

Nel mio caso ho lavorato su una soluzione per preparare mappe per il negozio di mappe PDF di Avenza . Ho usato GDAL per testare i PDF risultanti, ma quando poi ho inviato queste mappe (validate da GDAL) ad Avenza, c'erano ancora alcuni problemi da risolvere prima che il loro parser PDF Geospatial fosse in grado di ingoiare quelle mappe.


Grazie, ma questo sembra un po 'più complicato di quello che sto cercando. Mi stavo solo chiedendo se esistesse un modo per georeferenziare un pdf per digitalizzare le funzionalità in arcmap.
Sarah,

1

È possibile utilizzare gdal_translateper convertire GeoPDF in un file tif georeferenziato. La differenza principale tra il tuo metodo e questo è che viene mantenuto il riferimento geografico.

Il mio comando era:

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

Si noti che non ha funzionato per me in Windows, quindi ho usato la macchina virtuale OSGeo-Live .

Non ho provato questo con molti tipi di pdf, ma ha funzionato benissimo con quello USGS.


Sebbene questa risposta sembri utile, non ha nulla a che fare con ciò che è stato posto nella domanda. OP ha un PDF senza referenze e vuole fare riferimento a esso (non per creare un tiff da un PDF georeferenziato). Ti dispiacerebbe chiarire la tua risposta?
DarkCygnus il

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.