我正在使用Python的rasterio
库来读取PNG文件,操作它们,最后编写GeoTiff文件。这些图像是地理参考的,但是带有地理信息的元数据存储在我用其他软件获得的另外两个文件中:file.pgw
和file.png.aux.xml
(这里的名称很重要,PNG的名称是file.png
)
好的,问题是,我发现的使rasterio
“理解”带有元数据的图像的唯一方法是使用完全相同的文件名,并将这三个文件放在相同的目录中。这是通过GDAL工作方式继承的。通过遵循此约定,对rasterio.open
的调用将创建一个对象,该对象不仅包含图像,还包含元数据,然后您可以使用它、重新投影等
但是这种方法不方便,因为我有几个共享相同坐标的PNG文件,所以每次读取新的PNG文件时都必须克隆.pgw
和.png.aux.xml
文件,这既麻烦又低效。是否有一种方法可以向rasterio传达元数据存储在file.pgw
和file.png.aux.xml
以外的文件中?类似于rasterio.read('file.png', pgwfile = 'meta_pgw.pgw', xmlfile = 'meta_xml.xml')
的东西?我在documentation中没有发现类似的东西
为了完整性,我想出了一个解决方法,以防有人遇到同样的问题。不可能执行我最初想要的操作,即为
.pgw
和.png.aux.xml
文件指定不同的名称。我最后做的是使用VRT files。我使用一个通用模板(我通过GDAL的gdalbuildvrt
获得),然后使用Python动态模板为每个光栅文件创建VRT文件,基本上更改了基础光栅文件的名称。这些VRT文件是XML,因此非常轻量级。这种方法,如果还不完善的话,比必须复制(或链接)虚拟文件更干净,因此对于我来说就足够了相关问题 更多 >
编程相关推荐