遥感IDL二次开发(光谱数据可视化)

简介: 遥感IDL二次开发(光谱数据可视化)

1.程序功能:

打开 ASCII 码格式的光谱文件,读取反射率数据并进行显示。


2.源代码:

2.1 方法1:单一窗口显示光谱数据

#在同一个窗口中用不同线形和颜色显示光谱数据#

pro IDL020101
fn=dialog_pickfile();打开光谱数据
nb=file_lines(fn)
data=fltarr(5,nb)
openr,lun,fn,/get_lun
readf,lun,data
free_lun,lun
wv=transpose(data[0,*]);读取波长
c1=transpose(data[1,*]);读取第1条光谱曲线的反射率
c2=transpose(data[2,*]);读取第2条光谱曲线的反射率
c3=transpose(data[3,*]);读取第3条光谱曲线的反射率
c4=transpose(data[4,*]);读取第4条光谱曲线的反射率


;在同一个窗口中用不同线形和颜色显示光谱数据

p1=plot(wv,c1,xtitle='Wavelength(nm)',ytitle='Reflectance',$
/buffer,xrange=[min(wv),max(wv)],color='red',linestyle=0,$
thick=1,name='spectral curve1',margin=[0.1,0.1,0.01,0.01])
p2=plot(wv,c2,xtitle='Wavelength(nm)',ytitle='Reflectance',$
/buffer,xrange=[min(wv),max(wv)],color='blue',linestyle=0,$
thick=1,name='spectral curve2',/overplot)
p3=plot(wv,c3,xtitle='Wavelength(nm)',ytitle='Reflectance',$
/buffer,xrange=[min(wv),max(wv)],color='green',linestyle=0,$
thick=1,name='spectral curve3',/overplot)
p4=plot(wv,c4,xtitle='Wavelength(nm)',ytitle='Reflectance',$
/buffer,xrange=[min(wv),max(wv)],color='orange',linestyle=0,$
thick=1,name='spectral curve4',/overplot)


;添加图例

l1=legend(target=[p1,p2,p3,p4],position=[0.6,0.2],color='w',$
/auto_text_color,horizontal_alignment=0,vertical_alignment=0,$
horizontal_spacing=0.02,vertical_spacing=0.01,/normal)


;保存文件

o_fn=dialog_pickfile(title='图形保存为')+'.png'
p1.save,o_fn,border=0
p2.save,o_fn,border=0
p3.save,o_fn,border=0
p4.save,o_fn,border=0

end


结果图:

微信截图_20230111114541.png


2.2 方法2:同一个窗口中的四个子窗口显示光谱曲线

#同一个窗口中的四个子窗口显示光谱曲线#

pro IDL020102
fn=dialog_pickfile();打开光谱数据
nb=file_lines(fn)
data=fltarr(5,nb)
openr,lun,fn,/get_lun
readf,lun,data
free_lun,lun
wv=transpose(data[0,*]);读取波长
c1=transpose(data[1,*]);读取第1条光谱曲线的反射率
c2=transpose(data[2,*]);读取第2条光谱曲线的反射率
c3=transpose(data[3,*]);读取第3条光谱曲线的反射率
c4=transpose(data[4,*]);读取第4条光谱曲线的反射率


;用同一窗口中的子窗口中显示光谱曲线

x=findgen(101)*0.01
window,1,xsize=900,ysize=600
plot,wv,c1,position=[0.1,0.6,0.45,0.9],xtitle='Wavelength(nm)',ytitle='Reflectance',title='spectral curve1',$
color='000000'xl,background='FFFFFF'xl,/nodata
oplot,wv,c1,color='f00000'xl
plot,wv,c2,position=[0.6,0.6,0.95,0.9],xtitle='Wavelength(nm)',ytitle='Reflectance',title='spectral curve2',/noerase,$
color='000000'xl,background='FFFFFF'xl,/nodata
oplot,wv,c2,color='0000ff'xl
plot,wv,c3,position=[0.1,0.1,0.45,0.4],xtitle='Wavelength(nm)',ytitle='Reflectance',title='spectral curve3',/noerase,$
color='000000'xl,background='FFFFFF'xl,/nodata
oplot,wv,c3,color='00ffff'xl
plot,wv,c4,position=[0.6,0.1,0.95,0.4],xtitle='Wavelength(nm)',ytitle='Reflectance',title='spectral curve4',/noerase,$
color='000000'xl,background='FFFFFF'xl,/nodata
oplot,wv,c4,color='0fff00'xl

end


结果图:

微信截图_20230111114554.png

相关文章
|
8月前
|
数据可视化 前端开发 JavaScript
数据可视化技术的较量:D3.js与Tableau的比较与选择
在当今信息爆炸的时代,数据可视化成为了帮助我们理解和传达数据的重要工具。本文将重点对比并评估两个主流的数据可视化技术和工具,即D3.js和Tableau。我们将探讨它们的优势、适用场景以及选择的关键因素,以帮助读者在选择合适的数据可视化工具时做出明智的决策。
|
5月前
|
数据可视化 数据挖掘 Python
数据可视化不再难!Matplotlib带你轻松绘制精美图表,让数据分析焕发光彩!
【8月更文挑战第22天】今天分享如何用Python的Matplotlib库绘制多样图表。Matplotlib是数据可视化的强大工具,对数据分析至关重要。本文分六部分:首先介绍环境准备,包括安装和配置;随后通过四个案例演示折线图、柱状图、饼图及散点图的绘制方法;最后总结并鼓励大家进一步探索Matplotlib的丰富功能。跟着示例操作,你将学会基本图表的制作,提升数据展示技能。
53 0
|
5月前
|
数据采集 JSON 数据可视化
【数据采集与可视化案例】基于python的国家级非物质文化遗产数据采集与可视化分析
本文介绍了一个基于Python的数据采集与可视化分析项目,该项目通过爬虫技术从国家级非物质文化遗产代表性项目名录网站获取数据,并运用数据清洗、转换、集成和规约等方法处理数据,最终利用pyecharts库进行多种数据可视化展示,包括分布地、类别、时间趋势等,以直观呈现非物质文化遗产的相关信息。
251 0
|
8月前
|
数据可视化 定位技术
Tableau 数据可视化:探索性图形分析新生儿死亡率数据
Tableau 数据可视化:探索性图形分析新生儿死亡率数据
|
8月前
|
传感器 数据可视化 BI
python研究汽车传感器数据统计可视化分析
python研究汽车传感器数据统计可视化分析
|
8月前
|
数据可视化
共享单车数据可视化分析|附代码数据
共享单车数据可视化分析|附代码数据
|
8月前
|
数据可视化 AndFix
R语言二手车汽车销售数据可视化探索:预处理、平滑密度图、地理空间可视化(下)
R语言二手车汽车销售数据可视化探索:预处理、平滑密度图、地理空间可视化
|
8月前
|
数据可视化 定位技术
R语言二手车汽车销售数据可视化探索:预处理、平滑密度图、地理空间可视化(中)
R语言二手车汽车销售数据可视化探索:预处理、平滑密度图、地理空间可视化
|
8月前
|
机器学习/深度学习 数据采集 数据可视化
R语言二手车汽车销售数据可视化探索:预处理、平滑密度图、地理空间可视化(上)
R语言二手车汽车销售数据可视化探索:预处理、平滑密度图、地理空间可视化
|
8月前
|
数据采集 存储 数据可视化
python数据分析——数据可视化(图形绘制基础)
为了绘制好数据可视化图形,需要掌握数据分析的基础知识,例如数据类型、数据预处理、统计方法等。同时,还需要了解绘图工具的使用,例如Excel、Tableau、Python中的Matplotlib和Seaborn等。掌握数据可视化的基础知识和工具,可以帮助我们更好地理解数据和数据之间的关系,从而做出更加准确的决策和预测。
196 1

热门文章

最新文章