metradar 0.1.6__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.
Files changed (101) hide show
  1. metradar-0.1.8/.gitignore +116 -0
  2. metradar-0.1.8/LICENSE +21 -0
  3. metradar-0.1.8/PKG-INFO +91 -0
  4. metradar-0.1.8/README.md +54 -0
  5. metradar-0.1.8/config.ini +8 -0
  6. metradar-0.1.8/environment.yml +317 -0
  7. metradar-0.1.8/examples/download_data_from_cmadaas.ipynb +724 -0
  8. metradar-0.1.8/examples/draw_mosaic_datan.ipynb +108 -0
  9. metradar-0.1.8/examples/draw_radar_aws.ipynb +551 -0
  10. metradar-0.1.8/examples/draw_radar_single.ipynb +701 -0
  11. metradar-0.1.8/examples/draw_swan.ipynb +309 -0
  12. metradar-0.1.8/examples/nowcasting_pysteps.ipynb +512 -0
  13. metradar-0.1.8/examples/qc_velocity_dealias_cn.ipynb +362 -0
  14. metradar-0.1.8/examples/qc_wradlib_clutter_cn.ipynb +4742 -0
  15. metradar-0.1.8/examples/read_rose.ipynb +5160 -0
  16. metradar-0.1.8/examples/wind_PyDDA_cn.ipynb +992 -0
  17. metradar-0.1.8/metradar/__init__.py +9 -0
  18. metradar-0.1.8/metradar/config.py +53 -0
  19. metradar-0.1.8/metradar/core/__init__.py +9 -0
  20. metradar-0.1.6/metradar/get_cross_section_from_pyart.py → metradar-0.1.8/metradar/core/get_cross_section.py +5 -157
  21. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/core}/mosaic_merge.py +3 -1
  22. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/core}/oa_dig_func.py +83 -333
  23. metradar-0.1.8/metradar/graph/__init__.py +9 -0
  24. metradar-0.1.6/metradar/mosaic_quickdraw.py → metradar-0.1.8/metradar/graph/draw_comp_mosaic.py +71 -68
  25. metradar-0.1.6/metradar/draw_mosaic_new.py → metradar-0.1.8/metradar/graph/draw_latlon_func.py +177 -173
  26. metradar-0.1.8/metradar/graph/draw_radar_aws.py +212 -0
  27. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/graph}/draw_radar_comp_func.py +319 -248
  28. metradar-0.1.8/metradar/graph/parse_pal.py +157 -0
  29. metradar-0.1.8/metradar/io/__init__.py +9 -0
  30. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/io}/cnrad_level2.py +45 -2
  31. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/io}/decode_fmt_pyart.py +19 -3
  32. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/io}/decode_pup_rose.py +241 -684
  33. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/io}/read_new_mosaic_func.py +30 -2
  34. metradar-0.1.8/metradar/io/read_swan.py +250 -0
  35. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/io}/rose_structer.py +2 -0
  36. metradar-0.1.8/metradar/project/__init__.py +9 -0
  37. metradar-0.1.8/metradar/project/make_mosaic/__init__.py +9 -0
  38. metradar-0.1.8/metradar/project/make_mosaic/batch_draw_mosaic.py +32 -0
  39. metradar-0.1.6/metradar/make_mosaic_mp_archive.py → metradar-0.1.8/metradar/project/make_mosaic/make_mosaic_func.py +144 -175
  40. metradar-0.1.8/metradar/project/make_mosaic/make_mosaic_mp.ini +29 -0
  41. metradar-0.1.8/metradar/project/make_mosaic/make_mosaic_mp.py +70 -0
  42. metradar-0.1.8/metradar/project/make_vpr_aws/__init__.py +9 -0
  43. metradar-0.1.8/metradar/project/make_vpr_aws/construct_aws_refvpr_mainprog.ini +39 -0
  44. metradar-0.1.8/metradar/project/make_vpr_aws/construct_aws_refvpr_mainprog.py +565 -0
  45. metradar-0.1.8/metradar/project/nowcasting/__init__.py +9 -0
  46. metradar-0.1.8/metradar/project/nowcasting/nowcast_by_pysteps.py +214 -0
  47. metradar-0.1.6/metradar/trans_nc_pgmb.py → metradar-0.1.8/metradar/project/nowcasting/trans_mosaic_pgmb.py +19 -17
  48. metradar-0.1.8/metradar/project/qpe/Archive /346/250/241/345/274/217/350/257/264/346/230/216.txt" +2 -0
  49. metradar-0.1.8/metradar/project/qpe/__init__.py +9 -0
  50. metradar-0.1.8/metradar/project/qpe/archive_main_qpe_cfg.ini +91 -0
  51. metradar-0.1.8/metradar/project/qpe/do_s1.sh +6 -0
  52. metradar-0.1.8/metradar/project/qpe/do_s2.sh +6 -0
  53. metradar-0.1.8/metradar/project/qpe/do_s3.sh +6 -0
  54. metradar-0.1.8/metradar/project/qpe/do_s4.sh +6 -0
  55. metradar-0.1.8/metradar/project/qpe/do_s5.sh +6 -0
  56. metradar-0.1.8/metradar/project/qpe/exec_all.sh +11 -0
  57. metradar-0.1.8/metradar/project/qpe/get_rainrate_func.py +80 -0
  58. metradar-0.1.8/metradar/project/qpe/main_qpe_cfg.ini +85 -0
  59. metradar-0.1.8/metradar/project/qpe/s1_download_radar_region_cmadaas.py +123 -0
  60. metradar-0.1.8/metradar/project/qpe/s2_pre_process_single_radar.py +183 -0
  61. metradar-0.1.8/metradar/project/qpe/s3_trans_rainrate_to_qpe.py +499 -0
  62. metradar-0.1.8/metradar/project/qpe/s4_mosaic_qpe.py +523 -0
  63. metradar-0.1.8/metradar/project/qpe/s5_draw_qpe_mosaic.py +308 -0
  64. metradar-0.1.8/metradar/project/wind_retrieval/__init__.py +9 -0
  65. metradar-0.1.8/metradar/project/wind_retrieval/config_3dwind.ini +45 -0
  66. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/project/wind_retrieval}/main_pydda.py +152 -149
  67. metradar-0.1.8/metradar/util/__init__.py +9 -0
  68. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/util}/comm_func.py +1 -41
  69. metradar-0.1.8/metradar/util/exceptions.py +50 -0
  70. metradar-0.1.8/metradar/util/geo_transforms_pyart.py +627 -0
  71. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/util}/get_tlogp_from_sharppy.py +16 -5
  72. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/util}/parse_pal.py +147 -147
  73. metradar-0.1.8/metradar/util/radar_common.py +16 -0
  74. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/util}/trans_new_mosaic_nc.py +1 -1
  75. metradar-0.1.8/metradar.egg-info/PKG-INFO +91 -0
  76. metradar-0.1.8/metradar.egg-info/SOURCES.txt +85 -0
  77. metradar-0.1.8/metradar.egg-info/requires.txt +11 -0
  78. metradar-0.1.8/metradar.egg-info/top_level.txt +1 -0
  79. {metradar-0.1.6 → metradar-0.1.8}/pyproject.toml +19 -11
  80. metradar-0.1.8/requirements.txt +160 -0
  81. {metradar-0.1.6 → metradar-0.1.8}/setup.cfg +0 -0
  82. metradar-0.1.8/setup.py +10 -0
  83. metradar-0.1.6/PKG-INFO +0 -37
  84. metradar-0.1.6/README.md +0 -8
  85. metradar-0.1.6/cfg/config.py +0 -90
  86. metradar-0.1.6/metradar/__init__.py +0 -7
  87. metradar-0.1.6/metradar/grid.py +0 -281
  88. metradar-0.1.6/metradar/grid_data.py +0 -64
  89. metradar-0.1.6/metradar/oa_couhua.py +0 -166
  90. metradar-0.1.6/metradar/read_new_mosaic.py +0 -33
  91. metradar-0.1.6/metradar/retrieve_cmadaas.py +0 -3126
  92. metradar-0.1.6/metradar/retrieve_micaps_server.py +0 -2061
  93. metradar-0.1.6/metradar.egg-info/PKG-INFO +0 -37
  94. metradar-0.1.6/metradar.egg-info/SOURCES.txt +0 -37
  95. metradar-0.1.6/metradar.egg-info/requires.txt +0 -8
  96. metradar-0.1.6/metradar.egg-info/top_level.txt +0 -3
  97. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/io}/pgmb_io.py +0 -0
  98. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/project/make_vpr_aws}/exceptions.py +0 -0
  99. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/project/make_vpr_aws}/geo_transforms_pyart.py +0 -0
  100. {metradar-0.1.6/metradar → metradar-0.1.8/metradar/util}/make_gif.py +0 -0
  101. {metradar-0.1.6 → metradar-0.1.8}/metradar.egg-info/dependency_links.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.
@@ -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
@@ -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,8 @@
1
+ # 用于metradar相关参数设置
2
+ # 建议使用vscode进行编辑,或notepad++等编辑器进行编辑
3
+ # RESOURCES_PATH路径下存放了各种资源文件,包括地图、字体、色标等
4
+ [SETTING]
5
+
6
+ RESOURCES_PATH = /home/wjzhu/OneDrive/PythonCode/MyWork/metradar/resources
7
+
8
+
@@ -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