geospacelab 0.10.3__tar.gz → 0.10.4__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.10.3/geospacelab.egg-info → geospacelab-0.10.4}/PKG-INFO +1 -1
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/__init__.py +1 -1
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/config/__init__.py +3 -2
- geospacelab-0.10.4/geospacelab/config/__mpl__.py +98 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/config/_preferences.py +3 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/__init__.py +9 -2
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/downloader.py +2 -2
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/downloader.py +15 -5
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/gnss/tecmap/variable_config.py +3 -2
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/eiscat/__init__.py +6 -5
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/__init__.py +48 -10
- {geospacelab-0.10.3/geospacelab/datahub/sources/madrigal/isr/risr_n → geospacelab-0.10.4/geospacelab/datahub/sources/madrigal/isr/pfisr}/fitted/loader.py +22 -3
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/observatory/orbit/utilities.py +14 -3
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/__base__.py +1 -97
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/colormaps.py +10 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/geomap/geopanels.py +11 -1
- {geospacelab-0.10.3 → geospacelab-0.10.4/geospacelab.egg-info}/PKG-INFO +1 -1
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab.egg-info/SOURCES.txt +1 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/LICENSE +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/MANIFEST.in +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/README.md +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/cs/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/cs/_aacgm.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/cs/_apex.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/cs/_cs_base.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/cs/_geo.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/cs/geo_utilities.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/__dataset_base__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/__metadata_base__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/__variable_base__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/cdaweb/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/cdaweb/dmsp/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/cdaweb/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/cdaweb/omni/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/cdaweb/omni/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/cdaweb/omni/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/cdaweb/omni/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/advanced/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_fp/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_hm/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_hm/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_hm/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_hm/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct02/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct02/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct02/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct02/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct16/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l1b/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_hr/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_hr/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_hr/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_hr/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_lr/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_lr/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_lr/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_lr/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2d/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/aej_lpl/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/aej_lpl/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/aej_lpl/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/aej_lpl/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_acc/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_acc/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_acc/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_acc/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_pod/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_pod/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_pod/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_pod/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/fac_tms/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/fac_tms/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/fac_tms/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/fac_tms/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/l2l/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/esa_eo/swarm/multimission/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/fmi/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/fmi/image/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/fmi/image/ie/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/fmi/image/ie/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/fmi/image/ie/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/fmi/image/ie/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/fmi/miracle/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/fmi/miracle/abk/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/fmi/miracle/kev/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/fmi/miracle/muo/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/hpo/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/hpo/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/hpo/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/hpo/nowcast/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/hpo/nowcast/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/hpo/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/kpap/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/kpap/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/kpap/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/kpap/nowcast/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/kpap/nowcast/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/kpap/nowcast/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/kpap/nowcast/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/kpap/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/snf107/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/snf107/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/gfz/snf107/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/isee/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/isee/gnss/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/isee/gnss/tecmap/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/isee/gnss/tecmap/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/isee/gnss/tecmap/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/isee/gnss/tecmap/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/ampere/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/ampere/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/ampere/fitted/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/ampere/fitted/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/ampere/fitted/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/ampere/grd/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/ampere/grd/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/ampere/grd/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/ampere/grd/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/dmsp/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/edraur/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/edraur/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/edraur/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/sdrdisk/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/sdrdisk/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/sdrdisk/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/gnss/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/gnss/tecmap/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/gnss/tecmap/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/gnss/tecmap/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/eiscat/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/eiscat/examples/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/eiscat/examples/eiscat_hdf5_info.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/eiscat/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/eiscat/utilities.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/eiscat/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/millstonehill/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/millstonehill/basic/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/millstonehill/basic/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/millstonehill/basic/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/millstonehill/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/millstonehill/gridded/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/millstonehill/gridded/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/millstonehill/gridded/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/millstonehill/vi/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/millstonehill/vi/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/millstonehill/vi/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/pfisr/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/pfisr/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/pfisr/vi/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/pfisr/vi/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/pfisr/vi/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/pfisr/vi/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/risr_n/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/risr_n/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/risr_n/fitted/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/risr_n/fitted/downloader.py +0 -0
- {geospacelab-0.10.3/geospacelab/datahub/sources/madrigal/isr/pfisr → geospacelab-0.10.4/geospacelab/datahub/sources/madrigal/isr/risr_n}/fitted/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/risr_n/fitted/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/risr_n/vi/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/risr_n/vi/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/risr_n/vi/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/isr/risr_n/vi/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/satellites/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/satellites/dmsp/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/satellites/dmsp/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/satellites/dmsp/e/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/satellites/dmsp/e/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/satellites/dmsp/e/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/utilities.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/ncei/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/ncei/dmsp/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/ncei/dmsp/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/ncei/dmsp/ssm_mfr/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/ncei/dmsp/ssm_mfr/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/ncei/dmsp/ssm_mfr/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/ncei/dmsp/ssm_mfr/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/nipr/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/nipr/asc/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/nipr/asc/tro_wmi/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/nipr/asc/tro_wmi/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/nipr/asc/tro_wmi/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/noaa/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/noaa/swpc/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/noaa/swpc/goesxray/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/noaa/swpc/solarwind/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/superdarn/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/superdarn/potmap/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/superdarn/potmap/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/superdarn/potmap/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/superdarn/potmap/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/supermag/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/supermag/indices/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/supermag/indices/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/supermag/indices/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/supermag/indices/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/supermag/magnetometer/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/supermag/magnetometer/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/supermag/magnetometer/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/supermag/magnetometer/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/supermag/supermag_api.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/supermag/utilities.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/champ/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/champ/dns_acc/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/champ/dns_acc/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/champ/dns_acc/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/champ/dns_acc/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/champ/wnd_acc/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/champ/wnd_acc/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/champ/wnd_acc/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/champ/wnd_acc/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/goce/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/goce/dns_wnd_acc/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/goce/dns_wnd_acc/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/goce/dns_wnd_acc/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/goce/dns_wnd_acc/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace/dns_acc/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace/dns_acc/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace/dns_acc/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace/dns_acc/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace/wnd_acc/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace/wnd_acc/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace/wnd_acc/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace/wnd_acc/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace_fo/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace_fo/dns_acc/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace_fo/dns_acc/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace_fo/dns_acc/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace_fo/dns_acc/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/swarm/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/swarm/dns_acc/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/swarm/dns_acc/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/swarm/dns_acc/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/swarm/dns_acc/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/swarm/dns_pod/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/swarm/dns_pod/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/swarm/dns_pod/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/tud/swarm/dns_pod/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/ae/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/ae/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/ae/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/ae/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/asysym/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/asysym/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/asysym/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/asysym/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/dst/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/dst/downloader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/dst/loader.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/wdc/dst/variable_config.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/express/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/express/dmsp_dashboard.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/express/eiscat_dashboard.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/express/millstonehill_dashboard.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/express/omni_dashboard.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/future/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/future/empiricalmodels/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/future/empiricalmodels/ovationprime2010/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/future/empiricalmodels/ovationprime2010/ovationprime.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/future/satllites/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/future/satllites/orbit_analyzer.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/future/test_sscws.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/observatory/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/observatory/constants.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/observatory/earth/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/observatory/earth/_func.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/observatory/earth/constants.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/observatory/earth/geodesy.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/observatory/earth/sun_position.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/observatory/orbit/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/observatory/orbit/sc_orbit.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/observatory/site/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/observatory/site/mixins.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/quantity/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/toolbox/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/toolbox/io/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/toolbox/io/dialog.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/toolbox/unit/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/toolbox/utilities/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/toolbox/utilities/numpyarray.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/toolbox/utilities/numpymath.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/toolbox/utilities/pybasic.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/toolbox/utilities/pyclass.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/toolbox/utilities/pydatetime.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/toolbox/utilities/pylogging.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/toolbox/utilities/pyos.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/_helpers.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/axes.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/axis_ticks.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/dashboards.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/figure.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/geomap/__base__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/geomap/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/geomap/geodashboards.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/mpl/panels.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/plotly/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/visualization/plotly/ipanel.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/geopack/LICENSE +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/geopack/README.md +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/geopack/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/geopack/geopack/__init__.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/geopack/geopack/geopack.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/geopack/geopack/igrf13coeffs.txt +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/geopack/geopack/t01.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/geopack/geopack/t04.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/geopack/geopack/t89.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/geopack/geopack/t96.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/geopack/geopack/test_geopack1.md +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/wrapper/geopack/geopack/test_geopack1.py +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab.egg-info/dependency_links.txt +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab.egg-info/requires.txt +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab.egg-info/top_level.txt +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/setup.cfg +0 -0
- {geospacelab-0.10.3 → geospacelab-0.10.4}/setup.py +0 -0
|
@@ -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.10.
|
|
9
|
+
__version__ = "0.10.4"
|
|
10
10
|
__maintainer__ = "Lei Cai"
|
|
11
11
|
__email__ = "lei.cai@oulu.fi"
|
|
12
12
|
__status__ = "Developing"
|
|
@@ -9,9 +9,8 @@ __email__ = "lei.cai@oulu.fi"
|
|
|
9
9
|
__docformat__ = "reStructureText"
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
from geospacelab.config._preferences import
|
|
12
|
+
from geospacelab.config._preferences import prf, pref
|
|
13
13
|
|
|
14
|
-
prf = pref = Preferences()
|
|
15
14
|
|
|
16
15
|
try:
|
|
17
16
|
opt = pref.user_config['visualization']
|
|
@@ -20,3 +19,5 @@ except KeyError:
|
|
|
20
19
|
uc['visualization'] = dict()
|
|
21
20
|
uc['visualization']['mpl'] = dict()
|
|
22
21
|
pref.set_user_config(user_config=uc, set_as_default=True)
|
|
22
|
+
|
|
23
|
+
from geospacelab.config.__mpl__ import mpl, plt
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import matplotlib as mpl
|
|
2
|
+
import matplotlib.pyplot as plt
|
|
3
|
+
|
|
4
|
+
from geospacelab.config._preferences import pref
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
from cycler import cycler
|
|
8
|
+
|
|
9
|
+
try:
|
|
10
|
+
mpl_style = pref.user_config['visualization']['mpl']['style']
|
|
11
|
+
except KeyError:
|
|
12
|
+
uc = pref.user_config
|
|
13
|
+
uc['visualization']['mpl']['style'] = 'light'
|
|
14
|
+
pref.set_user_config(user_config=uc, set_as_default=True)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
# plt.rcParams['font.serif'] = 'Ubuntu'
|
|
18
|
+
# plt.rcParams['font.monospace'] = 'Ubuntu Mono'
|
|
19
|
+
plt.rcParams['font.size'] = 10
|
|
20
|
+
plt.rcParams['axes.labelsize'] = 10
|
|
21
|
+
plt.rcParams['axes.labelweight'] = 'book'
|
|
22
|
+
plt.rcParams['axes.titlesize'] = 10
|
|
23
|
+
plt.rcParams['xtick.labelsize'] = 10
|
|
24
|
+
plt.rcParams['ytick.labelsize'] = 10
|
|
25
|
+
plt.rcParams['legend.fontsize'] = 10
|
|
26
|
+
plt.rcParams['figure.titlesize'] = 12
|
|
27
|
+
|
|
28
|
+
# plt.style.use('https://github.com/dhaitz/matplotlib-stylesheets/raw/master/pacoty.mplstyle')
|
|
29
|
+
mpl_style = pref.user_config['visualization']['mpl']['style']
|
|
30
|
+
|
|
31
|
+
if mpl_style == 'light':
|
|
32
|
+
plt.rcParams['axes.facecolor'] = '#FCFCFC'
|
|
33
|
+
plt.rcParams['text.color'] = 'k'
|
|
34
|
+
default_cycler = (cycler(color=['tab:blue', 'tab:red', 'tab:green', 'tab:purple', 'tab:orange', 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan']))
|
|
35
|
+
default_cycler = (cycler(color=['#1f77b4DD', '#ff7f0eDD', '#2ca02cDD', '#d62728DD', '#9467bdDD', '#8c564bDD', '#e377c2DD', '#7f7f7fDD', '#bcbd22DD', '#17becfDD']))
|
|
36
|
+
# colors = [
|
|
37
|
+
# (0.8980392156862745, 0.5254901960784314, 0.023529411764705882),
|
|
38
|
+
# (0.36470588235294116, 0.4117647058823529, 0.6941176470588235),
|
|
39
|
+
# (0.3215686274509804, 0.7372549019607844, 0.6392156862745098),
|
|
40
|
+
# (0.6, 0.788235294117647, 0.27058823529411763),
|
|
41
|
+
# (0.8, 0.3803921568627451, 0.6901960784313725),
|
|
42
|
+
# (0.1411764705882353, 0.4745098039215686, 0.4235294117647059),
|
|
43
|
+
# (0.8549019607843137, 0.6470588235294118, 0.10588235294117647),
|
|
44
|
+
# (0.1843137254901961, 0.5411764705882353, 0.7686274509803922),
|
|
45
|
+
# (0.4627450980392157, 0.3058823529411765, 0.6235294117647059),
|
|
46
|
+
# (0.9294117647058824, 0.39215686274509803, 0.35294117647058826),
|
|
47
|
+
# ]
|
|
48
|
+
colors = [
|
|
49
|
+
(0.36470588235294116, 0.4117647058823529, 0.6941176470588235),
|
|
50
|
+
(0.9294117647058824, 0.39215686274509803, 0.35294117647058826),
|
|
51
|
+
(0.3215686274509804, 0.7372549019607844, 0.6392156862745098),
|
|
52
|
+
(0.8980392156862745, 0.5254901960784314, 0.023529411764705882),
|
|
53
|
+
(0.6, 0.788235294117647, 0.27058823529411763),
|
|
54
|
+
(0.8, 0.3803921568627451, 0.6901960784313725),
|
|
55
|
+
(0.1411764705882353, 0.4745098039215686, 0.4235294117647059),
|
|
56
|
+
(0.8549019607843137, 0.6470588235294118, 0.10588235294117647),
|
|
57
|
+
(0.1843137254901961, 0.5411764705882353, 0.7686274509803922),
|
|
58
|
+
(0.4627450980392157, 0.3058823529411765, 0.6235294117647059),
|
|
59
|
+
|
|
60
|
+
]
|
|
61
|
+
default_cycler = (cycler(color=colors))
|
|
62
|
+
plt.rc('axes', prop_cycle=default_cycler)
|
|
63
|
+
elif mpl_style == 'dark':
|
|
64
|
+
plt.rcParams['figure.facecolor'] = '#0C1C23'
|
|
65
|
+
plt.rcParams['savefig.facecolor'] = '#0C1C23'
|
|
66
|
+
|
|
67
|
+
plt.rcParams['axes.facecolor'] = '#FFFFFF20'
|
|
68
|
+
plt.rcParams['axes.edgecolor'] = '#FFFFFF3D'
|
|
69
|
+
plt.rcParams['axes.labelcolor'] = '#FFFFFFD9'
|
|
70
|
+
|
|
71
|
+
plt.rcParams['xtick.color'] = '#FFFFFFD9'
|
|
72
|
+
plt.rcParams['ytick.color'] = '#FFFFFFD9'
|
|
73
|
+
plt.rcParams['text.color'] = 'white'
|
|
74
|
+
|
|
75
|
+
plt.rcParams['grid.color'] = '#FFFFFF'
|
|
76
|
+
plt.rcParams['legend.facecolor'] = plt.rcParams['axes.facecolor']
|
|
77
|
+
plt.rcParams['legend.edgecolor'] = '#FFFFFFD9'
|
|
78
|
+
|
|
79
|
+
# seaborn dark:['#001c7f', '#b1400d', '#12711c', '#8c0800', '#591e71', '#592f0d', '#a23582', '#3c3c3c', '#b8850a', '#006374']
|
|
80
|
+
# seaborn pastel '#a1c9f4', '#ffb482', '#8de5a1', '#ff9f9b', '#d0bbff', '#debb9b', '#fab0e4', '#cfcfcf', '#fffea3', '#b9f2f0'
|
|
81
|
+
default_cycler = (cycler(color=['#F5EE33', '#33FF99', 'r', '#9467bd', '#08C7FE', '#FE66BB', ]))
|
|
82
|
+
colors = [
|
|
83
|
+
(0.1843137254901961, 0.5411764705882353, 0.7686274509803922),
|
|
84
|
+
(0.9294117647058824, 0.39215686274509803, 0.35294117647058826),
|
|
85
|
+
(0.3215686274509804, 0.7372549019607844, 0.6392156862745098),
|
|
86
|
+
(0.8980392156862745, 0.5254901960784314, 0.023529411764705882),
|
|
87
|
+
(0.6, 0.788235294117647, 0.27058823529411763),
|
|
88
|
+
(0.8, 0.3803921568627451, 0.6901960784313725),
|
|
89
|
+
(0.1411764705882353, 0.4745098039215686, 0.4235294117647059),
|
|
90
|
+
(0.8549019607843137, 0.6470588235294118, 0.10588235294117647),
|
|
91
|
+
(0.36470588235294116, 0.4117647058823529, 0.6941176470588235),
|
|
92
|
+
(0.4627450980392157, 0.3058823529411765, 0.6235294117647059),
|
|
93
|
+
]
|
|
94
|
+
default_cycler = (cycler(color=colors))
|
|
95
|
+
# default_cycler = (cycler(color=palettable.cartocolors.qualitative.Safe_10.mpl_colors))
|
|
96
|
+
plt.rc('axes', prop_cycle=default_cycler)
|
|
97
|
+
else:
|
|
98
|
+
plt.style.use(mpl_style)
|
|
@@ -34,6 +34,7 @@ default_dataset_attrs = {
|
|
|
34
34
|
|
|
35
35
|
default_variable_names = [
|
|
36
36
|
'DATETIME', 'STARTING_TIME', 'STOPPING_TIME',
|
|
37
|
+
'ORBIT_ID',
|
|
37
38
|
'GRID_MLAT', 'GRID_MLON', 'GRID_MLT', 'GRID_UT',
|
|
38
39
|
'GRID_AUR_1216', 'GRID_AUR_1304', 'GRID_AUR_1356', 'GRID_AUR_LBHS', 'GRID_AUR_LBHL',
|
|
39
40
|
]
|
|
@@ -93,6 +94,8 @@ class Dataset(datahub.DatasetSourced):
|
|
|
93
94
|
default_variable_names,
|
|
94
95
|
configured_variables=var_config.configured_variables
|
|
95
96
|
)
|
|
97
|
+
if self.orbit_id is None:
|
|
98
|
+
self.orbit_id = []
|
|
96
99
|
for file_path in self.data_file_paths:
|
|
97
100
|
try:
|
|
98
101
|
load_obj = self.loader(file_path, file_type=self.product.lower(), pole=self.pole)
|
|
@@ -105,14 +108,17 @@ class Dataset(datahub.DatasetSourced):
|
|
|
105
108
|
continue
|
|
106
109
|
if var_name in ['DATETIME', 'STARTING_TIME', 'STOPPING_TIME']:
|
|
107
110
|
value = np.array([load_obj.variables[var_name]])[np.newaxis, :]
|
|
111
|
+
elif var_name == 'ORBIT_ID':
|
|
112
|
+
value = np.array([load_obj.metadata['ORBIT_ID']], dtype=str)
|
|
108
113
|
else:
|
|
109
114
|
value = np.empty((1, ), dtype=object)
|
|
110
115
|
value[0] = load_obj.variables[var_name]
|
|
111
116
|
# value = load_obj.variables[var_name][np.newaxis, ::]
|
|
112
117
|
self._variables[var_name].join(value)
|
|
113
118
|
|
|
114
|
-
|
|
115
|
-
|
|
119
|
+
self.orbit_id = self['ORBIT_ID'].value
|
|
120
|
+
if len(self.orbit_id):
|
|
121
|
+
self.orbit_id = self.orbit_id[0]
|
|
116
122
|
if self.time_clip:
|
|
117
123
|
self.time_filter_by_range()
|
|
118
124
|
|
|
@@ -178,6 +184,7 @@ class Dataset(datahub.DatasetSourced):
|
|
|
178
184
|
download_obj = self.downloader(
|
|
179
185
|
dt_fr, dt_to,
|
|
180
186
|
orbit_id=self.orbit_id, sat_id=self.sat_id,
|
|
187
|
+
data_file_root_dir=self.data_root_dir
|
|
181
188
|
)
|
|
182
189
|
return download_obj.done
|
|
183
190
|
|
|
@@ -22,7 +22,7 @@ class Downloader(DownloaderBase):
|
|
|
22
22
|
):
|
|
23
23
|
product = 'EDR_AUR'
|
|
24
24
|
if data_file_root_dir is None:
|
|
25
|
-
data_file_root_dir = prf.datahub_data_root_dir / 'CDAWeb' / 'DMSP' / 'SSUSI' /product
|
|
25
|
+
data_file_root_dir = prf.datahub_data_root_dir / 'CDAWeb' / 'DMSP' / 'SSUSI' / product
|
|
26
26
|
self.sat_id = sat_id
|
|
27
27
|
self.orbit_id = orbit_id
|
|
28
28
|
self.source_subdirs = ['dmsp', 'dmsp'+self.sat_id.lower(), 'ssusi', 'data', 'edr-aurora']
|
|
@@ -78,7 +78,7 @@ class Downloader(DownloaderBase):
|
|
|
78
78
|
year = int(sy)
|
|
79
79
|
this_day = dttool.convert_doy_to_datetime(year, int(sdoy))
|
|
80
80
|
if file_dir is None:
|
|
81
|
-
file_dir = self.data_file_root_dir / sy / this_day.strftime("%Y%m%d")
|
|
81
|
+
file_dir = self.data_file_root_dir / self.sat_id.upper() / sy / this_day.strftime("%Y%m%d")
|
|
82
82
|
super().save_file_from_http(url, file_dir=file_dir)
|
|
83
83
|
|
|
84
84
|
|
{geospacelab-0.10.3 → geospacelab-0.10.4}/geospacelab/datahub/sources/madrigal/downloader.py
RENAMED
|
@@ -331,7 +331,7 @@ class Downloader(object):
|
|
|
331
331
|
exclude_exp_name_patterns=None,
|
|
332
332
|
include_exp_ids=None,
|
|
333
333
|
exclude_exp_ids=None,
|
|
334
|
-
icodes=None, madrigal_url=None, display=True,
|
|
334
|
+
icodes=None, madrigal_url=None, display=True, level=0,
|
|
335
335
|
):
|
|
336
336
|
|
|
337
337
|
def try_to_get_database(max=3, interval=30):
|
|
@@ -383,8 +383,9 @@ class Downloader(object):
|
|
|
383
383
|
|
|
384
384
|
exps_new = []
|
|
385
385
|
another_madrigal_url = ''
|
|
386
|
+
|
|
386
387
|
for exp in exps:
|
|
387
|
-
if exp.id == -1:
|
|
388
|
+
if exp.id == -1 and level==0:
|
|
388
389
|
if another_madrigal_url != exp.madrigalUrl:
|
|
389
390
|
mylog.StreamLogger.warning(
|
|
390
391
|
f'Another Madrigal site detected: {exp.madrigalUrl}!'
|
|
@@ -400,12 +401,21 @@ class Downloader(object):
|
|
|
400
401
|
|
|
401
402
|
exps = np.array(exps_new, dtype=object)
|
|
402
403
|
|
|
403
|
-
if not list(exps):
|
|
404
|
+
if not list(exps) and not str(another_madrigal_url):
|
|
404
405
|
raise ValueError('Cannot find available experiments from the current database! Check the input values!')
|
|
405
|
-
elif str(another_madrigal_url):
|
|
406
|
+
elif str(another_madrigal_url) and level==0:
|
|
406
407
|
mylog.StreamLogger.warning(
|
|
407
|
-
'Some data are located in another Madrigal site
|
|
408
|
+
'Some data are located in another Madrigal site: {}.'.format(another_madrigal_url)
|
|
408
409
|
)
|
|
410
|
+
|
|
411
|
+
exps, database = Downloader.get_exp_list(
|
|
412
|
+
dt_fr=dt_fr, dt_to=dt_to,
|
|
413
|
+
include_exp_name_patterns=include_exp_name_patterns,
|
|
414
|
+
exclude_exp_name_patterns=exclude_exp_name_patterns,
|
|
415
|
+
include_exp_ids=include_exp_ids,
|
|
416
|
+
exclude_exp_ids=exclude_exp_ids,
|
|
417
|
+
icodes=icodes, madrigal_url=another_madrigal_url, display=display, level=level+1
|
|
418
|
+
)
|
|
409
419
|
else:
|
|
410
420
|
pass
|
|
411
421
|
|
|
@@ -45,7 +45,7 @@ var = Var(name=var_name, ndim=3, variable_type='scalar', visual=visual)
|
|
|
45
45
|
var.fullname = 'GNSS TEC MAP'
|
|
46
46
|
var.label = r'TEC'
|
|
47
47
|
var.group = r'TEC'
|
|
48
|
-
var.unit = '
|
|
48
|
+
var.unit = 'TECU'
|
|
49
49
|
var.depends = {0: depend_0, 1: depend_1}
|
|
50
50
|
# set plot attrs
|
|
51
51
|
plot_config = var.visual.plot_config
|
|
@@ -53,6 +53,7 @@ plot_config.config(**default_plot_config)
|
|
|
53
53
|
plot_config.style = '2P'
|
|
54
54
|
# set axis attrs
|
|
55
55
|
axis = var.visual.axis
|
|
56
|
-
|
|
56
|
+
axis[2].label = '@v.label'
|
|
57
|
+
axis[2].unit = '@v.unit'
|
|
57
58
|
|
|
58
59
|
configured_variables[var_name] = var
|
|
@@ -134,16 +134,17 @@ class Dataset(datahub.DatasetSourced):
|
|
|
134
134
|
self.affiliation = load_obj.metadata['affiliation']
|
|
135
135
|
self.metadata = load_obj.metadata
|
|
136
136
|
|
|
137
|
-
inds_cmb = np.argsort(self['DATETIME'].flatten())
|
|
138
|
-
if any(np.diff(np.array(inds_cmb))<0):
|
|
139
|
-
for var_name in self.keys():
|
|
140
|
-
self[var_name].value = self[var_name].value[inds_cmb, :]
|
|
141
|
-
|
|
142
137
|
if self.add_AACGM or self.add_APEX:
|
|
143
138
|
self.calc_lat_lon()
|
|
144
139
|
# self.select_beams(field_aligned=True)
|
|
145
140
|
if self.time_clip:
|
|
146
141
|
self.time_filter_by_range()
|
|
142
|
+
|
|
143
|
+
inds_cmb = np.argsort(self['DATETIME'].flatten())
|
|
144
|
+
if any(np.diff(np.array(inds_cmb)) < 0):
|
|
145
|
+
for var_name in self.keys():
|
|
146
|
+
self[var_name].value = self[var_name].value[inds_cmb, :]
|
|
147
|
+
|
|
147
148
|
if self.status_control:
|
|
148
149
|
self.status_mask()
|
|
149
150
|
if self.residual_control:
|
|
@@ -33,6 +33,7 @@ default_dataset_attrs = {
|
|
|
33
33
|
'exp_check': False,
|
|
34
34
|
'data_file_ext': ['h5', 'hdf5'],
|
|
35
35
|
'data_root_dir': prf.datahub_data_root_dir / 'Madrigal' / 'PFISR',
|
|
36
|
+
'force_download': False,
|
|
36
37
|
'allow_download': True,
|
|
37
38
|
'status_control': False,
|
|
38
39
|
'residual_control': False,
|
|
@@ -76,6 +77,8 @@ class Dataset(datahub.DatasetSourced):
|
|
|
76
77
|
self.affiliation = kwargs.pop('affiliation', '')
|
|
77
78
|
self.pulse_code = kwargs.pop('pulse_code', 'alternating code')
|
|
78
79
|
self.allow_download = kwargs.pop('allow_download', True)
|
|
80
|
+
self.force_download = kwargs.pop('force_download', False)
|
|
81
|
+
self.gate_num = kwargs.pop('gate_num', None)
|
|
79
82
|
self.beam_id = kwargs.pop('beam_id', None)
|
|
80
83
|
self.beam_az = kwargs.pop('beam_az', None)
|
|
81
84
|
self.beam_el = kwargs.pop('beam_el', None)
|
|
@@ -124,15 +127,29 @@ class Dataset(datahub.DatasetSourced):
|
|
|
124
127
|
def load_data(self, **kwargs):
|
|
125
128
|
self.check_data_files(**kwargs)
|
|
126
129
|
|
|
130
|
+
load_objs = []
|
|
131
|
+
gate_nums = []
|
|
127
132
|
for file_path in self.data_file_paths:
|
|
128
|
-
load_obj = self.loader(file_path, beam_az=self.beam_az, beam_el=self.beam_el, beam_id=self.beam_id)
|
|
129
|
-
|
|
133
|
+
load_obj = self.loader(file_path, beam_az=self.beam_az, beam_el=self.beam_el, beam_id=self.beam_id, gate_num=self.gate_num)
|
|
134
|
+
load_objs.append(load_obj)
|
|
135
|
+
gate_nums.append(load_obj.gate_num)
|
|
136
|
+
|
|
137
|
+
if len(np.unique(gate_nums)) > 1:
|
|
138
|
+
mylog.StreamLogger.warning(
|
|
139
|
+
"Multiple types of experiments detected with different gate" +
|
|
140
|
+
"numbers (maximum: {})! Set 'gate_num' to this number!".format(np.max(gate_nums)))
|
|
141
|
+
self.gate_num = np.max(gate_nums)
|
|
142
|
+
load_objs = []
|
|
143
|
+
for file_path in self.data_file_paths:
|
|
144
|
+
load_obj = self.loader(file_path, beam_az=self.beam_az, beam_el=self.beam_el, beam_id=self.beam_id,
|
|
145
|
+
gate_num=self.gate_num)
|
|
146
|
+
load_objs.append(load_obj)
|
|
147
|
+
|
|
148
|
+
for load_obj in load_objs:
|
|
130
149
|
for var_name in self._variables.keys():
|
|
131
150
|
self._variables[var_name].join(load_obj.variables[var_name])
|
|
132
151
|
self.metadata = load_obj.metadata
|
|
133
152
|
|
|
134
|
-
if self.show_beams:
|
|
135
|
-
load_obj.list_beams()
|
|
136
153
|
self.beams = load_obj.beams
|
|
137
154
|
self.beam_id = load_obj.beam_id
|
|
138
155
|
self.beam_az = load_obj.beam_az
|
|
@@ -147,6 +164,23 @@ class Dataset(datahub.DatasetSourced):
|
|
|
147
164
|
if self.time_clip:
|
|
148
165
|
self.time_filter_by_range()
|
|
149
166
|
|
|
167
|
+
inds_cmb = np.argsort(self['DATETIME'].flatten())
|
|
168
|
+
if any(np.diff(np.array(inds_cmb))<0):
|
|
169
|
+
mylog.StreamLogger.warning("Multiple types of experiments detected! The times are re-sorted and data are combined!")
|
|
170
|
+
multi_experiments = True
|
|
171
|
+
for var_name in self.keys():
|
|
172
|
+
self[var_name].value = self[var_name].value[inds_cmb, :]
|
|
173
|
+
else:
|
|
174
|
+
multi_experiments = False
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
if self.show_beams:
|
|
178
|
+
if multi_experiments:
|
|
179
|
+
for load_obj in load_objs:
|
|
180
|
+
load_obj.list_beams()
|
|
181
|
+
else:
|
|
182
|
+
load_objs[0].list_beams()
|
|
183
|
+
|
|
150
184
|
def calc_lat_lon(self):
|
|
151
185
|
from geospacelab.cs import LENUSpherical
|
|
152
186
|
az = self['AZ'].value
|
|
@@ -205,7 +239,7 @@ class Dataset(datahub.DatasetSourced):
|
|
|
205
239
|
search_pattern=search_pattern, recursive=True, allow_multiple_files=True
|
|
206
240
|
)
|
|
207
241
|
|
|
208
|
-
if not done and self.allow_download:
|
|
242
|
+
if (not done and self.allow_download) or self.force_download:
|
|
209
243
|
done = self.download_data()
|
|
210
244
|
if done:
|
|
211
245
|
done = super().search_data_files(
|
|
@@ -227,13 +261,16 @@ class Dataset(datahub.DatasetSourced):
|
|
|
227
261
|
|
|
228
262
|
else:
|
|
229
263
|
diff_years = dt_to.year - dt_fr.year
|
|
264
|
+
download_check = 0
|
|
230
265
|
for ny in range(diff_years + 1):
|
|
231
266
|
initial_file_dir = self.data_root_dir / str(dt_to.year + ny)
|
|
232
267
|
search_pattern = "*EID-*/"
|
|
233
268
|
exp_dirs = list(initial_file_dir.glob(search_pattern))
|
|
234
269
|
|
|
235
|
-
if not list(exp_dirs) and self.allow_download:
|
|
236
|
-
self.download_data()
|
|
270
|
+
if (not list(exp_dirs) and self.allow_download) or self.force_download:
|
|
271
|
+
self.download_data()
|
|
272
|
+
download_check = 1
|
|
273
|
+
exp_dirs = list(initial_file_dir.glob(search_pattern))
|
|
237
274
|
|
|
238
275
|
def dir_parser(dirs):
|
|
239
276
|
dirs_out = []
|
|
@@ -251,8 +288,8 @@ class Dataset(datahub.DatasetSourced):
|
|
|
251
288
|
return dirs_out
|
|
252
289
|
file_dirs = dir_parser(exp_dirs)
|
|
253
290
|
|
|
254
|
-
if not list(file_dirs) and self.allow_download:
|
|
255
|
-
|
|
291
|
+
# if not list(file_dirs) and self.allow_download and download_check:
|
|
292
|
+
# self.download_data()
|
|
256
293
|
|
|
257
294
|
for fd in file_dirs:
|
|
258
295
|
if isinstance(self.exp_name_pattern, list):
|
|
@@ -281,7 +318,7 @@ class Dataset(datahub.DatasetSourced):
|
|
|
281
318
|
|
|
282
319
|
# Validate file paths
|
|
283
320
|
|
|
284
|
-
if not done and self.allow_download:
|
|
321
|
+
if not done and self.allow_download and download_check:
|
|
285
322
|
done = self.download_data()
|
|
286
323
|
if done:
|
|
287
324
|
done = super().search_data_files(
|
|
@@ -349,6 +386,7 @@ class Dataset(datahub.DatasetSourced):
|
|
|
349
386
|
download_obj = self.downloader(
|
|
350
387
|
dt_fr=self.dt_fr, dt_to=self.dt_to,
|
|
351
388
|
pulse_code=self.pulse_code,
|
|
389
|
+
force_download=self.force_download,
|
|
352
390
|
dry_run=dry_run,
|
|
353
391
|
data_file_root_dir=self.data_root_dir,
|
|
354
392
|
include_exp_ids=self.experiment_ids,
|
|
@@ -51,7 +51,7 @@ class Loader:
|
|
|
51
51
|
:param load_data: True, load without calling the method "load_data" separately.
|
|
52
52
|
:type load_data: bool
|
|
53
53
|
"""
|
|
54
|
-
def __init__(self, file_path, beam_id=None, beam_az=None, beam_el=None, direct_load=True):
|
|
54
|
+
def __init__(self, file_path, beam_id=None, beam_az=None, beam_el=None, direct_load=True, gate_num=None):
|
|
55
55
|
self.file_path = file_path
|
|
56
56
|
self.beam_id = beam_id
|
|
57
57
|
self.beam_az = beam_az
|
|
@@ -59,6 +59,7 @@ class Loader:
|
|
|
59
59
|
self.beams = None
|
|
60
60
|
self.variables = {}
|
|
61
61
|
self.metadata = {}
|
|
62
|
+
self.gate_num = gate_num
|
|
62
63
|
|
|
63
64
|
self.done = False
|
|
64
65
|
if direct_load:
|
|
@@ -184,9 +185,27 @@ class Loader:
|
|
|
184
185
|
elif var_name == 'dnel':
|
|
185
186
|
vars_fh5['dne'] = 10 ** np.array(fh5_vars_2d[var_name]).T
|
|
186
187
|
else:
|
|
187
|
-
|
|
188
|
+
arr = np.array(fh5_vars_2d[var_name]).T
|
|
189
|
+
|
|
190
|
+
if self.gate_num is None:
|
|
191
|
+
vars_fh5[var_name] = arr
|
|
192
|
+
|
|
193
|
+
else:
|
|
194
|
+
arr_new = np.empty((arr.shape[0], self.gate_num))
|
|
195
|
+
arr_new[::] = np.nan
|
|
196
|
+
for ii in range(arr.shape[0]):
|
|
197
|
+
arr_new[ii, 0: arr.shape[1]] = arr[ii, :]
|
|
198
|
+
vars_fh5[var_name] = arr_new
|
|
199
|
+
self.gate_num = vars_fh5['ne'].shape[1]
|
|
200
|
+
|
|
188
201
|
vars_fh5['range'] = np.array(data_fh5['Array Layout'][array_layout_str]['range'])[np.newaxis, :]
|
|
189
|
-
if
|
|
202
|
+
if vars_fh5['range'].shape[1] < self.gate_num:
|
|
203
|
+
arr = np.empty((1, self.gate_num))
|
|
204
|
+
arr[::] = np.nan
|
|
205
|
+
arr[0, 0:vars_fh5['range'].shape[1]] = vars_fh5['range'].flatten()
|
|
206
|
+
vars_fh5['range'] = arr
|
|
207
|
+
|
|
208
|
+
if np.nanmedian(vars_fh5['range'].flatten()) > 1e5:
|
|
190
209
|
mylog.StreamLogger.warning(f"The variable range is detected in [m]. It is converted into [km].")
|
|
191
210
|
vars_fh5['range'] = vars_fh5['range'] * 1e-3
|
|
192
211
|
vars_fh5['timestamps'] = np.array(data_fh5['Array Layout'][array_layout_str]['timestamps'])[:, np.newaxis]
|
|
@@ -47,7 +47,9 @@ class LEOToolbox(DatasetUser):
|
|
|
47
47
|
if list(inds_abnormal):
|
|
48
48
|
iiii = np.array(inds_abnormal) + 1
|
|
49
49
|
nodes['INDEX'] = np.delete(nodes['INDEX'], iiii)
|
|
50
|
+
nodes['GEO_LAT'] = np.delete(nodes['GEO_LAT'], iiii)
|
|
50
51
|
nodes['GEO_LON'] = np.delete(nodes['GEO_LON'], iiii)
|
|
52
|
+
nodes['GEO_ALT'] = np.delete(nodes['GEO_ALT'], iiii)
|
|
51
53
|
nodes['GEO_LST'] = np.delete(nodes['GEO_LST'], iiii)
|
|
52
54
|
nodes['DATETIME'] = np.delete(nodes['DATETIME'], iiii)
|
|
53
55
|
|
|
@@ -55,6 +57,7 @@ class LEOToolbox(DatasetUser):
|
|
|
55
57
|
glat = self['SC_GEO_LAT'].value.flatten()
|
|
56
58
|
glat_ = glat[0::data_interval]
|
|
57
59
|
glon = self['SC_GEO_LON'].value.flatten()
|
|
60
|
+
alt = self['SC_GEO_ALT'].flatten()
|
|
58
61
|
lst = self['SC_GEO_LST'].value.flatten()
|
|
59
62
|
dts = self['SC_DATETIME'].value.flatten()
|
|
60
63
|
ind_1 = argrelextrema(np.abs(glat_), np.less, )[0]
|
|
@@ -74,26 +77,34 @@ class LEOToolbox(DatasetUser):
|
|
|
74
77
|
ind_between = np.where(ind_1 > ind_N)[0]
|
|
75
78
|
inds_asc.append(ind_1[ind_between[0]-1])
|
|
76
79
|
inds_dsc.append(ind_1[ind_between[0]])
|
|
77
|
-
self.ascending_nodes['INDEX'] = inds_asc
|
|
78
|
-
self.ascending_nodes['GEO_LON'] = glon[inds_asc]
|
|
80
|
+
self.ascending_nodes['INDEX'] = np.array(inds_asc)
|
|
81
|
+
self.ascending_nodes['GEO_LON'] = glon[inds_asc]
|
|
82
|
+
self.ascending_nodes['GEO_LAT'] = glat[inds_asc]
|
|
83
|
+
self.ascending_nodes['GEO_ALT'] = alt[inds_asc]
|
|
79
84
|
self.ascending_nodes['GEO_LST'] = lst[inds_asc]
|
|
80
85
|
self.ascending_nodes['DATETIME'] = dts[inds_asc]
|
|
81
86
|
check_nodes(self.ascending_nodes)
|
|
82
87
|
|
|
83
|
-
self.descending_nodes['INDEX']= inds_dsc
|
|
88
|
+
self.descending_nodes['INDEX']= np.array(inds_dsc)
|
|
84
89
|
self.descending_nodes['GEO_LON'] = glon[inds_dsc]
|
|
90
|
+
self.descending_nodes['GEO_LAT'] = glat[inds_dsc]
|
|
91
|
+
self.descending_nodes['GEO_ALT'] = alt[inds_dsc]
|
|
85
92
|
self.descending_nodes['GEO_LST'] = lst[inds_dsc]
|
|
86
93
|
self.descending_nodes['DATETIME'] = dts[inds_dsc]
|
|
87
94
|
check_nodes(self.descending_nodes)
|
|
88
95
|
|
|
89
96
|
self.northern_nodes['INDEX'] = ind_2
|
|
90
97
|
self.northern_nodes['GEO_LON'] = glon[ind_2]
|
|
98
|
+
self.northern_nodes['GEO_LAT'] = glat[ind_2]
|
|
99
|
+
self.northern_nodes['GEO_ALT'] = alt[ind_2]
|
|
91
100
|
self.northern_nodes['GEO_LST'] = lst[ind_2]
|
|
92
101
|
self.northern_nodes['DATETIME'] = dts[ind_2]
|
|
93
102
|
check_nodes(self.northern_nodes)
|
|
94
103
|
|
|
95
104
|
self.southern_nodes['INDEX'] = ind_3
|
|
96
105
|
self.southern_nodes['GEO_LON'] = glon[ind_3]
|
|
106
|
+
self.southern_nodes['GEO_LAT'] = glat[ind_3]
|
|
107
|
+
self.southern_nodes['GEO_ALT'] = alt[ind_3]
|
|
97
108
|
self.southern_nodes['GEO_LST'] = lst[ind_3]
|
|
98
109
|
self.southern_nodes['DATETIME'] = dts[ind_3]
|
|
99
110
|
check_nodes(self.southern_nodes)
|
|
@@ -2,8 +2,6 @@ import copy
|
|
|
2
2
|
import weakref
|
|
3
3
|
import string
|
|
4
4
|
import numpy as np
|
|
5
|
-
import matplotlib.pyplot as plt
|
|
6
|
-
import matplotlib as mpl
|
|
7
5
|
import pathlib
|
|
8
6
|
from matplotlib.axes import Axes
|
|
9
7
|
from typing import Dict
|
|
@@ -12,9 +10,7 @@ from typing import Dict
|
|
|
12
10
|
from matplotlib.gridspec import GridSpec, SubplotSpec
|
|
13
11
|
from matplotlib.figure import Figure
|
|
14
12
|
|
|
15
|
-
from
|
|
16
|
-
|
|
17
|
-
from geospacelab.config import pref
|
|
13
|
+
from geospacelab.config import pref, mpl, plt
|
|
18
14
|
from geospacelab.toolbox.utilities.pyclass import StrBase
|
|
19
15
|
import geospacelab.toolbox.utilities.pybasic as pybasic
|
|
20
16
|
from geospacelab.visualization.mpl._helpers import check_panel_ax
|
|
@@ -22,98 +18,6 @@ import geospacelab.toolbox.utilities.pylogging as mylog
|
|
|
22
18
|
# from geospacelab.visualization.mpl.dashboards import Dashboard
|
|
23
19
|
|
|
24
20
|
|
|
25
|
-
try:
|
|
26
|
-
mpl_style = pref.user_config['visualization']['mpl']['style']
|
|
27
|
-
except KeyError:
|
|
28
|
-
uc = pref.user_config
|
|
29
|
-
uc['visualization']['mpl']['style'] = 'light'
|
|
30
|
-
pref.set_user_config(user_config=uc, set_as_default=True)
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
# plt.rcParams['font.serif'] = 'Ubuntu'
|
|
34
|
-
# plt.rcParams['font.monospace'] = 'Ubuntu Mono'
|
|
35
|
-
plt.rcParams['font.size'] = 10
|
|
36
|
-
plt.rcParams['axes.labelsize'] = 10
|
|
37
|
-
plt.rcParams['axes.labelweight'] = 'book'
|
|
38
|
-
plt.rcParams['axes.titlesize'] = 10
|
|
39
|
-
plt.rcParams['xtick.labelsize'] = 10
|
|
40
|
-
plt.rcParams['ytick.labelsize'] = 10
|
|
41
|
-
plt.rcParams['legend.fontsize'] = 10
|
|
42
|
-
plt.rcParams['figure.titlesize'] = 12
|
|
43
|
-
|
|
44
|
-
# plt.style.use('https://github.com/dhaitz/matplotlib-stylesheets/raw/master/pacoty.mplstyle')
|
|
45
|
-
mpl_style = pref.user_config['visualization']['mpl']['style']
|
|
46
|
-
|
|
47
|
-
if mpl_style == 'light':
|
|
48
|
-
plt.rcParams['axes.facecolor'] = '#FCFCFC'
|
|
49
|
-
plt.rcParams['text.color'] = 'k'
|
|
50
|
-
default_cycler = (cycler(color=['tab:blue', 'tab:red', 'tab:green', 'tab:purple', 'tab:orange', 'tab:brown', 'tab:pink', 'tab:gray', 'tab:olive', 'tab:cyan']))
|
|
51
|
-
default_cycler = (cycler(color=['#1f77b4DD', '#ff7f0eDD', '#2ca02cDD', '#d62728DD', '#9467bdDD', '#8c564bDD', '#e377c2DD', '#7f7f7fDD', '#bcbd22DD', '#17becfDD']))
|
|
52
|
-
# colors = [
|
|
53
|
-
# (0.8980392156862745, 0.5254901960784314, 0.023529411764705882),
|
|
54
|
-
# (0.36470588235294116, 0.4117647058823529, 0.6941176470588235),
|
|
55
|
-
# (0.3215686274509804, 0.7372549019607844, 0.6392156862745098),
|
|
56
|
-
# (0.6, 0.788235294117647, 0.27058823529411763),
|
|
57
|
-
# (0.8, 0.3803921568627451, 0.6901960784313725),
|
|
58
|
-
# (0.1411764705882353, 0.4745098039215686, 0.4235294117647059),
|
|
59
|
-
# (0.8549019607843137, 0.6470588235294118, 0.10588235294117647),
|
|
60
|
-
# (0.1843137254901961, 0.5411764705882353, 0.7686274509803922),
|
|
61
|
-
# (0.4627450980392157, 0.3058823529411765, 0.6235294117647059),
|
|
62
|
-
# (0.9294117647058824, 0.39215686274509803, 0.35294117647058826),
|
|
63
|
-
# ]
|
|
64
|
-
colors = [
|
|
65
|
-
(0.36470588235294116, 0.4117647058823529, 0.6941176470588235),
|
|
66
|
-
(0.9294117647058824, 0.39215686274509803, 0.35294117647058826),
|
|
67
|
-
(0.3215686274509804, 0.7372549019607844, 0.6392156862745098),
|
|
68
|
-
(0.8980392156862745, 0.5254901960784314, 0.023529411764705882),
|
|
69
|
-
(0.6, 0.788235294117647, 0.27058823529411763),
|
|
70
|
-
(0.8, 0.3803921568627451, 0.6901960784313725),
|
|
71
|
-
(0.1411764705882353, 0.4745098039215686, 0.4235294117647059),
|
|
72
|
-
(0.8549019607843137, 0.6470588235294118, 0.10588235294117647),
|
|
73
|
-
(0.1843137254901961, 0.5411764705882353, 0.7686274509803922),
|
|
74
|
-
(0.4627450980392157, 0.3058823529411765, 0.6235294117647059),
|
|
75
|
-
|
|
76
|
-
]
|
|
77
|
-
default_cycler = (cycler(color=colors))
|
|
78
|
-
plt.rc('axes', prop_cycle=default_cycler)
|
|
79
|
-
elif mpl_style == 'dark':
|
|
80
|
-
plt.rcParams['figure.facecolor'] = '#0C1C23'
|
|
81
|
-
plt.rcParams['savefig.facecolor'] = '#0C1C23'
|
|
82
|
-
|
|
83
|
-
plt.rcParams['axes.facecolor'] = '#FFFFFF20'
|
|
84
|
-
plt.rcParams['axes.edgecolor'] = '#FFFFFF3D'
|
|
85
|
-
plt.rcParams['axes.labelcolor'] = '#FFFFFFD9'
|
|
86
|
-
|
|
87
|
-
plt.rcParams['xtick.color'] = '#FFFFFFD9'
|
|
88
|
-
plt.rcParams['ytick.color'] = '#FFFFFFD9'
|
|
89
|
-
plt.rcParams['text.color'] = 'white'
|
|
90
|
-
|
|
91
|
-
plt.rcParams['grid.color'] = '#FFFFFF'
|
|
92
|
-
plt.rcParams['legend.facecolor'] = plt.rcParams['axes.facecolor']
|
|
93
|
-
plt.rcParams['legend.edgecolor'] = '#FFFFFFD9'
|
|
94
|
-
|
|
95
|
-
# seaborn dark:['#001c7f', '#b1400d', '#12711c', '#8c0800', '#591e71', '#592f0d', '#a23582', '#3c3c3c', '#b8850a', '#006374']
|
|
96
|
-
# seaborn pastel '#a1c9f4', '#ffb482', '#8de5a1', '#ff9f9b', '#d0bbff', '#debb9b', '#fab0e4', '#cfcfcf', '#fffea3', '#b9f2f0'
|
|
97
|
-
default_cycler = (cycler(color=['#F5EE33', '#33FF99', 'r', '#9467bd', '#08C7FE', '#FE66BB', ]))
|
|
98
|
-
colors = [
|
|
99
|
-
(0.1843137254901961, 0.5411764705882353, 0.7686274509803922),
|
|
100
|
-
(0.9294117647058824, 0.39215686274509803, 0.35294117647058826),
|
|
101
|
-
(0.3215686274509804, 0.7372549019607844, 0.6392156862745098),
|
|
102
|
-
(0.8980392156862745, 0.5254901960784314, 0.023529411764705882),
|
|
103
|
-
(0.6, 0.788235294117647, 0.27058823529411763),
|
|
104
|
-
(0.8, 0.3803921568627451, 0.6901960784313725),
|
|
105
|
-
(0.1411764705882353, 0.4745098039215686, 0.4235294117647059),
|
|
106
|
-
(0.8549019607843137, 0.6470588235294118, 0.10588235294117647),
|
|
107
|
-
(0.36470588235294116, 0.4117647058823529, 0.6941176470588235),
|
|
108
|
-
(0.4627450980392157, 0.3058823529411765, 0.6235294117647059),
|
|
109
|
-
]
|
|
110
|
-
default_cycler = (cycler(color=colors))
|
|
111
|
-
# default_cycler = (cycler(color=palettable.cartocolors.qualitative.Safe_10.mpl_colors))
|
|
112
|
-
plt.rc('axes', prop_cycle=default_cycler)
|
|
113
|
-
else:
|
|
114
|
-
plt.style.use(mpl_style)
|
|
115
|
-
|
|
116
|
-
|
|
117
21
|
class FigureBase(Figure):
|
|
118
22
|
"""
|
|
119
23
|
GeospaceLab canvas inherits from ``matplotlib.figure.Figure`` with additional functions and settings.
|
|
@@ -54,6 +54,16 @@ def cmap_jhuapl_ssj_like():
|
|
|
54
54
|
return mycmap
|
|
55
55
|
|
|
56
56
|
|
|
57
|
+
def cmap_jhuapl_ssusi_like():
|
|
58
|
+
c1 = ['#000000', "#330066",
|
|
59
|
+
'#0000CC', '#0080FF',
|
|
60
|
+
"#00CC00", '#80FF00',
|
|
61
|
+
'#FFFF00', '#FF8000',
|
|
62
|
+
'#FF0000', '#FF6666']
|
|
63
|
+
mycmap = colors.LinearSegmentedColormap.from_list("jhuapl_ssusi_like", c1, N=500)
|
|
64
|
+
return mycmap
|
|
65
|
+
|
|
66
|
+
|
|
57
67
|
def cmap_aurora():
|
|
58
68
|
c1 = ['#848F9E', '#6A4CA1', '#4035A3', '#395EA6', '#003300', '#006600', '#009900', '#00BB00', '#00DD00', '#00FF00', '#80FF80', '#B3FFB3']
|
|
59
69
|
c1 = ['#AEAAB0', '#78519A', '#51227B', '#310073',
|