Python中文
首页
教程
问答
标签
搜索
登录
注册
如何在极坐标文件grib2中绘制极坐标等值线
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试使用matplotlib绘制CMC grib2压力预测文件来绘制压力等值线。grib2网格的描述可以在这里找到:<a href="https://weather.gc.ca/grib/grib2_reg_10km_e.html" rel="nofollow noreferrer">https://weather.gc.ca/grib/grib2_reg_10km_e.html</a>。grib2文件位于以下目录:<a href="http://dd.weather.gc.ca/model_gem_regional/10km/grib2/00/000/" rel="nofollow noreferrer">http://dd.weather.gc.ca/model_gem_regional/10km/grib2/00/000/</a>,以CMC_reg_PRMSL_MSL_0_ps10km开头,后跟日期。这是一个包含平均海平面压力的grib文件。</p> <p>我的问题是,在实际的压力等值线上,我得到了一些沿着纬度线的直线。我想这可能是因为我用PlateCarree绘制而不是大地测量,但是等高线图不允许使用大地测量。我的阴谋结果是: <a href="https://i.stack.imgur.com/31IQl.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/31IQl.png" alt="enter image description here"/></a></p> <p>代码如下:</p> <pre><code>import matplotlib import matplotlib.pyplot as plt import numpy as np import datetime as dt import cartopy import cartopy.crs as ccrs import Nio gr = Nio.open_file('./data/CMC_reg_PRMSL_MSL_0_ps10km_2018111800_P000.grib2', 'r') print(gr) names = gr.variables.keys() print("Variable Names:", names) dims = gr.dimensions print("Dimensions: ", dims) attr = gr.attributes.keys() print("Attributes: ", attr) obs = gr.variables['PRMSL_P0_L101_GST0'][:] lats = gr.variables["gridlat_0"][:] lons = gr.variables["gridlon_0"][:] fig = plt.figure(figsize=(15, 2)) intervals = range(95000, 105000, 400) ax=plt.axes([0.,0.,1.,1.],projection=ccrs.PlateCarree()) obsobj = plt.contour(lons, lats, obs, intervals, cmap='jet',transform=ccrs.PlateCarree()) states_provinces = cartopy.feature.NaturalEarthFeature( category='cultural', name='admin_1_states_provinces_lines', scale='50m', facecolor='none') ax.add_feature(cartopy.feature.BORDERS) ax.coastlines(resolution='10m') ax.add_feature(states_provinces,edgecolor='gray') obsobj.clabel() colbar =plt.colorbar(obsobj) </code></pre> <p>如有任何建议,我们将不胜感激。</p> <p>更新</p> <p>对于没有PyNIO的人,可以使用comments部分中的转储文件来重新生成。</p> <p>只需删除对NIO的所有引用,并将lats、lons、obs赋值替换为以下内容。</p> ^{pr2}$
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>如果要将经度加起来+180以避免负坐标,则代码应该正在运行。在我看来,坐标变换应该是合法的。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
上传图片使用Django Ckeditor获取服务器错误(500)
3 回答
上传图片到 Google App Engine,来自非网页客户端
3 回答
上传图片到Djang的cloudinary
10 回答
上传图片到Flask
1 回答
上传图片到googleappengine并与用户分享图片
9 回答
上传图片到googlecolab,并使用Keras预测分类
9 回答
上传图片到s3python
7 回答
上传图片到s3后,上传附带的拇指
3 回答
上传图片在Django,希望是一个循序渐进的指南?
3 回答
上传图片并显示在Django 2.0模板上
9 回答
上传图片时创建动态路径
8 回答
上传多个图像会破坏除第一个Flas之外的所有内容
4 回答
上传多个文件上传文件FastAPI
2 回答
上传多个文件到Django
4 回答
上传多张图片
4 回答
上传大数据到谷歌硬盘给400
3 回答
上传大文件nginx+uwsgi
2 回答
上传大文件不工作谷歌驱动Python API
6 回答
上传大文件到S3
7 回答
上传大文件太慢
7 回答