如何解决使用光栅读取 PNG 文件时如何使用地理元数据指定输入文件
我正在使用 Python 的 rasterio
库读取 PNG 文件、操作它们,最后编写 GeoTiff 文件。这些图像是地理参考的,但是带有地理信息的元数据存储在我用其他软件获得的两个附加文件中:file.pgw
和 file.png.aux.xml
(这里的名称很重要,PNG 的名称是 { {1}})。
嗯,问题是我发现让 file.png
使用元数据“理解”图像的唯一方法是使用完全相同的文件名并将这三个文件放在同一目录中。这是 GDAL 工作方式继承的。通过遵循此约定,对 rasterio
的调用会创建一个对象,该对象不仅包含图像,还包含元数据,然后您可以使用它、重新投影等。
但是这种方法很不方便,因为我有多个共享相同坐标的 PNG 文件,所以每次读取新的 PNG 文件时都必须克隆 rasterio.open
和 .pgw
文件既麻烦又低效。有没有办法与光栅通信元数据存储在 .png.aux.xml
和 file.pgw
以外的文件中?类似file.png.aux.xml
?我在 documentation 中没有找到类似的东西。
解决方法
为了完整起见,我想出了一个解决方法,以防有人遇到同样的问题。 不可能做我最初想做的事情,即为 .pgw
和 .png.aux.xml
文件指定不同的名称。我最终做的是使用 VRT files。我使用通用模板(我通过 GDAL 的 gdalbuildvrt
获得),然后我使用 Python 即时使用模板为每个光栅文件创建 VRT 文件,基本上更改了底层光栅文件的名称。这些 VRT 文件是 XML,并且非常轻量级。这种方法虽然还不完美,但比必须复制(或链接)虚拟文件更干净,因此对于我的目的来说已经足够了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。