ENVI(经典)ROI的二进制格式是什么?


11

我是一个充满ENVI / IDL用户的办公室里的Pythonist。我创建了一些工具来弥合差距,但是其中一个绊脚石是ENVI Classic .roi文件,我的同事们经常使用它。

因为基于文本的格式易于解析,所以我可以轻松地将ENVI 5 ROI导入Python。但是,我对ENVI Classic .roi文件的二进制格式没有足够的了解,该文件构成了我小组中大量的数据交换。是否有人拥有读取或写入这些文件的代码,或者对如何处理这些文件有任何见解?

每次我想来回跳动ENVI 5都有些乏味-如果可能,我宁愿从源头上解决问题。

Answers:


1

我不是python专家,但是如果您已经在编写可以解析,读取和写入标准ASCII文件的脚本,那么这样做应该相对容易。

根据Harris Geospatial Solutions的说法,ENVI的当前开发者,ENVI二进制图像文件(在此描述)应由二进制文件和ASCII头文件(在此处定义示例)组成。要读取ENVI图像文件,您需要解析ASCII标头并访问数据类型(整数,浮点数,有符号/无符号等),频段数量,交织(频段顺序,像素或按行带交),字节顺序以及任何其他相关数据信息。仔细查看头文件格式说明和上面链接的示例。

既然您知道一次要读取什么二进制块,它们处于什么顺序以及它们属于哪个波段,那么您就可以准备读取图像数据了


ENVI ROI是否存储为图像文件?根据哈里斯地理空间Harris Geospatial),我猜它们的空间大小与父栅格“相同” ,但是在用户界面中,拖动时选择了半像素(对角二等分)以创建ROI,所以看来这一定是某种矢量格式,除非存在某种类型的两位光栅标志(用于指定三角形的方向)。无论如何,我会按照您的建议尝试,看看我能走多远!
达文·奎因

我认为“ ENVI二进制映像文件”是一对文件,一个不带扩展名,一个带扩展名“ .hdr”。但是,.roi文件似乎采用了不同的二进制格式?:顺便说一下,如果你想要做的是加载.hdr文件,使用Python包spectralpython.net
MD004

不,我肯定是在寻找一种直接读取/写入ROI的解决方案,而不仅仅是标头,可以根据格式,例如使用GDAL读取标头...
Daven Quinn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.