私はこの質問が古いことを知っていますが、最近この問題を抱えており、最終的にこれを行う方法を思いつきました。
これはgdal
、Osgeoを使用して実現できます。これには、たまたまPDFドライバーが含まれています。基本的に次のようなことができます:
from osgeo import gdal
#Open your Unreferenced PDF
src = gdal.Open("originalFile.pdf")
次に、PDFに追加する目的の投影システムとジオトランスフォームを何らかの方法で取得または計算します。たとえば、次の操作を行うことでGeoTiffからそれらを抽出できます。
#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()
最後に、投影とジオトランスフォームをPDFに設定し、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)
結果はgt
、Projection Systemを使用して、左上隅が位置に配置されるようにジオリファレンスされたPDFですcoords
。これは、QGisまたはArcGisでPDFを開くかgdalinfo
、参照PDFでコマンドを使用して確認できます。