MeteoInfoLab脚本示例:AMSR-E卫星数据投影

AMSR-E(http://nsidc.org/data/amsre/index.html)数据中的Land3数据是HDF-EOS4格式,投影是Cylindrical_Equal_Area。这里示例读取数据并投影至等经纬度投影。

脚本程序:

#Add data file
fn = ‘AMSR_E_L3_DailyLand_V06_20091231.hdf‘
f = addfile(os.path.join(‘D:/Temp/hdf‘, fn))
#vname = ‘D_Soil_Moisture‘
vname = ‘A_TB36.5H_(Res_1)‘
data = f[vname][::-1,:]
data[data==0] = -9999
data.fill_value = -9999
data = data * 0.1
yn = data.dimlen(0)
xn = data.dimlen(1)
#Project data
toproj = projinfo()    #longlat projection
x = linspace(-180, 180, xn)
y = linspace(-90, 90, yn)
lon, lat = meshgrid(x, y)
data = data.project(lon, lat, toproj=toproj)
#Plot
axesm(tickfontsize=12)
mlayer = shaperead(‘D:/Temp/map/country1.shp‘)
geoshow(mlayer, edgecolor=‘k‘)
levs = arange(140, 320, 10)
layer = imshowm(x, y, data, levs)
colorbar(layer, fontsize=12)
xticks(arange(-180, 181, 30))
yticks(arange(-90, 91, 30))
title([fn, vname])

时间: 2024-10-03 21:54:14

MeteoInfoLab脚本示例:AMSR-E卫星数据投影的相关文章

MeteoInfoLab脚本示例:MERRA HDF数据

MERRA是NOAA的一种再分析资料,HDF数据遵循COARDS协议,读取比较简单. 脚本程序: #Add data file folder = 'D:/Temp/hdf/' fns = 'MERRA300.prod.assim.tavg1_2d_slv_Nx.20150101.SUB.hdf' fn = folder + fns f = addfile(fn) vname = 't2m' t = f[vname] t2m = t[0,:,:] #Plot axesm() mlayer = sh

MeteoInfoLab脚本示例:获取一维数据并绘图

气象数据基本为多维数据(通常是4维,空间3维加时间维),只让数据中一维可变,其它维均固定即可提取一维数据.比如此例中固定了时间维.高度维.纬度维,只保留经度维可变:hgt = f['hgt'][0,[500],[4],[180,360]].固定某一维可以用序号(从0开始),比如此例中的时间维为0,既第一个时次.也可以用该维中真实的数据,比如高度维希望是500 hPa,此时需要用中括号:[500],纬度维的固定也是类似.维的范围可用序号来限定,比如:5:20,也可用该维的真实值限定,比如此例中的经

MeteoInfoLab脚本示例:FY-3C全球火点HDF数据

FY-3C全球火点HDF数据包含一个FIRES二维变量,第一维是火点数,第二维是一些属性,其中第3.4列分别是火点的纬度和经度.下面的脚本示例读出所有火点经纬度并绘图. 脚本程序: #Add data file fn = 'D:/Temp/hdf/FY3C_VIRRX_GBAL_L2_GFR_MLT_GLL_20150811_POAD_1000M_MS.HDF' f = addfile(fn) #Get data variable v = f['FIRES'] #Get data array d

MeteoInfoLab脚本示例:MODIS AOD

MODIS的气溶胶光学厚度(AOD)产品应用很广,数据可以在Giovanni上下载:http://disc.sci.gsfc.nasa.gov/giovanni/overview/index.html.有HDF, netCDF和文本格式,这里示例打开netCDF格式数据,提取AOD数据并绘图. 脚本程序如下: f = addfile('D:/Temp/nc/MOD08_D3.A2015121.051.2015122103938.pscs_000500931513.Optical_Depth_La

MeteoInfoLab脚本示例:计算垂直螺旋度

尝试编写MeteoInfoLab脚本计算垂直螺旋度,结果未经验证. 脚本程序: print 'Open data files...' f_uwnd = addfile('D:/Temp/nc/uwnd.2011.nc') f_vwnd = addfile('D:/Temp/nc/vwnd.2011.nc') f_omega = addfile('D:/Temp/nc/omega.2011.nc') print 'Calculate vertical helicity...' tidx = 173

MeteoInfoLab脚本示例:MODIS Sinusoidal投影HDF数据

MODIS卫星很多陆面数据都是Sinusoidal投影,数据被分为一个个10*10度(赤道地区)的瓦片(http://modis-land.gsfc.nasa.gov/MODLAND_grid.html),数据格式通常是HDF-EOS格式,作为EOS格式MeteoInfo可以自动读出数据的坐标信息(包括投影等). 脚本程序: f = addfile('D:/Temp/Hdf/MOD10A1.A2010365.h27v05.005.2011002103013.hdf') vname = 'snow

MeteoInfoLab脚本示例:数据投影-FLEXPART

FLEXPART是一个类似HYSPLIT的扩散模式,它输出的netcdf文件参照了WRF,可惜全局属性没有写全,比如只有一个投影名称(例如Lambert),没有相关的投影参数:中央经度,标准纬度等等.必须查阅WRF的头文件才能重建投影(为什么不照猫画虎把属性写全呢?).数据的经纬度坐标是有的,但在Lambert投影下的坐标没有,可以通过projectxy函数获得投影下的x, y坐标,其中的lon, lat是数据左下角的经纬度. 脚本程序: f = addfile('D:/Temp/nc/head

MeteoInfoLab脚本示例:站点数据绘制等值线

站点数据绘制等值线需要首先将站点数据插值为格点数据,MeteoInfo中提供了反距离权法(IDW)和cressman两个方法,其中IDW方法可以有插值半径的选项.这里示例读取一个MICAPS第一类数据(地面全要素观测),获取6小时累积降水数据(Precipitation6h),然后用站点数据的griddata函数将站点数据插值为格点数据,再利用contourfm函数创建等值线填色图层(等值线间隔和颜色可以自定义). 脚本程序(经纬度投影): #Set data folders basedir =

MeteoInfoLab脚本示例:AIRS Swath HDF数据

例子中的AIRS Swath HDF数据在Polar Stereographic(南极)投影中接近矩形,需要先从数据中读出经纬度及相关数据数组,利用surfacem函数绘制Swath数据(散点),在surfacem函数中经纬度数据会被投影到目的投影坐标系(在axesm函数中定义),并从2维散点数据生成surface数据(也就是格点数据)用所谓的surface插值方法.2维散点数据可以组成格网(非矩形格网),遍历目标格点数据的每个格点,该格点落在格网中哪个网格中,就将此网格的散点值赋给该格点.有些