wxdata 2.3__tar.gz → 3.0__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 (198) hide show
  1. wxdata-3.0/PKG-INFO +180 -0
  2. wxdata-3.0/README.md +148 -0
  3. {wxdata-2.3 → wxdata-3.0}/pyproject.toml +22 -3
  4. {wxdata-2.3 → wxdata-3.0}/src/wxdata/__init__.py +85 -11
  5. wxdata-3.0/src/wxdata/aigefs_cli.py +641 -0
  6. wxdata-3.0/src/wxdata/aigfs_cli.py +526 -0
  7. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/cfs/__init__.py +4 -0
  8. {wxdata-2.3/src/wxdata → wxdata-3.0/src/wxdata/archived_data}/model_data/noaa/cfs/cfs.py +353 -287
  9. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/cfs/url_scanner.py +226 -0
  10. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gefs/__init__.py +5 -0
  11. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gefs/gefs.py +2858 -0
  12. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gefs/url_scanner.py +693 -0
  13. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gfs/__init__.py +5 -0
  14. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gfs/gfs.py +2904 -0
  15. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gfs/url_scanners.py +431 -0
  16. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/rtma/__init__.py +1 -0
  17. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/rtma/rtma.py +229 -0
  18. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/rtma/url_scanner.py +134 -0
  19. wxdata-3.0/src/wxdata/archived_data/radar_data/__init__.py +4 -0
  20. wxdata-3.0/src/wxdata/archived_data/radar_data/nexrad2.py +237 -0
  21. wxdata-3.0/src/wxdata/cansips_cli.py +591 -0
  22. wxdata-3.0/src/wxdata/cfs_cli.py +1769 -0
  23. {wxdata-2.3 → wxdata-3.0}/src/wxdata/client/byte_range.py +113 -23
  24. {wxdata-2.3 → wxdata-3.0}/src/wxdata/client/client.py +231 -292
  25. wxdata-3.0/src/wxdata/ecmwf_cli.py +1689 -0
  26. wxdata-3.0/src/wxdata/gdps_cli.py +1275 -0
  27. wxdata-3.0/src/wxdata/gefs_cli.py +2103 -0
  28. wxdata-3.0/src/wxdata/geps_cli.py +758 -0
  29. wxdata-3.0/src/wxdata/gfs_cli.py +2087 -0
  30. {wxdata-2.3 → wxdata-3.0}/src/wxdata/gridded_forecasts/noaa/nws/nws.py +61 -29
  31. wxdata-3.0/src/wxdata/hgefs_cli.py +517 -0
  32. wxdata-3.0/src/wxdata/hrdps_cli.py +1259 -0
  33. wxdata-3.0/src/wxdata/metars_cli.py +115 -0
  34. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/cansips/forecast/cansips_forecast.py +41 -7
  35. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/cansips/hindcast/cansips_hindcast.py +38 -5
  36. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/gdps/gdps.py +42 -9
  37. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/geps/geps.py +39 -6
  38. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/hrdps/hrdps.py +38 -5
  39. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/rdps/rdps.py +38 -5
  40. wxdata-3.0/src/wxdata/model_data/ecmwf/__init__.py +17 -0
  41. wxdata-3.0/src/wxdata/model_data/ecmwf/byte_range.py +489 -0
  42. wxdata-3.0/src/wxdata/model_data/ecmwf/ecmwf.py +13076 -0
  43. wxdata-3.0/src/wxdata/model_data/ecmwf/url_scanners.py +3214 -0
  44. wxdata-3.0/src/wxdata/model_data/ecmwf/validate.py +40 -0
  45. wxdata-3.0/src/wxdata/model_data/noaa/aigefs/aigefs.py +1446 -0
  46. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/aigefs/url_scanners.py +176 -47
  47. wxdata-3.0/src/wxdata/model_data/noaa/aigfs/aigfs.py +670 -0
  48. wxdata-3.0/src/wxdata/model_data/noaa/aigfs/url_scanners.py +288 -0
  49. wxdata-3.0/src/wxdata/model_data/noaa/cfs/cfs.py +1652 -0
  50. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/cfs/file_scanner.py +1 -0
  51. wxdata-3.0/src/wxdata/model_data/noaa/cfs/url_scanners.py +814 -0
  52. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/gefs/gefs.py +1164 -530
  53. wxdata-3.0/src/wxdata/model_data/noaa/gefs/paths.py +58 -0
  54. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/gfs/gfs.py +1085 -510
  55. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/hgefs/hgefs.py +95 -90
  56. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/rtma/rtma.py +143 -56
  57. wxdata-3.0/src/wxdata/ndfd_cli.py +424 -0
  58. wxdata-3.0/src/wxdata/nexrad2_cli.py +301 -0
  59. {wxdata-2.3 → wxdata-3.0}/src/wxdata/observational_data/metars/metar_obs.py +1 -2
  60. {wxdata-2.3 → wxdata-3.0}/src/wxdata/observational_data/radar/nexrad2.py +32 -25
  61. wxdata-3.0/src/wxdata/observational_data/radar/url_scanner.py +246 -0
  62. {wxdata-2.3 → wxdata-3.0}/src/wxdata/observational_data/soundings/wyoming_soundings.py +50 -7
  63. {wxdata-2.3 → wxdata-3.0}/src/wxdata/post_processors/aigefs_post_processing.py +1 -0
  64. {wxdata-2.3 → wxdata-3.0}/src/wxdata/post_processors/aigfs_post_processing.py +1 -0
  65. wxdata-3.0/src/wxdata/post_processors/cfs_post_processing.py +273 -0
  66. {wxdata-2.3 → wxdata-3.0}/src/wxdata/post_processors/rtma_post_processing.py +24 -0
  67. wxdata-3.0/src/wxdata/rdps_cli.py +1282 -0
  68. wxdata-3.0/src/wxdata/rtma_cli.py +529 -0
  69. wxdata-3.0/src/wxdata/soundings_cli.py +246 -0
  70. {wxdata-2.3 → wxdata-3.0}/src/wxdata/utils/__init__.py +1 -1
  71. {wxdata-2.3 → wxdata-3.0}/src/wxdata/utils/tools.py +22 -13
  72. wxdata-3.0/src/wxdata/utils/transforms.py +73 -0
  73. wxdata-3.0/src/wxdata/utils/verify.py +38 -0
  74. wxdata-3.0/src/wxdata.egg-info/PKG-INFO +180 -0
  75. {wxdata-2.3 → wxdata-3.0}/src/wxdata.egg-info/SOURCES.txt +39 -2
  76. wxdata-3.0/src/wxdata.egg-info/entry_points.txt +18 -0
  77. {wxdata-2.3 → wxdata-3.0}/src/wxdata.egg-info/requires.txt +1 -1
  78. wxdata-2.3/PKG-INFO +0 -1078
  79. wxdata-2.3/README.md +0 -1046
  80. wxdata-2.3/src/wxdata/model_data/ecmwf/__init__.py +0 -11
  81. wxdata-2.3/src/wxdata/model_data/ecmwf/ecmwf.py +0 -6202
  82. wxdata-2.3/src/wxdata/model_data/ecmwf/url_scanners.py +0 -1103
  83. wxdata-2.3/src/wxdata/model_data/noaa/aigefs/aigefs.py +0 -750
  84. wxdata-2.3/src/wxdata/model_data/noaa/aigfs/aigfs.py +0 -310
  85. wxdata-2.3/src/wxdata/model_data/noaa/aigfs/url_scanners.py +0 -229
  86. wxdata-2.3/src/wxdata/model_data/noaa/cfs/url_scanners.py +0 -1048
  87. wxdata-2.3/src/wxdata/post_processors/cfs_post_processing.py +0 -1763
  88. wxdata-2.3/src/wxdata/utils/xmacis2_cleanup.py +0 -109
  89. wxdata-2.3/src/wxdata.egg-info/PKG-INFO +0 -1078
  90. {wxdata-2.3 → wxdata-3.0}/LICENSE +0 -0
  91. {wxdata-2.3 → wxdata-3.0}/setup.cfg +0 -0
  92. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/airnow_api/__init__.py +0 -0
  93. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/airnow_api/_errors.py +0 -0
  94. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/airnow_api/observations.py +0 -0
  95. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/air_quality/__init__.py +0 -0
  96. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/air_quality/cams.py +0 -0
  97. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/climate/__init__.py +0 -0
  98. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/climate/climate_data.py +0 -0
  99. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/marine_forecasts/__init__.py +0 -0
  100. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/marine_forecasts/dwd.py +0 -0
  101. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/marine_forecasts/ecmwf.py +0 -0
  102. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/marine_forecasts/meteo_france.py +0 -0
  103. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/marine_forecasts/noaa.py +0 -0
  104. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/seasonal_forecasts/__init__.py +0 -0
  105. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/seasonal_forecasts/ecmwf_daily.py +0 -0
  106. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/seasonal_forecasts/ecmwf_monthly.py +0 -0
  107. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/seasonal_forecasts/ecmwf_weekly.py +0 -0
  108. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/solar_radiation/__init__.py +0 -0
  109. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/solar_radiation/models.py +0 -0
  110. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/solar_radiation/solar_radiation.py +0 -0
  111. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/weather_forecasts/__init__.py +0 -0
  112. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/weather_forecasts/cmc.py +0 -0
  113. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/weather_forecasts/current_weather.py +0 -0
  114. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/weather_forecasts/dwd.py +0 -0
  115. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/weather_forecasts/ecmwf.py +0 -0
  116. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/weather_forecasts/google.py +0 -0
  117. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/weather_forecasts/jma.py +0 -0
  118. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/weather_forecasts/meteo_france.py +0 -0
  119. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/weather_forecasts/noaa.py +0 -0
  120. {wxdata-2.3 → wxdata-3.0}/src/wxdata/api/open_meteo_api/weather_forecasts/ukmo.py +0 -0
  121. {wxdata-2.3/src/wxdata → wxdata-3.0/src/wxdata/archived_data}/model_data/noaa/gefs/paths.py +0 -0
  122. {wxdata-2.3/src/wxdata/observational_data/radar → wxdata-3.0/src/wxdata/archived_data/radar_data}/url_scanner.py +0 -0
  123. {wxdata-2.3 → wxdata-3.0}/src/wxdata/calc/__init__.py +0 -0
  124. {wxdata-2.3 → wxdata-3.0}/src/wxdata/calc/derived_fields.py +0 -0
  125. {wxdata-2.3 → wxdata-3.0}/src/wxdata/calc/kinematics.py +0 -0
  126. {wxdata-2.3 → wxdata-3.0}/src/wxdata/calc/thermodynamics.py +0 -0
  127. {wxdata-2.3 → wxdata-3.0}/src/wxdata/calc/unit_conversion.py +0 -0
  128. {wxdata-2.3 → wxdata-3.0}/src/wxdata/client/__init__.py +0 -0
  129. {wxdata-2.3 → wxdata-3.0}/src/wxdata/client/level_coords.py +0 -0
  130. {wxdata-2.3 → wxdata-3.0}/src/wxdata/fuels_data/fems/__init__.py +0 -0
  131. {wxdata-2.3 → wxdata-3.0}/src/wxdata/fuels_data/fems/meta_data.py +0 -0
  132. {wxdata-2.3 → wxdata-3.0}/src/wxdata/fuels_data/fems/observations.py +0 -0
  133. {wxdata-2.3 → wxdata-3.0}/src/wxdata/gridded_forecasts/noaa/nws/__init__.py +0 -0
  134. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/cansips/forecast/__init__.py +0 -0
  135. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/cansips/forecast/url_scanner.py +0 -0
  136. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/cansips/hindcast/__init__.py +0 -0
  137. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/cansips/hindcast/file_sorter.py +0 -0
  138. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/cansips/hindcast/url_scanner.py +0 -0
  139. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/gdps/__init__.py +0 -0
  140. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/gdps/url_scanner.py +0 -0
  141. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/geps/__init__.py +0 -0
  142. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/geps/url_scanner.py +0 -0
  143. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/hrdps/__init__.py +0 -0
  144. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/hrdps/url_scanner.py +0 -0
  145. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/rdps/__init__.py +0 -0
  146. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/rdps/url_scanner.py +0 -0
  147. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/utils/_exceptions.py +0 -0
  148. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/utils/cmc_keys.py +0 -0
  149. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/utils/file_scanner.py +0 -0
  150. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/cmc/utils/filenames.py +0 -0
  151. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/ecmwf/file_funcs.py +0 -0
  152. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/ecmwf/keys.py +0 -0
  153. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/ecmwf/parsers.py +0 -0
  154. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/ecmwf/paths.py +0 -0
  155. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/aigefs/__init__.py +0 -0
  156. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/aigefs/paths.py +0 -0
  157. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/aigfs/__init__.py +0 -0
  158. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/aigfs/paths.py +0 -0
  159. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/cfs/__init__.py +0 -0
  160. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/gefs/__init__.py +0 -0
  161. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/gefs/exception_messages.py +0 -0
  162. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/gefs/file_funcs.py +0 -0
  163. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/gefs/url_scanners.py +0 -0
  164. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/gfs/__init__.py +0 -0
  165. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/gfs/exception_messages.py +0 -0
  166. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/gfs/paths.py +0 -0
  167. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/gfs/url_scanners.py +0 -0
  168. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/hgefs/__init__.py +0 -0
  169. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/hgefs/paths.py +0 -0
  170. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/hgefs/url_scanner.py +0 -0
  171. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/rtma/__init__.py +0 -0
  172. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/rtma/file_funcs.py +0 -0
  173. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/rtma/file_scanner.py +0 -0
  174. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/rtma/keys.py +0 -0
  175. {wxdata-2.3 → wxdata-3.0}/src/wxdata/model_data/noaa/rtma/url_scanners.py +0 -0
  176. {wxdata-2.3 → wxdata-3.0}/src/wxdata/observational_data/metars/__init__.py +0 -0
  177. {wxdata-2.3 → wxdata-3.0}/src/wxdata/observational_data/metars/_clean_data.py +0 -0
  178. {wxdata-2.3 → wxdata-3.0}/src/wxdata/observational_data/radar/__init__.py +0 -0
  179. {wxdata-2.3 → wxdata-3.0}/src/wxdata/observational_data/soundings/__init__.py +0 -0
  180. {wxdata-2.3 → wxdata-3.0}/src/wxdata/observational_data/soundings/_exceptions.py +0 -0
  181. {wxdata-2.3 → wxdata-3.0}/src/wxdata/post_processors/__init__.py +0 -0
  182. {wxdata-2.3 → wxdata-3.0}/src/wxdata/post_processors/cmc_post_processing.py +0 -0
  183. {wxdata-2.3 → wxdata-3.0}/src/wxdata/post_processors/ecmwf_post_processing.py +0 -0
  184. {wxdata-2.3 → wxdata-3.0}/src/wxdata/post_processors/gefs_post_processing.py +0 -0
  185. {wxdata-2.3 → wxdata-3.0}/src/wxdata/post_processors/gfs_post_processing.py +0 -0
  186. {wxdata-2.3 → wxdata-3.0}/src/wxdata/post_processors/hgefs_post_processing.py +0 -0
  187. {wxdata-2.3 → wxdata-3.0}/src/wxdata/utils/api.py +0 -0
  188. {wxdata-2.3 → wxdata-3.0}/src/wxdata/utils/coords.py +0 -0
  189. {wxdata-2.3 → wxdata-3.0}/src/wxdata/utils/exceptions.py +0 -0
  190. {wxdata-2.3 → wxdata-3.0}/src/wxdata/utils/file_funcs.py +0 -0
  191. {wxdata-2.3 → wxdata-3.0}/src/wxdata/utils/file_scanner.py +0 -0
  192. {wxdata-2.3 → wxdata-3.0}/src/wxdata/utils/nomads_gribfilter.py +0 -0
  193. {wxdata-2.3 → wxdata-3.0}/src/wxdata/utils/progress_bar.py +0 -0
  194. {wxdata-2.3 → wxdata-3.0}/src/wxdata/utils/recycle_bin.py +0 -0
  195. {wxdata-2.3 → wxdata-3.0}/src/wxdata/utils/scripts.py +0 -0
  196. {wxdata-2.3 → wxdata-3.0}/src/wxdata/utils/warnings.py +0 -0
  197. {wxdata-2.3 → wxdata-3.0}/src/wxdata.egg-info/dependency_links.txt +0 -0
  198. {wxdata-2.3 → wxdata-3.0}/src/wxdata.egg-info/top_level.txt +0 -0
wxdata-3.0/PKG-INFO ADDED
@@ -0,0 +1,180 @@
1
+ Metadata-Version: 2.4
2
+ Name: wxdata
3
+ Version: 3.0
4
+ Summary: A Python package of end-to-end weather data clients & raw data clients with VPN/Proxy Server support, data processors that decode variable keys from GRIB format into a plain-language format & various tools for assisting Python automated workflows, querying meteorological datasets and filling gaps in meteorological data.
5
+ Author: Eric J. Drewitz
6
+ Project-URL: Documentation, https://edrewitz.github.io/WxData/
7
+ Project-URL: Repository, https://github.com/edrewitz/wxdata/tree/main
8
+ Keywords: meteorology,atmospheric sciences
9
+ Classifier: Programming Language :: Python
10
+ Classifier: Topic :: Scientific/Engineering
11
+ Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
12
+ Classifier: Operating System :: OS Independent
13
+ Requires-Python: >=3.10
14
+ Description-Content-Type: text/markdown
15
+ License-File: LICENSE
16
+ Requires-Dist: metpy>=1.7.1
17
+ Requires-Dist: numpy>=2.2.6
18
+ Requires-Dist: pandas>=2.3.3
19
+ Requires-Dist: cartopy>=0.25.0
20
+ Requires-Dist: xarray>=2025.6.1
21
+ Requires-Dist: netcdf4>=1.7.3
22
+ Requires-Dist: shapeography>=1.2
23
+ Requires-Dist: beautifulsoup4>=4.14.3
24
+ Requires-Dist: requests>=2.32.5
25
+ Requires-Dist: cfgrib>=0.9.15.1
26
+ Requires-Dist: dask>=2025.11.0
27
+ Requires-Dist: tqdm>=4.67.3
28
+ Requires-Dist: openpyxl>=3.1.5
29
+ Requires-Dist: arm-pyart>=2.2.0
30
+ Requires-Dist: click>=8.3.1
31
+ Dynamic: license-file
32
+
33
+ <img src="https://github.com/edrewitz/WxData/blob/main/icons/wxdata_logo.png.png?raw=true" width="400" height="400" alt="Alt text" />
34
+
35
+ ***(C) Eric J. Drewitz 2025-2026***
36
+
37
+ [![Conda Recipe](https://img.shields.io/badge/recipe-wxdata-green.svg)](https://anaconda.org/conda-forge/wxdata) [![Conda Version](https://img.shields.io/conda/vn/conda-forge/wxdata.svg)](https://anaconda.org/conda-forge/wxdata) ![PyPI](https://img.shields.io/pypi/v/wxdata?label=pypi%20wxdata)
38
+
39
+ [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/wxdata.svg)](https://anaconda.org/conda-forge/wxdata)
40
+ [![Anaconda-Server Badge](https://anaconda.org/conda-forge/wxdata/badges/license.svg)](https://anaconda.org/conda-forge/wxdata) [![Anaconda-Server Badge](https://anaconda.org/conda-forge/wxdata/badges/latest_release_date.svg)](https://anaconda.org/conda-forge/wxdata)
41
+
42
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.17727621.svg)](https://doi.org/10.5281/zenodo.17727621)
43
+
44
+ **Anaconda Downloads**
45
+
46
+ [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/wxdata.svg)](https://anaconda.org/conda-forge/wxdata)
47
+
48
+
49
+ **PIP Downloads**
50
+
51
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/wxdata?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/wxdata)
52
+
53
+
54
+ **WxData User Guide**
55
+
56
+ 1) [What Is WxData?](https://edrewitz.github.io/WxData/#what-is-wxdata)
57
+
58
+ 2) [Installation Instructions](https://edrewitz.github.io/WxData/#installation-instructions)
59
+
60
+ 3) [WxData Documentation](https://edrewitz.github.io/WxData/#wxdata-documentation)
61
+
62
+ 1. [Real-Time Data Clients](https://edrewitz.github.io/WxData/#real-time-data-clients)
63
+
64
+ 2. [Archived Data Clients](https://edrewitz.github.io/WxData/#archived-data-clients)
65
+
66
+ 3. [Command Line Interface & Shell Scripting](https://edrewitz.github.io/WxData/#command-line-interface--shell-scripting)
67
+
68
+ 4. [Raw Data Clients](https://edrewitz.github.io/WxData/#raw-data-clients)
69
+
70
+ 5. [Post-Processors](https://edrewitz.github.io/WxData/#post-processors)
71
+
72
+ 6. [Data Querying Tools](https://edrewitz.github.io/WxData/#data-querying-tools)
73
+
74
+ 7. [Data Transformation & Gap Filling Tools](https://edrewitz.github.io/WxData/#data-transformation--gap-filling-tools)
75
+
76
+ 8. [Automated Python Workflow Tools](https://edrewitz.github.io/WxData/#automated-python-workflow-tools)
77
+
78
+ 9. [Open-Meteo API](https://edrewitz.github.io/WxData/#open-meteo-api)
79
+
80
+ 4) [WxData Tutorials](https://edrewitz.github.io/WxData/#wxdata-tutorials)
81
+
82
+ 5) [Server List](https://edrewitz.github.io/WxData/#server-list)
83
+
84
+ 6) [Citations](https://edrewitz.github.io/WxData/#citations)
85
+
86
+ 7) [Data Sources](https://edrewitz.github.io/WxData/#data-sources)
87
+
88
+ **About WxData**
89
+
90
+ WxData is a Python package that has many clients for retrieving and processing various types of meteorological datasets (both real-time and archived) with a focus on automation.
91
+ These datasets include 20+ Weather Forecast Models, Observational Data, Radar Data, Fuels Data (Fire Weather), Observed Upper-Air Sounding Data, Real-Time Mesoscale Analysis, Gridded NOAA National Weather Service Forecasts and Gridded NOAA Storm Prediction Center Outlooks, NOAA Climate Prediction Center Outlooks, as well as interfaces with the Open-Meteo and AirNow APIs.
92
+
93
+ - WxData has a command-line interface so users can write shell scripts to retrieve weather data.
94
+
95
+ - WxData has support for server choice and rotation (if a server fails to respond) between the following:
96
+
97
+ - NCEP/NOMADS -> Amazon Web Services -> Google Cloud
98
+
99
+ - ECMWF Open-Data -> Amazon Web Services -> Google Cloud
100
+
101
+ - WxData makes it easy for users to create automated ETL pipelines for their weather operations.
102
+
103
+ - These automated ETL pipelines can be quite advanced (i.e. multiple concurrent GRIB2 file downloads between the main [i.e. NCEP/NOMADS] and cloud servers [i.e. AWS & Google Cloud] to spread the traffic between multiple servers (and you can use a proxy server if you choose) -> extracting an `xarray.array` from the GRIB2 files -> cleaning the `xarray.array` and decoding the GRIB2 variable keys into plain-language -> transforming & exporting the cleaned and decoded `xarray.array` into a NETCDF (.nc) file.
104
+
105
+ - WxData supports GRIB -> NETCDF transformations.
106
+
107
+ - WxData decodes GRIB2 variable keys into plain-language and returns an `xarray.array` with the decoded variable keys.
108
+
109
+ - WxData has safeguards that prevent hitting server rate-limits.
110
+
111
+ - WxData has a medley of tools to query, fill gaps and transform data.
112
+
113
+ - WxData has additional tools to assist users with Python automated workflows.
114
+
115
+ - WxData allows users who work on VPNs and behind firewalls to access data through a user-specified proxy server.
116
+
117
+ **Citations**
118
+
119
+ **MetPy**: May, R. M., Goebbert, K. H., Thielen, J. E., Leeman, J. R., Camron, M. D., Bruick, Z.,
120
+ Bruning, E. C., Manser, R. P., Arms, S. C., and Marsh, P. T., 2022: MetPy: A
121
+ Meteorological Python Library for Data Analysis and Visualization. Bull. Amer. Meteor.
122
+ Soc., 103, E2273-E2284, https://doi.org/10.1175/BAMS-D-21-0125.1.
123
+
124
+ **xarray**: Hoyer, S., Hamman, J. (In revision). Xarray: N-D labeled arrays and datasets in Python. Journal of Open Research Software.
125
+
126
+ **cartopy**: Phil Elson, Elliott Sales de Andrade, Greg Lucas, Ryan May, Richard Hattersley, Ed Campbell, Andrew Dawson, Bill Little, Stephane Raynaud, scmc72, Alan D. Snow, Ruth Comer, Kevin Donkers, Byron Blay, Peter Killick, Nat Wilson, Patrick Peglar, lgolston, lbdreyer, … Chris Havlin. (2023). SciTools/cartopy: v0.22.0 (v0.22.0). Zenodo. https://doi.org/10.5281/zenodo.8216315
127
+
128
+ **NumPy**: Harris, C.R., Millman, K.J., van der Walt, S.J. et al. Array programming with NumPy. Nature 585, 357–362 (2020). DOI: 10.1038/s41586-020-2649-2. (Publisher link).
129
+
130
+ **Pandas**: Pandas: McKinney, W., & others. (2010). Data structures for statistical computing in python. In Proceedings of the 9th Python in Science Conference (Vol. 445, pp. 51–56).
131
+
132
+ **dask**: Dask Development Team (2016). Dask: Library for dynamic task scheduling. URL http://dask.pydata.org
133
+
134
+ **cfgrib**: Author: ECMWF, Year: (2025), Title: cfgrib: A Python interface to map GRIB files to xarray, Source: https://github.com/ecmwf/cfgrib
135
+
136
+ **requests**: K. Reitz, "Requests: HTTP for Humans". Available: https://requests.readthedocs.io/.
137
+
138
+ **Beautiful Soup**: Richardson, L. (2025). Beautiful Soup (Version 4.14.3) [Computer software]. https://www.crummy.com/software/BeautifulSoup/
139
+
140
+ **shapeography**: Eric J. Drewitz. (2026). edrewitz/shapeography: shapeography 1.0 Released (shapeography1.0). Zenodo. https://doi.org/10.5281/zenodo.18676845
141
+
142
+ **geopandas**: Kelsey Jordahl, Joris Van den Bossche, Martin Fleischmann, Jacob Wasserman, James McBride, Jeffrey Gerard, … François Leblanc. (2020, July 15). geopandas/geopandas: v0.8.1 (Version v0.8.1). Zenodo. http://doi.org/10.5281/zenodo.3946761
143
+
144
+ **tqdm**: da Costa-Luis, (2019). tqdm: A Fast, Extensible Progress Meter for Python and CLI. Journal of Open Source Software, 4(37), 1277, https://doi.org/10.21105/joss.01277
145
+
146
+ **ecmwf-opendata**: European Centre for Medium-Range Weather Forecasts (2026). ecmwf-opendata[Computer software]. GitHub. https://github.com/ecmwf/ecmwf-opendata
147
+
148
+ **openpyxl**: Gazoni, E., & Clark, C. (2024). openpyxl: A Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files (Version 3.1.5) [Computer software]. https://openpyxl.readthedocs.io/
149
+
150
+ **pyart**: Helmus, J.J. & Collis, S.M., (2016). The Python ARM Radar Toolkit (Py-ART), a Library for Working with Weather Radar Data in the Python Programming Language. Journal of Open Research Software. 4(1), p.e25. DOI: 10.5334/jors.119.
151
+
152
+ ----------------------------------------------------------
153
+
154
+ **Data Sources**
155
+
156
+ 1) [National Oceanic and Atmospheric Administration/National Center for Environmental Prediction](https://nomads.ncep.noaa.gov/)
157
+
158
+ 2) [European Centre for Medium-Range Weather Forecasts](https://data.ecmwf.int/forecasts/)
159
+
160
+ 3) [University of Wyoming](http://www.weather.uwyo.edu/upperair/sounding.shtml)
161
+
162
+ 4) [National Oceanic and Atmospheric Administration/National Weather Service](https://tgftp.nws.noaa.gov/)
163
+
164
+ 5) [National Oceanic and Atmospheric Administration/Aviation Weather Center](https://aviationweather.gov/)
165
+
166
+ 6) [National Oceanic and Atmospheric Administration/Climate Prediction Center](https://www.cpc.ncep.noaa.gov/products/GIS/GIS_DATA/us_tempprcpfcst/index.php)
167
+
168
+ 7) [Applied Climate Information System (ACIS)](https://www.rcc-acis.org/docs_webservices.html)
169
+
170
+ 8) [USDA Fire Environment Mapping System](https://fems.fs2c.usda.gov/download)
171
+
172
+ 9) [Open-Meteo API](https://open-meteo.com/)
173
+
174
+ 10) [Air Now API](https://docs.airnowapi.org/webservices)
175
+
176
+ 11) [Canadian Meteorological Centre](https://dd.weather.gc.ca/)
177
+
178
+ 12) [Amazon Web Services](https://aws.amazon.com/)
179
+
180
+ 13) [Google Cloud](https://cloud.google.com/)
wxdata-3.0/README.md ADDED
@@ -0,0 +1,148 @@
1
+ <img src="https://github.com/edrewitz/WxData/blob/main/icons/wxdata_logo.png.png?raw=true" width="400" height="400" alt="Alt text" />
2
+
3
+ ***(C) Eric J. Drewitz 2025-2026***
4
+
5
+ [![Conda Recipe](https://img.shields.io/badge/recipe-wxdata-green.svg)](https://anaconda.org/conda-forge/wxdata) [![Conda Version](https://img.shields.io/conda/vn/conda-forge/wxdata.svg)](https://anaconda.org/conda-forge/wxdata) ![PyPI](https://img.shields.io/pypi/v/wxdata?label=pypi%20wxdata)
6
+
7
+ [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/wxdata.svg)](https://anaconda.org/conda-forge/wxdata)
8
+ [![Anaconda-Server Badge](https://anaconda.org/conda-forge/wxdata/badges/license.svg)](https://anaconda.org/conda-forge/wxdata) [![Anaconda-Server Badge](https://anaconda.org/conda-forge/wxdata/badges/latest_release_date.svg)](https://anaconda.org/conda-forge/wxdata)
9
+
10
+ [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.17727621.svg)](https://doi.org/10.5281/zenodo.17727621)
11
+
12
+ **Anaconda Downloads**
13
+
14
+ [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/wxdata.svg)](https://anaconda.org/conda-forge/wxdata)
15
+
16
+
17
+ **PIP Downloads**
18
+
19
+ [![PyPI Downloads](https://static.pepy.tech/personalized-badge/wxdata?period=total&units=INTERNATIONAL_SYSTEM&left_color=BLACK&right_color=GREEN&left_text=downloads)](https://pepy.tech/projects/wxdata)
20
+
21
+
22
+ **WxData User Guide**
23
+
24
+ 1) [What Is WxData?](https://edrewitz.github.io/WxData/#what-is-wxdata)
25
+
26
+ 2) [Installation Instructions](https://edrewitz.github.io/WxData/#installation-instructions)
27
+
28
+ 3) [WxData Documentation](https://edrewitz.github.io/WxData/#wxdata-documentation)
29
+
30
+ 1. [Real-Time Data Clients](https://edrewitz.github.io/WxData/#real-time-data-clients)
31
+
32
+ 2. [Archived Data Clients](https://edrewitz.github.io/WxData/#archived-data-clients)
33
+
34
+ 3. [Command Line Interface & Shell Scripting](https://edrewitz.github.io/WxData/#command-line-interface--shell-scripting)
35
+
36
+ 4. [Raw Data Clients](https://edrewitz.github.io/WxData/#raw-data-clients)
37
+
38
+ 5. [Post-Processors](https://edrewitz.github.io/WxData/#post-processors)
39
+
40
+ 6. [Data Querying Tools](https://edrewitz.github.io/WxData/#data-querying-tools)
41
+
42
+ 7. [Data Transformation & Gap Filling Tools](https://edrewitz.github.io/WxData/#data-transformation--gap-filling-tools)
43
+
44
+ 8. [Automated Python Workflow Tools](https://edrewitz.github.io/WxData/#automated-python-workflow-tools)
45
+
46
+ 9. [Open-Meteo API](https://edrewitz.github.io/WxData/#open-meteo-api)
47
+
48
+ 4) [WxData Tutorials](https://edrewitz.github.io/WxData/#wxdata-tutorials)
49
+
50
+ 5) [Server List](https://edrewitz.github.io/WxData/#server-list)
51
+
52
+ 6) [Citations](https://edrewitz.github.io/WxData/#citations)
53
+
54
+ 7) [Data Sources](https://edrewitz.github.io/WxData/#data-sources)
55
+
56
+ **About WxData**
57
+
58
+ WxData is a Python package that has many clients for retrieving and processing various types of meteorological datasets (both real-time and archived) with a focus on automation.
59
+ These datasets include 20+ Weather Forecast Models, Observational Data, Radar Data, Fuels Data (Fire Weather), Observed Upper-Air Sounding Data, Real-Time Mesoscale Analysis, Gridded NOAA National Weather Service Forecasts and Gridded NOAA Storm Prediction Center Outlooks, NOAA Climate Prediction Center Outlooks, as well as interfaces with the Open-Meteo and AirNow APIs.
60
+
61
+ - WxData has a command-line interface so users can write shell scripts to retrieve weather data.
62
+
63
+ - WxData has support for server choice and rotation (if a server fails to respond) between the following:
64
+
65
+ - NCEP/NOMADS -> Amazon Web Services -> Google Cloud
66
+
67
+ - ECMWF Open-Data -> Amazon Web Services -> Google Cloud
68
+
69
+ - WxData makes it easy for users to create automated ETL pipelines for their weather operations.
70
+
71
+ - These automated ETL pipelines can be quite advanced (i.e. multiple concurrent GRIB2 file downloads between the main [i.e. NCEP/NOMADS] and cloud servers [i.e. AWS & Google Cloud] to spread the traffic between multiple servers (and you can use a proxy server if you choose) -> extracting an `xarray.array` from the GRIB2 files -> cleaning the `xarray.array` and decoding the GRIB2 variable keys into plain-language -> transforming & exporting the cleaned and decoded `xarray.array` into a NETCDF (.nc) file.
72
+
73
+ - WxData supports GRIB -> NETCDF transformations.
74
+
75
+ - WxData decodes GRIB2 variable keys into plain-language and returns an `xarray.array` with the decoded variable keys.
76
+
77
+ - WxData has safeguards that prevent hitting server rate-limits.
78
+
79
+ - WxData has a medley of tools to query, fill gaps and transform data.
80
+
81
+ - WxData has additional tools to assist users with Python automated workflows.
82
+
83
+ - WxData allows users who work on VPNs and behind firewalls to access data through a user-specified proxy server.
84
+
85
+ **Citations**
86
+
87
+ **MetPy**: May, R. M., Goebbert, K. H., Thielen, J. E., Leeman, J. R., Camron, M. D., Bruick, Z.,
88
+ Bruning, E. C., Manser, R. P., Arms, S. C., and Marsh, P. T., 2022: MetPy: A
89
+ Meteorological Python Library for Data Analysis and Visualization. Bull. Amer. Meteor.
90
+ Soc., 103, E2273-E2284, https://doi.org/10.1175/BAMS-D-21-0125.1.
91
+
92
+ **xarray**: Hoyer, S., Hamman, J. (In revision). Xarray: N-D labeled arrays and datasets in Python. Journal of Open Research Software.
93
+
94
+ **cartopy**: Phil Elson, Elliott Sales de Andrade, Greg Lucas, Ryan May, Richard Hattersley, Ed Campbell, Andrew Dawson, Bill Little, Stephane Raynaud, scmc72, Alan D. Snow, Ruth Comer, Kevin Donkers, Byron Blay, Peter Killick, Nat Wilson, Patrick Peglar, lgolston, lbdreyer, … Chris Havlin. (2023). SciTools/cartopy: v0.22.0 (v0.22.0). Zenodo. https://doi.org/10.5281/zenodo.8216315
95
+
96
+ **NumPy**: Harris, C.R., Millman, K.J., van der Walt, S.J. et al. Array programming with NumPy. Nature 585, 357–362 (2020). DOI: 10.1038/s41586-020-2649-2. (Publisher link).
97
+
98
+ **Pandas**: Pandas: McKinney, W., & others. (2010). Data structures for statistical computing in python. In Proceedings of the 9th Python in Science Conference (Vol. 445, pp. 51–56).
99
+
100
+ **dask**: Dask Development Team (2016). Dask: Library for dynamic task scheduling. URL http://dask.pydata.org
101
+
102
+ **cfgrib**: Author: ECMWF, Year: (2025), Title: cfgrib: A Python interface to map GRIB files to xarray, Source: https://github.com/ecmwf/cfgrib
103
+
104
+ **requests**: K. Reitz, "Requests: HTTP for Humans". Available: https://requests.readthedocs.io/.
105
+
106
+ **Beautiful Soup**: Richardson, L. (2025). Beautiful Soup (Version 4.14.3) [Computer software]. https://www.crummy.com/software/BeautifulSoup/
107
+
108
+ **shapeography**: Eric J. Drewitz. (2026). edrewitz/shapeography: shapeography 1.0 Released (shapeography1.0). Zenodo. https://doi.org/10.5281/zenodo.18676845
109
+
110
+ **geopandas**: Kelsey Jordahl, Joris Van den Bossche, Martin Fleischmann, Jacob Wasserman, James McBride, Jeffrey Gerard, … François Leblanc. (2020, July 15). geopandas/geopandas: v0.8.1 (Version v0.8.1). Zenodo. http://doi.org/10.5281/zenodo.3946761
111
+
112
+ **tqdm**: da Costa-Luis, (2019). tqdm: A Fast, Extensible Progress Meter for Python and CLI. Journal of Open Source Software, 4(37), 1277, https://doi.org/10.21105/joss.01277
113
+
114
+ **ecmwf-opendata**: European Centre for Medium-Range Weather Forecasts (2026). ecmwf-opendata[Computer software]. GitHub. https://github.com/ecmwf/ecmwf-opendata
115
+
116
+ **openpyxl**: Gazoni, E., & Clark, C. (2024). openpyxl: A Python library to read/write Excel 2010 xlsx/xlsm/xltx/xltm files (Version 3.1.5) [Computer software]. https://openpyxl.readthedocs.io/
117
+
118
+ **pyart**: Helmus, J.J. & Collis, S.M., (2016). The Python ARM Radar Toolkit (Py-ART), a Library for Working with Weather Radar Data in the Python Programming Language. Journal of Open Research Software. 4(1), p.e25. DOI: 10.5334/jors.119.
119
+
120
+ ----------------------------------------------------------
121
+
122
+ **Data Sources**
123
+
124
+ 1) [National Oceanic and Atmospheric Administration/National Center for Environmental Prediction](https://nomads.ncep.noaa.gov/)
125
+
126
+ 2) [European Centre for Medium-Range Weather Forecasts](https://data.ecmwf.int/forecasts/)
127
+
128
+ 3) [University of Wyoming](http://www.weather.uwyo.edu/upperair/sounding.shtml)
129
+
130
+ 4) [National Oceanic and Atmospheric Administration/National Weather Service](https://tgftp.nws.noaa.gov/)
131
+
132
+ 5) [National Oceanic and Atmospheric Administration/Aviation Weather Center](https://aviationweather.gov/)
133
+
134
+ 6) [National Oceanic and Atmospheric Administration/Climate Prediction Center](https://www.cpc.ncep.noaa.gov/products/GIS/GIS_DATA/us_tempprcpfcst/index.php)
135
+
136
+ 7) [Applied Climate Information System (ACIS)](https://www.rcc-acis.org/docs_webservices.html)
137
+
138
+ 8) [USDA Fire Environment Mapping System](https://fems.fs2c.usda.gov/download)
139
+
140
+ 9) [Open-Meteo API](https://open-meteo.com/)
141
+
142
+ 10) [Air Now API](https://docs.airnowapi.org/webservices)
143
+
144
+ 11) [Canadian Meteorological Centre](https://dd.weather.gc.ca/)
145
+
146
+ 12) [Amazon Web Services](https://aws.amazon.com/)
147
+
148
+ 13) [Google Cloud](https://cloud.google.com/)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "wxdata"
3
- version = "2.3"
3
+ version = "3.0"
4
4
  description = "A Python package of end-to-end weather data clients & raw data clients with VPN/Proxy Server support, data processors that decode variable keys from GRIB format into a plain-language format & various tools for assisting Python automated workflows, querying meteorological datasets and filling gaps in meteorological data."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -29,12 +29,31 @@ dependencies = [
29
29
  "cfgrib>=0.9.15.1",
30
30
  "dask>=2025.11.0",
31
31
  "tqdm>=4.67.3",
32
- "ecmwf-opendata>=0.3.26",
33
32
  "openpyxl>=3.1.5",
34
33
  "arm-pyart>=2.2.0",
34
+ "click>=8.3.1",
35
35
 
36
36
  ]
37
37
 
38
+ [project.scripts]
39
+ wxdata-rtma = "wxdata.rtma_cli:main"
40
+ wxdata-cfs = "wxdata.cfs_cli:main"
41
+ wxdata-gfs = "wxdata.gfs_cli:main"
42
+ wxdata-gefs = "wxdata.gefs_cli:main"
43
+ wxdata-aigefs = "wxdata.aigefs_cli:main"
44
+ wxdata-aigfs = "wxdata.aigfs_cli:main"
45
+ wxdata-hgefs = "wxdata.hgefs_cli:main"
46
+ wxdata-ecmwf = "wxdata.ecmwf_cli:main"
47
+ wxdata-cansips = "wxdata.cansips_cli:main"
48
+ wxdata-gdps = "wxdata.gdps_cli:main"
49
+ wxdata-rdps = "wxdata.rdps_cli:main"
50
+ wxdata-hrdps = "wxdata.hrdps_cli:main"
51
+ wxdata-geps = "wxdata.geps_cli:main"
52
+ wxdata-ndfd = "wxdata.ndfd_cli:main"
53
+ wxdata-soundings = "wxdata.soundings_cli:main"
54
+ wxdata-metars = "wxdata.metars_cli:main"
55
+ wxdata-nexrad2 = "wxdata.nexrad2_cli:main"
56
+
38
57
  [build-system]
39
58
  requires = ["setuptools>=64.0.0", "wheel"]
40
59
  build-backend = "setuptools.build_meta"
@@ -43,5 +62,5 @@ build-backend = "setuptools.build_meta"
43
62
  where = ["src"] # Look for packages in the src directory
44
63
 
45
64
  [project.urls]
46
- Documentation = "https://github.com/edrewitz/WxData/wiki"
65
+ Documentation = "https://edrewitz.github.io/WxData/"
47
66
  Repository = "https://github.com/edrewitz/wxdata/tree/main"
@@ -40,13 +40,73 @@ These functions do the following:
40
40
  """
41
41
 
42
42
  """
43
- ********************************************************************************
44
43
 
44
+ ***********************************************************************************************
45
45
 
46
- ************ This section hosts the Model Data Clients. ***********************
47
46
 
47
+ ************ This section hosts the Archived Model Data Clients ******************************
48
+
49
+
50
+ ***********************************************************************************************
51
+ """
52
+
53
+ # Global Forecast System (GFS)
54
+ # - GFS 0.25x0.25 Degree Primary Parameters
55
+ # - GFS 0.25x0.25 Degree Secondary Parameters
56
+ # - GFS 0.5x0.5 Degree
57
+ from wxdata.archived_data.model_data.noaa.gfs.gfs import(
58
+ get_archived_gfs_0p25,
59
+ get_archived_gfs_0p25_secondary_parameters,
60
+ get_archived_gfs_0p50
61
+ )
62
+
63
+ # Global Ensemble Forecast System (GEFS)
64
+ # - GEFS 0.5x0.5 Degree Primary Parameters
65
+ # - GEFS 0.5x0.5 Degree Secondary Parameters
66
+ # - GEFS 0.25x0.25 Degree
67
+ from wxdata.archived_data.model_data.noaa.gefs.gefs import(
68
+ get_archived_gefs_0p50,
69
+ get_archived_gefs_0p50_secondary_parameters,
70
+ get_archived_gefs_0p25
71
+ )
72
+
73
+ # Climate Forecast System (CFS)
74
+ # - CFS Flux Products
75
+ # - CFS Pressure Products
76
+ from wxdata.archived_data.model_data.noaa.cfs.cfs import(
77
+ get_archived_cfs_flux,
78
+ get_archived_cfs_pressure
79
+ )
80
+
81
+ # Real-Time Mesoscale Analysis (RTMA)
82
+ from wxdata.archived_data.model_data.noaa.rtma.rtma import get_archived_rtma
48
83
 
49
- ********************************************************************************
84
+ """
85
+
86
+ ***********************************************************************************************
87
+
88
+
89
+ ************ This section hosts the Archived Radar Data Clients ******************************
90
+
91
+
92
+ ***********************************************************************************************
93
+ """
94
+
95
+
96
+ from wxdata.archived_data.radar_data.nexrad2 import(
97
+ download_archived_single_station_nexrad2_radar_data,
98
+ download_archived_multi_station_nexrad2_radar_data
99
+ )
100
+
101
+ """
102
+
103
+ ***********************************************************************************************
104
+
105
+
106
+ ************ This section hosts the Model Data Clients (Latest Data). ************************
107
+
108
+
109
+ ***********************************************************************************************
50
110
  """
51
111
 
52
112
  ##############
@@ -107,19 +167,31 @@ from wxdata.model_data.noaa.rtma.rtma import(
107
167
  ##############################################################
108
168
  # European Centre for Medium-Range Weather Forecasts (ECMWF) #
109
169
  ##############################################################
110
- # - ECMWF IFS
111
- # - ECMWF IFS Ensemble
112
- # - ECMWF AIFS
113
- # - ECMWF AIFS Ensemble
114
- # - ECMWF IFS Wave
115
- # - ECMWF IFS Wave Ensemble
170
+ # - ECMWF IFS (0.25x0.25 Degree)
171
+ # - ECMWF IFS Ensemble (0.25x0.25 Degree)
172
+ # - ECMWF AIFS (0.25x0.25 Degree)
173
+ # - ECMWF AIFS Ensemble (0.25x0.25 Degree)
174
+ # - ECMWF IFS Wave (0.25x0.25 Degree)
175
+ # - ECMWF IFS Wave Ensemble (0.25x0.25 Degree)
176
+ # - ECMWF AIFS Wave (0.25x0.25 Degree)
177
+ # - ECMWF AIFS Wave Ensemble (0.25x0.25 Degree)
178
+ # - ECMWF High Resolution IFS (0.10x0.10 Degree)
179
+ # - ECMWF High Resolution IFS Ensemble (0.10x0.10 Degree)
180
+ # - ECMWF High Resolution IFS Wave (0.10x0.10 Degree)
181
+ # - ECMWF High Resolution IFS Wave Ensemble (0.10x0.10 Degree)
116
182
  from wxdata.model_data.ecmwf.ecmwf import(
117
183
  ecmwf_ifs,
118
184
  ecmwf_ifs_ens,
119
185
  ecmwf_aifs,
120
186
  ecmwf_aifs_ens,
121
187
  ecmwf_ifs_wave,
122
- ecmwf_ifs_wave_ens
188
+ ecmwf_ifs_wave_ens,
189
+ ecmwf_aifs_wave,
190
+ ecmwf_aifs_wave_ens,
191
+ ecmwf_high_res_ifs,
192
+ ecmwf_high_res_ifs_ens,
193
+ ecmwf_high_res_ifs_wave,
194
+ ecmwf_high_res_ifs_wave_ens
123
195
  )
124
196
 
125
197
  ##################################
@@ -307,6 +379,9 @@ from wxdata.utils.tools import(
307
379
  # This function executes a list of Python scripts in the order the user lists them
308
380
  from wxdata.utils.scripts import run_external_scripts
309
381
 
382
+ # This function transforms an xarray.array in GRIB2 format to netCDF4 format and writes a netCDF (.nc) file to a user-specified file path.
383
+ from wxdata.utils.transforms import grib_to_netcdf
384
+
310
385
  """
311
386
  ***************************************************************************
312
387
 
@@ -322,7 +397,6 @@ from wxdata.utils.scripts import run_external_scripts
322
397
  # - get_gridded_data()
323
398
  # - get_csv_data()
324
399
  # - get_excel_data()
325
- # - get_xmacis_data()
326
400
  # - get_aws_open_data()
327
401
  # - byte_range_request()
328
402
  import wxdata.client.client as client