wxdata 2.2__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 (214) hide show
  1. wxdata-3.0/PKG-INFO +180 -0
  2. wxdata-3.0/README.md +148 -0
  3. wxdata-3.0/pyproject.toml +66 -0
  4. wxdata-3.0/src/wxdata/__init__.py +475 -0
  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/api/airnow_api/__init__.py +1 -0
  8. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/airnow_api/observations.py +1 -1
  9. wxdata-3.0/src/wxdata/api/open_meteo_api/air_quality/__init__.py +1 -0
  10. wxdata-3.0/src/wxdata/api/open_meteo_api/climate/__init__.py +1 -0
  11. wxdata-3.0/src/wxdata/api/open_meteo_api/marine_forecasts/__init__.py +4 -0
  12. wxdata-3.0/src/wxdata/api/open_meteo_api/seasonal_forecasts/__init__.py +3 -0
  13. wxdata-3.0/src/wxdata/api/open_meteo_api/solar_radiation/__init__.py +1 -0
  14. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/solar_radiation/solar_radiation.py +1 -1
  15. wxdata-3.0/src/wxdata/api/open_meteo_api/weather_forecasts/__init__.py +9 -0
  16. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/cfs/__init__.py +4 -0
  17. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/archived_data/model_data/noaa}/cfs/cfs.py +353 -287
  18. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/cfs/url_scanner.py +226 -0
  19. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gefs/__init__.py +5 -0
  20. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gefs/gefs.py +2858 -0
  21. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gefs/url_scanner.py +693 -0
  22. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gfs/__init__.py +5 -0
  23. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gfs/gfs.py +2904 -0
  24. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gfs/url_scanners.py +431 -0
  25. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/rtma/__init__.py +1 -0
  26. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/rtma/rtma.py +229 -0
  27. wxdata-3.0/src/wxdata/archived_data/model_data/noaa/rtma/url_scanner.py +134 -0
  28. wxdata-3.0/src/wxdata/archived_data/radar_data/__init__.py +4 -0
  29. wxdata-3.0/src/wxdata/archived_data/radar_data/nexrad2.py +237 -0
  30. wxdata-3.0/src/wxdata/cansips_cli.py +591 -0
  31. wxdata-3.0/src/wxdata/cfs_cli.py +1769 -0
  32. {wxdata-2.2 → wxdata-3.0}/src/wxdata/client/byte_range.py +113 -23
  33. {wxdata-2.2 → wxdata-3.0}/src/wxdata/client/client.py +231 -292
  34. wxdata-3.0/src/wxdata/ecmwf_cli.py +1689 -0
  35. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/fuels_data}/fems/__init__.py +2 -2
  36. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/fuels_data}/fems/observations.py +1 -1
  37. wxdata-3.0/src/wxdata/gdps_cli.py +1275 -0
  38. wxdata-3.0/src/wxdata/gefs_cli.py +2103 -0
  39. wxdata-3.0/src/wxdata/geps_cli.py +758 -0
  40. wxdata-3.0/src/wxdata/gfs_cli.py +2087 -0
  41. {wxdata-2.2/src/wxdata/noaa → wxdata-3.0/src/wxdata/gridded_forecasts/noaa/nws}/__init__.py +1 -1
  42. {wxdata-2.2/src/wxdata/noaa → wxdata-3.0/src/wxdata/gridded_forecasts/noaa/nws}/nws.py +61 -29
  43. wxdata-3.0/src/wxdata/hgefs_cli.py +517 -0
  44. wxdata-3.0/src/wxdata/hrdps_cli.py +1259 -0
  45. wxdata-3.0/src/wxdata/metars_cli.py +115 -0
  46. wxdata-3.0/src/wxdata/model_data/cmc/cansips/forecast/__init__.py +1 -0
  47. wxdata-3.0/src/wxdata/model_data/cmc/cansips/forecast/cansips_forecast.py +315 -0
  48. wxdata-3.0/src/wxdata/model_data/cmc/cansips/forecast/url_scanner.py +435 -0
  49. wxdata-3.0/src/wxdata/model_data/cmc/cansips/hindcast/__init__.py +1 -0
  50. wxdata-3.0/src/wxdata/model_data/cmc/cansips/hindcast/cansips_hindcast.py +258 -0
  51. wxdata-3.0/src/wxdata/model_data/cmc/cansips/hindcast/file_sorter.py +91 -0
  52. wxdata-3.0/src/wxdata/model_data/cmc/cansips/hindcast/url_scanner.py +297 -0
  53. wxdata-3.0/src/wxdata/model_data/cmc/gdps/__init__.py +1 -0
  54. wxdata-3.0/src/wxdata/model_data/cmc/gdps/gdps.py +1249 -0
  55. wxdata-3.0/src/wxdata/model_data/cmc/gdps/url_scanner.py +559 -0
  56. wxdata-3.0/src/wxdata/model_data/cmc/geps/__init__.py +1 -0
  57. wxdata-3.0/src/wxdata/model_data/cmc/geps/geps.py +695 -0
  58. wxdata-3.0/src/wxdata/model_data/cmc/geps/url_scanner.py +476 -0
  59. wxdata-3.0/src/wxdata/model_data/cmc/hrdps/__init__.py +1 -0
  60. wxdata-3.0/src/wxdata/model_data/cmc/hrdps/hrdps.py +1277 -0
  61. wxdata-3.0/src/wxdata/model_data/cmc/hrdps/url_scanner.py +673 -0
  62. wxdata-3.0/src/wxdata/model_data/cmc/rdps/__init__.py +1 -0
  63. wxdata-3.0/src/wxdata/model_data/cmc/rdps/rdps.py +1292 -0
  64. wxdata-3.0/src/wxdata/model_data/cmc/rdps/url_scanner.py +709 -0
  65. wxdata-3.0/src/wxdata/model_data/cmc/utils/_exceptions.py +100 -0
  66. wxdata-3.0/src/wxdata/model_data/cmc/utils/cmc_keys.py +608 -0
  67. wxdata-3.0/src/wxdata/model_data/cmc/utils/file_scanner.py +67 -0
  68. wxdata-3.0/src/wxdata/model_data/cmc/utils/filenames.py +35 -0
  69. wxdata-3.0/src/wxdata/model_data/ecmwf/__init__.py +17 -0
  70. wxdata-3.0/src/wxdata/model_data/ecmwf/byte_range.py +489 -0
  71. wxdata-3.0/src/wxdata/model_data/ecmwf/ecmwf.py +13076 -0
  72. wxdata-3.0/src/wxdata/model_data/ecmwf/url_scanners.py +3214 -0
  73. wxdata-3.0/src/wxdata/model_data/ecmwf/validate.py +40 -0
  74. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/aigefs/__init__.py +1 -1
  75. wxdata-3.0/src/wxdata/model_data/noaa/aigefs/aigefs.py +1446 -0
  76. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/aigefs/url_scanners.py +176 -47
  77. wxdata-3.0/src/wxdata/model_data/noaa/aigfs/__init__.py +3 -0
  78. wxdata-3.0/src/wxdata/model_data/noaa/aigfs/aigfs.py +670 -0
  79. wxdata-3.0/src/wxdata/model_data/noaa/aigfs/url_scanners.py +288 -0
  80. wxdata-3.0/src/wxdata/model_data/noaa/cfs/__init__.py +4 -0
  81. wxdata-3.0/src/wxdata/model_data/noaa/cfs/cfs.py +1652 -0
  82. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/cfs/file_scanner.py +1 -0
  83. wxdata-3.0/src/wxdata/model_data/noaa/cfs/url_scanners.py +814 -0
  84. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gefs/__init__.py +1 -1
  85. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gefs/gefs.py +1166 -532
  86. wxdata-3.0/src/wxdata/model_data/noaa/gefs/paths.py +58 -0
  87. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gefs/url_scanners.py +1 -1
  88. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gfs/__init__.py +1 -1
  89. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gfs/gfs.py +1087 -512
  90. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gfs/url_scanners.py +1 -1
  91. wxdata-3.0/src/wxdata/model_data/noaa/hgefs/__init__.py +1 -0
  92. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/hgefs/hgefs.py +97 -92
  93. wxdata-3.0/src/wxdata/model_data/noaa/rtma/__init__.py +4 -0
  94. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/rtma/rtma.py +146 -59
  95. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/rtma/url_scanners.py +1 -1
  96. wxdata-3.0/src/wxdata/ndfd_cli.py +424 -0
  97. wxdata-3.0/src/wxdata/nexrad2_cli.py +301 -0
  98. wxdata-3.0/src/wxdata/observational_data/metars/__init__.py +3 -0
  99. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/observational_data}/metars/metar_obs.py +2 -3
  100. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/observational_data}/radar/__init__.py +1 -1
  101. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/observational_data}/radar/nexrad2.py +33 -26
  102. wxdata-3.0/src/wxdata/observational_data/radar/url_scanner.py +246 -0
  103. wxdata-3.0/src/wxdata/observational_data/soundings/__init__.py +3 -0
  104. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/observational_data}/soundings/wyoming_soundings.py +51 -8
  105. {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/__init__.py +1 -0
  106. {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/aigefs_post_processing.py +1 -0
  107. {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/aigfs_post_processing.py +1 -0
  108. wxdata-3.0/src/wxdata/post_processors/cfs_post_processing.py +273 -0
  109. wxdata-3.0/src/wxdata/post_processors/cmc_post_processing.py +523 -0
  110. {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/rtma_post_processing.py +24 -0
  111. wxdata-3.0/src/wxdata/rdps_cli.py +1282 -0
  112. wxdata-3.0/src/wxdata/rtma_cli.py +529 -0
  113. wxdata-3.0/src/wxdata/soundings_cli.py +246 -0
  114. {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/__init__.py +1 -1
  115. {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/tools.py +22 -13
  116. wxdata-3.0/src/wxdata/utils/transforms.py +73 -0
  117. wxdata-3.0/src/wxdata/utils/verify.py +38 -0
  118. wxdata-3.0/src/wxdata.egg-info/PKG-INFO +180 -0
  119. wxdata-3.0/src/wxdata.egg-info/SOURCES.txt +184 -0
  120. wxdata-3.0/src/wxdata.egg-info/entry_points.txt +18 -0
  121. {wxdata-2.2 → wxdata-3.0}/src/wxdata.egg-info/requires.txt +1 -1
  122. wxdata-2.2/PKG-INFO +0 -977
  123. wxdata-2.2/README.md +0 -945
  124. wxdata-2.2/pyproject.toml +0 -47
  125. wxdata-2.2/src/wxdata/__init__.py +0 -326
  126. wxdata-2.2/src/wxdata/aigefs/aigefs.py +0 -750
  127. wxdata-2.2/src/wxdata/aigfs/__init__.py +0 -3
  128. wxdata-2.2/src/wxdata/aigfs/aigfs.py +0 -310
  129. wxdata-2.2/src/wxdata/aigfs/url_scanners.py +0 -229
  130. wxdata-2.2/src/wxdata/airnow_api/__init__.py +0 -1
  131. wxdata-2.2/src/wxdata/cfs/__init__.py +0 -4
  132. wxdata-2.2/src/wxdata/cfs/url_scanners.py +0 -1048
  133. wxdata-2.2/src/wxdata/ecmwf/__init__.py +0 -11
  134. wxdata-2.2/src/wxdata/ecmwf/ecmwf.py +0 -6202
  135. wxdata-2.2/src/wxdata/ecmwf/url_scanners.py +0 -1103
  136. wxdata-2.2/src/wxdata/hgefs/__init__.py +0 -1
  137. wxdata-2.2/src/wxdata/metars/__init__.py +0 -3
  138. wxdata-2.2/src/wxdata/open_meteo_api/air_quality/__init__.py +0 -1
  139. wxdata-2.2/src/wxdata/open_meteo_api/climate/__init__.py +0 -1
  140. wxdata-2.2/src/wxdata/open_meteo_api/marine_forecasts/__init__.py +0 -4
  141. wxdata-2.2/src/wxdata/open_meteo_api/seasonal_forecasts/__init__.py +0 -3
  142. wxdata-2.2/src/wxdata/open_meteo_api/solar_radiation/__init__.py +0 -1
  143. wxdata-2.2/src/wxdata/open_meteo_api/weather_forecasts/__init__.py +0 -9
  144. wxdata-2.2/src/wxdata/post_processors/cfs_post_processing.py +0 -1763
  145. wxdata-2.2/src/wxdata/rtma/__init__.py +0 -4
  146. wxdata-2.2/src/wxdata/soundings/__init__.py +0 -3
  147. wxdata-2.2/src/wxdata/utils/xmacis2_cleanup.py +0 -109
  148. wxdata-2.2/src/wxdata.egg-info/PKG-INFO +0 -977
  149. wxdata-2.2/src/wxdata.egg-info/SOURCES.txt +0 -123
  150. {wxdata-2.2 → wxdata-3.0}/LICENSE +0 -0
  151. {wxdata-2.2 → wxdata-3.0}/setup.cfg +0 -0
  152. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/airnow_api/_errors.py +0 -0
  153. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/air_quality/cams.py +0 -0
  154. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/climate/climate_data.py +0 -0
  155. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/marine_forecasts/dwd.py +0 -0
  156. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/marine_forecasts/ecmwf.py +0 -0
  157. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/marine_forecasts/meteo_france.py +0 -0
  158. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/marine_forecasts/noaa.py +0 -0
  159. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/seasonal_forecasts/ecmwf_daily.py +0 -0
  160. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/seasonal_forecasts/ecmwf_monthly.py +0 -0
  161. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/seasonal_forecasts/ecmwf_weekly.py +0 -0
  162. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/solar_radiation/models.py +0 -0
  163. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/cmc.py +0 -0
  164. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/current_weather.py +0 -0
  165. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/dwd.py +0 -0
  166. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/ecmwf.py +0 -0
  167. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/google.py +0 -0
  168. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/jma.py +0 -0
  169. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/meteo_france.py +0 -0
  170. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/noaa.py +0 -0
  171. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/ukmo.py +0 -0
  172. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/archived_data/model_data/noaa}/gefs/paths.py +0 -0
  173. {wxdata-2.2/src/wxdata/radar → wxdata-3.0/src/wxdata/archived_data/radar_data}/url_scanner.py +0 -0
  174. {wxdata-2.2 → wxdata-3.0}/src/wxdata/calc/__init__.py +0 -0
  175. {wxdata-2.2 → wxdata-3.0}/src/wxdata/calc/derived_fields.py +0 -0
  176. {wxdata-2.2 → wxdata-3.0}/src/wxdata/calc/kinematics.py +0 -0
  177. {wxdata-2.2 → wxdata-3.0}/src/wxdata/calc/thermodynamics.py +0 -0
  178. {wxdata-2.2 → wxdata-3.0}/src/wxdata/calc/unit_conversion.py +0 -0
  179. {wxdata-2.2 → wxdata-3.0}/src/wxdata/client/__init__.py +0 -0
  180. {wxdata-2.2 → wxdata-3.0}/src/wxdata/client/level_coords.py +0 -0
  181. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/fuels_data}/fems/meta_data.py +0 -0
  182. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data}/ecmwf/file_funcs.py +0 -0
  183. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data}/ecmwf/keys.py +0 -0
  184. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data}/ecmwf/parsers.py +0 -0
  185. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data}/ecmwf/paths.py +0 -0
  186. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/aigefs/paths.py +0 -0
  187. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/aigfs/paths.py +0 -0
  188. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gefs/exception_messages.py +0 -0
  189. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gefs/file_funcs.py +0 -0
  190. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gfs/exception_messages.py +0 -0
  191. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gfs/paths.py +0 -0
  192. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/hgefs/paths.py +0 -0
  193. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/hgefs/url_scanner.py +0 -0
  194. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/rtma/file_funcs.py +0 -0
  195. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/rtma/file_scanner.py +0 -0
  196. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/rtma/keys.py +0 -0
  197. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/observational_data}/metars/_clean_data.py +0 -0
  198. {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/observational_data}/soundings/_exceptions.py +0 -0
  199. {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/ecmwf_post_processing.py +0 -0
  200. {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/gefs_post_processing.py +0 -0
  201. {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/gfs_post_processing.py +0 -0
  202. {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/hgefs_post_processing.py +0 -0
  203. {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/api.py +0 -0
  204. {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/coords.py +0 -0
  205. {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/exceptions.py +0 -0
  206. {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/file_funcs.py +0 -0
  207. {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/file_scanner.py +0 -0
  208. {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/nomads_gribfilter.py +0 -0
  209. {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/progress_bar.py +0 -0
  210. {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/recycle_bin.py +0 -0
  211. {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/scripts.py +0 -0
  212. {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/warnings.py +0 -0
  213. {wxdata-2.2 → wxdata-3.0}/src/wxdata.egg-info/dependency_links.txt +0 -0
  214. {wxdata-2.2 → 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/)
@@ -0,0 +1,66 @@
1
+ [project]
2
+ name = "wxdata"
3
+ version = "3.0"
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
+ readme = "README.md"
6
+ requires-python = ">=3.10"
7
+ license-files = ["LICENSE*"]
8
+ authors = [
9
+ { name = "Eric J. Drewitz" },
10
+ ]
11
+ keywords = ["meteorology", "atmospheric sciences"]
12
+ classifiers = [
13
+ "Programming Language :: Python",
14
+ "Topic :: Scientific/Engineering",
15
+ "Topic :: Scientific/Engineering :: Atmospheric Science",
16
+ "Operating System :: OS Independent",
17
+ ]
18
+
19
+ dependencies = [
20
+ "metpy>=1.7.1",
21
+ "numpy>=2.2.6",
22
+ "pandas>=2.3.3",
23
+ "cartopy>=0.25.0",
24
+ "xarray>=2025.6.1",
25
+ "netcdf4>=1.7.3",
26
+ "shapeography>=1.2",
27
+ "beautifulsoup4>=4.14.3",
28
+ "requests>=2.32.5",
29
+ "cfgrib>=0.9.15.1",
30
+ "dask>=2025.11.0",
31
+ "tqdm>=4.67.3",
32
+ "openpyxl>=3.1.5",
33
+ "arm-pyart>=2.2.0",
34
+ "click>=8.3.1",
35
+
36
+ ]
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
+
57
+ [build-system]
58
+ requires = ["setuptools>=64.0.0", "wheel"]
59
+ build-backend = "setuptools.build_meta"
60
+
61
+ [tool.setuptools.packages.find]
62
+ where = ["src"] # Look for packages in the src directory
63
+
64
+ [project.urls]
65
+ Documentation = "https://edrewitz.github.io/WxData/"
66
+ Repository = "https://github.com/edrewitz/wxdata/tree/main"