我想知道是否有直接将pdf地理参考而不先将其转换为图像的方法。我可以访问ArcGIS 10.1,但无法找到任何可能的信息。如果他们有解决方案,我愿意尝试其他开源软件。
我收到的PDF格式的站点计划通常是从AutoCAD生成的。目前,我将pdf另存为jpg,以导入到ArcMap中,对其进行地理参考,然后将诸如建筑物轮廓之类的数字化。我只是想知道是否有一种方法可以跳过转换为jpg步骤。
我想知道是否有直接将pdf地理参考而不先将其转换为图像的方法。我可以访问ArcGIS 10.1,但无法找到任何可能的信息。如果他们有解决方案,我愿意尝试其他开源软件。
我收到的PDF格式的站点计划通常是从AutoCAD生成的。目前,我将pdf另存为jpg,以导入到ArcMap中,对其进行地理参考,然后将诸如建筑物轮廓之类的数字化。我只是想知道是否有一种方法可以跳过转换为jpg步骤。
Answers:
以成本为准,http://mappingcenter.esri.com/index.cfm?fa = ask.answers&q = 2237
TerraGo的ArcMap扩展使您可以编写和阅读GeoPDF 文件 http://www.terragotech.com/products/terrago-publisher/publisher-for-arcgis
我知道这个问题很老,但是最近我遇到了这个问题,最终提出了解决方法。
这可以通过使用Osgeo's来实现gdal
,该工具恰好包含一个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 Driver创建副本:
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)
结果是将PDF地理参考,以使其gt
使用Projection System 放置在位置的左上角coords
。可以通过在QGis或ArcGis上打开PDF进行验证,也可以使用gdalinfo
引用的PDF上的命令进行验证。
需要注意的重要一件事:GeoPDF与Geospatial PDF不同。
地理空间PDF只是配备了一些地理空间标签的“普通” PDF,这些地理空间标签用于对PDF进行地理参考(这些标签被定义为Adobe对ISO 32000提议的地理空间扩展)。
我不确定是否存在将这些标签应用于PDF的开源解决方案。一种开源方式是使用PDF库(我为此目的使用iText)并自己编写代码,但这很困难,因为您可以使用许多免费的Geospatial PDF查看器/阅读器来测试结果,并确保地理参考有效。
就我而言,我致力于为Avenza的PDF地图商店准备地图的解决方案。我使用GDAL来测试生成的PDF,但是当我将这些地图(已通过GDAL验证)提交给Avenza时,在其地理空间PDF解析器能够吞下这些地图之前,仍有一些问题需要解决。
您可以gdal_translate
用来将GeoPDF转换为地理参考的tif文件。您的方法与此方法的主要区别在于,将维护地理参考。
我的命令是:
gdal_translate --config GDAL_PDF_DPI 300 -co "TFW=YES" pdf_name.pdf tif_name.tif
请注意,它在Windows中不适用于我,因此使用OSGeo-Live虚拟机。
我没有用很多pdf类型进行测试,但是它与USGS的效果很好。