1、首先了解一下数据的组成
.hdr 是描述数据的一个头文件。里面描述了数据类型,图像的行列数,波段数,文件类型,传感器,像素大小等信息。
如下图是一个影像文件的头文件。图像有600行,600列,7个波段,传感器是TM,像素大小为3×3米,以BSQ形式记录每个波段的像素(这一个非常重要)。dataType等暂时还不知道是什么意思。
另外一个文件就是记录像素值的一个二进制数据,在头文件中了解了行列数、波段数以及波段组织方式,就可以正确的读取每个波段的信息了。
2、使用C#读取遥感影像数据
在了解了数据组织方式之后,就能够很简单的读取遥感影像了。
首先读取头文件,然后逐byte读取二进制数据文件,根据其像素的组织方式以及自己所需要的数据组织方式,存储下来即可。
详细代码如下(代码很丑,懒得重构):
//读取头文件
public static HDR Readheader(string path)
{
HDR hdr = new HDR();
StreamReader sr = new StreamReader(path + ".hdr");
string f = sr.ReadToEnd();
stri