爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 1148|回复: 2

[求助] 已解决-python读取风云2号卫星TBB数据出图报错

[复制链接]

新浪微博达人勋

发表于 2023-9-25 11:18:37 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 蔡小亦 于 2023-9-25 17:15 编辑

已解决,经纬度数据和亮温数据对应有问题。


参考http://bbs.06climate.com/forum.php?mod=viewthread&tid=56315获取TBB数据,用cartopy对TBB数据可视化。
FY2E、FY2G数据均能作等值线图,见附件。但作填色图就报错:ValueError: GEOSGeom_createLinearRing_r returned a NULL pointer
搜了很久还是没法解决,代码如下,请大神指教。

  1. import h5py
  2. import numpy as np
  3. import matplotlib.pyplot as plt
  4. import cartopy.crs as ccrs
  5. import pandas as pd

  6. f = h5py.File('./data/TBB/FY2G_TBB_IR1_NOM_20230507_0400.hdf', 'r')
  7. for key in f.keys():
  8.     print(key)

  9. a = f.get('FY2G TBB Hourly Product')
  10. data = np.array(a)
  11. data = np.ma.masked_outside(data,160,340)
  12. info = f.get('NomFileInfo')[0]
  13. print(info)

  14. lonCenter = info[4]
  15. loc = np.fromfile('./data/TBB/NOM_ITG_2288_2288(0E0N)_LE.dat',dtype=np.float32,count=-1)
  16. latlon = loc.reshape(2,2288,2288)
  17. lon = np.array(latlon[0]+lonCenter)
  18. lat = np.array(latlon[1])
  19. lon = np.ma.masked_where(lon>300,lon)
  20. lat = np.ma.masked_values(lat,300)

  21. lon_df = pd.DataFrame(lon)
  22. lat_df = pd.DataFrame(lat)
  23. data_df = pd.DataFrame(data)

  24. # 绘图
  25. fig=plt.figure(figsize=(12,8))
  26. proj = ccrs.PlateCarree()
  27. ax = fig.add_subplot(1,1,1,projection = proj)
  28. ax.set_extent([105,120,18,28],crs=ccrs.PlateCarree())
  29. ax.coastlines()
  30. #levels = np.arange(160, 340 ,10),cmap = 'YlGnBu_r'

  31. ax.contour(lon_df,lat_df,data_df)

  32. # 填色图报错???
  33. # ax.contourf(lon_df,lat_df,data_df,levels=np.linspace(np.min(data),np.max(data),400) )

  34. plt.savefig('tbb.png',format='png',dpi=200)
  35. print('done')
复制代码



tbb.png

FY2G_TBB_IR1_NOM_20230507_0400.hdf

19.98 MB, 下载次数: 19, 下载积分: 金钱 -5

NOM_ITG_2288_2288(0E0N)_LE.dat

39.94 MB, 下载次数: 25, 下载积分: 金钱 -5

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

新浪微博达人勋

发表于 2023-10-26 21:08:58 | 显示全部楼层
可以问一下如何解决的吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2023-12-13 17:03:17 | 显示全部楼层
cxf2524 发表于 2023-10-26 21:08
可以问一下如何解决的吗?

有的经纬度点是没有亮温值的(可能是因为在边缘),所以要把这些值剔除。
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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