geospacelab 0.11.4__tar.gz → 0.12.1__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.
- {geospacelab-0.11.4/geospacelab.egg-info → geospacelab-0.12.1}/PKG-INFO +4 -5
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/__init__.py +1 -1
- geospacelab-0.12.1/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/downloader.py +103 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/__init__.py +17 -7
- geospacelab-0.12.1/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/downloader.py +44 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/sdr_disk/__init__.py +317 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/sdr_disk/downloader.py +44 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/sdr_disk/loader.py +198 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/cdaweb/downloader.py +452 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/cdaweb/omni/__init__.py +26 -14
- geospacelab-0.12.1/geospacelab/datahub/sources/cdaweb/omni/downloader.py +129 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct02/__init__.py +1 -1
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct02/downloader.py +1 -1
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/hpo/__init__.py +1 -1
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/hpo/variable_config.py +3 -1
- geospacelab-0.12.1/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/sdrdisk/variable_config.py +149 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/loader.py +1 -1
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/satellites/dmsp/downloader.py +2 -1
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/champ/dns_acc/__init__.py +24 -7
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/champ/dns_acc/downloader.py +42 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/champ/dns_acc/loader.py +86 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/champ/wnd_acc/__init__.py +68 -10
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/champ/wnd_acc/downloader.py +42 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/champ/wnd_acc/loader.py +97 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/champ/wnd_acc/variable_config.py +3 -3
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/downloader.py +327 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/goce/dns_acc/__init__.py +354 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/goce/dns_acc/downloader.py +42 -0
- {geospacelab-0.11.4/geospacelab/datahub/sources/tud/champ → geospacelab-0.12.1/geospacelab/datahub/sources/tud/goce}/dns_acc/loader.py +13 -7
- {geospacelab-0.11.4/geospacelab/datahub/sources/tud/goce/dns_wnd_acc → geospacelab-0.12.1/geospacelab/datahub/sources/tud/goce/dns_wnd_acc_v01}/__init__.py +48 -7
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/goce/dns_wnd_acc_v01/downloader.py +42 -0
- {geospacelab-0.11.4/geospacelab/datahub/sources/tud/goce/dns_wnd_acc → geospacelab-0.12.1/geospacelab/datahub/sources/tud/goce/dns_wnd_acc_v01}/loader.py +11 -3
- {geospacelab-0.11.4/geospacelab/datahub/sources/tud/goce/dns_wnd_acc → geospacelab-0.12.1/geospacelab/datahub/sources/tud/goce/dns_wnd_acc_v01}/variable_config.py +3 -3
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/goce/wnd_acc/__init__.py +339 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/goce/wnd_acc/downloader.py +42 -0
- {geospacelab-0.11.4/geospacelab/datahub/sources/tud/grace_fo → geospacelab-0.12.1/geospacelab/datahub/sources/tud/goce}/wnd_acc/loader.py +3 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/goce/wnd_acc/variable_config.py +188 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/grace/dns_acc/__init__.py +6 -3
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/grace/dns_acc/downloader.py +42 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/grace/wnd_acc/__init__.py +21 -4
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/grace/wnd_acc/downloader.py +42 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/grace/wnd_acc/loader.py +5 -1
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/grace/wnd_acc/variable_config.py +190 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/grace_fo/dns_acc/__init__.py +6 -3
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/grace_fo/dns_acc/downloader.py +50 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/grace_fo/dns_acc/variable_config.py +139 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/__init__.py +20 -4
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/downloader.py +42 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/loader.py +66 -0
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/variable_config.py +189 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/swarm/dns_acc/__init__.py +27 -5
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/swarm/dns_acc/downloader.py +42 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/swarm/dns_pod/__init__.py +24 -5
- geospacelab-0.12.1/geospacelab/datahub/sources/tud/swarm/dns_pod/downloader.py +42 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/swarm/dns_pod/loader.py +3 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/asysym/downloader.py +2 -2
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/panels.py +7 -3
- {geospacelab-0.11.4 → geospacelab-0.12.1/geospacelab.egg-info}/PKG-INFO +4 -5
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab.egg-info/SOURCES.txt +18 -4
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab.egg-info/requires.txt +1 -1
- {geospacelab-0.11.4 → geospacelab-0.12.1}/setup.py +3 -4
- geospacelab-0.11.4/geospacelab/datahub/sources/cdaweb/downloader.py +0 -153
- geospacelab-0.11.4/geospacelab/datahub/sources/cdaweb/omni/downloader.py +0 -116
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/champ/dns_acc/downloader.py +0 -49
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/champ/wnd_acc/downloader.py +0 -49
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/champ/wnd_acc/loader.py +0 -68
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/downloader.py +0 -152
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/goce/dns_wnd_acc/downloader.py +0 -49
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/grace/dns_acc/downloader.py +0 -50
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/grace/wnd_acc/downloader.py +0 -52
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/grace/wnd_acc/variable_config.py +0 -116
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/grace_fo/dns_acc/downloader.py +0 -55
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/downloader.py +0 -57
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/variable_config.py +0 -116
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/swarm/dns_acc/downloader.py +0 -51
- geospacelab-0.11.4/geospacelab/datahub/sources/tud/swarm/dns_pod/downloader.py +0 -51
- {geospacelab-0.11.4 → geospacelab-0.12.1}/LICENSE +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/MANIFEST.in +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/README.md +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/config/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/config/__mpl__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/config/_preferences.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/cs/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/cs/_aacgm.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/cs/_apex.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/cs/_cs_base.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/cs/_geo.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/cs/geo_utilities.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/__dataset_base__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/__metadata_base__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/__variable_base__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/cdaweb/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/cdaweb/dmsp/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/variable_config.py +0 -0
- {geospacelab-0.11.4/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/sdrdisk → geospacelab-0.12.1/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/sdr_disk}/variable_config.py +0 -0
- /geospacelab-0.11.4/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/downloader.py → /geospacelab-0.12.1/geospacelab/datahub/sources/cdaweb/downloader_backup.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/cdaweb/omni/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/cdaweb/omni/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/advanced/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_fp/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_hm/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_hm/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_hm/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_hm/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct02/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct02/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct16/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l1b/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_hr/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_hr/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_hr/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_hr/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_lr/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_lr/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_lr/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_lr/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2d/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/aej_lpl/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/aej_lpl/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/aej_lpl/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/aej_lpl/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_acc/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_acc/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_acc/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_acc/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_pod/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_pod/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_pod/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_pod/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/fac_tms/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/fac_tms/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/fac_tms/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/fac_tms/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/l2l/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/esa_eo/swarm/multimission/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/fmi/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/fmi/image/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/fmi/image/ie/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/fmi/image/ie/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/fmi/image/ie/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/fmi/image/ie/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/fmi/miracle/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/fmi/miracle/abk/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/fmi/miracle/kev/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/fmi/miracle/muo/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/hpo/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/hpo/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/hpo/nowcast/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/hpo/nowcast/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/kpap/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/kpap/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/kpap/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/kpap/nowcast/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/kpap/nowcast/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/kpap/nowcast/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/kpap/nowcast/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/kpap/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/snf107/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/snf107/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/gfz/snf107/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/isee/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/isee/gnss/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/isee/gnss/tecmap/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/isee/gnss/tecmap/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/isee/gnss/tecmap/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/isee/gnss/tecmap/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/ampere/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/ampere/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/ampere/fitted/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/ampere/fitted/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/ampere/fitted/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/ampere/grd/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/ampere/grd/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/ampere/grd/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/ampere/grd/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/dmsp/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/edraur/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/edraur/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/edraur/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/sdrdisk/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/sdrdisk/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/gnss/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/gnss/tecmap/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/gnss/tecmap/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/gnss/tecmap/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/gnss/tecmap/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/eiscat/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/eiscat/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/eiscat/examples/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/eiscat/examples/eiscat_hdf5_info.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/eiscat/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/eiscat/utilities.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/eiscat/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/millstonehill/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/millstonehill/basic/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/millstonehill/basic/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/millstonehill/basic/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/millstonehill/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/millstonehill/gridded/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/millstonehill/gridded/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/millstonehill/gridded/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/millstonehill/vi/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/millstonehill/vi/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/millstonehill/vi/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/pfisr/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/pfisr/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/pfisr/vi/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/pfisr/vi/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/pfisr/vi/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/pfisr/vi/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/risr_n/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/risr_n/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/risr_n/fitted/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/risr_n/fitted/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/risr_n/fitted/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/risr_n/fitted/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/risr_n/vi/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/risr_n/vi/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/risr_n/vi/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/isr/risr_n/vi/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/satellites/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/satellites/dmsp/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/satellites/dmsp/e/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/satellites/dmsp/e/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/satellites/dmsp/e/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/madrigal/utilities.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/ncei/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/ncei/dmsp/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/ncei/dmsp/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/ncei/dmsp/ssm_mfr/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/ncei/dmsp/ssm_mfr/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/ncei/dmsp/ssm_mfr/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/ncei/dmsp/ssm_mfr/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/nipr/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/nipr/asc/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/nipr/asc/tro_wmi/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/nipr/asc/tro_wmi/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/nipr/asc/tro_wmi/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/noaa/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/noaa/swpc/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/noaa/swpc/goesxray/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/noaa/swpc/solarwind/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/superdarn/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/superdarn/potmap/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/superdarn/potmap/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/superdarn/potmap/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/superdarn/potmap/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/supermag/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/supermag/indices/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/supermag/indices/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/supermag/indices/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/supermag/indices/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/supermag/magnetometer/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/supermag/magnetometer/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/supermag/magnetometer/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/supermag/magnetometer/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/supermag/supermag_api.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/supermag/utilities.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/champ/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/champ/dns_acc/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/goce/__init__.py +0 -0
- {geospacelab-0.11.4/geospacelab/datahub/sources/tud/grace → geospacelab-0.12.1/geospacelab/datahub/sources/tud/goce}/dns_acc/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/grace/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/grace/dns_acc/loader.py +0 -0
- {geospacelab-0.11.4/geospacelab/datahub/sources/tud/grace_fo → geospacelab-0.12.1/geospacelab/datahub/sources/tud/grace}/dns_acc/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/grace_fo/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/grace_fo/dns_acc/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/swarm/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/swarm/dns_acc/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/swarm/dns_acc/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/tud/swarm/dns_pod/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/ae/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/ae/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/ae/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/ae/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/asysym/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/asysym/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/asysym/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/dst/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/dst/downloader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/dst/loader.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/datahub/sources/wdc/dst/variable_config.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/express/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/express/dmsp_dashboard.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/express/eiscat_dashboard.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/express/millstonehill_dashboard.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/express/omni_dashboard.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/future/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/future/empiricalmodels/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/future/empiricalmodels/ovationprime2010/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/future/empiricalmodels/ovationprime2010/ovationprime.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/future/satllites/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/future/satllites/orbit_analyzer.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/future/test_sscws.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/observatory/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/observatory/constants.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/observatory/earth/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/observatory/earth/_func.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/observatory/earth/constants.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/observatory/earth/geodesy.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/observatory/earth/sun_position.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/observatory/orbit/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/observatory/orbit/sc_orbit.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/observatory/orbit/utilities.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/observatory/site/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/observatory/site/mixins.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/quantity/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/toolbox/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/toolbox/io/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/toolbox/io/dialog.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/toolbox/unit/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/toolbox/utilities/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/toolbox/utilities/numpyarray.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/toolbox/utilities/numpymath.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/toolbox/utilities/pybasic.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/toolbox/utilities/pyclass.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/toolbox/utilities/pydatetime.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/toolbox/utilities/pylogging.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/toolbox/utilities/pyos.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/__base__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/_helpers.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/axes.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/axis_ticks.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/colormaps.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/dashboards.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/figure.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/geomap/__base__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/geomap/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/geomap/geodashboards.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/mpl/geomap/geopanels.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/plotly/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/visualization/plotly/ipanel.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/geopack/LICENSE +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/geopack/README.md +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/geopack/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/geopack/geopack/__init__.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/geopack/geopack/geopack.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/geopack/geopack/igrf13coeffs.txt +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/geopack/geopack/t01.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/geopack/geopack/t04.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/geopack/geopack/t89.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/geopack/geopack/t96.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/geopack/geopack/test_geopack1.md +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab/wrapper/geopack/geopack/test_geopack1.py +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab.egg-info/dependency_links.txt +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/geospacelab.egg-info/top_level.txt +0 -0
- {geospacelab-0.11.4 → geospacelab-0.12.1}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: geospacelab
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.1
|
|
4
4
|
Summary: Collect, manage, and visualize geospace data.
|
|
5
5
|
Home-page: https://github.com/JouleCai/geospacelab
|
|
6
6
|
Author: Lei Cai
|
|
@@ -14,19 +14,18 @@ Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
|
14
14
|
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
15
15
|
Classifier: Topic :: Software Development :: Build Tools
|
|
16
16
|
Classifier: License :: OSI Approved :: BSD License
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
19
17
|
Classifier: Programming Language :: Python :: 3.9
|
|
20
18
|
Classifier: Programming Language :: Python :: 3.10
|
|
21
19
|
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
-
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Requires-Python: >=3.9,<3.13
|
|
23
22
|
Description-Content-Type: text/markdown
|
|
24
23
|
License-File: LICENSE
|
|
25
24
|
Requires-Dist: cython
|
|
26
25
|
Requires-Dist: requests>=2.26.0
|
|
27
26
|
Requires-Dist: beautifulsoup4>=4.9.3
|
|
28
27
|
Requires-Dist: natsort>=7.1.1
|
|
29
|
-
Requires-Dist: numpy
|
|
28
|
+
Requires-Dist: numpy<2.4.0
|
|
30
29
|
Requires-Dist: scipy>=1.6.0
|
|
31
30
|
Requires-Dist: h5py>=3.2.1
|
|
32
31
|
Requires-Dist: netcdf4>=1.5.7
|
|
@@ -6,7 +6,7 @@ __author__ = "Lei Cai"
|
|
|
6
6
|
__copyright__ = "Copyright 2021, GeospaceLAB"
|
|
7
7
|
__credits__ = ["Lei Cai"]
|
|
8
8
|
__license__ = "BSD-3-Clause License"
|
|
9
|
-
__version__ = "0.
|
|
9
|
+
__version__ = "0.12.1"
|
|
10
10
|
__maintainer__ = "Lei Cai"
|
|
11
11
|
__email__ = "lei.cai@oulu.fi"
|
|
12
12
|
__status__ = "Developing"
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
import pathlib
|
|
3
|
+
import copy
|
|
4
|
+
|
|
5
|
+
import geospacelab.toolbox.utilities.pydatetime as dttool
|
|
6
|
+
import geospacelab.toolbox.utilities.pylogging as mylog
|
|
7
|
+
from geospacelab.config import prf
|
|
8
|
+
from geospacelab.datahub.sources.cdaweb.downloader import CDAWebHTTPDownloader as DownloaderBase
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Downloader(DownloaderBase):
|
|
12
|
+
|
|
13
|
+
def __init__(
|
|
14
|
+
self,
|
|
15
|
+
dt_fr=None, dt_to=None,
|
|
16
|
+
sat_id=None,
|
|
17
|
+
orbit_id=None,
|
|
18
|
+
product='EDR_AUR',
|
|
19
|
+
direct_download=True,
|
|
20
|
+
force_download=False,
|
|
21
|
+
dry_run=False,
|
|
22
|
+
root_dir_local = None,
|
|
23
|
+
):
|
|
24
|
+
|
|
25
|
+
self.sat_id = sat_id
|
|
26
|
+
self.orbit_id = orbit_id
|
|
27
|
+
self.product = product
|
|
28
|
+
if root_dir_local is None:
|
|
29
|
+
root_dir_local = prf.datahub_data_root_dir / 'CDAWeb' / 'DMSP' / 'SSUSI' / self.product.upper
|
|
30
|
+
else:
|
|
31
|
+
root_dir_local = pathlib.Path(root_dir_local)
|
|
32
|
+
root_dir_remote = '/'.join([
|
|
33
|
+
self.root_dir_remote, 'dmsp', 'dmsp'+self.sat_id.lower(), 'ssusi', 'data', product_dict[self.product]
|
|
34
|
+
])
|
|
35
|
+
super().__init__(
|
|
36
|
+
dt_fr, dt_to,
|
|
37
|
+
root_dir_local=root_dir_local,
|
|
38
|
+
root_dir_remote=root_dir_remote,
|
|
39
|
+
direct_download=direct_download,
|
|
40
|
+
force_download=force_download,
|
|
41
|
+
dry_run=dry_run,
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def search_from_http(self, *args, **kwargs):
|
|
46
|
+
|
|
47
|
+
dt_fr_1 = self.dt_fr - datetime.timedelta(hours=3)
|
|
48
|
+
dt_to_1 = self.dt_to + datetime.timedelta(hours=3)
|
|
49
|
+
diff_days = dttool.get_diff_days(dt_fr_1, dt_to_1)
|
|
50
|
+
dt0 = dttool.get_start_of_the_day(dt_fr_1)
|
|
51
|
+
file_paths_remote = []
|
|
52
|
+
for nd in range(diff_days + 1):
|
|
53
|
+
this_day = dt0 + datetime.timedelta(days=nd)
|
|
54
|
+
doy = dttool.get_doy(this_day)
|
|
55
|
+
sdoy = '{:03d}'.format(doy)
|
|
56
|
+
subdirs = [str(this_day.year), sdoy]
|
|
57
|
+
|
|
58
|
+
if self.orbit_id is None:
|
|
59
|
+
file_name_patterns = [
|
|
60
|
+
'dmsp' + self.sat_id.lower(),
|
|
61
|
+
'ssusi',
|
|
62
|
+
product_dict[self.product],
|
|
63
|
+
this_day.strftime("%Y") + sdoy + 'T',
|
|
64
|
+
'.nc'
|
|
65
|
+
]
|
|
66
|
+
else:
|
|
67
|
+
file_name_patterns = [
|
|
68
|
+
'dmsp' + self.sat_id.lower(),
|
|
69
|
+
'ssusi',
|
|
70
|
+
product_dict[self.product],
|
|
71
|
+
'REV',
|
|
72
|
+
self.orbit_id,
|
|
73
|
+
'.nc'
|
|
74
|
+
]
|
|
75
|
+
paths = super().search_from_http(subdirs=subdirs, file_name_patterns=file_name_patterns)
|
|
76
|
+
file_paths_remote.extend(paths)
|
|
77
|
+
return file_paths_remote
|
|
78
|
+
|
|
79
|
+
def save_files_from_http(self, file_paths_local=None, root_dir_remote=None):
|
|
80
|
+
if file_paths_local is None:
|
|
81
|
+
file_paths_local = []
|
|
82
|
+
for fp_remote in self.file_paths_remote:
|
|
83
|
+
sy = fp_remote.split('/')[-3]
|
|
84
|
+
sdoy = fp_remote.split('/')[-2]
|
|
85
|
+
year = int(sy)
|
|
86
|
+
this_day = dttool.convert_doy_to_datetime(year, int(sdoy))
|
|
87
|
+
file_dir_local = self.root_dir_local / self.sat_id.upper() / sy / this_day.strftime("%Y%m%d")
|
|
88
|
+
file_paths_local.append(file_dir_local / fp_remote.split('/')[-1])
|
|
89
|
+
return super().save_files_from_http(file_paths_local, root_dir_remote)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
product_dict = {
|
|
93
|
+
'EDR_AUR': 'edr-aurora',
|
|
94
|
+
'EDR_DAY_LIMB': 'edr-day-limb',
|
|
95
|
+
'EDR_IONO': 'edr-iono',
|
|
96
|
+
'EDR_NIGHT_LIMB': 'edr-night-limb',
|
|
97
|
+
'L1B': 'l1b',
|
|
98
|
+
'SDR_DISK': 'sdr-disk',
|
|
99
|
+
'SDR_LIMB': 'sdr-limb',
|
|
100
|
+
'SDR2_DISK': 'sdr2-disk',
|
|
101
|
+
'SPECT_L1B': 'spect-l1b',
|
|
102
|
+
}
|
|
103
|
+
|
|
@@ -53,8 +53,10 @@ class Dataset(datahub.DatasetSourced):
|
|
|
53
53
|
self.database = kwargs.pop('database', 'CDAWeb')
|
|
54
54
|
self.facility = kwargs.pop('facility', 'DMSP')
|
|
55
55
|
self.instrument = kwargs.pop('instrument', 'SSUSI')
|
|
56
|
-
self.product = kwargs.pop('product', '
|
|
56
|
+
self.product = kwargs.pop('product', 'EDR_AUR')
|
|
57
57
|
self.allow_download = kwargs.pop('allow_download', True)
|
|
58
|
+
self.force_download = kwargs.pop('force_download', False)
|
|
59
|
+
self.download_dry_run = kwargs.pop('download_dry_run', False)
|
|
58
60
|
|
|
59
61
|
self.sat_id = kwargs.pop('sat_id', '')
|
|
60
62
|
self.orbit_id = kwargs.pop('orbit_id', None)
|
|
@@ -149,14 +151,20 @@ class Dataset(datahub.DatasetSourced):
|
|
|
149
151
|
|
|
150
152
|
if self.orbit_id is not None:
|
|
151
153
|
file_patterns.extend(['REV', self.orbit_id])
|
|
152
|
-
|
|
153
|
-
else:
|
|
154
|
-
multiple_files = True
|
|
154
|
+
|
|
155
155
|
# remove empty str
|
|
156
156
|
file_patterns = [pattern for pattern in file_patterns if str(pattern)]
|
|
157
157
|
|
|
158
158
|
search_pattern = '*' + '*'.join(file_patterns) + '*'
|
|
159
159
|
|
|
160
|
+
if self.orbit_id is not None:
|
|
161
|
+
multiple_files = False
|
|
162
|
+
else:
|
|
163
|
+
fp_log = initial_file_dir / (self.product.upper() + '.full.log')
|
|
164
|
+
if not fp_log.is_file():
|
|
165
|
+
self.download_data(dt_fr=thisday, dt_to=thisday)
|
|
166
|
+
multiple_files = True
|
|
167
|
+
|
|
160
168
|
done = super().search_data_files(
|
|
161
169
|
initial_file_dir=initial_file_dir,
|
|
162
170
|
search_pattern=search_pattern,
|
|
@@ -167,7 +175,7 @@ class Dataset(datahub.DatasetSourced):
|
|
|
167
175
|
|
|
168
176
|
# Validate file paths
|
|
169
177
|
|
|
170
|
-
if not done and self.allow_download:
|
|
178
|
+
if (not done and self.allow_download) or (self.force_download):
|
|
171
179
|
done = self.download_data(dt_fr=thisday, dt_to=thisday)
|
|
172
180
|
if done:
|
|
173
181
|
done = super().search_data_files(
|
|
@@ -186,9 +194,11 @@ class Dataset(datahub.DatasetSourced):
|
|
|
186
194
|
download_obj = self.downloader(
|
|
187
195
|
dt_fr, dt_to,
|
|
188
196
|
orbit_id=self.orbit_id, sat_id=self.sat_id,
|
|
189
|
-
|
|
197
|
+
root_dir_local=self.data_root_dir,
|
|
198
|
+
force_download=self.force_download,
|
|
199
|
+
dry_run=self.download_dry_run,
|
|
190
200
|
)
|
|
191
|
-
return download_obj.done
|
|
201
|
+
return any(download_obj.done)
|
|
192
202
|
|
|
193
203
|
@property
|
|
194
204
|
def database(self):
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
import pathlib
|
|
3
|
+
import copy
|
|
4
|
+
|
|
5
|
+
import geospacelab.toolbox.utilities.pydatetime as dttool
|
|
6
|
+
import geospacelab.toolbox.utilities.pylogging as mylog
|
|
7
|
+
from geospacelab.config import prf
|
|
8
|
+
from geospacelab.datahub.sources.cdaweb.dmsp.ssusi.downloader import Downloader as DownloaderBase
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Downloader(DownloaderBase):
|
|
12
|
+
|
|
13
|
+
def __init__(
|
|
14
|
+
self,
|
|
15
|
+
dt_fr=None, dt_to=None,
|
|
16
|
+
sat_id=None,
|
|
17
|
+
orbit_id=None,
|
|
18
|
+
direct_download=True,
|
|
19
|
+
force_download=False,
|
|
20
|
+
dry_run=False,
|
|
21
|
+
root_dir_local = None,
|
|
22
|
+
):
|
|
23
|
+
|
|
24
|
+
super().__init__(
|
|
25
|
+
dt_fr, dt_to,
|
|
26
|
+
sat_id=sat_id,
|
|
27
|
+
orbit_id=orbit_id,
|
|
28
|
+
product='EDR_AUR',
|
|
29
|
+
root_dir_local=root_dir_local,
|
|
30
|
+
direct_download=direct_download,
|
|
31
|
+
force_download=force_download,
|
|
32
|
+
dry_run=dry_run,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
if __name__ == "__main__":
|
|
37
|
+
downloader = Downloader(
|
|
38
|
+
dt_fr = datetime.datetime(2011, 1, 6),
|
|
39
|
+
dt_to = datetime.datetime(2011, 1, 6, 12),
|
|
40
|
+
sat_id='F17',
|
|
41
|
+
orbit_id=None, #'21523',
|
|
42
|
+
force_download=True,
|
|
43
|
+
dry_run=False,
|
|
44
|
+
)
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
# Licensed under the BSD 3-Clause License
|
|
2
|
+
# Copyright (C) 2021 GeospaceLab (geospacelab)
|
|
3
|
+
# Author: Lei Cai, Space Physics and Astronomy, University of Oulu
|
|
4
|
+
|
|
5
|
+
import datetime
|
|
6
|
+
|
|
7
|
+
import numpy as np
|
|
8
|
+
|
|
9
|
+
import geospacelab.datahub as datahub
|
|
10
|
+
from geospacelab.datahub import DatabaseModel, FacilityModel, InstrumentModel, ProductModel
|
|
11
|
+
from geospacelab.datahub.sources.jhuapl import jhuapl_database
|
|
12
|
+
from geospacelab.config import prf
|
|
13
|
+
import geospacelab.toolbox.utilities.pydatetime as dttool
|
|
14
|
+
import geospacelab.toolbox.utilities.pybasic as basic
|
|
15
|
+
import geospacelab.toolbox.utilities.pylogging as mylog
|
|
16
|
+
from geospacelab.datahub.sources.cdaweb.dmsp.ssusi.sdr_disk.loader import Loader as default_Loader
|
|
17
|
+
from geospacelab.datahub.sources.cdaweb.dmsp.ssusi.sdr_disk.downloader import Downloader as default_Downloader
|
|
18
|
+
import geospacelab.datahub.sources.cdaweb.dmsp.ssusi.sdr_disk.variable_config as var_config
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
default_dataset_attrs = {
|
|
22
|
+
'database': jhuapl_database,
|
|
23
|
+
'facility': 'DMSP',
|
|
24
|
+
'instrument': 'SSUSI',
|
|
25
|
+
'product': 'SDR_DISK',
|
|
26
|
+
'data_file_ext': 'nc',
|
|
27
|
+
'data_root_dir': prf.datahub_data_root_dir / 'CDAWeb' / 'DMSP' / 'SSUSI' / 'SDR_DISK',
|
|
28
|
+
'allow_load': True,
|
|
29
|
+
'allow_download': True,
|
|
30
|
+
'data_search_recursive': False,
|
|
31
|
+
'label_fields': ['database', 'facility', 'instrument', 'product'],
|
|
32
|
+
'time_clip': False,
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
default_variable_names = [
|
|
36
|
+
'STARTING_TIME', 'STOPPING_TIME', 'DATETIME',
|
|
37
|
+
'FILE_VERSION', 'DATA_PRODUCT_VERSION', 'SOFTWARE_VERSION_NUMBER', 'CALIBRATION_PERIOD_VERSION', 'EMISSION_SPECTRA',
|
|
38
|
+
'SC_DATETIME', 'SC_ORBIT_ID', 'SC_GEO_LAT', 'SC_GEO_LON', 'SC_GEO_ALT',
|
|
39
|
+
'DISK_GEO_LAT', 'DISK_GEO_LON', 'DISK_GEO_ALT', 'DISK_SZA', 'DISK_SAA',
|
|
40
|
+
'ACROSS_PIXEL_SIZE', 'ALONG_PIXEL_SIZE', 'EFFECTIVE_LOOK_ANGLE', 'EXPOSURE', 'SAA_COUNT', 'DARK_COUNT_CORRECTION',
|
|
41
|
+
'SCATTER_LIGHT_1216_CORRECTION', 'SCATTER_LIGHT_1304_CORRECTION', 'OVERLAP_1304_1356_CORRECTION', 'LONG_WAVE_SCATTER_CORRECTION',
|
|
42
|
+
'RED_LEAK_CORRECTION', 'DQI',
|
|
43
|
+
'DISK_COUNTS_1216', 'DISK_COUNTS_1304', 'DISK_COUNTS_1356', 'DISK_COUNTS_LBHS', 'DISK_COUNTS_LBHL',
|
|
44
|
+
'DISK_R_1216', 'DISK_R_1304', 'DISK_R_1356', 'DISK_R_LBHS', 'DISK_R_LBHL',
|
|
45
|
+
'DISK_R_RECT_1216', 'DISK_R_RECT_1304', 'DISK_R_RECT_1356', 'DISK_R_RECT_LBHS', 'DISK_R_RECT_LBHL',
|
|
46
|
+
'DISK_R_1216_ERROR', 'DISK_R_1304_ERROR', 'DISK_R_1356_ERROR', 'DISK_R_LBHS_ERROR', 'DISK_R_LBHL_ERROR',
|
|
47
|
+
'DISK_R_RECT_1216_ERROR', 'DISK_R_RECT_1304_ERROR', 'DISK_R_RECT_1356_ERROR', 'DISK_R_RECT_LBHS_ERROR', 'DISK_R_RECT_LBHL_ERROR',
|
|
48
|
+
'DISK_DECOMP_1216_ERROR', 'DISK_DECOMP_1304_ERROR', 'DISK_DECOMP_1356_ERROR', 'DISK_DECOMP_LBHS_ERROR', 'DISK_DECOMP_LBHL_ERROR',
|
|
49
|
+
'DISK_CALIB_1216_ERROR', 'DISK_CALIB_1304_ERROR', 'DISK_CALIB_1356_ERROR', 'DISK_CALIB_LBHS_ERROR', 'DISK_CALIB_LBHL_ERROR',
|
|
50
|
+
'DQI_1216', 'DQI_1304', 'DQI_1356', 'DQI_LBHS', 'DQI_LBHL'
|
|
51
|
+
]
|
|
52
|
+
|
|
53
|
+
# default_data_search_recursive = True
|
|
54
|
+
|
|
55
|
+
default_attrs_required = ['sat_id', 'orbit_id', 'pp_type', 'pole']
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class Dataset(datahub.DatasetSourced):
|
|
59
|
+
def __init__(self, **kwargs):
|
|
60
|
+
kwargs = basic.dict_set_default(kwargs, **default_dataset_attrs)
|
|
61
|
+
|
|
62
|
+
super().__init__(**kwargs)
|
|
63
|
+
|
|
64
|
+
self.database = kwargs.pop('database', 'JHUAPL')
|
|
65
|
+
self.facility = kwargs.pop('facility', 'DMSP')
|
|
66
|
+
self.instrument = kwargs.pop('instrument', 'SSUSI')
|
|
67
|
+
self.product = kwargs.pop('product', 'SDR_DISK')
|
|
68
|
+
self.allow_download = kwargs.pop('allow_download', True)
|
|
69
|
+
self.force_download = kwargs.pop('force_download', False)
|
|
70
|
+
self.download_dry_run = kwargs.pop('download_dry_run', False)
|
|
71
|
+
|
|
72
|
+
self.sat_id = kwargs.pop('sat_id', '')
|
|
73
|
+
self.orbit_id = kwargs.pop('orbit_id', None)
|
|
74
|
+
self.pole = kwargs.pop('pole', '')
|
|
75
|
+
self.pp_type = kwargs.pop('pp_type', '')
|
|
76
|
+
|
|
77
|
+
self.metadata = None
|
|
78
|
+
|
|
79
|
+
allow_load = kwargs.pop('allow_load', False)
|
|
80
|
+
|
|
81
|
+
# self.config(**kwargs)
|
|
82
|
+
|
|
83
|
+
if self.loader is None:
|
|
84
|
+
self.loader = default_Loader
|
|
85
|
+
|
|
86
|
+
if self.downloader is None:
|
|
87
|
+
self.downloader = default_Downloader
|
|
88
|
+
|
|
89
|
+
self._validate_attrs()
|
|
90
|
+
|
|
91
|
+
if allow_load:
|
|
92
|
+
self.load_data()
|
|
93
|
+
|
|
94
|
+
def _validate_attrs(self):
|
|
95
|
+
for attr_name in default_attrs_required:
|
|
96
|
+
attr = getattr(self, attr_name)
|
|
97
|
+
if not str(attr):
|
|
98
|
+
mylog.StreamLogger.warning("The parameter {} is required before loading data!".format(attr_name))
|
|
99
|
+
if attr_name == 'orbit_id':
|
|
100
|
+
if attr is None or attr == '':
|
|
101
|
+
mylog.StreamLogger.warning("For a fast process, it's better to specify the orbit id.")
|
|
102
|
+
|
|
103
|
+
def label(self, **kwargs):
|
|
104
|
+
label = super().label()
|
|
105
|
+
return label
|
|
106
|
+
|
|
107
|
+
def load_data(self, **kwargs):
|
|
108
|
+
self.check_data_files(**kwargs)
|
|
109
|
+
|
|
110
|
+
self._set_default_variables(
|
|
111
|
+
default_variable_names,
|
|
112
|
+
configured_variables=var_config.configured_variables
|
|
113
|
+
)
|
|
114
|
+
for file_path in self.data_file_paths:
|
|
115
|
+
load_obj = self.loader(file_path, file_type=self.product.lower(), pole=self.pole, pp_type=self.pp_type)
|
|
116
|
+
|
|
117
|
+
for var_name in self._variables.keys():
|
|
118
|
+
if var_name == 'EMISSION_SPECTRA':
|
|
119
|
+
self._variables[var_name].value = load_obj.variables[var_name]
|
|
120
|
+
continue
|
|
121
|
+
if var_name in ['DATETIME', 'STARTING_TIME', 'STOPPING_TIME',
|
|
122
|
+
'FILE_VERSION', 'DATA_PRODUCT_VERSION', 'SOFTWARE_VERSION_NUMBER',
|
|
123
|
+
'CALIBRATION_PERIOD_VERSION']:
|
|
124
|
+
value = np.array([load_obj.variables[var_name]])[np.newaxis, :]
|
|
125
|
+
else:
|
|
126
|
+
value = np.empty((1, ), dtype=object)
|
|
127
|
+
value[0] = load_obj.variables[var_name]
|
|
128
|
+
# value = np.array([[load_obj.variables[var_name]]], dtype=object)
|
|
129
|
+
self._variables[var_name].join(value)
|
|
130
|
+
|
|
131
|
+
# self.orbit_id = load_obj.metadata['ORBIT_ID']
|
|
132
|
+
# self.select_beams(field_aligned=True)
|
|
133
|
+
if self.time_clip:
|
|
134
|
+
self.time_filter_by_range()
|
|
135
|
+
|
|
136
|
+
def get_time_ind(self, ut, time_res=20*60, var_datetime_name='DATETIME', edge_cutoff=False, **kwargs):
|
|
137
|
+
ind = super().get_time_ind(ut, time_res=time_res, var_datetime_name=var_datetime_name, edge_cutoff=edge_cutoff, **kwargs)
|
|
138
|
+
return ind
|
|
139
|
+
|
|
140
|
+
def regriddata(self, disk_data=None, disk_geo_lat=None, disk_geo_lon=None, *, across_res=20., interp_method='linear'):
|
|
141
|
+
from scipy.interpolate import interp1d, griddata
|
|
142
|
+
|
|
143
|
+
data_pts = disk_data.flatten()
|
|
144
|
+
ind_valid = np.where(np.isfinite(data_pts))[0]
|
|
145
|
+
xd = range(disk_data.shape[0])
|
|
146
|
+
yd = range(disk_data.shape[1])
|
|
147
|
+
|
|
148
|
+
# create the new grids
|
|
149
|
+
ps_across = self['ACROSS_PIXEL_SIZE'].value[0]
|
|
150
|
+
xx = range(disk_data.shape[0])
|
|
151
|
+
yy = []
|
|
152
|
+
for ind in range(disk_data.shape[1]-1):
|
|
153
|
+
ps1 = ps_across[ind]
|
|
154
|
+
ps2 = ps_across[ind+1]
|
|
155
|
+
n_insert = int(np.round((ps1 + ps2) / 2 / across_res) - 1)
|
|
156
|
+
yy.extend(np.linspace(ind, ind+1-0.001, n_insert + 2)[0: -1])
|
|
157
|
+
yy.extend([ind+1])
|
|
158
|
+
# grid_x, grid_y = np.meshgrid(xx, yy, indexing='ij')
|
|
159
|
+
|
|
160
|
+
factor = np.pi / 180.
|
|
161
|
+
sin_glat = np.sin(disk_geo_lat * factor)
|
|
162
|
+
itpf_sin = interp1d(yd, sin_glat, kind='cubic', bounds_error=False, fill_value='extrapolate')
|
|
163
|
+
sin_glat_i = itpf_sin(yy)
|
|
164
|
+
sin_glat_i[sin_glat_i>1.] = 1.
|
|
165
|
+
sin_glat_i[sin_glat_i<-1.] = -1.
|
|
166
|
+
|
|
167
|
+
cos_glat = np.cos(disk_geo_lat * factor)
|
|
168
|
+
itpf_cos = interp1d(yd, cos_glat, kind='cubic', bounds_error=False, fill_value='extrapolate')
|
|
169
|
+
cos_glat_i = itpf_cos(yy)
|
|
170
|
+
cos_glat_i[cos_glat_i>1.] = 1.
|
|
171
|
+
cos_glat_i[cos_glat_i<-1.] = -1.
|
|
172
|
+
|
|
173
|
+
rad = np.sign(sin_glat_i) * (np.pi / 2 - np.arcsin(cos_glat_i))
|
|
174
|
+
grid_lat = rad / factor
|
|
175
|
+
|
|
176
|
+
sin_glon = np.sin(disk_geo_lon * factor)
|
|
177
|
+
itpf_sin = interp1d(yd, sin_glon, kind='cubic', bounds_error=False, fill_value='extrapolate')
|
|
178
|
+
sin_glon_i = itpf_sin(yy)
|
|
179
|
+
sin_glon_i[sin_glon_i>1.] = 1.
|
|
180
|
+
sin_glon_i[sin_glon_i<-1.] = -1.
|
|
181
|
+
|
|
182
|
+
cos_glon = np.cos(disk_geo_lon * factor)
|
|
183
|
+
itpf_cos = interp1d(yd, cos_glon, kind='cubic', bounds_error=False, fill_value='extrapolate')
|
|
184
|
+
cos_glon_i = itpf_cos(yy)
|
|
185
|
+
cos_glon_i[cos_glon_i>1.] = 1.
|
|
186
|
+
cos_glon_i[cos_glon_i<-1.] = -1.
|
|
187
|
+
|
|
188
|
+
rad = np.sign(sin_glon_i) * (np.pi / 2 - np.arcsin(cos_glon_i))
|
|
189
|
+
grid_lon = rad / factor
|
|
190
|
+
|
|
191
|
+
itpf_data = interp1d(yd, disk_data, kind='linear', bounds_error=False, fill_value='extrapolate')
|
|
192
|
+
grid_data = itpf_data(yy)
|
|
193
|
+
return grid_lat, grid_lon, grid_data
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
def search_data_files(self, **kwargs):
|
|
197
|
+
dt_fr = self.dt_fr
|
|
198
|
+
if self.dt_to.hour > 22:
|
|
199
|
+
dt_to = self.dt_to + datetime.timedelta(days=1)
|
|
200
|
+
else:
|
|
201
|
+
dt_to = self.dt_to
|
|
202
|
+
diff_days = dttool.get_diff_days(dt_fr, dt_to)
|
|
203
|
+
dt0 = dttool.get_start_of_the_day(dt_fr)
|
|
204
|
+
for i in range(diff_days + 1):
|
|
205
|
+
thisday = dt0 + datetime.timedelta(days=i)
|
|
206
|
+
initial_file_dir = kwargs.pop('initial_file_dir', None)
|
|
207
|
+
|
|
208
|
+
if initial_file_dir is None:
|
|
209
|
+
initial_file_dir = self.data_root_dir / self.sat_id.upper() / str(thisday.year) /thisday.strftime("%Y%m%d")
|
|
210
|
+
|
|
211
|
+
file_patterns = [
|
|
212
|
+
'dmsp' + self.sat_id.lower(),
|
|
213
|
+
'sdr-disk',
|
|
214
|
+
thisday.strftime("%Y%j") + 'T',
|
|
215
|
+
]
|
|
216
|
+
|
|
217
|
+
if self.orbit_id is not None:
|
|
218
|
+
file_patterns.extend(['REV', self.orbit_id])
|
|
219
|
+
|
|
220
|
+
# remove empty str
|
|
221
|
+
file_patterns = [pattern for pattern in file_patterns if str(pattern)]
|
|
222
|
+
|
|
223
|
+
search_pattern = '*' + '*'.join(file_patterns) + '*'
|
|
224
|
+
|
|
225
|
+
if self.orbit_id is not None:
|
|
226
|
+
multiple_files = False
|
|
227
|
+
else:
|
|
228
|
+
fp_log = initial_file_dir / (self.product.upper() + '.full.log')
|
|
229
|
+
if not fp_log.is_file():
|
|
230
|
+
self.download_data(dt_fr=thisday, dt_to=thisday)
|
|
231
|
+
multiple_files = True
|
|
232
|
+
done = super().search_data_files(
|
|
233
|
+
initial_file_dir=initial_file_dir,
|
|
234
|
+
search_pattern=search_pattern,
|
|
235
|
+
allow_multiple_files=multiple_files,
|
|
236
|
+
)
|
|
237
|
+
if done and self.orbit_id is not None:
|
|
238
|
+
return True
|
|
239
|
+
|
|
240
|
+
# Validate file paths
|
|
241
|
+
|
|
242
|
+
if (not done and self.allow_download) or (self.force_download):
|
|
243
|
+
done = self.download_data(dt_fr=thisday, dt_to=thisday)
|
|
244
|
+
if done:
|
|
245
|
+
done = super().search_data_files(
|
|
246
|
+
initial_file_dir=initial_file_dir,
|
|
247
|
+
search_pattern=search_pattern,
|
|
248
|
+
allow_multiple_files=multiple_files
|
|
249
|
+
)
|
|
250
|
+
|
|
251
|
+
return done
|
|
252
|
+
|
|
253
|
+
def download_data(self, dt_fr=None, dt_to=None):
|
|
254
|
+
if dt_fr is None:
|
|
255
|
+
dt_fr = self.dt_fr
|
|
256
|
+
if dt_to is None:
|
|
257
|
+
dt_to = self.dt_to
|
|
258
|
+
download_obj = self.downloader(
|
|
259
|
+
dt_fr, dt_to,
|
|
260
|
+
orbit_id=self.orbit_id, sat_id=self.sat_id,
|
|
261
|
+
root_dir_local=self.data_root_dir,
|
|
262
|
+
force_download=self.force_download,
|
|
263
|
+
dry_run=self.download_dry_run,
|
|
264
|
+
)
|
|
265
|
+
return any(download_obj.done)
|
|
266
|
+
|
|
267
|
+
@property
|
|
268
|
+
def database(self):
|
|
269
|
+
return self._database
|
|
270
|
+
|
|
271
|
+
@database.setter
|
|
272
|
+
def database(self, value):
|
|
273
|
+
if isinstance(value, str):
|
|
274
|
+
self._database = DatabaseModel(value)
|
|
275
|
+
elif issubclass(value.__class__, DatabaseModel):
|
|
276
|
+
self._database = value
|
|
277
|
+
else:
|
|
278
|
+
raise TypeError
|
|
279
|
+
|
|
280
|
+
@property
|
|
281
|
+
def product(self):
|
|
282
|
+
return self._product
|
|
283
|
+
|
|
284
|
+
@product.setter
|
|
285
|
+
def product(self, value):
|
|
286
|
+
if isinstance(value, str):
|
|
287
|
+
self._product = ProductModel(value)
|
|
288
|
+
elif issubclass(value.__class__, ProductModel):
|
|
289
|
+
self._product = value
|
|
290
|
+
else:
|
|
291
|
+
raise TypeError
|
|
292
|
+
|
|
293
|
+
@property
|
|
294
|
+
def facility(self):
|
|
295
|
+
return self._facility
|
|
296
|
+
|
|
297
|
+
@facility.setter
|
|
298
|
+
def facility(self, value):
|
|
299
|
+
if isinstance(value, str):
|
|
300
|
+
self._facility = FacilityModel(value)
|
|
301
|
+
elif issubclass(value.__class__, FacilityModel):
|
|
302
|
+
self._facility = value
|
|
303
|
+
else:
|
|
304
|
+
raise TypeError
|
|
305
|
+
|
|
306
|
+
@property
|
|
307
|
+
def instrument(self):
|
|
308
|
+
return self._instrument
|
|
309
|
+
|
|
310
|
+
@instrument.setter
|
|
311
|
+
def instrument(self, value):
|
|
312
|
+
if isinstance(value, str):
|
|
313
|
+
self._instrument = InstrumentModel(value)
|
|
314
|
+
elif issubclass(value.__class__, InstrumentModel):
|
|
315
|
+
self._instrument = value
|
|
316
|
+
else:
|
|
317
|
+
raise TypeError
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import datetime
|
|
2
|
+
import pathlib
|
|
3
|
+
import copy
|
|
4
|
+
|
|
5
|
+
import geospacelab.toolbox.utilities.pydatetime as dttool
|
|
6
|
+
import geospacelab.toolbox.utilities.pylogging as mylog
|
|
7
|
+
from geospacelab.config import prf
|
|
8
|
+
from geospacelab.datahub.sources.cdaweb.dmsp.ssusi.downloader import Downloader as DownloaderBase
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class Downloader(DownloaderBase):
|
|
12
|
+
|
|
13
|
+
def __init__(
|
|
14
|
+
self,
|
|
15
|
+
dt_fr=None, dt_to=None,
|
|
16
|
+
sat_id=None,
|
|
17
|
+
orbit_id=None,
|
|
18
|
+
direct_download=True,
|
|
19
|
+
force_download=False,
|
|
20
|
+
dry_run=False,
|
|
21
|
+
root_dir_local = None,
|
|
22
|
+
):
|
|
23
|
+
|
|
24
|
+
super().__init__(
|
|
25
|
+
dt_fr, dt_to,
|
|
26
|
+
sat_id=sat_id,
|
|
27
|
+
orbit_id=orbit_id,
|
|
28
|
+
product='SDR_DISK',
|
|
29
|
+
root_dir_local=root_dir_local,
|
|
30
|
+
direct_download=direct_download,
|
|
31
|
+
force_download=force_download,
|
|
32
|
+
dry_run=dry_run,
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
if __name__ == "__main__":
|
|
37
|
+
downloader = Downloader(
|
|
38
|
+
dt_fr = datetime.datetime(2011, 1, 6),
|
|
39
|
+
dt_to = datetime.datetime(2011, 1, 6, 12),
|
|
40
|
+
sat_id='F17',
|
|
41
|
+
orbit_id='21523',
|
|
42
|
+
force_download=True,
|
|
43
|
+
dry_run=False,
|
|
44
|
+
)
|