爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
123
返回列表 发新帖
楼主: MeteoInfo

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

[复制链接]

新浪微博达人勋

 楼主| 发表于 2019-1-29 09:42:28 | 显示全部楼层
孤蓝et 发表于 2019-1-29 01:17
王老师,打算将卫星云图的圆盘图(Geostationary Satellite View)转换为其他投影方式进行绘图,
看了您 ...

数据文件里读出来的数组变量是DimArray,有坐标和投影信息。由于此数据文件本身并不包含这些信息,是我们在脚本里定义的 x, y和proj,可以将其作为数组变量(比如 data)的属性,这样用 data.project投影函数就知道数组变量的原始投影了。具体参考这个例子:

  1. fn = 'D:/Temp/hdf/FY4/FY4A-_AGRI--_N_REGC_1047E_L1-_FDI-_MULT_NOM_20190123043000_20190123043416_4000M_V0001.HDF'
  2. f = addfile(fn)
  3. data = f['NOMChannel01'][::-1,:]
  4. data = data.astype('float')
  5. data[data<0] = nan
  6. x = linspace(-5496000.0,5496000.0, 2748)
  7. y = linspace(-5496000.0,5496000.0, 2748)
  8. lon0 = 104.74425
  9. hh = 35781793
  10. proj = projinfo(proj='geos', lon_0=lon0, h=hh)
  11. xdim = dimension(x, 'x', 'X')
  12. ydim = dimension(y, 'y', 'Y')
  13. data.dims[0] = ydim
  14. data.dims[1] = xdim
  15. data.proj = proj
  16. data = data['20:60','75:160']

  17. #Project data
  18. toproj = projinfo(proj='lcc', lon_0=104.137, lat_0=35.946, lat_1=30.0, lat_2=60.0)
  19. data1 = data.project(toproj=toproj)

  20. #Plot
  21. ax = axesm(projinfo=toproj, gridline=True, griddx=10, griddy=10)
  22. geoshow('cn_province', edgecolor='gray')
  23. geoshow('country', edgecolor='k')
  24. layer = imshowm(data1, proj=toproj)
  25. colorbar(layer)


geo2lcc.png

密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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