请选择 进入手机版 | 继续访问电脑版
爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 16211|回复: 26

MeteoInfoLab脚本示例:读取文本文件

[复制链接]

新浪微博达人勋

发表于 2015-6-18 14:28:55 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 MeteoInfo 于 2018-3-22 09:20 编辑

此例中的降水文本文件下载自“中国气象科学数据共享服务网”(http://cdc.nmic.cn/sksj.do?method=ssrjscp),其实是ESRI的文本格点数据格式。对于文本数据,MeteoInfoLab中有asciiread函数来读取数据,第一个参数是文件名,然后可以有一些可选参数,headerlines=6指的是读取数据前跳过6行头文件,对于非空格分隔的文件还需要指定数据分隔符号,比如:delimiter=',' (逗号分隔),shape=(72,128)指定了将数据读入一个72*168的二维数组中。由于Y维是反向的(正常是从南至被),需要对数组进行Y维反向处理:rain1 = rain[::-1,:]。由于该数据中国区域外都是缺测值,画出来的图在边界地区会有很多锯齿。其实气象是无国界的,向这种只提供国内区域的格点数据实在没什么意思。数据的头文件中有经纬度范围,据此创建了x, y变量来表示经纬度坐标矢量。
Image00841.png

脚本程序如下:
  1. rain = asciiread('D:/Temp/ascii/SURF_CLI_CHN_PRE_DAY_GRID_0.5-20120702.txt',headerlines=6,shape=(72,128))
  2. rain1 = rain[::-1,:]
  3. x = arange1(72, 128, 0.5)
  4. y = arange1(18, 72, 0.5)
  5. #Plot
  6. axesm()
  7. geoshow('country')
  8. layer = contourfm(x, y, rain1, 20)
  9. #layer = imshowm(x, y, rain1, 20)
  10. title('Precipitation')
  11. ylabel('Latitude')
  12. xlabel('Longitude')
  13. colorbar(layer)


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

新浪微博达人勋

发表于 2015-6-18 16:34:56 | 显示全部楼层
,初来乍到,需要学习的东西很多很多,谢谢分享!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-31 12:18:21 | 显示全部楼层
正好要有,感谢王老师~
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-4-8 18:46:36 | 显示全部楼层
太棒了 开始学习mi
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-17 22:07:18 | 显示全部楼层
我在气象数据中心下载了一样的数据,只是年份不一样。用你的脚本运行时,为什么显示错误?提示:Traceback (most recent call last):  File "<iostream>", line 1, in <module>
NameError: name 'asciiread' is not defined
求解。


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

新浪微博达人勋

发表于 2016-5-17 22:36:34 | 显示全部楼层
thank you ,soso   zan
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-18 08:39:31 | 显示全部楼层
drkuang 发表于 2016-5-17 22:07
我在气象数据中心下载了一样的数据,只是年份不一样。用你的脚本运行时,为什么显示错误?提示:Traceback  ...

要在MeteoInfoLab软件中运行
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-18 17:08:13 | 显示全部楼层
MeteoInfo 发表于 2016-5-18 08:39
要在MeteoInfoLab软件中运行

我也试过用MeteoInfoLab软件中运行,提示结果也差不多。我建议楼主:以后这种示范性脚,最好标示出哪些需替换的就可以移植可用,这样方便我们这些程序能力不强的人,但又希望能用得上软件功能。象这个脚本,楼主要是标出哪些文件路径可换、哪些参数可改,就移植过来就非常方便。
另外,还有个请求,能否编一个脚本,可以读取中国地面国际交换站气候资料日值数据集(V3.0),可以按站点分析其历年降雨(气温等),如方便对某站近30年日降雨排序、统计、图示。这人数据集非常全,但要是人工去读取分析数据,将是非常累的活。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2016-5-18 18:09:49 | 显示全部楼层
drkuang 发表于 2016-5-18 17:08
我也试过用MeteoInfoLab软件中运行,提示结果也差不多。我建议楼主:以后这种示范性脚,最好标示出哪些需 ...

给我安排了不少任务呀

时间允许的情况下会尽量满足大家的要求,不过总的来说我是个大忙人。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-5-19 17:20:12 | 显示全部楼层
MeteoInfo 发表于 2016-5-18 18:09
给我安排了不少任务呀

时间允许的情况下会尽量满足大家的要求,不过总的来说我是个大忙人。{ ...

为人民服务嘛,能者多劳。,真得期待能写个程序解决读取分析中国地面国际交换站气候资料日值数据集(V3.0),造福人民。
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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