MeteoInfoLab中读取文本文件数据的函数是asciiread,获取文本文件行、列数的函数是numasciirow和numasciicol,和NCL中函数名一致,但都是小写字母。本例中的示例数据文件来自此帖中的数据flood.dat:http://bbs.06climate.com/forum.php?mod=viewthread&tid=29257&extra=page%3D1,该数据文件没有文件头(直接是数据),共三列,分别是经度、纬度和值。先获取文件的行数和列数,然后用asciiread读取文件数据到一个多维数组,数据的维设定需要给定:shape=(nrow,ncol)。然后从数组中取出经度、纬度和值的一维数组(lon, lat, v),用scatterm函数绘制散点图。
脚本程序:
fn = 'D:/Temp/ascii/flood.dat' ncol = numasciicol(fn) nrow = numasciirow(fn) a = asciiread(fn,shape=(nrow,ncol)) lon = a[:,0] lat = a[:,1] v = a[:,2] axesm() mlayer = shaperead('D:/Temp/map/bou2_4p.shp') geoshow(mlayer, facecolor=(220,220,220), edgecolor=None) layer = scatterm(lon, lat, v, edge=False, size=2) xlim(109.2, 111) ylim(19.8, 21.8) title('Flood plain area') ylabel('Latitude') xlabel('Longitude') colorbar(layer)