metradar 0.1.5__tar.gz → 0.1.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- metradar-0.1.8/.gitignore +116 -0
- metradar-0.1.8/LICENSE +21 -0
- metradar-0.1.8/PKG-INFO +91 -0
- metradar-0.1.8/README.md +54 -0
- metradar-0.1.8/config.ini +8 -0
- metradar-0.1.8/environment.yml +317 -0
- metradar-0.1.8/examples/download_data_from_cmadaas.ipynb +724 -0
- metradar-0.1.8/examples/draw_mosaic_datan.ipynb +108 -0
- metradar-0.1.8/examples/draw_radar_aws.ipynb +551 -0
- metradar-0.1.8/examples/draw_radar_single.ipynb +701 -0
- metradar-0.1.8/examples/draw_swan.ipynb +309 -0
- metradar-0.1.8/examples/nowcasting_pysteps.ipynb +512 -0
- metradar-0.1.8/examples/qc_velocity_dealias_cn.ipynb +362 -0
- metradar-0.1.8/examples/qc_wradlib_clutter_cn.ipynb +4742 -0
- metradar-0.1.8/examples/read_rose.ipynb +5160 -0
- metradar-0.1.8/examples/wind_PyDDA_cn.ipynb +992 -0
- metradar-0.1.8/metradar/__init__.py +9 -0
- metradar-0.1.8/metradar/config.py +53 -0
- metradar-0.1.8/metradar/core/__init__.py +9 -0
- metradar-0.1.5/metradar/get_cross_section_from_pyart.py → metradar-0.1.8/metradar/core/get_cross_section.py +5 -157
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/core}/mosaic_merge.py +3 -1
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/core}/oa_dig_func.py +83 -333
- metradar-0.1.8/metradar/graph/__init__.py +9 -0
- metradar-0.1.5/metradar/mosaic_quickdraw.py → metradar-0.1.8/metradar/graph/draw_comp_mosaic.py +71 -68
- metradar-0.1.5/metradar/draw_mosaic_new.py → metradar-0.1.8/metradar/graph/draw_latlon_func.py +177 -173
- metradar-0.1.8/metradar/graph/draw_radar_aws.py +212 -0
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/graph}/draw_radar_comp_func.py +319 -248
- metradar-0.1.8/metradar/graph/parse_pal.py +157 -0
- metradar-0.1.8/metradar/io/__init__.py +9 -0
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/io}/cnrad_level2.py +45 -2
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/io}/decode_fmt_pyart.py +19 -3
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/io}/decode_pup_rose.py +241 -684
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/io}/read_new_mosaic_func.py +30 -2
- metradar-0.1.8/metradar/io/read_swan.py +250 -0
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/io}/rose_structer.py +2 -0
- metradar-0.1.8/metradar/project/__init__.py +9 -0
- metradar-0.1.8/metradar/project/make_mosaic/__init__.py +9 -0
- metradar-0.1.8/metradar/project/make_mosaic/batch_draw_mosaic.py +32 -0
- metradar-0.1.5/metradar/make_mosaic_mp_archive.py → metradar-0.1.8/metradar/project/make_mosaic/make_mosaic_func.py +144 -175
- metradar-0.1.8/metradar/project/make_mosaic/make_mosaic_mp.ini +29 -0
- metradar-0.1.8/metradar/project/make_mosaic/make_mosaic_mp.py +70 -0
- metradar-0.1.8/metradar/project/make_vpr_aws/__init__.py +9 -0
- metradar-0.1.8/metradar/project/make_vpr_aws/construct_aws_refvpr_mainprog.ini +39 -0
- metradar-0.1.8/metradar/project/make_vpr_aws/construct_aws_refvpr_mainprog.py +565 -0
- metradar-0.1.8/metradar/project/nowcasting/__init__.py +9 -0
- metradar-0.1.8/metradar/project/nowcasting/nowcast_by_pysteps.py +214 -0
- metradar-0.1.5/metradar/trans_nc_pgmb.py → metradar-0.1.8/metradar/project/nowcasting/trans_mosaic_pgmb.py +19 -17
- metradar-0.1.8/metradar/project/qpe/Archive /346/250/241/345/274/217/350/257/264/346/230/216.txt" +2 -0
- metradar-0.1.8/metradar/project/qpe/__init__.py +9 -0
- metradar-0.1.8/metradar/project/qpe/archive_main_qpe_cfg.ini +91 -0
- metradar-0.1.8/metradar/project/qpe/do_s1.sh +6 -0
- metradar-0.1.8/metradar/project/qpe/do_s2.sh +6 -0
- metradar-0.1.8/metradar/project/qpe/do_s3.sh +6 -0
- metradar-0.1.8/metradar/project/qpe/do_s4.sh +6 -0
- metradar-0.1.8/metradar/project/qpe/do_s5.sh +6 -0
- metradar-0.1.8/metradar/project/qpe/exec_all.sh +11 -0
- metradar-0.1.8/metradar/project/qpe/get_rainrate_func.py +80 -0
- metradar-0.1.8/metradar/project/qpe/main_qpe_cfg.ini +85 -0
- metradar-0.1.8/metradar/project/qpe/s1_download_radar_region_cmadaas.py +123 -0
- metradar-0.1.8/metradar/project/qpe/s2_pre_process_single_radar.py +183 -0
- metradar-0.1.8/metradar/project/qpe/s3_trans_rainrate_to_qpe.py +499 -0
- metradar-0.1.8/metradar/project/qpe/s4_mosaic_qpe.py +523 -0
- metradar-0.1.8/metradar/project/qpe/s5_draw_qpe_mosaic.py +308 -0
- metradar-0.1.8/metradar/project/wind_retrieval/__init__.py +9 -0
- metradar-0.1.8/metradar/project/wind_retrieval/config_3dwind.ini +45 -0
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/project/wind_retrieval}/main_pydda.py +152 -149
- metradar-0.1.8/metradar/util/__init__.py +9 -0
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/util}/comm_func.py +1 -41
- metradar-0.1.8/metradar/util/exceptions.py +50 -0
- metradar-0.1.8/metradar/util/geo_transforms_pyart.py +627 -0
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/util}/get_tlogp_from_sharppy.py +16 -5
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/util}/parse_pal.py +147 -147
- metradar-0.1.8/metradar/util/radar_common.py +16 -0
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/util}/trans_new_mosaic_nc.py +1 -1
- metradar-0.1.8/metradar.egg-info/PKG-INFO +91 -0
- metradar-0.1.8/metradar.egg-info/SOURCES.txt +85 -0
- metradar-0.1.8/metradar.egg-info/requires.txt +11 -0
- {metradar-0.1.5 → metradar-0.1.8}/pyproject.toml +19 -11
- metradar-0.1.8/requirements.txt +160 -0
- {metradar-0.1.5 → metradar-0.1.8}/setup.cfg +0 -0
- metradar-0.1.8/setup.py +10 -0
- metradar-0.1.5/PKG-INFO +0 -37
- metradar-0.1.5/README.md +0 -8
- metradar-0.1.5/metradar/__init__.py +0 -7
- metradar-0.1.5/metradar/grid.py +0 -281
- metradar-0.1.5/metradar/grid_data.py +0 -64
- metradar-0.1.5/metradar/oa_couhua.py +0 -166
- metradar-0.1.5/metradar/read_new_mosaic.py +0 -33
- metradar-0.1.5/metradar/retrieve_cmadaas.py +0 -3126
- metradar-0.1.5/metradar/retrieve_micaps_server.py +0 -2061
- metradar-0.1.5/metradar.egg-info/PKG-INFO +0 -37
- metradar-0.1.5/metradar.egg-info/SOURCES.txt +0 -36
- metradar-0.1.5/metradar.egg-info/requires.txt +0 -8
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/io}/pgmb_io.py +0 -0
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/project/make_vpr_aws}/exceptions.py +0 -0
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/project/make_vpr_aws}/geo_transforms_pyart.py +0 -0
- {metradar-0.1.5/metradar → metradar-0.1.8/metradar/util}/make_gif.py +0 -0
- {metradar-0.1.5 → metradar-0.1.8}/metradar.egg-info/dependency_links.txt +0 -0
- {metradar-0.1.5 → metradar-0.1.8}/metradar.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
*.egg-info/
|
|
24
|
+
.installed.cfg
|
|
25
|
+
*.egg
|
|
26
|
+
MANIFEST
|
|
27
|
+
|
|
28
|
+
# PyInstaller
|
|
29
|
+
# Usually these files are written by a python script from a template
|
|
30
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
31
|
+
*.manifest
|
|
32
|
+
*.spec
|
|
33
|
+
*.txt
|
|
34
|
+
# Installer logs
|
|
35
|
+
pip-log.txt
|
|
36
|
+
pip-delete-this-directory.txt
|
|
37
|
+
|
|
38
|
+
# Unit test / coverage reports
|
|
39
|
+
htmlcov/
|
|
40
|
+
.tox/
|
|
41
|
+
.coverage
|
|
42
|
+
.coverage.*
|
|
43
|
+
.cache
|
|
44
|
+
nosetests.xml
|
|
45
|
+
coverage.xml
|
|
46
|
+
*.cover
|
|
47
|
+
.hypothesis/
|
|
48
|
+
.pytest_cache/
|
|
49
|
+
|
|
50
|
+
# Translations
|
|
51
|
+
*.mo
|
|
52
|
+
*.pot
|
|
53
|
+
|
|
54
|
+
# Django stuff:
|
|
55
|
+
*.log
|
|
56
|
+
local_settings.py
|
|
57
|
+
db.sqlite3
|
|
58
|
+
|
|
59
|
+
# Flask stuff:
|
|
60
|
+
instance/
|
|
61
|
+
.webassets-cache
|
|
62
|
+
|
|
63
|
+
# Scrapy stuff:
|
|
64
|
+
.scrapy
|
|
65
|
+
|
|
66
|
+
# Sphinx documentation
|
|
67
|
+
docs/_build/
|
|
68
|
+
|
|
69
|
+
# PyBuilder
|
|
70
|
+
target/
|
|
71
|
+
|
|
72
|
+
# Jupyter Notebook
|
|
73
|
+
.ipynb_checkpoints
|
|
74
|
+
|
|
75
|
+
# pyenv
|
|
76
|
+
.python-version
|
|
77
|
+
|
|
78
|
+
# celery beat schedule file
|
|
79
|
+
celerybeat-schedule
|
|
80
|
+
|
|
81
|
+
# SageMath parsed files
|
|
82
|
+
*.sage.py
|
|
83
|
+
|
|
84
|
+
# Environments
|
|
85
|
+
.env
|
|
86
|
+
.venv
|
|
87
|
+
env/
|
|
88
|
+
venv/
|
|
89
|
+
ENV/
|
|
90
|
+
env.bak/
|
|
91
|
+
venv.bak/
|
|
92
|
+
|
|
93
|
+
# Spyder project settings
|
|
94
|
+
.spyderproject
|
|
95
|
+
.spyproject
|
|
96
|
+
|
|
97
|
+
# Rope project settings
|
|
98
|
+
.ropeproject
|
|
99
|
+
|
|
100
|
+
# mkdocs documentation
|
|
101
|
+
/site
|
|
102
|
+
|
|
103
|
+
# mypy
|
|
104
|
+
.mypy_cache/
|
|
105
|
+
|
|
106
|
+
# vscode
|
|
107
|
+
.vscode/
|
|
108
|
+
JupyterLab.bat
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
private_res/
|
|
112
|
+
|
|
113
|
+
国省市县审图号(GS (2019) 3082号/
|
|
114
|
+
|
|
115
|
+
DEM/
|
|
116
|
+
maps/
|
metradar-0.1.8/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 R & D Center for Weather Forecasting Technology (NMC-WFT, CMA)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
metradar-0.1.8/PKG-INFO
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: metradar
|
|
3
|
+
Version: 0.1.8
|
|
4
|
+
Summary: radar data processing
|
|
5
|
+
Author-email: Wenjian Zhu <kevin2075@163.com>
|
|
6
|
+
Project-URL: Homepage, https://github.com/nmcdev/metradar
|
|
7
|
+
Project-URL: Repository, https://github.com/nmcdev/metradar
|
|
8
|
+
Project-URL: Documentation, https://github.com/nmcdev/metradar#readme
|
|
9
|
+
Keywords: Weather,Radar
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Operating System :: Unix
|
|
14
|
+
Classifier: Operating System :: Microsoft
|
|
15
|
+
Classifier: Operating System :: MacOS
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering
|
|
18
|
+
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
|
|
19
|
+
Classifier: Topic :: Scientific/Engineering :: GIS
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering :: Hydrology
|
|
21
|
+
Classifier: Topic :: Scientific/Engineering :: Image Processing
|
|
22
|
+
Requires-Python: <3.13,>=3.10
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
Requires-Dist: openpyxl>=3.1.5
|
|
26
|
+
Requires-Dist: pydda==2.2.0
|
|
27
|
+
Requires-Dist: tqdm>=4.67.0
|
|
28
|
+
Requires-Dist: wradlib>=2.6.1
|
|
29
|
+
Requires-Dist: MetPy>=1.7.1
|
|
30
|
+
Requires-Dist: matplotlib>=3.10.8
|
|
31
|
+
Requires-Dist: pysteps>=1.19.0
|
|
32
|
+
Requires-Dist: nmc_met_io>=0.1.15.0
|
|
33
|
+
Requires-Dist: netCDF4>=1.7.4
|
|
34
|
+
Requires-Dist: schedule>=1.2.2
|
|
35
|
+
Requires-Dist: nmc_met_graphics>=0.1.5.4
|
|
36
|
+
Dynamic: license-file
|
|
37
|
+
|
|
38
|
+
<div align="center">
|
|
39
|
+
|
|
40
|
+
# Welcome to METRADAR📡
|
|
41
|
+
|
|
42
|
+
## 🚀 Quick start
|
|
43
|
+
### 📡metradar 主要面向一线气象工作者,提供简单易用的python接口,用于读取、处理和可视化中国天气雷达数据,并利用国际成熟的雷达工具包如pyart、wradlib、pydda、pysteps构建了质量控制、降水反演、风场反演、临近预报等工程。
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div align="left">
|
|
47
|
+
|
|
48
|
+
### ✨强烈推荐先从examples目录下的所有notebook入手!
|
|
49
|
+
### ✨由于很多算法功能都是以完整项目形式共享,因此,建议用户将整个代码包从github上下载到本地进行后续开发!
|
|
50
|
+
|
|
51
|
+
### 📚主要功能包括
|
|
52
|
+
* 1,雷达数据下载,自动站数据下载,下载功能集成在nmc_met_io工具包中;
|
|
53
|
+
* 2,雷达基数据的读取(中国气象局最新的标准数据格式FMT)、绘图;
|
|
54
|
+
* 3,ROSE PUP 产品读取、绘图;
|
|
55
|
+
* 4,雷达拼图解码、绘图,支持SWAN格式拼图、中国气象探测中心拼图等;
|
|
56
|
+
* 5,雷达和自动站综合分析及绘图,自动站数据诊断分析包括散度、涡度计算、等值线客观分析等。
|
|
57
|
+
* 6,雷达质控、批量绘图、三维组网产品制作、降水估测、三维风场反演、回波临近预报、雷达和自动站时间序列图等,其中部分算法以项目形式开源,提供一键式处理流程。
|
|
58
|
+
|
|
59
|
+
## 🛠️Install
|
|
60
|
+
Using the fellowing command to install packages:
|
|
61
|
+
|
|
62
|
+
* 使用pypi安装源安装(https://pypi.org/project/metradar/)
|
|
63
|
+
```
|
|
64
|
+
pip install metradar
|
|
65
|
+
```
|
|
66
|
+
### 📂若要构建全功能运行环境,建议安装顺序如下:
|
|
67
|
+
* conda create -n radar312 python=3.12
|
|
68
|
+
* conda activate radar312
|
|
69
|
+
* pip install metradar
|
|
70
|
+
* conda install -c conda-forge arm_pyart -y
|
|
71
|
+
* conda install -c conda-forge cartopy -y
|
|
72
|
+
* conda install -c conda-forge gdal -y
|
|
73
|
+
* pip install tensorflow
|
|
74
|
+
* pip install tensorflow-probability
|
|
75
|
+
* pip install tf_keras
|
|
76
|
+
|
|
77
|
+
## 📜设置配置文件
|
|
78
|
+
|
|
79
|
+
* 在系统用户目录下("C:\Users\用户名"(windows)或"/home/用户名/"(Linux)), 建立文件夹".metradar"(若Windows下无法直接创建, 在命令窗口中输入`mkdir .metradar`创建)
|
|
80
|
+
* 在".metradar"中创建文本文件"config.ini", 内容模板为:
|
|
81
|
+
```
|
|
82
|
+
# 用于metradar相关参数设置
|
|
83
|
+
# 建议使用vscode进行编辑,或notepad++等编辑器进行编辑
|
|
84
|
+
# RESOURCES_PATH路径下存放了各种资源文件,包括地图、字体、色标等
|
|
85
|
+
[SETTING]
|
|
86
|
+
RESOURCES_PATH = /home/wjzhu/metradar/resources
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### ⚠️注意事项:
|
|
90
|
+
* 资源文件RESOURCES 目录下的stations目录下的文件都是样例文件,不代表真实坐标,使用时,请自行按照同样的格式准备站点文件。
|
|
91
|
+
* 样例测试数据需要单独下载,链接:https://github.com/zhuwenjian/metradar_testdata
|
metradar-0.1.8/README.md
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
# Welcome to METRADAR📡
|
|
4
|
+
|
|
5
|
+
## 🚀 Quick start
|
|
6
|
+
### 📡metradar 主要面向一线气象工作者,提供简单易用的python接口,用于读取、处理和可视化中国天气雷达数据,并利用国际成熟的雷达工具包如pyart、wradlib、pydda、pysteps构建了质量控制、降水反演、风场反演、临近预报等工程。
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
<div align="left">
|
|
10
|
+
|
|
11
|
+
### ✨强烈推荐先从examples目录下的所有notebook入手!
|
|
12
|
+
### ✨由于很多算法功能都是以完整项目形式共享,因此,建议用户将整个代码包从github上下载到本地进行后续开发!
|
|
13
|
+
|
|
14
|
+
### 📚主要功能包括
|
|
15
|
+
* 1,雷达数据下载,自动站数据下载,下载功能集成在nmc_met_io工具包中;
|
|
16
|
+
* 2,雷达基数据的读取(中国气象局最新的标准数据格式FMT)、绘图;
|
|
17
|
+
* 3,ROSE PUP 产品读取、绘图;
|
|
18
|
+
* 4,雷达拼图解码、绘图,支持SWAN格式拼图、中国气象探测中心拼图等;
|
|
19
|
+
* 5,雷达和自动站综合分析及绘图,自动站数据诊断分析包括散度、涡度计算、等值线客观分析等。
|
|
20
|
+
* 6,雷达质控、批量绘图、三维组网产品制作、降水估测、三维风场反演、回波临近预报、雷达和自动站时间序列图等,其中部分算法以项目形式开源,提供一键式处理流程。
|
|
21
|
+
|
|
22
|
+
## 🛠️Install
|
|
23
|
+
Using the fellowing command to install packages:
|
|
24
|
+
|
|
25
|
+
* 使用pypi安装源安装(https://pypi.org/project/metradar/)
|
|
26
|
+
```
|
|
27
|
+
pip install metradar
|
|
28
|
+
```
|
|
29
|
+
### 📂若要构建全功能运行环境,建议安装顺序如下:
|
|
30
|
+
* conda create -n radar312 python=3.12
|
|
31
|
+
* conda activate radar312
|
|
32
|
+
* pip install metradar
|
|
33
|
+
* conda install -c conda-forge arm_pyart -y
|
|
34
|
+
* conda install -c conda-forge cartopy -y
|
|
35
|
+
* conda install -c conda-forge gdal -y
|
|
36
|
+
* pip install tensorflow
|
|
37
|
+
* pip install tensorflow-probability
|
|
38
|
+
* pip install tf_keras
|
|
39
|
+
|
|
40
|
+
## 📜设置配置文件
|
|
41
|
+
|
|
42
|
+
* 在系统用户目录下("C:\Users\用户名"(windows)或"/home/用户名/"(Linux)), 建立文件夹".metradar"(若Windows下无法直接创建, 在命令窗口中输入`mkdir .metradar`创建)
|
|
43
|
+
* 在".metradar"中创建文本文件"config.ini", 内容模板为:
|
|
44
|
+
```
|
|
45
|
+
# 用于metradar相关参数设置
|
|
46
|
+
# 建议使用vscode进行编辑,或notepad++等编辑器进行编辑
|
|
47
|
+
# RESOURCES_PATH路径下存放了各种资源文件,包括地图、字体、色标等
|
|
48
|
+
[SETTING]
|
|
49
|
+
RESOURCES_PATH = /home/wjzhu/metradar/resources
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### ⚠️注意事项:
|
|
53
|
+
* 资源文件RESOURCES 目录下的stations目录下的文件都是样例文件,不代表真实坐标,使用时,请自行按照同样的格式准备站点文件。
|
|
54
|
+
* 样例测试数据需要单独下载,链接:https://github.com/zhuwenjian/metradar_testdata
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
name: radar312
|
|
2
|
+
channels:
|
|
3
|
+
- conda-forge
|
|
4
|
+
- defaults
|
|
5
|
+
dependencies:
|
|
6
|
+
- _libgcc_mutex=0.1=main
|
|
7
|
+
- _openmp_mutex=5.1=1_gnu
|
|
8
|
+
- aiobotocore=2.25.2=pyhcf101f3_0
|
|
9
|
+
- aiohappyeyeballs=2.6.1=pyhd8ed1ab_0
|
|
10
|
+
- aiohttp=3.13.3=py312h5d8c7f2_0
|
|
11
|
+
- aioitertools=0.12.0=pyhd8ed1ab_1
|
|
12
|
+
- aiosignal=1.4.0=pyhd8ed1ab_0
|
|
13
|
+
- arm_pyart=2.1.1=py312h4c3975b_1
|
|
14
|
+
- attr=2.5.2=h39aace5_0
|
|
15
|
+
- attrs=25.4.0=pyhcf101f3_1
|
|
16
|
+
- aws-c-auth=0.9.1=h48c9088_3
|
|
17
|
+
- aws-c-cal=0.9.2=he7b75e1_1
|
|
18
|
+
- aws-c-common=0.12.4=hb03c661_0
|
|
19
|
+
- aws-c-compression=0.3.1=h92c474e_6
|
|
20
|
+
- aws-c-event-stream=0.5.6=h82d11aa_3
|
|
21
|
+
- aws-c-http=0.10.4=h94feff3_3
|
|
22
|
+
- aws-c-io=0.22.0=h57f3b0d_1
|
|
23
|
+
- aws-c-mqtt=0.13.3=h2b1cf8c_6
|
|
24
|
+
- aws-c-s3=0.8.6=h4e5ac4b_5
|
|
25
|
+
- aws-c-sdkutils=0.2.4=h92c474e_1
|
|
26
|
+
- aws-checksums=0.2.7=h92c474e_2
|
|
27
|
+
- aws-crt-cpp=0.34.4=h60c762c_0
|
|
28
|
+
- aws-sdk-cpp=1.11.606=h32384e2_4
|
|
29
|
+
- azure-core-cpp=1.16.0=h3a458e0_1
|
|
30
|
+
- azure-identity-cpp=1.12.0=ha729027_0
|
|
31
|
+
- azure-storage-blobs-cpp=12.14.0=hb1c9500_1
|
|
32
|
+
- azure-storage-common-cpp=12.10.0=h4bb41a7_3
|
|
33
|
+
- azure-storage-files-datalake-cpp=12.12.0=h8b27e44_3
|
|
34
|
+
- backports.zstd=1.3.0=py312h90b7ffd_0
|
|
35
|
+
- blosc=1.21.6=he440d0b_1
|
|
36
|
+
- bokeh=3.8.1=pyhd8ed1ab_0
|
|
37
|
+
- botocore=1.40.70=pyhd8ed1ab_0
|
|
38
|
+
- brotli=1.1.0=hb03c661_4
|
|
39
|
+
- brotli-bin=1.1.0=hb03c661_4
|
|
40
|
+
- brotli-python=1.2.0=py312h3dd09e2_0
|
|
41
|
+
- bzip2=1.0.8=h5eee18b_6
|
|
42
|
+
- c-ares=1.34.6=hb03c661_0
|
|
43
|
+
- ca-certificates=2026.1.4=hbd8a1cb_0
|
|
44
|
+
- cached-property=1.5.2=hd8ed1ab_1
|
|
45
|
+
- cached_property=1.5.2=pyha770c72_1
|
|
46
|
+
- cartopy=0.25.0=py312hf79963d_1
|
|
47
|
+
- certifi=2026.1.4=pyhd8ed1ab_0
|
|
48
|
+
- cftime=1.6.5=py312h4f23490_0
|
|
49
|
+
- charset-normalizer=3.4.4=pyhd8ed1ab_0
|
|
50
|
+
- click=8.3.1=pyh8f84b5b_1
|
|
51
|
+
- cloudpickle=3.1.2=pyhcf101f3_1
|
|
52
|
+
- cmweather=0.3.2=pyhd8ed1ab_1
|
|
53
|
+
- contourpy=1.3.3=py312hd9148b4_3
|
|
54
|
+
- cycler=0.12.1=pyhcf101f3_2
|
|
55
|
+
- cytoolz=1.1.0=py312h4c3975b_1
|
|
56
|
+
- dask=2025.12.0=pyhcf101f3_0
|
|
57
|
+
- dask-core=2025.12.0=pyhcf101f3_1
|
|
58
|
+
- distributed=2025.12.0=pyhcf101f3_1
|
|
59
|
+
- expat=2.7.3=h7354ed3_4
|
|
60
|
+
- flexcache=0.3=pyhd8ed1ab_1
|
|
61
|
+
- flexparser=0.4=pyhd8ed1ab_1
|
|
62
|
+
- fonttools=4.61.1=py312h8a5da7c_0
|
|
63
|
+
- freetype=2.14.1=ha770c72_0
|
|
64
|
+
- freexl=2.0.0=h9dce30a_2
|
|
65
|
+
- frozenlist=1.7.0=py312h447239a_0
|
|
66
|
+
- fsspec=2026.1.0=pyhd8ed1ab_0
|
|
67
|
+
- gdal=3.12.1=py312hf50df08_0
|
|
68
|
+
- geos=3.14.1=h480dda7_0
|
|
69
|
+
- gflags=2.2.2=h5888daf_1005
|
|
70
|
+
- giflib=5.2.2=hd590300_0
|
|
71
|
+
- glog=0.7.1=hbabe93e_0
|
|
72
|
+
- h2=4.3.0=pyhcf101f3_0
|
|
73
|
+
- h5netcdf=1.7.3=pyhd8ed1ab_0
|
|
74
|
+
- h5py=3.15.1=nompi_py312ha4f8f14_101
|
|
75
|
+
- hdf4=4.2.15=h2a13503_7
|
|
76
|
+
- hdf5=1.14.6=nompi_h1b119a7_104
|
|
77
|
+
- hpack=4.1.0=pyhd8ed1ab_0
|
|
78
|
+
- hyperframe=6.1.0=pyhd8ed1ab_0
|
|
79
|
+
- icu=78.2=h33c6efd_0
|
|
80
|
+
- idna=3.11=pyhd8ed1ab_0
|
|
81
|
+
- importlib-metadata=8.7.0=pyhe01879c_1
|
|
82
|
+
- jinja2=3.1.6=pyhcf101f3_1
|
|
83
|
+
- jmespath=1.0.1=pyhd8ed1ab_1
|
|
84
|
+
- json-c=0.18=h6688a6e_0
|
|
85
|
+
- keyutils=1.6.3=hb9d3cd8_0
|
|
86
|
+
- kiwisolver=1.4.9=py312h0a2e395_2
|
|
87
|
+
- krb5=1.21.3=h659f571_0
|
|
88
|
+
- lat_lon_parser=1.3.1=pyhd8ed1ab_1
|
|
89
|
+
- lcms2=2.17=h717163a_0
|
|
90
|
+
- ld_impl_linux-64=2.44=h153f514_2
|
|
91
|
+
- lerc=4.0.0=h0aef613_1
|
|
92
|
+
- libabseil=20250512.1=cxx17_hba17884_0
|
|
93
|
+
- libaec=1.1.4=h3f801dc_0
|
|
94
|
+
- libarchive=3.8.5=gpl_hc2c16d8_100
|
|
95
|
+
- libarrow=21.0.0=h56a6dad_8_cpu
|
|
96
|
+
- libarrow-acero=21.0.0=h635bf11_8_cpu
|
|
97
|
+
- libarrow-compute=21.0.0=h8c2c5c3_8_cpu
|
|
98
|
+
- libarrow-dataset=21.0.0=h635bf11_8_cpu
|
|
99
|
+
- libarrow-substrait=21.0.0=h3f74fd7_8_cpu
|
|
100
|
+
- libblas=3.11.0=5_h4a7cf45_openblas
|
|
101
|
+
- libbrotlicommon=1.1.0=hb03c661_4
|
|
102
|
+
- libbrotlidec=1.1.0=hb03c661_4
|
|
103
|
+
- libbrotlienc=1.1.0=hb03c661_4
|
|
104
|
+
- libcblas=3.11.0=5_h0358290_openblas
|
|
105
|
+
- libcrc32c=1.1.2=h9c3ff4c_0
|
|
106
|
+
- libcurl=8.18.0=h4e3cde8_0
|
|
107
|
+
- libdeflate=1.25=h17f619e_0
|
|
108
|
+
- libedit=3.1.20250104=pl5321h7949ede_0
|
|
109
|
+
- libev=4.33=hd590300_2
|
|
110
|
+
- libevent=2.1.12=hf998b51_1
|
|
111
|
+
- libexpat=2.7.3=h7354ed3_4
|
|
112
|
+
- libffi=3.4.4=h6a678d5_1
|
|
113
|
+
- libfreetype=2.14.1=ha770c72_0
|
|
114
|
+
- libfreetype6=2.14.1=h73754d4_0
|
|
115
|
+
- libgcc=15.2.0=h69a1729_7
|
|
116
|
+
- libgcc-ng=15.2.0=h166f726_7
|
|
117
|
+
- libgdal-core=3.12.1=hf05ffb4_0
|
|
118
|
+
- libgfortran=15.2.0=h69a702a_16
|
|
119
|
+
- libgfortran5=15.2.0=h68bc16d_16
|
|
120
|
+
- libgomp=15.2.0=h4751f2c_7
|
|
121
|
+
- libgoogle-cloud=2.39.0=hdb79228_0
|
|
122
|
+
- libgoogle-cloud-storage=2.39.0=hdbdcf42_0
|
|
123
|
+
- libgrpc=1.73.1=h3288cfb_1
|
|
124
|
+
- libhwy=1.3.0=h4c17acf_1
|
|
125
|
+
- libiconv=1.18=h3b78370_2
|
|
126
|
+
- libjpeg-turbo=3.1.2=hb03c661_0
|
|
127
|
+
- libjxl=0.11.1=h6cb5226_4
|
|
128
|
+
- libkml=1.3.0=haa4a5bd_1022
|
|
129
|
+
- liblapack=3.11.0=5_h47877c9_openblas
|
|
130
|
+
- liblzma=5.8.1=hb9d3cd8_2
|
|
131
|
+
- liblzma-devel=5.8.1=hb9d3cd8_2
|
|
132
|
+
- libnetcdf=4.9.3=nompi_h11f7409_103
|
|
133
|
+
- libnghttp2=1.67.0=had1ee68_0
|
|
134
|
+
- libnsl=2.0.1=hb9d3cd8_1
|
|
135
|
+
- libopenblas=0.3.30=pthreads_h94d23a6_4
|
|
136
|
+
- libopentelemetry-cpp=1.21.0=hb9b0907_1
|
|
137
|
+
- libopentelemetry-cpp-headers=1.21.0=ha770c72_1
|
|
138
|
+
- libparquet=21.0.0=h790f06f_8_cpu
|
|
139
|
+
- libpng=1.6.53=h421ea60_0
|
|
140
|
+
- libprotobuf=6.31.1=h49aed37_4
|
|
141
|
+
- libre2-11=2025.11.05=h7b12aa8_0
|
|
142
|
+
- librttopo=1.1.0=h46dd2a8_20
|
|
143
|
+
- libspatialite=5.1.0=gpl_h2abfd87_119
|
|
144
|
+
- libsqlite=3.51.1=h0c1763c_1
|
|
145
|
+
- libssh2=1.11.1=hcf80075_0
|
|
146
|
+
- libstdcxx=15.2.0=h39759b7_7
|
|
147
|
+
- libstdcxx-ng=15.2.0=hc03a8fd_7
|
|
148
|
+
- libthrift=0.22.0=h454ac66_1
|
|
149
|
+
- libtiff=4.7.1=h9d88235_1
|
|
150
|
+
- libutf8proc=2.11.2=hfe17d71_0
|
|
151
|
+
- libuuid=1.41.5=h5eee18b_0
|
|
152
|
+
- libwebp-base=1.6.0=hd42ef1d_0
|
|
153
|
+
- libxcb=1.17.0=h9b100fa_0
|
|
154
|
+
- libxml2=2.15.1=he237659_1
|
|
155
|
+
- libxml2-16=2.15.1=hca6bf5a_1
|
|
156
|
+
- libxml2-devel=2.15.1=he237659_1
|
|
157
|
+
- libzip=1.11.2=h6991a6a_0
|
|
158
|
+
- libzlib=1.3.1=hb25bd0a_0
|
|
159
|
+
- locket=1.0.0=pyhd8ed1ab_0
|
|
160
|
+
- lz4=4.4.5=py312h3d67a73_1
|
|
161
|
+
- lz4-c=1.10.0=h5888daf_1
|
|
162
|
+
- lzo=2.10=h280c20c_1002
|
|
163
|
+
- markupsafe=3.0.3=py312h8a5da7c_0
|
|
164
|
+
- matplotlib-base=3.10.8=py312he3d6523_0
|
|
165
|
+
- mda-xdrlib=0.2.0=pyhd8ed1ab_1
|
|
166
|
+
- minizip=4.0.10=h05a5f5f_0
|
|
167
|
+
- msgpack-python=1.1.2=py312hd9148b4_1
|
|
168
|
+
- multidict=6.7.0=py312h8a5da7c_0
|
|
169
|
+
- munkres=1.1.4=pyhd8ed1ab_1
|
|
170
|
+
- muparser=2.3.5=h5888daf_0
|
|
171
|
+
- narwhals=2.15.0=pyhcf101f3_0
|
|
172
|
+
- ncurses=6.5=h7934f7d_0
|
|
173
|
+
- netcdf4=1.7.3=nompi_py312hf6400b3_100
|
|
174
|
+
- nlohmann_json=3.12.0=h54a6638_1
|
|
175
|
+
- open-radar-data=0.5.0=pyhd8ed1ab_0
|
|
176
|
+
- openjpeg=2.5.3=h55fea9a_1
|
|
177
|
+
- openssl=3.6.0=h26f9b46_0
|
|
178
|
+
- orc=2.2.1=hd747db4_0
|
|
179
|
+
- packaging=25.0=pyh29332c3_1
|
|
180
|
+
- pandas=2.3.3=py312hf79963d_1
|
|
181
|
+
- partd=1.4.2=pyhd8ed1ab_0
|
|
182
|
+
- pcre2=10.47=haa7fec5_0
|
|
183
|
+
- pillow=11.3.0=py312h7b42cdd_3
|
|
184
|
+
- pint=0.25.2=pyhcf101f3_0
|
|
185
|
+
- pip=25.3=pyhc872135_0
|
|
186
|
+
- platformdirs=4.5.1=pyhcf101f3_0
|
|
187
|
+
- pooch=1.8.2=pyhd8ed1ab_3
|
|
188
|
+
- proj=9.7.1=h99ae125_0
|
|
189
|
+
- prometheus-cpp=1.3.0=ha5d0236_0
|
|
190
|
+
- propcache=0.3.1=py312h178313f_0
|
|
191
|
+
- psutil=7.2.1=py312h5253ce2_0
|
|
192
|
+
- pthread-stubs=0.3=h0ce48e5_1
|
|
193
|
+
- pyarrow=21.0.0=py312h7900ff3_1
|
|
194
|
+
- pyarrow-core=21.0.0=py312hc195796_1_cpu
|
|
195
|
+
- pyparsing=3.3.1=pyhcf101f3_0
|
|
196
|
+
- pyproj=3.7.2=py312h9b6a7d9_2
|
|
197
|
+
- pyshp=3.0.3=pyhd8ed1ab_0
|
|
198
|
+
- pysocks=1.7.1=pyha55dd90_7
|
|
199
|
+
- python=3.12.12=hd17a9e1_1
|
|
200
|
+
- python-dateutil=2.9.0.post0=pyhe01879c_2
|
|
201
|
+
- python-tzdata=2025.3=pyhd8ed1ab_0
|
|
202
|
+
- python_abi=3.12=3_cp312
|
|
203
|
+
- pytz=2025.2=pyhd8ed1ab_0
|
|
204
|
+
- pyyaml=6.0.3=py312h8a5da7c_0
|
|
205
|
+
- qhull=2020.2=h434a139_5
|
|
206
|
+
- re2=2025.11.05=h5301d42_0
|
|
207
|
+
- readline=8.3=hc2a1206_0
|
|
208
|
+
- requests=2.32.5=pyhcf101f3_1
|
|
209
|
+
- s2n=1.5.26=h5ac9029_0
|
|
210
|
+
- s3fs=2026.1.0=pyhd8ed1ab_0
|
|
211
|
+
- scipy=1.16.3=py312h54fa4ab_2
|
|
212
|
+
- setuptools=80.9.0=py312h06a4308_0
|
|
213
|
+
- setuptools-scm=9.2.2=pyhd8ed1ab_0
|
|
214
|
+
- setuptools_scm=9.2.2=hd8ed1ab_0
|
|
215
|
+
- shapely=2.1.2=py312h383787d_2
|
|
216
|
+
- six=1.17.0=pyhe01879c_1
|
|
217
|
+
- snappy=1.2.2=h03e3b7b_1
|
|
218
|
+
- sortedcontainers=2.4.0=pyhd8ed1ab_1
|
|
219
|
+
- sqlite=3.51.1=he0a8d7e_0
|
|
220
|
+
- tblib=3.2.2=pyhcf101f3_0
|
|
221
|
+
- tk=8.6.15=h54e0aa7_0
|
|
222
|
+
- tomli=2.3.0=pyhcf101f3_0
|
|
223
|
+
- toolz=1.1.0=pyhd8ed1ab_1
|
|
224
|
+
- tornado=6.5.4=py312h961da02_0
|
|
225
|
+
- typing-extensions=4.15.0=h396c80c_0
|
|
226
|
+
- typing_extensions=4.15.0=pyhcf101f3_0
|
|
227
|
+
- tzdata=2025b=h04d1e81_0
|
|
228
|
+
- unicodedata2=17.0.0=py312h4c3975b_1
|
|
229
|
+
- uriparser=0.9.8=hac33072_0
|
|
230
|
+
- urllib3=2.6.3=pyhd8ed1ab_0
|
|
231
|
+
- versioneer=0.29=pyhd8ed1ab_0
|
|
232
|
+
- wheel=0.45.1=py312h06a4308_0
|
|
233
|
+
- wrapt=1.17.3=py312h4c3975b_1
|
|
234
|
+
- xarray=2025.12.0=pyhcf101f3_0
|
|
235
|
+
- xerces-c=3.3.0=hd9031aa_1
|
|
236
|
+
- xmltodict=1.0.2=pyhcf101f3_0
|
|
237
|
+
- xorg-libx11=1.8.12=h9b100fa_1
|
|
238
|
+
- xorg-libxau=1.0.12=h9b100fa_0
|
|
239
|
+
- xorg-libxdmcp=1.1.5=h9b100fa_0
|
|
240
|
+
- xorg-xorgproto=2024.1=h5eee18b_1
|
|
241
|
+
- xradar=0.10.0=pyhd8ed1ab_0
|
|
242
|
+
- xyzservices=2025.11.0=pyhd8ed1ab_0
|
|
243
|
+
- xz=5.8.1=hbcc6ac9_2
|
|
244
|
+
- xz-gpl-tools=5.8.1=hbcc6ac9_2
|
|
245
|
+
- xz-tools=5.8.1=hb9d3cd8_2
|
|
246
|
+
- yaml=0.2.5=h280c20c_3
|
|
247
|
+
- yarl=1.22.0=py312h8a5da7c_0
|
|
248
|
+
- zict=3.0.0=pyhd8ed1ab_1
|
|
249
|
+
- zipp=3.23.0=pyhcf101f3_1
|
|
250
|
+
- zlib=1.3.1=hb25bd0a_0
|
|
251
|
+
- zstd=1.5.7=hb78ec9c_6
|
|
252
|
+
- pip:
|
|
253
|
+
- absl-py==2.3.1
|
|
254
|
+
- asttokens==3.0.1
|
|
255
|
+
- astunparse==1.6.3
|
|
256
|
+
- comm==0.2.3
|
|
257
|
+
- debugpy==1.8.19
|
|
258
|
+
- decorator==5.2.1
|
|
259
|
+
- deprecation==2.1.0
|
|
260
|
+
- dm-tree==0.1.9
|
|
261
|
+
- et-xmlfile==2.0.0
|
|
262
|
+
- executing==2.2.1
|
|
263
|
+
- flatbuffers==25.12.19
|
|
264
|
+
- gast==0.7.0
|
|
265
|
+
- google-pasta==0.2.0
|
|
266
|
+
- grpcio==1.76.0
|
|
267
|
+
- ipykernel==7.1.0
|
|
268
|
+
- ipython==9.9.0
|
|
269
|
+
- ipython-pygments-lexers==1.1.1
|
|
270
|
+
- jedi==0.19.2
|
|
271
|
+
- jsmin==3.0.1
|
|
272
|
+
- jsonschema==4.26.0
|
|
273
|
+
- jsonschema-specifications==2025.9.1
|
|
274
|
+
- jupyter-client==8.8.0
|
|
275
|
+
- jupyter-core==5.9.1
|
|
276
|
+
- keras==3.13.0
|
|
277
|
+
- libclang==18.1.1
|
|
278
|
+
- markdown==3.10
|
|
279
|
+
- markdown-it-py==4.0.0
|
|
280
|
+
- matplotlib-inline==0.2.1
|
|
281
|
+
- mdurl==0.1.2
|
|
282
|
+
- metpy==1.7.1
|
|
283
|
+
- ml-dtypes==0.5.4
|
|
284
|
+
- namex==0.1.0
|
|
285
|
+
- nest-asyncio==1.6.0
|
|
286
|
+
- nmc-met-io==0.1.15.0
|
|
287
|
+
- numpy==2.2.6
|
|
288
|
+
- opencv-python==4.12.0.88
|
|
289
|
+
- openpyxl==3.1.5
|
|
290
|
+
- opt-einsum==3.4.0
|
|
291
|
+
- optree==0.18.0
|
|
292
|
+
- parso==0.8.5
|
|
293
|
+
- pexpect==4.9.0
|
|
294
|
+
- prompt-toolkit==3.0.52
|
|
295
|
+
- protobuf==6.33.3
|
|
296
|
+
- ptyprocess==0.7.0
|
|
297
|
+
- pure-eval==0.2.3
|
|
298
|
+
- pydda==2.2.0
|
|
299
|
+
- pygments==2.19.2
|
|
300
|
+
- pysteps==1.19.0
|
|
301
|
+
- pyzmq==27.1.0
|
|
302
|
+
- referencing==0.37.0
|
|
303
|
+
- rich==14.2.0
|
|
304
|
+
- rpds-py==0.30.0
|
|
305
|
+
- stack-data==0.6.3
|
|
306
|
+
- tensorboard==2.20.0
|
|
307
|
+
- tensorboard-data-server==0.7.2
|
|
308
|
+
- tensorflow==2.20.0
|
|
309
|
+
- tensorflow-probability==0.25.0
|
|
310
|
+
- termcolor==3.3.0
|
|
311
|
+
- tf-keras==2.20.1
|
|
312
|
+
- tqdm==4.67.1
|
|
313
|
+
- traitlets==5.14.3
|
|
314
|
+
- wcwidth==0.2.14
|
|
315
|
+
- werkzeug==3.1.5
|
|
316
|
+
- wradlib==2.6.1
|
|
317
|
+
prefix: /home/wjzhu/miniconda3/envs/radar312
|