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.
- wxdata-3.0/PKG-INFO +180 -0
- wxdata-3.0/README.md +148 -0
- wxdata-3.0/pyproject.toml +66 -0
- wxdata-3.0/src/wxdata/__init__.py +475 -0
- wxdata-3.0/src/wxdata/aigefs_cli.py +641 -0
- wxdata-3.0/src/wxdata/aigfs_cli.py +526 -0
- wxdata-3.0/src/wxdata/api/airnow_api/__init__.py +1 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/airnow_api/observations.py +1 -1
- wxdata-3.0/src/wxdata/api/open_meteo_api/air_quality/__init__.py +1 -0
- wxdata-3.0/src/wxdata/api/open_meteo_api/climate/__init__.py +1 -0
- wxdata-3.0/src/wxdata/api/open_meteo_api/marine_forecasts/__init__.py +4 -0
- wxdata-3.0/src/wxdata/api/open_meteo_api/seasonal_forecasts/__init__.py +3 -0
- wxdata-3.0/src/wxdata/api/open_meteo_api/solar_radiation/__init__.py +1 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/solar_radiation/solar_radiation.py +1 -1
- wxdata-3.0/src/wxdata/api/open_meteo_api/weather_forecasts/__init__.py +9 -0
- wxdata-3.0/src/wxdata/archived_data/model_data/noaa/cfs/__init__.py +4 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/archived_data/model_data/noaa}/cfs/cfs.py +353 -287
- wxdata-3.0/src/wxdata/archived_data/model_data/noaa/cfs/url_scanner.py +226 -0
- wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gefs/__init__.py +5 -0
- wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gefs/gefs.py +2858 -0
- wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gefs/url_scanner.py +693 -0
- wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gfs/__init__.py +5 -0
- wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gfs/gfs.py +2904 -0
- wxdata-3.0/src/wxdata/archived_data/model_data/noaa/gfs/url_scanners.py +431 -0
- wxdata-3.0/src/wxdata/archived_data/model_data/noaa/rtma/__init__.py +1 -0
- wxdata-3.0/src/wxdata/archived_data/model_data/noaa/rtma/rtma.py +229 -0
- wxdata-3.0/src/wxdata/archived_data/model_data/noaa/rtma/url_scanner.py +134 -0
- wxdata-3.0/src/wxdata/archived_data/radar_data/__init__.py +4 -0
- wxdata-3.0/src/wxdata/archived_data/radar_data/nexrad2.py +237 -0
- wxdata-3.0/src/wxdata/cansips_cli.py +591 -0
- wxdata-3.0/src/wxdata/cfs_cli.py +1769 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/client/byte_range.py +113 -23
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/client/client.py +231 -292
- wxdata-3.0/src/wxdata/ecmwf_cli.py +1689 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/fuels_data}/fems/__init__.py +2 -2
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/fuels_data}/fems/observations.py +1 -1
- wxdata-3.0/src/wxdata/gdps_cli.py +1275 -0
- wxdata-3.0/src/wxdata/gefs_cli.py +2103 -0
- wxdata-3.0/src/wxdata/geps_cli.py +758 -0
- wxdata-3.0/src/wxdata/gfs_cli.py +2087 -0
- {wxdata-2.2/src/wxdata/noaa → wxdata-3.0/src/wxdata/gridded_forecasts/noaa/nws}/__init__.py +1 -1
- {wxdata-2.2/src/wxdata/noaa → wxdata-3.0/src/wxdata/gridded_forecasts/noaa/nws}/nws.py +61 -29
- wxdata-3.0/src/wxdata/hgefs_cli.py +517 -0
- wxdata-3.0/src/wxdata/hrdps_cli.py +1259 -0
- wxdata-3.0/src/wxdata/metars_cli.py +115 -0
- wxdata-3.0/src/wxdata/model_data/cmc/cansips/forecast/__init__.py +1 -0
- wxdata-3.0/src/wxdata/model_data/cmc/cansips/forecast/cansips_forecast.py +315 -0
- wxdata-3.0/src/wxdata/model_data/cmc/cansips/forecast/url_scanner.py +435 -0
- wxdata-3.0/src/wxdata/model_data/cmc/cansips/hindcast/__init__.py +1 -0
- wxdata-3.0/src/wxdata/model_data/cmc/cansips/hindcast/cansips_hindcast.py +258 -0
- wxdata-3.0/src/wxdata/model_data/cmc/cansips/hindcast/file_sorter.py +91 -0
- wxdata-3.0/src/wxdata/model_data/cmc/cansips/hindcast/url_scanner.py +297 -0
- wxdata-3.0/src/wxdata/model_data/cmc/gdps/__init__.py +1 -0
- wxdata-3.0/src/wxdata/model_data/cmc/gdps/gdps.py +1249 -0
- wxdata-3.0/src/wxdata/model_data/cmc/gdps/url_scanner.py +559 -0
- wxdata-3.0/src/wxdata/model_data/cmc/geps/__init__.py +1 -0
- wxdata-3.0/src/wxdata/model_data/cmc/geps/geps.py +695 -0
- wxdata-3.0/src/wxdata/model_data/cmc/geps/url_scanner.py +476 -0
- wxdata-3.0/src/wxdata/model_data/cmc/hrdps/__init__.py +1 -0
- wxdata-3.0/src/wxdata/model_data/cmc/hrdps/hrdps.py +1277 -0
- wxdata-3.0/src/wxdata/model_data/cmc/hrdps/url_scanner.py +673 -0
- wxdata-3.0/src/wxdata/model_data/cmc/rdps/__init__.py +1 -0
- wxdata-3.0/src/wxdata/model_data/cmc/rdps/rdps.py +1292 -0
- wxdata-3.0/src/wxdata/model_data/cmc/rdps/url_scanner.py +709 -0
- wxdata-3.0/src/wxdata/model_data/cmc/utils/_exceptions.py +100 -0
- wxdata-3.0/src/wxdata/model_data/cmc/utils/cmc_keys.py +608 -0
- wxdata-3.0/src/wxdata/model_data/cmc/utils/file_scanner.py +67 -0
- wxdata-3.0/src/wxdata/model_data/cmc/utils/filenames.py +35 -0
- wxdata-3.0/src/wxdata/model_data/ecmwf/__init__.py +17 -0
- wxdata-3.0/src/wxdata/model_data/ecmwf/byte_range.py +489 -0
- wxdata-3.0/src/wxdata/model_data/ecmwf/ecmwf.py +13076 -0
- wxdata-3.0/src/wxdata/model_data/ecmwf/url_scanners.py +3214 -0
- wxdata-3.0/src/wxdata/model_data/ecmwf/validate.py +40 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/aigefs/__init__.py +1 -1
- wxdata-3.0/src/wxdata/model_data/noaa/aigefs/aigefs.py +1446 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/aigefs/url_scanners.py +176 -47
- wxdata-3.0/src/wxdata/model_data/noaa/aigfs/__init__.py +3 -0
- wxdata-3.0/src/wxdata/model_data/noaa/aigfs/aigfs.py +670 -0
- wxdata-3.0/src/wxdata/model_data/noaa/aigfs/url_scanners.py +288 -0
- wxdata-3.0/src/wxdata/model_data/noaa/cfs/__init__.py +4 -0
- wxdata-3.0/src/wxdata/model_data/noaa/cfs/cfs.py +1652 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/cfs/file_scanner.py +1 -0
- wxdata-3.0/src/wxdata/model_data/noaa/cfs/url_scanners.py +814 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gefs/__init__.py +1 -1
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gefs/gefs.py +1166 -532
- wxdata-3.0/src/wxdata/model_data/noaa/gefs/paths.py +58 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gefs/url_scanners.py +1 -1
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gfs/__init__.py +1 -1
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gfs/gfs.py +1087 -512
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gfs/url_scanners.py +1 -1
- wxdata-3.0/src/wxdata/model_data/noaa/hgefs/__init__.py +1 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/hgefs/hgefs.py +97 -92
- wxdata-3.0/src/wxdata/model_data/noaa/rtma/__init__.py +4 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/rtma/rtma.py +146 -59
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/rtma/url_scanners.py +1 -1
- wxdata-3.0/src/wxdata/ndfd_cli.py +424 -0
- wxdata-3.0/src/wxdata/nexrad2_cli.py +301 -0
- wxdata-3.0/src/wxdata/observational_data/metars/__init__.py +3 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/observational_data}/metars/metar_obs.py +2 -3
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/observational_data}/radar/__init__.py +1 -1
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/observational_data}/radar/nexrad2.py +33 -26
- wxdata-3.0/src/wxdata/observational_data/radar/url_scanner.py +246 -0
- wxdata-3.0/src/wxdata/observational_data/soundings/__init__.py +3 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/observational_data}/soundings/wyoming_soundings.py +51 -8
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/__init__.py +1 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/aigefs_post_processing.py +1 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/aigfs_post_processing.py +1 -0
- wxdata-3.0/src/wxdata/post_processors/cfs_post_processing.py +273 -0
- wxdata-3.0/src/wxdata/post_processors/cmc_post_processing.py +523 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/rtma_post_processing.py +24 -0
- wxdata-3.0/src/wxdata/rdps_cli.py +1282 -0
- wxdata-3.0/src/wxdata/rtma_cli.py +529 -0
- wxdata-3.0/src/wxdata/soundings_cli.py +246 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/__init__.py +1 -1
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/tools.py +22 -13
- wxdata-3.0/src/wxdata/utils/transforms.py +73 -0
- wxdata-3.0/src/wxdata/utils/verify.py +38 -0
- wxdata-3.0/src/wxdata.egg-info/PKG-INFO +180 -0
- wxdata-3.0/src/wxdata.egg-info/SOURCES.txt +184 -0
- wxdata-3.0/src/wxdata.egg-info/entry_points.txt +18 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata.egg-info/requires.txt +1 -1
- wxdata-2.2/PKG-INFO +0 -977
- wxdata-2.2/README.md +0 -945
- wxdata-2.2/pyproject.toml +0 -47
- wxdata-2.2/src/wxdata/__init__.py +0 -326
- wxdata-2.2/src/wxdata/aigefs/aigefs.py +0 -750
- wxdata-2.2/src/wxdata/aigfs/__init__.py +0 -3
- wxdata-2.2/src/wxdata/aigfs/aigfs.py +0 -310
- wxdata-2.2/src/wxdata/aigfs/url_scanners.py +0 -229
- wxdata-2.2/src/wxdata/airnow_api/__init__.py +0 -1
- wxdata-2.2/src/wxdata/cfs/__init__.py +0 -4
- wxdata-2.2/src/wxdata/cfs/url_scanners.py +0 -1048
- wxdata-2.2/src/wxdata/ecmwf/__init__.py +0 -11
- wxdata-2.2/src/wxdata/ecmwf/ecmwf.py +0 -6202
- wxdata-2.2/src/wxdata/ecmwf/url_scanners.py +0 -1103
- wxdata-2.2/src/wxdata/hgefs/__init__.py +0 -1
- wxdata-2.2/src/wxdata/metars/__init__.py +0 -3
- wxdata-2.2/src/wxdata/open_meteo_api/air_quality/__init__.py +0 -1
- wxdata-2.2/src/wxdata/open_meteo_api/climate/__init__.py +0 -1
- wxdata-2.2/src/wxdata/open_meteo_api/marine_forecasts/__init__.py +0 -4
- wxdata-2.2/src/wxdata/open_meteo_api/seasonal_forecasts/__init__.py +0 -3
- wxdata-2.2/src/wxdata/open_meteo_api/solar_radiation/__init__.py +0 -1
- wxdata-2.2/src/wxdata/open_meteo_api/weather_forecasts/__init__.py +0 -9
- wxdata-2.2/src/wxdata/post_processors/cfs_post_processing.py +0 -1763
- wxdata-2.2/src/wxdata/rtma/__init__.py +0 -4
- wxdata-2.2/src/wxdata/soundings/__init__.py +0 -3
- wxdata-2.2/src/wxdata/utils/xmacis2_cleanup.py +0 -109
- wxdata-2.2/src/wxdata.egg-info/PKG-INFO +0 -977
- wxdata-2.2/src/wxdata.egg-info/SOURCES.txt +0 -123
- {wxdata-2.2 → wxdata-3.0}/LICENSE +0 -0
- {wxdata-2.2 → wxdata-3.0}/setup.cfg +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/airnow_api/_errors.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/air_quality/cams.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/climate/climate_data.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/marine_forecasts/dwd.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/marine_forecasts/ecmwf.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/marine_forecasts/meteo_france.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/marine_forecasts/noaa.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/seasonal_forecasts/ecmwf_daily.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/seasonal_forecasts/ecmwf_monthly.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/seasonal_forecasts/ecmwf_weekly.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/solar_radiation/models.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/cmc.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/current_weather.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/dwd.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/ecmwf.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/google.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/jma.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/meteo_france.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/noaa.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/api}/open_meteo_api/weather_forecasts/ukmo.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/archived_data/model_data/noaa}/gefs/paths.py +0 -0
- {wxdata-2.2/src/wxdata/radar → wxdata-3.0/src/wxdata/archived_data/radar_data}/url_scanner.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/calc/__init__.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/calc/derived_fields.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/calc/kinematics.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/calc/thermodynamics.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/calc/unit_conversion.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/client/__init__.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/client/level_coords.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/fuels_data}/fems/meta_data.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data}/ecmwf/file_funcs.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data}/ecmwf/keys.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data}/ecmwf/parsers.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data}/ecmwf/paths.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/aigefs/paths.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/aigfs/paths.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gefs/exception_messages.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gefs/file_funcs.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gfs/exception_messages.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/gfs/paths.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/hgefs/paths.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/hgefs/url_scanner.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/rtma/file_funcs.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/rtma/file_scanner.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/model_data/noaa}/rtma/keys.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/observational_data}/metars/_clean_data.py +0 -0
- {wxdata-2.2/src/wxdata → wxdata-3.0/src/wxdata/observational_data}/soundings/_exceptions.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/ecmwf_post_processing.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/gefs_post_processing.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/gfs_post_processing.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/post_processors/hgefs_post_processing.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/api.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/coords.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/exceptions.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/file_funcs.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/file_scanner.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/nomads_gribfilter.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/progress_bar.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/recycle_bin.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/scripts.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata/utils/warnings.py +0 -0
- {wxdata-2.2 → wxdata-3.0}/src/wxdata.egg-info/dependency_links.txt +0 -0
- {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
|
+
[](https://anaconda.org/conda-forge/wxdata) [](https://anaconda.org/conda-forge/wxdata) 
|
|
38
|
+
|
|
39
|
+
[](https://anaconda.org/conda-forge/wxdata)
|
|
40
|
+
[](https://anaconda.org/conda-forge/wxdata) [](https://anaconda.org/conda-forge/wxdata)
|
|
41
|
+
|
|
42
|
+
[](https://doi.org/10.5281/zenodo.17727621)
|
|
43
|
+
|
|
44
|
+
**Anaconda Downloads**
|
|
45
|
+
|
|
46
|
+
[](https://anaconda.org/conda-forge/wxdata)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
**PIP Downloads**
|
|
50
|
+
|
|
51
|
+
[](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
|
+
[](https://anaconda.org/conda-forge/wxdata) [](https://anaconda.org/conda-forge/wxdata) 
|
|
6
|
+
|
|
7
|
+
[](https://anaconda.org/conda-forge/wxdata)
|
|
8
|
+
[](https://anaconda.org/conda-forge/wxdata) [](https://anaconda.org/conda-forge/wxdata)
|
|
9
|
+
|
|
10
|
+
[](https://doi.org/10.5281/zenodo.17727621)
|
|
11
|
+
|
|
12
|
+
**Anaconda Downloads**
|
|
13
|
+
|
|
14
|
+
[](https://anaconda.org/conda-forge/wxdata)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
**PIP Downloads**
|
|
18
|
+
|
|
19
|
+
[](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"
|