matlab ascii 异或,基于IDL的遥感影像波段运算

1.IDL语言特征

在IDL中,矩阵是按照列的方式处理的,即矩阵是以n列、m行的方式表示的,这一点与Fortran语言一样,但与C语言(按m行、n列的维度来标记)表示矩阵的方式不同。只有熟悉IDL的数据存储、处理的特点,才能方便地进行分析。以300列、200行的遥感数据band1为例,其数据的记录特征如下:

像元坐标

亮度矩阵

1,1 2,1 …… 300,1 92 94 …… 90

1,2 2,2 …… 300,2 96 92 …… 91

…… …… …… …… ……

1,200 2,200 …… 300,200 98 101 …… 90

IDL图形坐标 band1 DN值坐标

图1.IDL中像元坐标与亮度矩阵的对应关系

(1)数据按列存储;最先存储的是第一列的数据(图象第一列的像元亮度值),接着是第二列,直至最后一列。

(show:print,data[0,*])

(2)采用顺序显示数据的方式。将第一行的亮度值按顺序从左到右以行的方式显示或存储,不管band1矩阵有多少行、多少列,总是先显示、存储完第一行,然后是下一行。由于IDL的默认显示宽度是80列,所以在输出窗口中要用几行才能显示完矩阵的第一行亮度值。然后另起一行显示亮度矩阵的下一行值,直到最后一行。这一点对于图象显示和分析相当重要。

复习:IDL矩阵的显示方式,data

(show:print,data[*,0])

(3)默认情况下,图象数组的第一行和第一个元素显示在屏幕的左下角。后面的行将从下往上显示。在图形窗口显示图象时,图象的每一个元素在屏幕中显示为一个像素[1]。在IDL中图象是从下往上画的。即把band1亮度矩阵的第一行值显示在图象最下端的一行像元中,把band1亮度矩阵的最后一行值显示在图象最上端的一行像元中。这是图象显示最重要的特征。

区别两幅图象的显示效果:(tvscl,data)与(tvscl,data,300,0,order=1)

(4)矩阵转置与图象的关系

将矩阵band1转置,

(print,(transpose(data))[*,0]),打印转置矩阵的第一行,它在band1中是哪行或哪列?

(print,transpose(data)

tvscl,data,200,0,order=1

结论:按行显示的数据DN,按列显示;按列显示的DN数据,按行显示

2.遥感数据的处理与分析

31通用的栅格数据存储格式

BSQ

:波段顺序存储格式。每行数据后面紧接着同一波谱波段的下一行数据。这种格式最适于对单个波谱波段中任何部分的空间(X,Y)存取。每个tile是单个波段的一个空间子集。

BIP

:波段按像元交叉格式。图像按顺序存储第1个像元所有的波段,接着是第2个像元的所有波段,然后是第3个像元的所有波段,等等,交叉存取直到像元总数为止。这种格式为图像数据波谱(Z)

的存取提供最佳性能。每个tile是一幅图象中所有波段行的所有像素。

BIL:波段按行交叉格式。按 BIL

格式存储的图像先存储第一个波段的第一行,接着是第二个波段的第一行,然后是第三个波段的第一行,交叉存取直到波段总数为止。每个波段随后的行按照类似的方式交叉存取。这种格式提供了空间和波谱处理之间一种折衷方式,它是大多数

ENVI 处理任务中所推荐的文件格式。每个tile是一幅图像所有波段的一行。

32栅格数据输入

以BSQ格式的图象为例。假设有一幅BSQ格式的7波段TM影象“2003_sw.img”,需

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值