- 积分
- 3638
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2014-10-21
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
刚接触IDL的时候就开始画等值线图,从IDL的help中看,绘图原理是一种网格化/栅格化方法,
但这么多年我只知道调用contour能实现网格化插值,但插值的数据我一直不知道怎么得到,
最近几个月需要分析一种极坐标形式的数据,是“方向-距离-值”这种关系的数据,因为不同于往常的笛卡尔坐标系,所以处理起来有些麻烦,
我想着如果能转化为笛卡尔形式,那就会方便很多,
克里金也能实现我的想法,但是用克里金计算我的数据,直接引爆内存,所以还是需要一种节省电脑资源的方法
经查书《IDL程序设计》,以下代码可以实现网格化:
x=randomu(s,50)
y=randomu(s,50)
z=indgen(50)
TRIANGULATE,x,y,tr,b
z2=TRIGRID(x,y,z,tr,NX=100,NY=100,xgrid=x2,ygrid=y2)
help,x2,y2,z2
fig=contour(z2,x2,y2,rgb_Table=33,/fill)
fig=plot(x,y,$
color='k',$
axis_style=0,$
linestyle=6,sym=24,sym_filled=1,/overplot)
结果:
X2 FLOAT = Array[100]
Y2 FLOAT = Array[100]
Z2 FLOAT = Array[100, 100]
在查书之前,我创想了一个貌似聪明的方法:按contour把数据画成等值线图,再通过读图来获取近似的结果,
现在想来,实在愚蠢,基本功不扎实,就整些花里胡哨的!
|
|