Czy możliwe jest georeferencja istniejącego pliku PDF bez georeferencji?


18

Zastanawiałem się, czy istnieje jakakolwiek georeferencja pdf bezpośrednio bez uprzedniej konwersji na obraz. Mam dostęp do ArcGIS 10.1, ale nie byłem w stanie znaleźć żadnych informacji wskazujących, że jest to możliwe. Jestem gotów wypróbować inne oprogramowanie open source, jeśli mają rozwiązanie.

Otrzymuję plany stron w formacie PDF, często generowane z AutoCAD. Obecnie zapisuję pdf jako jpg, aby zaimportować do ArcMap, geo-referencją, a następnie digitalizować takie rzeczy, jak tworzenie śladów. Zastanawiam się tylko, czy istnieje sposób na pominięcie kroku konwersji do formatu jpg.



1
Nie do końca twoje pytanie, ale jeśli oryginalnym źródłem jest AutoCAD, ogr2ogr przekonwertuje pliki dxf na pliki kształtów. Zobacz ten post jako przykład. Niestety przykład nie obejmuje flag do georeferencji, ale lista dyskusyjna gdal-dev jest bardzo aktywna i ktoś szybko odpowie, jeśli masz pytanie dotyczące konfiguracji flag georeferencji.
Llaves,

Odpowiedzi:


5

Za koszt tak, http://mappingcenter.esri.com/index.cfm?fa=ask.answers&q=2237

Rozszerzenie ArcMap TerraGo umożliwia zarówno zapisywanie, jak i czytanie plików GeoPDF http://www.terragotech.com/products/terrago-publisher/publisher-for-arcgis


Czy to działa, jeśli chcę zaimportować normalny plik PDF, a nie GeoPDF?
Sarah

Zaimportuje normalny pdf, po prostu nie będzie żadnego odniesienia przestrzennego.
Mapperz

2
Czy to rozszerzenie pozwala na georeferencję w pliku PDF?
Sarah

Można to również zrobić bez kosztów :) sprawdź moją odpowiedź poniżej, aby zobaczyć, jak
DarkCygnus

4

Wiem, że to pytanie jest stare, ale ostatnio miałem ten problem i ostatecznie udało mi się to zrobić.

Można to osiągnąć za pomocą Osgeo gdal, który zawiera dołączony sterownik PDF. Zasadniczo możesz zrobić coś takiego:

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

Następnie uzyskaj lub oblicz w jakiś sposób żądany system projekcji i geotransform, który chcesz dodać do pliku PDF. Na przykład możemy wyodrębnić je z GeoTiff, wykonując:

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

Na koniec ustaw projekcję i geotransformę na PDF, a następnie utwórz kopię za pomocą sterownika 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)

Rezultatem jest plik PDF, który jest georeferencyjnie tak, aby jego lewy górny róg był umieszczony w miejscu gtza pomocą systemu projekcji coords. Można to zweryfikować, otwierając plik PDF w QGis lub ArcGis, lub też dobrze, używając gdalinfopolecenia w twoim pliku PDF.


3

Jedną ważną rzeczą do zapamiętania: GeoPDF to nie to samo co Geospatial PDF .

Geospatial PDF to po prostu „zwykły” plik PDF wyposażony w niektóre znaczniki geoprzestrzenne, które służą do georeferencji w pliku PDF (te znaczniki są zdefiniowane jako proponowane przez Adobe rozszerzenia geoprzestrzenne do ISO 32000).

Nie jestem pewien, czy istnieje rozwiązanie open source do stosowania tych tagów do formatu PDF. Jednym ze sposobów typu open source byłoby użycie biblioteki PDF (w tym celu użyłem iText) i napisanie kodu, ale jest to trudne, ponieważ nie ma wielu darmowych przeglądarek / czytników Geospatial PDF, które można by użyć do przetestowania wyniki i upewnij się, że georeferencja jest poprawna.

W moim przypadku pracowałem nad rozwiązaniem do przygotowywania map do sklepu z mapami PDF firmy Avenza . Użyłem GDAL do testowania powstałych plików PDF, ale kiedy następnie przesłałem te mapy (potwierdzone przez GDAL) do Avenza, wciąż było kilka problemów do rozwiązania, zanim ich parser Geospatial PDF mógł przełknąć te mapy.


Dzięki, ale wydaje się to trochę bardziej skomplikowane niż szukam. Zastanawiałem się tylko, czy istnieje sposób na odniesienie do pliku pdf w celu digitalizacji obiektów w arcmap.
Sarah

1

Możesz użyć gdal_translatedo konwersji GeoPDF do pliku tif z odniesieniem geograficznym. Główną różnicą między tą metodą a tą jest to, że zachowane jest odniesienie geograficzne.

Moje polecenie brzmiało:

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

Pamiętaj, że nie działało to dla mnie w systemie Windows, więc użyłem maszyny wirtualnej OSGeo-Live .

Nie testowałem tego z wieloma typami plików pdf, ale działało świetnie z USGS.


Chociaż ta odpowiedź wydaje się przydatna, nie ma ona nic wspólnego z pytaniami. OP ma niezreferencjonowany plik PDF i chce się do niego odwoływać (aby nie robić tiff z georeferencyjnego pliku PDF). Czy mógłbyś wyjaśnić swoją odpowiedź?
DarkCygnus,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.