爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4925|回复: 4

关于HDF文件提取数据

[复制链接]

新浪微博达人勋

发表于 2016-3-25 10:42:20 | 显示全部楼层 |阅读模式
数据资料
我看过提问的智慧: 看过

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

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

x
由于研究需要由Color Ocean上下载了海水表面温度卫星数据,格式为HDF,使用HDFviewer可以打开,但是由于从来没有使用过该类软件,也不知道如何才能从下载的卫星数据中提取出我需要的经纬度处的海水表面纬度,有没有大神可以为我指点一二啊?
附上下载的卫星数据,精度显示为1km,求大神教教我如何提出某一特定地理位置的数据。

A2014357.L3m_DAY_MZBXTNSST_sst_MZB_1km.bz2

296.35 KB, 下载次数: 21

卫星数据

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

新浪微博达人勋

发表于 2016-3-25 14:35:46 | 显示全部楼层
那个HDFviewer我只是用来查看HDF文件的,好像不能提取数据(或者能提取我不知道……),我用过matlab和python提取HDF数据的,都很简单。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-25 15:48:27 | 显示全部楼层
可以用MeteoInfo脚本来提取:
  1. fn = 'C:/Temp/A2014357.L3m_DAY_MZBXTNSST_sst_MZB_1km'
  2. f = addfile(fn)
  3. v = f['l3m_data']
  4. data = v[:,:]
  5. slope = v.attrvalue('Slope')[0]
  6. intercept = v.attrvalue('Intercept')[0]
  7. data = data * slope + intercept
  8. lon = arange(31, 40, 0.010416667)
  9. lat = arange(-30, -20, 0.010416667)
  10. data.setdimvalue(0, lat)
  11. data.setdimvalue(1, lon)
  12. #Interpolate to station
  13. x = 36.2
  14. y = -23.1
  15. v = data.tostation(x, y)
  16. print v
  17. #Plot
  18. axesm()
  19. lworld = shaperead('D:/Temp/map/country1.shp')
  20. geoshow(lworld)
  21. layer = imshowm(data, 20)
  22. colorbar(layer)


ocean_color.png

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

新浪微博达人勋

发表于 2016-3-30 09:45:17 来自手机 | 显示全部楼层
我只会用C++提取,有代码
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2016-3-31 06:03:58 | 显示全部楼层
hdf文件最外面一层是有一个介绍信息的,包括数据的种类,数据的属性等等。你可以找到经纬度一栏来定位行列,用这个行列去海表温度一栏找所需信息。
以上
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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