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

此例中的降水文本文件下载自“中国气象科学数据共享服务网”(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变量来表示经纬度坐标矢量。
MeteoInfoLab脚本示例:读取文本文件

脚本程序如下:

rain = asciiread('D:/Temp/ascii/SURF_CLI_CHN_PRE_DAY_GRID_0.5-20120702.txt',headerlines=6,shape=(72,128))
rain1 = rain[::-1,:]
x = arange1(72, 128, 0.5)
y = arange1(18, 72, 0.5)
axesm()
mlayer = shaperead('D:/Temp/map/country1.shp')
geoshow(mlayer)
layer = contourfm(x, y, rain1, 20)
#layer = imshowm(x, y, rain1, 20)
title('Precipitation')
ylabel('Latitude')
xlabel('Longitude')
colorbar(layer)
show()