爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 739|回复: 1

[经验总结] PyNGL的Notebook使用Bug

[复制链接]
发表于 2025-1-15 16:40:43 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 一大碗年糕 于 2025-1-20 00:29 编辑

1.20更新:建议还是直接使用NCL,PyNGL移植的不够完全,很多bug
前段时间研究了下python中的弯曲箭头,几个公众号也给出了各自的解决办法,详见http://bbs.06climate.com/forum.php?mod=viewthread&tid=110776
但是用来用去还是感觉NCL原版的好,无奈重新捡起NCL(几乎已经忘光了泪目),想用PyNGL画画看。
问题一:
在Juypter Notebook中运行包含PyNGL的脚本会遇到一个bug,即第一次运行可以出图,但是修改代码后运行就无法出图(报错如下)必须重启内核才能再次出图,貌似是ngl.end()无法删除内存
  1. fatal:["Error.c":405]:ErrorInitialize:Only one instance of ErrorClass is supported
  2. fatal:Unable to initialize layer-Can't Create
  3. fatal:Error Creating ErrorClass object
  4. fatal:Unable to initialize layer-Can't Create
  5. fatal:Unable to initialize layer-Can't Create
  6. fatal:_NhlCreate:Unable to access "default" App object
  7. fatal:_NhlCreate:Unable to access "default" App object
  8. fatal:_NhlCreate:Invalid Parent id #-4
  9. fatal:NhlGetValues:PID #-4 is invalid
  10. fatal:PID #-4 can't be found in NhlSetValues
  11. warning:maximize_plots: Invalid workstation. No plot maximization can take place.
  12. fatal:NhlDraw: Invalid Layer Id: -4
  13. fatal:Unable to update Workstation with PID#-4
  14. fatal:Unable to clear Workstation with PID#-4
  15. fatal:Unable to Destroy (Bad PID#418152145)
复制代码
研究了一下,感觉问题可能在Ngl.end() 引发的资源释放问题。Ngl.end() 尝试关闭图形的操作在Jupyter的交互式环境中,这种操作可能被干扰。
解决办法:一开始在代码中就不要调用Ngl.end()!
问题二:
使用PyNGL连续出图到一定数量报错,报错如下
  1. fatal:WorkstationInitialize: Limit reached for number of simultaneous GKS Workstations
复制代码
解决办法:在最后加上Ngl.destroy(wks)
https://www.pyngl.ucar.edu/User_forum/Archives/2006/0041.html


另外对于图像显示可以采用IPython.display交互
from IPython.display import Image, display
...
...
display(Image(filename="vector_plot.png"))



p.s.感觉NCL之所以被逐步淘汰主要是在数据处理的便捷性上与python相差太多,至于绘图部分个人感觉NCL的许多模板确实还是很好看的。在GeoCAT等库复原不了原NCL风格的情况下,将PyNGL的绘图和python的数据处理相结合,重拾PyNGL或许的确是个不错的选择

密码修改失败请联系微信:mofangbao
发表于 2025-1-16 08:52:07 | 显示全部楼层
大佬牛啊,学习一下
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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