ENVI下根据需要生成特定类型、大小、规律的随机数据

0
分享 2016-06-09
本文源自论坛中的一个需求:“我想对影像的纬度求余弦值,但是坐标是本身存在的,不是值,这个该如何做”。
1.生成方法
单击ENVI主菜单[File]-[Generate Test Data],弹出界面如下

  • 其中第一项中列出可以生成如固定值、水平渐变值、垂直渐变值、均匀分布、正态分布和高斯发散规律。
  • Value部分则根据不同类型可设置相应的参数。
  • 第二项设置输出文件的大小、行列号和数据类型,第三项则设置输出到磁盘文件或内存中。


2.应用
1)分析
对一影像来讲,ENVI中只显示了影像的数据值,而经纬度信息是根据头文件内容中的左上角点坐标和分辨率随时计算的,并不单独存为一波段或文件,故无法直接对纬度求余弦值。
2) 解决
问题可分为生成纬度数据和纬度求余弦两步。以ENVI自带的WorldDem文件为例,操作如下:
a)查看文件的基本信息
在Available bandlist中右击打开后文件和map Info,


可得知,该图像左上角经纬度为[-180,90],大小为3600*1800,分辨率为[0.1°,0.1°]。
对应纬度图像应该为大小为3600*1800,分辨率为0.1°竖向渐变的图像。
b)生成纬度数据
利用数据生成工具,对应参数设置如下:


生成图像显示效果如下

得到的结果是最小值在左上角,从上到下值依次增大,最大值在左下角,而我们所需的纬度数据应该是从上到下依次减小,最大值在左上角,相当于把图像沿着第一行向上做个翻转,所以需要根据数据值做一个运算,得到我们需要的图像。在本例中,只需将值的符号进行反转即可,故在波段运算的表达式为-b1,b1为我们上一步生成的随机图像。


波段运算后图像为预期得到的纬度数据分布图。


c)余弦求解
直接波段运算求解。但要注意,cos函数的输入要求必须是弧度,而咱们的数据是角度,故需要转换下,最终波段运算表达式为COS(b1*!pi/180)或COS(b1*!dtor)。b1为上一步运算得到的纬度图像。

文章来源:http://blog.sina.com.cn/s/blog_764b1e9d0100wka2.html

0 个评论

要回复文章请先登录注册