当前位置:首页 >> 编程语言 >> 【python-wrf】绘制wrf中的土地利用报错内容及其解决方法,lg g flex 2

【python-wrf】绘制wrf中的土地利用报错内容及其解决方法,lg g flex 2

0evadmin 编程语言 1
文件名:【python-wrf】绘制wrf中的土地利用报错内容及其解决方法,lg g flex 2 【python-wrf】绘制wrf中的土地利用报错内容及其解决方法

 从该代码处绘制wrf中的土地利用报错内容及其解决方法

1.报错内容:

微信公众平台 (qq.com)https://mp.weixin.qq.com/s/Cn0vhvfroVADPnT237LXNw

---------------------------------------------------------------------------AttributeError Traceback (most recent call last)Cell In[9], line 74 start(file_in,shp_path)6 if __name__ == "__main__":----> 7 main()Cell In[9], line 4, in main()2 file_in = "F:/pythonplot/geo_em.d01.nc"3 shp_path = "F:/毕业数据处理/中国shp/3省市县行政区划界线/chinaProvince.shp"----> 4 start(file_in,shp_path)Cell In[5], line 43, in start(file_in, shp_path)41 ax.xaxis.set_major_formatter(LONGITUDE_FORMATTER)42 ax.yaxis.set_major_formatter(LATITUDE_FORMATTER)---> 43 lambert_xticks(ax, xticks)44 lambert_yticks(ax, yticks)46 # 叠加shpCell In[8], line 19, in lambert_xticks(ax, ticks)17 te = lambda xy: xy[0]18 lc = lambda t, n, b: np.vstack((np.zeros(n) + t, np.linspace(b[2], b[3], n))).T---> 19 xticks, xticklabels = _lambert_ticks(ax, ticks, 'bottom', lc, te)20 ax.xaxis.tick_bottom()21 ax.set_xticks(xticks)Cell In[8], line 35, in _lambert_ticks(ax, ticks, tick_location, line_constructor, tick_extractor)33 def _lambert_ticks(ax, ticks, tick_location, line_constructor, tick_extractor):34 """Get the tick locations and labels for an axis of a Lambert Conformal projection."""---> 35 outline_patch = sgeom.LineString(ax.outline_patchs.get_path().vertices.tolist())36 axis = find_side(outline_patch, tick_location)37 n_steps = 30AttributeError: 'GeoAxes' object has no attribute 'outline_patch'

2.解决方法: 

源代码:

def _lambert_ticks(ax, ticks, tick_location, line_constructor, tick_extractor):     """Get the tick locations and labels for an axis of a Lambert Conformal projection."""     outline_patch = sgeom.LineString(ax.outline_patch.get_path().vertices.tolist())     axis = find_side(outline_patch, tick_location)     n_steps = 30     extent = ax.get_extent(ccrs.PlateCarree())     _ticks = []     for t in ticks:         xy = line_constructor(t, n_steps, extent)         proj_xyz = ax.projection.transform_points(ccrs.Geodetic(), xy[:, 0], xy[:, 1])         xyt = proj_xyz[..., :2]         ls = sgeom.LineString(xyt.tolist())         locs = axis.intersection(ls)         if not locs:             tick = [None]         else:             tick = tick_extractor(locs.xy)         _ticks.append(tick[0])     # Remove ticks that aren't visible:     ticklabels = copy(ticks)     while True:         try:             index = _ticks.index(None)         except ValueError:             break         _ticks.pop(index)         ticklabels.pop(index)     return _ticks, ticklabels

改变代码

def _lambert_ticks(ax, ticks, tick_location, line_constructor, tick_extractor):     """Get the tick locations and labels for an axis of a Lambert Conformal projection."""     outline_patch = sgeom.LineString(ax.patch.get_path().vertices.tolist())     axis = find_side(outline_patch, tick_location)     n_steps = 30     extent = ax.get_extent(ccrs.PlateCarree())     _ticks = []     for t in ticks:         xy = line_constructor(t, n_steps, extent)         proj_xyz = ax.projection.transform_points(ccrs.Geodetic(), xy[:, 0], xy[:, 1])         xyt = proj_xyz[..., :2]         ls = sgeom.LineString(xyt.tolist())         locs = axis.intersection(ls)         if not locs:             tick = [None]         else:             tick = tick_extractor(locs.xy)         _ticks.append(tick[0])     # Remove ticks that aren't visible:     ticklabels = copy(ticks)     while True:         try:             index = _ticks.index(None)         except ValueError:             break         _ticks.pop(index)         ticklabels.pop(index)     return _ticks, ticklabels

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接