爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 8780|回复: 14

[分享资料] IDL编程案例之txt文件数据求平均

[复制链接]

新浪微博达人勋

发表于 2017-2-9 16:49:18 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
问题:求SO2的日平均
思路很简单,但需要注意:
1,for i=0.0,1829.0 do begin这里一定要用小数型,因为32767+1=-32768
2,负值不能纳入平均,要排除掉
3,数组中有7(H)这种杂质,通过实验,证明了软件依旧按其数字部分理解,所以不必理会
程序:
pro linshi
tic
a=read_ascii('C:\Users\Administrator\Desktop\222.txt',data_start=1);读取txt文件
help,a
b=a.field01;a是一个结构体,从中提取所需的数组
;b总共43920行,合1830天,拿向量c来放这个结果
c=fltarr(1830)
for i=0.0,1829.0 do begin
  b2=b[3,i*24:i*24+23];一天24h的数据
  p=where(b2 ge 0,count);负值不纳入平均
  if(count gt 0)then begin
    c[i]=mean(b2[p]);取平均
    endif else begin;假如一个正常数字都没有就报错,时候证明没有出现这种情况,如果出现,那可以用-99之类的代表
      stop
    endelse
endfor
print,c
toc
end
QQ截图20170209161101.png

222.txt

2.03 MB, 下载次数: 19, 下载积分: 金钱 -5

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-2-9 19:02:20 | 显示全部楼层
感谢楼主的分享,这个结构体对于我来说以前还真没想到这么用,我从来都是设一个字符串数组,全写进去,然后根据空格分开再提取,现在看来确实麻烦太多了。
密码修改失败请联系微信:mofangbao
回复 支持 2 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2017-2-10 17:52:39 | 显示全部楼层
愛、星晴 发表于 2017-2-9 19:02
感谢楼主的分享,这个结构体对于我来说以前还真没想到这么用,我从来都是设一个字符串数组,全写进去,然后 ...

read_ascii函数可以直接读取数字数组,但我读取字符型的txt文件,只能一行作为一个元素,以空格来分割
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-2-10 20:12:12 | 显示全部楼层
15195775117 发表于 2017-2-10 17:52
read_ascii函数可以直接读取数字数组,但我读取字符型的txt文件,只能一行作为一个元素,以空格来分割

read_ascii这个函数确实好使一点,有点类似于ncl里面的asciiread函数,我之前一直是用readf来读取文本文件,确实没接触过这个read_ascii函数。顺便说一下,楼主分享的222.txt里面汉字都是乱码,虽然没什么影响。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-2-12 09:17:37 | 显示全部楼层
感谢楼主分享,目前也在学习中,太需要这些应用实例分享了
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-2-12 18:39:59 | 显示全部楼层
愛、星晴 发表于 2017-2-10 20:12
read_ascii这个函数确实好使一点,有点类似于ncl里面的asciiread函数,我之前一直是用readf来读取文本文 ...

那是你的问题,我重新下载打开,依旧正常
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-2-12 18:42:32 | 显示全部楼层
pandasp1213 发表于 2017-2-12 09:17
感谢楼主分享,目前也在学习中,太需要这些应用实例分享了

我最早开始学习时,资料也很少,很不顺,后来发现资料慢慢多了,我也尽量把编程的心得都传上来。
有时候你少掌握一个技巧,得多绕很多弯子来弥补,多编很多代码,实在浪费时间精力!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-2-12 19:44:54 | 显示全部楼层
15195775117 发表于 2017-2-12 18:42
我最早开始学习时,资料也很少,很不顺,后来发现资料慢慢多了,我也尽量把编程的心得都传上来。
有时候 ...

楼主说的对,可惜我刚开始摸索,还没什么经验
有个问题请教楼主,您有没有用idl画过wrfout的数据?我的wrfout数据投影是兰勃脱投影,画图时地图不知道该怎么设置了,画图用的idl_guide5程序包
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2017-2-15 20:33:29 | 显示全部楼层
pandasp1213 发表于 2017-2-12 19:44
楼主说的对,可惜我刚开始摸索,还没什么经验
有个问题请教楼主,您有没有用idl画过wrfout的数 ...

有没有什么材料给我,我看看;以前别人问过好像,我看到实物才能想起来
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-2-16 09:03:11 | 显示全部楼层
15195775117 发表于 2017-2-15 20:33
有没有什么材料给我,我看看;以前别人问过好像,我看到实物才能想起来

我之前在这个帖子里头问过,http://bbs.06climate.com/forum.php?mod=viewthread&tid=46529wrfout是兰勃脱投影,画图得到的图片是这样的:
微信截图_20170207161745.png
地图和数据的形状不能完全匹配,画图的程序如下:
  psopen,file='Figure_2.ps',charsize=100,axistype=2
  levs,min=5680.0,max=5920.0,step=40.0,ndecs=0
  map_g5,lonmin=100,lonmax=145,latmin=0,latmax=40
  con_,f=ghts(*,*,8),x=lon2d(*,*),y=lat2d(*,*),/nolines
  axes
  psclose,/noview

没有其他特别的设置。
之前一直用的ncl,ncl里头可以设置Lambert地图投影,因此,在不插值的情况下就能够得到这样的图:
微信截图_20170207161942.png
图中地图的投影方式和wrfout数据的投影方式一致,虽然图片是正方形的,但是地图和数据的形状可以很好的匹配。ncl画出来的地图网格维度线是弯曲的。不知道idl_guide5程序包里头有什么样的设置方式,可以达到ncl画的图片效果。
后来我试着用IDL原始的程序画图,map_set可以设置Lambert投影,但是其他坐标轴之类的需要手动加上去,倒是也能解决问题,只是略麻烦。如果没有简便的设置,只能使用自带函数,一步步来实现。
谢谢楼主!
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表