爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 23315|回复: 6

[求助] python如何读取Micaps第四类数据

[复制链接]

新浪微博达人勋

发表于 2020-5-27 16:55:55 | 显示全部楼层 |阅读模式

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

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

x
请问大家,python该如何读取Micaps中的第四类数据呢?
搜了一下,河南新乡气象局的朱枫同学写过一个Diamond4的库
但,感觉说的不是很明白,也不够好用的,很多没看明白的地方。
在此,求助大神们。
感谢!
祝您学习愉快,一切安康!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-5-27 23:28:25 | 显示全部楼层
本帖最后由 Masterpiece 于 2020-5-27 23:29 编辑

17033020.000.png
20200527-232055.jpg
  1. import numpy as np
  2. from dateutil.parser import *
  3. import scipy.ndimage as sn
  4. import matplotlib.pyplot as plt
  5. from mpl_toolkits.basemap import Basemap

  6. file_name='17033020.000'
  7. raw=np.loadtxt(file_name,dtype=np.str,delimiter='/n')

  8. raw=' '.join(raw.tolist())
  9. raw=raw.split()

  10. title=raw[:3]

  11. time_str='20'+'-'.join(raw[3:3+4])
  12. file_time=parse(time_str)
  13. duration,level=int(raw[7]),int(raw[8])
  14. xint,yint=float(raw[9]),float(raw[10])
  15. start_lon,end_lon=float(raw[11]),float(raw[12])
  16. start_lat,end_lat=float(raw[13]),float(raw[14])
  17. xsize,ysize=int(raw[15]),int(raw[16])
  18. lineint,start_level,end_level=int(raw[17]),int(raw[18]),int(raw[19])
  19. smooth,boldlevel=int(raw[20]),raw[21]

  20. data=np.array(raw[22:],dtype=float).reshape(ysize,xsize)

  21. fig, ax = plt.subplots(figsize=(14,9))

  22. m = Basemap(projection='cyl',
  23.             llcrnrlat=end_lat, urcrnrlat=start_lat,
  24.             llcrnrlon=start_lon, urcrnrlon=end_lon,
  25.             resolution='l')
  26. m.drawcoastlines(linewidth=0.3, color='black')

  27. lon=np.linspace(start_lon,end_lon,xsize)
  28. lat=np.linspace(end_lat,start_lat,ysize)[::-1]

  29. if smooth:
  30.     factor=6
  31. else:
  32.     factor=1

  33. lons, lats = np.meshgrid(sn.zoom(lon, factor), sn.zoom(lat, factor))
  34. x, y = m(lons, lats)
  35. c1=m.contour(x,y,sn.zoom(data, factor),
  36.              levels=np.arange(start_level,end_level+lineint,lineint),colors='k',zorder=1)
  37. ax.clabel(c1, fmt='%d', inline=True, fontsize=12, inline_spacing=8)

  38. m.readshapefile('D:/pyproj/shp/CHN_2019/province', 'province', color='r',linewidth=0.6,zorder=0)

  39. plt.title('%s      Level:%d'%(file_time.strftime('%Y-%m-%d %H:%M'),level),size=14, loc='left')
  40. plt.savefig(file_name+'.png',dpi=300,bbox_inches='tight')

  41. plt.show()
复制代码
密码修改失败请联系微信:mofangbao
回复 支持 3 反对 0

使用道具 举报

新浪微博达人勋

 楼主| 发表于 2020-6-5 16:08:40 | 显示全部楼层

好的 感谢。我自己试试看
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-8-18 19:18:19 | 显示全部楼层
都是大神呀,佩服
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-20 15:00:31 | 显示全部楼层
  Basemap库安装不上
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-11-23 15:53:02 | 显示全部楼层
Rainch 发表于 2020-11-20 15:00
Basemap库安装不上

windows系统下安装Basemap库 需要查看当前python支持的版本后,下载相应的安装文件,否则 会出现 is not a supported wheel on this platform 错误提示。
只向下兼容。如果python是3.8版本的,你下载 (basemap-1.2.2-cp39-cp39-win_amd64.whl )是徒劳的。
只能下载basemap-1.2.2-cp38-cp38-win_amd64.whl
查看命令:(适用python3.X)
pip debug --verbose
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-9-26 16:45:59 | 显示全部楼层
if smooth:
    factor=6
else:
    factor=1


请问楼主   这句时什么意思   
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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