metpy - 导入自定义颜色表文件时出现问题
问题描述
所以,我试图通过metpy函数导入一个自定义的colortable .tbl文件metpy.plots.ctables.read_colortable
,用Py-ART绘制一些雷达场。
这些是我正在使用的代码:
from metpy.plots import ctables
ctables.registry.add_colortable('zdr_table.tbl','nexrad_zdr')
zdr_cmap = ctables.registry.get_colortable('nexrad_zdr')
问题是,当我尝试这样做时,我收到以下错误消息:
Traceback (most recent call last):
File "/home/viper/miniconda3/envs/pyart_env/lib/python3.8/site-packages/metpy/plots/ctables.py", line 95, in read_colortable
literal = _parse(line)
File "/home/viper/miniconda3/envs/pyart_env/lib/python3.8/site-packages/metpy/plots/ctables.py", line 67, in _parse
return ast.literal_eval(s)
File "/home/viper/miniconda3/envs/pyart_env/lib/python3.8/ast.py", line 96, in literal_eval
return _convert(node_or_string)
File "/home/viper/miniconda3/envs/pyart_env/lib/python3.8/ast.py", line 95, in _convert
return _convert_signed_num(node)
File "/home/viper/miniconda3/envs/pyart_env/lib/python3.8/ast.py", line 74, in _convert_signed_num
return _convert_num(node)
File "/home/viper/miniconda3/envs/pyart_env/lib/python3.8/ast.py", line 66, in _convert_num
raise ValueError('malformed node or string: ' + repr(node))
ValueError: malformed node or string: <_ast.Name object at 0x7fcf76e35c40>
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "plot_zdr_ppi2.py", line 31, in <module>
ctables.registry.add_colortable('zdr_table.tbl','nexrad_zdr')
File "/home/viper/miniconda3/envs/pyart_env/lib/python3.8/site-packages/metpy/plots/ctables.py", line 187, in add_colortable
self[name] = read_colortable(fobj)
File "/home/viper/miniconda3/envs/pyart_env/lib/python3.8/site-packages/metpy/plots/ctables.py", line 100, in read_colortable
raise RuntimeError('Malformed colortable.')
RuntimeError: Malformed colortable.
我尝试使用具有相同结果的 Hex HTML 和 RGB 算术格式。
有任何想法吗?
解决方案
to的第一个参数add_colortable
不是文件名,而是类文件对象,所以需要open()
自己调用:
from metpy.plots import ctables
ctables.registry.add_colortable(open('zdr_table.tbl', 'rt'),'nexrad_zdr')
zdr_cmap = ctables.registry.get_colortable('nexrad_zdr')
推荐阅读
- c++ - 从在单独线程中运行的 C++ 插件调用 Node.js 函数
- python - 想要从 txt 文件中读取单词并将该单词插入到包含字符“p”的列表 (p_words) 中
- php - 如何在 Laravel 中循环引导模式?
- javascript - 如何使用 grunt 更改我的 HTML 文件以引用我缩小的 JS 和 CSS 而不是未压缩的?
- css - 如何在 Blogger 博客中的菜单项周围创建边框?
- amazon-web-services - 上传文件后 AWS S3 隐藏标志丢失
- python - Tkinter - Spinbox 看起来比预期的要长
- python-3.x - 使用散景为图例添加值
- angular - 静态注入器错误
- regex - 如果存在两个或更多括号字符串,如何提取单元格末尾括号中分隔的字符串