geospacelab 0.10.0__tar.gz → 0.10.2__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.0/geospacelab.egg-info → geospacelab-0.10.2}/PKG-INFO +39 -34
- {geospacelab-0.10.0 → geospacelab-0.10.2}/README.md +38 -33
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/__init__.py +1 -1
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/eiscat/__init__.py +17 -6
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/eiscat/downloader.py +2 -2
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/eiscat/loader.py +72 -36
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/__init__.py +5 -5
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/downloader.py +1 -1
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/loader.py +2 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/__init__.py +2 -2
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/__init__.py +2 -2
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/toolbox/utilities/numpyarray.py +137 -1
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/panels.py +16 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2/geospacelab.egg-info}/PKG-INFO +39 -34
- {geospacelab-0.10.0 → geospacelab-0.10.2}/LICENSE +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/MANIFEST.in +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/config/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/config/_preferences.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/cs/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/cs/_aacgm.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/cs/_apex.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/cs/_cs_base.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/cs/_geo.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/cs/geo_utilities.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/__dataset_base__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/__metadata_base__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/__variable_base__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/cdaweb/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/cdaweb/dmsp/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/cdaweb/dmsp/ssusi/edr_aur/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/cdaweb/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/cdaweb/omni/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/cdaweb/omni/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/cdaweb/omni/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/cdaweb/omni/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/advanced/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_fp/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_hm/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_hm/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_hm/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_lp_hm/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct02/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct02/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct02/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct02/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/advanced/efi_tct16/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l1b/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_hr/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_hr/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_hr/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_hr/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_lr/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_lr/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_lr/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l1b/mag_lr/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2d/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/aej_lpl/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/aej_lpl/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/aej_lpl/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/aej_lpl/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_acc/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_acc/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_acc/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_acc/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_pod/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_pod/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_pod/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/dns_pod/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/fac_tms/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/fac_tms/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/fac_tms/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2daily/fac_tms/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/l2l/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/esa_eo/swarm/multimission/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/fmi/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/fmi/image/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/fmi/image/ie/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/fmi/image/ie/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/fmi/image/ie/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/fmi/image/ie/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/fmi/miracle/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/fmi/miracle/abk/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/fmi/miracle/kev/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/fmi/miracle/muo/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/hpo/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/hpo/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/hpo/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/hpo/nowcast/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/hpo/nowcast/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/hpo/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/kpap/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/kpap/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/kpap/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/kpap/nowcast/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/kpap/nowcast/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/kpap/nowcast/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/kpap/nowcast/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/kpap/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/snf107/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/snf107/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/gfz/snf107/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/isee/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/isee/gnss/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/isee/gnss/tecmap/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/isee/gnss/tecmap/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/isee/gnss/tecmap/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/isee/gnss/tecmap/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/ampere/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/ampere/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/ampere/fitted/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/ampere/fitted/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/ampere/fitted/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/ampere/grd/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/ampere/grd/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/ampere/grd/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/ampere/grd/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/dmsp/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/edraur/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/edraur/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/edraur/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/sdrdisk/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/sdrdisk/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/jhuapl/dmsp/ssusi/sdrdisk/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/gnss/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/gnss/tecmap/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/gnss/tecmap/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/gnss/tecmap/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/gnss/tecmap/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/eiscat/examples/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/eiscat/examples/eiscat_hdf5_info.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/eiscat/utilities.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/eiscat/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/millstonehill/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/millstonehill/basic/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/millstonehill/basic/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/millstonehill/basic/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/millstonehill/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/millstonehill/gridded/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/millstonehill/gridded/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/millstonehill/gridded/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/millstonehill/vi/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/millstonehill/vi/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/millstonehill/vi/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/pfisr/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/pfisr/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/pfisr/fitted/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/pfisr/vi/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/pfisr/vi/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/pfisr/vi/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/pfisr/vi/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/satellites/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/satellites/dmsp/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/satellites/dmsp/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/satellites/dmsp/e/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/satellites/dmsp/e/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/satellites/dmsp/e/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s1/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/satellites/dmsp/s4/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/utilities.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/ncei/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/ncei/dmsp/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/ncei/dmsp/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/ncei/dmsp/ssm_mfr/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/ncei/dmsp/ssm_mfr/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/ncei/dmsp/ssm_mfr/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/ncei/dmsp/ssm_mfr/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/nipr/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/nipr/asc/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/nipr/asc/tro_wmi/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/nipr/asc/tro_wmi/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/nipr/asc/tro_wmi/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/noaa/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/noaa/swpc/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/noaa/swpc/goesxray/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/noaa/swpc/solarwind/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/superdarn/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/superdarn/potmap/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/superdarn/potmap/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/superdarn/potmap/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/superdarn/potmap/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/supermag/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/supermag/indices/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/supermag/indices/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/supermag/indices/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/supermag/indices/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/supermag/magnetometer/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/supermag/magnetometer/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/supermag/magnetometer/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/supermag/magnetometer/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/supermag/supermag_api.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/supermag/utilities.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/champ/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/champ/dns_acc/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/champ/dns_acc/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/champ/dns_acc/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/champ/dns_acc/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/champ/wnd_acc/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/champ/wnd_acc/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/champ/wnd_acc/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/champ/wnd_acc/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/goce/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/goce/dns_wnd_acc/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/goce/dns_wnd_acc/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/goce/dns_wnd_acc/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/goce/dns_wnd_acc/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace/dns_acc/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace/dns_acc/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace/dns_acc/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace/dns_acc/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace/wnd_acc/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace/wnd_acc/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace/wnd_acc/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace/wnd_acc/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace_fo/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace_fo/dns_acc/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace_fo/dns_acc/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace_fo/dns_acc/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace_fo/dns_acc/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/grace_fo/wnd_acc/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/swarm/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/swarm/dns_acc/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/swarm/dns_acc/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/swarm/dns_acc/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/swarm/dns_acc/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/swarm/dns_pod/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/swarm/dns_pod/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/swarm/dns_pod/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/tud/swarm/dns_pod/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/ae/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/ae/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/ae/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/ae/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/asysym/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/asysym/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/asysym/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/asysym/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/dst/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/dst/downloader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/dst/loader.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/wdc/dst/variable_config.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/express/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/express/dmsp_dashboard.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/express/eiscat_dashboard.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/express/millstonehill_dashboard.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/express/omni_dashboard.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/future/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/future/empiricalmodels/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/future/empiricalmodels/ovationprime2010/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/future/empiricalmodels/ovationprime2010/ovationprime.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/future/satllites/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/future/satllites/orbit_analyzer.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/future/test_sscws.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/observatory/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/observatory/constants.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/observatory/earth/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/observatory/earth/_func.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/observatory/earth/constants.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/observatory/earth/geodesy.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/observatory/earth/sun_position.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/observatory/orbit/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/observatory/orbit/sc_orbit.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/observatory/orbit/utilities.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/observatory/site/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/observatory/site/mixins.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/quantity/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/toolbox/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/toolbox/io/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/toolbox/io/dialog.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/toolbox/unit/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/toolbox/utilities/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/toolbox/utilities/numpymath.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/toolbox/utilities/pybasic.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/toolbox/utilities/pyclass.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/toolbox/utilities/pydatetime.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/toolbox/utilities/pylogging.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/toolbox/utilities/pyos.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/__base__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/_helpers.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/axes.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/axis_ticks.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/colormaps.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/dashboards.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/figure.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/geomap/__base__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/geomap/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/geomap/geodashboards.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/mpl/geomap/geopanels.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/plotly/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/visualization/plotly/ipanel.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/geopack/LICENSE +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/geopack/README.md +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/geopack/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/geopack/geopack/__init__.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/geopack/geopack/geopack.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/geopack/geopack/igrf13coeffs.txt +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/geopack/geopack/t01.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/geopack/geopack/t04.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/geopack/geopack/t89.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/geopack/geopack/t96.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/geopack/geopack/test_geopack1.md +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/wrapper/geopack/geopack/test_geopack1.py +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab.egg-info/SOURCES.txt +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab.egg-info/dependency_links.txt +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab.egg-info/requires.txt +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab.egg-info/top_level.txt +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/setup.cfg +0 -0
- {geospacelab-0.10.0 → geospacelab-0.10.2}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: geospacelab
|
|
3
|
-
Version: 0.10.
|
|
3
|
+
Version: 0.10.2
|
|
4
4
|
Summary: Collect, manage, and visualize geospace data.
|
|
5
5
|
Home-page: https://github.com/JouleCai/geospacelab
|
|
6
6
|
Author: Lei Cai
|
|
@@ -378,14 +378,9 @@ Output:
|
|
|
378
378
|
From then on, the data source has been switched from JHUAPL to CDAWeb.
|
|
379
379
|
|
|
380
380
|
```python
|
|
381
|
-
import datetime
|
|
382
|
-
import matplotlib.pyplot as plt
|
|
383
|
-
|
|
384
|
-
import geospacelab.visualization.mpl.geomap.geodashboards as geomap
|
|
385
|
-
|
|
386
381
|
dt_fr = datetime.datetime(2015, 9, 8, 8)
|
|
387
382
|
dt_to = datetime.datetime(2015, 9, 8, 23, 59)
|
|
388
|
-
|
|
383
|
+
time_c = datetime.datetime(2015, 9, 8, 20, 21)
|
|
389
384
|
pole = 'N'
|
|
390
385
|
sat_id = 'f16'
|
|
391
386
|
band = 'LBHS'
|
|
@@ -396,49 +391,51 @@ dashboard = geomap.GeoDashboard(dt_fr=dt_fr, dt_to=dt_to, figure_config={'figsiz
|
|
|
396
391
|
# If the orbit_id is specified, only one file will be downloaded. This option saves the downloading time.
|
|
397
392
|
# dashboard.dock(datasource_contents=['jhuapl', 'dmsp', 'ssusi', 'edraur'], pole='N', sat_id='f17', orbit_id='46863')
|
|
398
393
|
# If not specified, the data during the whole day will be downloaded.
|
|
399
|
-
dashboard.dock(
|
|
400
|
-
datasource_contents=dashboard.dock(datasource_contents=['cdaweb', 'dmsp', 'ssusi', 'edr_aur'],
|
|
401
|
-
pole=pole, sat_id=sat_id, orbit_id=None
|
|
402
|
-
)
|
|
394
|
+
ds_ssusi = dashboard.dock(datasource_contents=['cdaweb', 'dmsp', 'ssusi', 'edr_aur'], pole=pole, sat_id=sat_id, orbit_id=None)
|
|
403
395
|
ds_s1 = dashboard.dock(
|
|
404
396
|
datasource_contents=['madrigal', 'satellites', 'dmsp', 's1'],
|
|
405
|
-
dt_fr=
|
|
406
|
-
dt_to=
|
|
407
|
-
sat_id=sat_id
|
|
408
|
-
)
|
|
397
|
+
dt_fr=time_c - datetime.timedelta(minutes=45),
|
|
398
|
+
dt_to=time_c + datetime.timedelta(minutes=45),
|
|
399
|
+
sat_id=sat_id, replace_orbit=True)
|
|
409
400
|
|
|
410
401
|
dashboard.set_layout(1, 1)
|
|
411
402
|
|
|
412
403
|
# Get the variables: LBHS emission intensiy, corresponding times and locations
|
|
413
|
-
lbhs =
|
|
414
|
-
dts =
|
|
415
|
-
mlat =
|
|
416
|
-
mlon =
|
|
417
|
-
mlt =
|
|
404
|
+
lbhs = ds_ssusi['GRID_AUR_' + band]
|
|
405
|
+
dts = ds_ssusi['DATETIME'].flatten()
|
|
406
|
+
mlat = ds_ssusi['GRID_MLAT']
|
|
407
|
+
mlon = ds_ssusi['GRID_MLON']
|
|
408
|
+
mlt = ds_ssusi['GRID_MLT']
|
|
418
409
|
|
|
419
410
|
# Search the index for the time to plot, used as an input to the following polar map
|
|
420
|
-
ind_t = dashboard.datasets[0].get_time_ind(ut=
|
|
411
|
+
ind_t = dashboard.datasets[0].get_time_ind(ut=time_c)
|
|
412
|
+
if (dts[ind_t] - time_c).total_seconds()/60 > 60: # in minutes
|
|
413
|
+
raise ValueError("The time does not match any SSUSI data!")
|
|
421
414
|
lbhs_ = lbhs.value[ind_t]
|
|
422
|
-
mlat_ = mlat[ind_t]
|
|
423
|
-
mlon_ = mlon[ind_t]
|
|
424
|
-
mlt_ = mlt[ind_t]
|
|
415
|
+
mlat_ = mlat.value[ind_t]
|
|
416
|
+
mlon_ = mlon.value[ind_t]
|
|
417
|
+
mlt_ = mlt.value[ind_t]
|
|
425
418
|
# Add a polar map panel to the dashboard. Currently the style is the fixed MLT at mlt_c=0. See the keywords below:
|
|
426
|
-
|
|
419
|
+
panel = dashboard.add_polar_map(
|
|
420
|
+
row_ind=0, col_ind=0, style='mlt-fixed', cs='AACGM',
|
|
421
|
+
mlt_c=0., pole=pole, ut=time_c, boundary_lat=55., mirror_south=True
|
|
422
|
+
)
|
|
427
423
|
|
|
428
424
|
# Some settings for plotting.
|
|
429
425
|
pcolormesh_config = lbhs.visual.plot_config.pcolormesh
|
|
430
426
|
# Overlay the SSUSI image in the map.
|
|
431
|
-
|
|
432
|
-
|
|
427
|
+
ipc = panel.overlay_pcolormesh(
|
|
428
|
+
data=lbhs_, coords={'lat': mlat_, 'lon': mlon_, 'mlt': mlt_}, cs='AACGM',
|
|
429
|
+
regridding=False, **pcolormesh_config)
|
|
433
430
|
# Add a color bar
|
|
434
|
-
|
|
431
|
+
panel.add_colorbar(ipc, c_label=band + " (R)", c_scale=pcolormesh_config['c_scale'], left=1.1, bottom=0.1,
|
|
435
432
|
width=0.05, height=0.7)
|
|
436
433
|
|
|
437
434
|
# Overlay the gridlines
|
|
438
|
-
|
|
435
|
+
panel.overlay_gridlines(lat_res=5, lon_label_separator=5)
|
|
439
436
|
|
|
440
437
|
# Overlay the coastlines in the AACGM coordinate
|
|
441
|
-
|
|
438
|
+
panel.overlay_coastlines()
|
|
442
439
|
|
|
443
440
|
# Overlay cross-track velocity along satellite trajectory
|
|
444
441
|
sc_dt = ds_s1['SC_DATETIME'].value.flatten()
|
|
@@ -448,14 +445,22 @@ sc_alt = ds_s1['SC_GEO_ALT'].value.flatten()
|
|
|
448
445
|
sc_coords = {'lat': sc_lat, 'lon': sc_lon, 'height': sc_alt}
|
|
449
446
|
|
|
450
447
|
v_H = ds_s1['v_i_H'].value.flatten()
|
|
451
|
-
|
|
448
|
+
panel.overlay_cross_track_vector(
|
|
449
|
+
vector=v_H, unit_vector=1000, vector_unit='m/s', alpha=0.3, color='red',
|
|
450
|
+
sc_coords=sc_coords, sc_ut=sc_dt, cs='GEO',
|
|
451
|
+
)
|
|
452
452
|
# Overlay the satellite trajectory with ticks
|
|
453
|
-
|
|
453
|
+
panel.overlay_sc_trajectory(sc_ut=sc_dt, sc_coords=sc_coords, cs='GEO')
|
|
454
|
+
|
|
455
|
+
# Overlay sites
|
|
456
|
+
panel.overlay_sites(
|
|
457
|
+
site_ids=['TRO', 'ESR'], coords={'lat': [69.58, 78.15], 'lon': [19.23, 16.02], 'height': 0.},
|
|
458
|
+
cs='GEO', marker='^', markersize=2)
|
|
454
459
|
|
|
455
460
|
# Add the title and save the figure
|
|
456
461
|
polestr = 'North' if pole == 'N' else 'South'
|
|
457
|
-
|
|
458
|
-
plt.savefig('DMSP_SSUSI_' +
|
|
462
|
+
panel.add_title(title='DMSP/SSUSI, ' + band + ', ' + sat_id.upper() + ', ' + polestr + ', ' + time_c.strftime('%Y-%m-%d %H%M UT'))
|
|
463
|
+
plt.savefig('DMSP_SSUSI_' + time_c.strftime('%Y%m%d-%H%M') + '_' + band + '_' + sat_id.upper() + '_' + pole, dpi=300)
|
|
459
464
|
|
|
460
465
|
# show the figure
|
|
461
466
|
plt.show()
|
|
@@ -322,14 +322,9 @@ Output:
|
|
|
322
322
|
From then on, the data source has been switched from JHUAPL to CDAWeb.
|
|
323
323
|
|
|
324
324
|
```python
|
|
325
|
-
import datetime
|
|
326
|
-
import matplotlib.pyplot as plt
|
|
327
|
-
|
|
328
|
-
import geospacelab.visualization.mpl.geomap.geodashboards as geomap
|
|
329
|
-
|
|
330
325
|
dt_fr = datetime.datetime(2015, 9, 8, 8)
|
|
331
326
|
dt_to = datetime.datetime(2015, 9, 8, 23, 59)
|
|
332
|
-
|
|
327
|
+
time_c = datetime.datetime(2015, 9, 8, 20, 21)
|
|
333
328
|
pole = 'N'
|
|
334
329
|
sat_id = 'f16'
|
|
335
330
|
band = 'LBHS'
|
|
@@ -340,49 +335,51 @@ dashboard = geomap.GeoDashboard(dt_fr=dt_fr, dt_to=dt_to, figure_config={'figsiz
|
|
|
340
335
|
# If the orbit_id is specified, only one file will be downloaded. This option saves the downloading time.
|
|
341
336
|
# dashboard.dock(datasource_contents=['jhuapl', 'dmsp', 'ssusi', 'edraur'], pole='N', sat_id='f17', orbit_id='46863')
|
|
342
337
|
# If not specified, the data during the whole day will be downloaded.
|
|
343
|
-
dashboard.dock(
|
|
344
|
-
datasource_contents=dashboard.dock(datasource_contents=['cdaweb', 'dmsp', 'ssusi', 'edr_aur'],
|
|
345
|
-
pole=pole, sat_id=sat_id, orbit_id=None
|
|
346
|
-
)
|
|
338
|
+
ds_ssusi = dashboard.dock(datasource_contents=['cdaweb', 'dmsp', 'ssusi', 'edr_aur'], pole=pole, sat_id=sat_id, orbit_id=None)
|
|
347
339
|
ds_s1 = dashboard.dock(
|
|
348
340
|
datasource_contents=['madrigal', 'satellites', 'dmsp', 's1'],
|
|
349
|
-
dt_fr=
|
|
350
|
-
dt_to=
|
|
351
|
-
sat_id=sat_id
|
|
352
|
-
)
|
|
341
|
+
dt_fr=time_c - datetime.timedelta(minutes=45),
|
|
342
|
+
dt_to=time_c + datetime.timedelta(minutes=45),
|
|
343
|
+
sat_id=sat_id, replace_orbit=True)
|
|
353
344
|
|
|
354
345
|
dashboard.set_layout(1, 1)
|
|
355
346
|
|
|
356
347
|
# Get the variables: LBHS emission intensiy, corresponding times and locations
|
|
357
|
-
lbhs =
|
|
358
|
-
dts =
|
|
359
|
-
mlat =
|
|
360
|
-
mlon =
|
|
361
|
-
mlt =
|
|
348
|
+
lbhs = ds_ssusi['GRID_AUR_' + band]
|
|
349
|
+
dts = ds_ssusi['DATETIME'].flatten()
|
|
350
|
+
mlat = ds_ssusi['GRID_MLAT']
|
|
351
|
+
mlon = ds_ssusi['GRID_MLON']
|
|
352
|
+
mlt = ds_ssusi['GRID_MLT']
|
|
362
353
|
|
|
363
354
|
# Search the index for the time to plot, used as an input to the following polar map
|
|
364
|
-
ind_t = dashboard.datasets[0].get_time_ind(ut=
|
|
355
|
+
ind_t = dashboard.datasets[0].get_time_ind(ut=time_c)
|
|
356
|
+
if (dts[ind_t] - time_c).total_seconds()/60 > 60: # in minutes
|
|
357
|
+
raise ValueError("The time does not match any SSUSI data!")
|
|
365
358
|
lbhs_ = lbhs.value[ind_t]
|
|
366
|
-
mlat_ = mlat[ind_t]
|
|
367
|
-
mlon_ = mlon[ind_t]
|
|
368
|
-
mlt_ = mlt[ind_t]
|
|
359
|
+
mlat_ = mlat.value[ind_t]
|
|
360
|
+
mlon_ = mlon.value[ind_t]
|
|
361
|
+
mlt_ = mlt.value[ind_t]
|
|
369
362
|
# Add a polar map panel to the dashboard. Currently the style is the fixed MLT at mlt_c=0. See the keywords below:
|
|
370
|
-
|
|
363
|
+
panel = dashboard.add_polar_map(
|
|
364
|
+
row_ind=0, col_ind=0, style='mlt-fixed', cs='AACGM',
|
|
365
|
+
mlt_c=0., pole=pole, ut=time_c, boundary_lat=55., mirror_south=True
|
|
366
|
+
)
|
|
371
367
|
|
|
372
368
|
# Some settings for plotting.
|
|
373
369
|
pcolormesh_config = lbhs.visual.plot_config.pcolormesh
|
|
374
370
|
# Overlay the SSUSI image in the map.
|
|
375
|
-
|
|
376
|
-
|
|
371
|
+
ipc = panel.overlay_pcolormesh(
|
|
372
|
+
data=lbhs_, coords={'lat': mlat_, 'lon': mlon_, 'mlt': mlt_}, cs='AACGM',
|
|
373
|
+
regridding=False, **pcolormesh_config)
|
|
377
374
|
# Add a color bar
|
|
378
|
-
|
|
375
|
+
panel.add_colorbar(ipc, c_label=band + " (R)", c_scale=pcolormesh_config['c_scale'], left=1.1, bottom=0.1,
|
|
379
376
|
width=0.05, height=0.7)
|
|
380
377
|
|
|
381
378
|
# Overlay the gridlines
|
|
382
|
-
|
|
379
|
+
panel.overlay_gridlines(lat_res=5, lon_label_separator=5)
|
|
383
380
|
|
|
384
381
|
# Overlay the coastlines in the AACGM coordinate
|
|
385
|
-
|
|
382
|
+
panel.overlay_coastlines()
|
|
386
383
|
|
|
387
384
|
# Overlay cross-track velocity along satellite trajectory
|
|
388
385
|
sc_dt = ds_s1['SC_DATETIME'].value.flatten()
|
|
@@ -392,14 +389,22 @@ sc_alt = ds_s1['SC_GEO_ALT'].value.flatten()
|
|
|
392
389
|
sc_coords = {'lat': sc_lat, 'lon': sc_lon, 'height': sc_alt}
|
|
393
390
|
|
|
394
391
|
v_H = ds_s1['v_i_H'].value.flatten()
|
|
395
|
-
|
|
392
|
+
panel.overlay_cross_track_vector(
|
|
393
|
+
vector=v_H, unit_vector=1000, vector_unit='m/s', alpha=0.3, color='red',
|
|
394
|
+
sc_coords=sc_coords, sc_ut=sc_dt, cs='GEO',
|
|
395
|
+
)
|
|
396
396
|
# Overlay the satellite trajectory with ticks
|
|
397
|
-
|
|
397
|
+
panel.overlay_sc_trajectory(sc_ut=sc_dt, sc_coords=sc_coords, cs='GEO')
|
|
398
|
+
|
|
399
|
+
# Overlay sites
|
|
400
|
+
panel.overlay_sites(
|
|
401
|
+
site_ids=['TRO', 'ESR'], coords={'lat': [69.58, 78.15], 'lon': [19.23, 16.02], 'height': 0.},
|
|
402
|
+
cs='GEO', marker='^', markersize=2)
|
|
398
403
|
|
|
399
404
|
# Add the title and save the figure
|
|
400
405
|
polestr = 'North' if pole == 'N' else 'South'
|
|
401
|
-
|
|
402
|
-
plt.savefig('DMSP_SSUSI_' +
|
|
406
|
+
panel.add_title(title='DMSP/SSUSI, ' + band + ', ' + sat_id.upper() + ', ' + polestr + ', ' + time_c.strftime('%Y-%m-%d %H%M UT'))
|
|
407
|
+
plt.savefig('DMSP_SSUSI_' + time_c.strftime('%Y%m%d-%H%M') + '_' + band + '_' + sat_id.upper() + '_' + pole, dpi=300)
|
|
403
408
|
|
|
404
409
|
# show the figure
|
|
405
410
|
plt.show()
|
|
@@ -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.2"
|
|
10
10
|
__maintainer__ = "Lei Cai"
|
|
11
11
|
__email__ = "lei.cai@oulu.fi"
|
|
12
12
|
__status__ = "Developing"
|
|
@@ -72,7 +72,8 @@ class Dataset(datahub.DatasetSourced):
|
|
|
72
72
|
self.data_file_type = kwargs.pop('data_file_type', '')
|
|
73
73
|
self.affiliation = kwargs.pop('affiliation', '')
|
|
74
74
|
self.allow_download = kwargs.pop('allow_download', True)
|
|
75
|
-
self.
|
|
75
|
+
self.gate_num = kwargs.pop('gate_num', None)
|
|
76
|
+
self.metadata = {}
|
|
76
77
|
self.add_AACGM = kwargs.pop('add_AACGM', True)
|
|
77
78
|
self.add_APEX = kwargs.pop('add_APEX', False)
|
|
78
79
|
|
|
@@ -116,7 +117,9 @@ class Dataset(datahub.DatasetSourced):
|
|
|
116
117
|
self.check_data_files(**kwargs)
|
|
117
118
|
|
|
118
119
|
for file_path in self.data_file_paths:
|
|
119
|
-
load_obj = self.loader(file_path, file_type=self.data_file_type)
|
|
120
|
+
load_obj = self.loader(file_path, file_type=self.data_file_type, gate_num=self.gate_num)
|
|
121
|
+
if self.gate_num is None:
|
|
122
|
+
self.gate_num = load_obj.gate_num
|
|
120
123
|
|
|
121
124
|
for var_name in self._variables.keys():
|
|
122
125
|
self._variables[var_name].join(load_obj.variables[var_name])
|
|
@@ -130,6 +133,12 @@ class Dataset(datahub.DatasetSourced):
|
|
|
130
133
|
self.experiment = rawdata_path.split('/')[-1].split('@')[0]
|
|
131
134
|
self.affiliation = load_obj.metadata['affiliation']
|
|
132
135
|
self.metadata = load_obj.metadata
|
|
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
|
+
|
|
133
142
|
if self.add_AACGM or self.add_APEX:
|
|
134
143
|
self.calc_lat_lon()
|
|
135
144
|
# self.select_beams(field_aligned=True)
|
|
@@ -357,21 +366,23 @@ class Dataset(datahub.DatasetSourced):
|
|
|
357
366
|
fps_sub = []
|
|
358
367
|
for ii in inds_id:
|
|
359
368
|
fp = file_paths[ii]
|
|
360
|
-
rc = re.compile(r".*_([\d]{8}T[\d]{6}).*_([\d]{8}T[\d]{6}).*[\d]{4}\-[\d]{2}\-[\d]{2}_([\w]+)@.*")
|
|
369
|
+
rc = re.compile(r".*_([\d]{8}T[\d]{6}).*_([\d]{8}T[\d]{6}).*[\d]{4}\-[\d]{2}\-[\d]{2}_([\w.]+)@.*")
|
|
361
370
|
res = rc.search(str(fp))
|
|
362
371
|
dt_0 = datetime.datetime.strptime(res.groups()[0], '%Y%m%dT%H%M%S')
|
|
363
372
|
dt_1 = datetime.datetime.strptime(res.groups()[1], '%Y%m%dT%H%M%S')
|
|
364
373
|
if (dt_0 >= self.dt_to) or (dt_1<=self.dt_fr):
|
|
365
374
|
continue
|
|
366
375
|
if str(self.pulse_code):
|
|
367
|
-
if self.pulse_code not in res.groups()[2]:
|
|
376
|
+
if self.pulse_code not in res.groups()[2].lower():
|
|
368
377
|
continue
|
|
369
378
|
if str(self.modulation):
|
|
370
|
-
if self.modulation not in res.groups()[2]:
|
|
379
|
+
if self.modulation not in res.groups()[2].lower():
|
|
371
380
|
continue
|
|
381
|
+
if '_v' in res.groups()[2].lower():
|
|
382
|
+
continue
|
|
372
383
|
fps_sub.extend([fp])
|
|
373
384
|
if len(fps_sub) > 1:
|
|
374
|
-
mylog.StreamLogger.warning("Multiple data files for a single experiment detected!
|
|
385
|
+
mylog.StreamLogger.warning("Multiple data files for a single experiment detected!")
|
|
375
386
|
# for fp in fps_sub:
|
|
376
387
|
# mylog.simpleinfo.info(str(fp))
|
|
377
388
|
# fps_sub = fps_sub[0]
|
|
@@ -207,8 +207,8 @@ class Downloader(DownloaderBase):
|
|
|
207
207
|
dt_to_exp = datetime.datetime(
|
|
208
208
|
exp.endyear, exp.endmonth, exp.endday, exp.endhour, exp.endmin, exp.endsec
|
|
209
209
|
)
|
|
210
|
-
if (dt_fr_exp >= self.dt_to) or (dt_to_exp <= self.dt_fr):
|
|
211
|
-
|
|
210
|
+
# if (dt_fr_exp >= self.dt_to) or (dt_to_exp <= self.dt_fr):
|
|
211
|
+
# continue
|
|
212
212
|
for file in list(exp.files):
|
|
213
213
|
|
|
214
214
|
file_path_remote = pathlib.Path(file.name)
|
{geospacelab-0.10.0 → geospacelab-0.10.2}/geospacelab/datahub/sources/madrigal/isr/eiscat/loader.py
RENAMED
|
@@ -13,6 +13,7 @@ import h5py
|
|
|
13
13
|
import numpy as np
|
|
14
14
|
import pathlib
|
|
15
15
|
import re
|
|
16
|
+
import scipy.interpolate as si
|
|
16
17
|
|
|
17
18
|
from geospacelab.config import pref as prf
|
|
18
19
|
|
|
@@ -32,12 +33,12 @@ default_variable_names = [
|
|
|
32
33
|
|
|
33
34
|
|
|
34
35
|
class Loader:
|
|
35
|
-
def __init__(self, file_path, file_type="eiscat-hdf5"):
|
|
36
|
+
def __init__(self, file_path, file_type="eiscat-hdf5", gate_num=None):
|
|
36
37
|
self.variables = {}
|
|
37
38
|
self.metadata = {}
|
|
38
39
|
self.file_path = file_path
|
|
39
40
|
self.file_type = file_type
|
|
40
|
-
|
|
41
|
+
self.gate_num = gate_num
|
|
41
42
|
self.load_data()
|
|
42
43
|
|
|
43
44
|
def load_data(self):
|
|
@@ -131,8 +132,20 @@ class Loader:
|
|
|
131
132
|
if num_col != nrec[0]:
|
|
132
133
|
print("Note: the number of range gates doesn't match nrec!")
|
|
133
134
|
var = var.reshape(num_row, num_col)
|
|
135
|
+
if self.gate_num is None:
|
|
136
|
+
num_gates=self.gate_num = num_col
|
|
137
|
+
else:
|
|
138
|
+
num_gates = self.gate_num
|
|
139
|
+
var_array = np.empty((num_row, num_gates))
|
|
140
|
+
var_array[::] = np.nan
|
|
141
|
+
for i in range(num_row):
|
|
142
|
+
var_array[i, 0:num_col] = var[i, :]
|
|
143
|
+
var = var_array
|
|
134
144
|
elif nrec_group == 'par1d':
|
|
135
|
-
|
|
145
|
+
if self.gate_num is None:
|
|
146
|
+
self.gate_num = num_gates = int(np.max(nrec))
|
|
147
|
+
else:
|
|
148
|
+
num_gates = self.gate_num
|
|
136
149
|
var_array = np.empty((num_row, num_gates))
|
|
137
150
|
var_array[:, :] = np.nan
|
|
138
151
|
rec_ind_1 = 0
|
|
@@ -201,21 +214,30 @@ class Loader:
|
|
|
201
214
|
# check height and range
|
|
202
215
|
vars['HEIGHT'] = vars['HEIGHT'] / 1000.
|
|
203
216
|
vars['RANGE'] = vars['RANGE'] / 1000.
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
217
|
+
|
|
218
|
+
inds_nan = np.where(np.isnan(vars['HEIGHT']))
|
|
219
|
+
if list(inds_nan):
|
|
220
|
+
m, n = vars['HEIGHT'].shape
|
|
221
|
+
for i in range(m):
|
|
222
|
+
yy = vars['HEIGHT'][i, :].flatten()
|
|
223
|
+
iii = np.where(~np.isfinite(yy))
|
|
224
|
+
if not list(iii):
|
|
225
|
+
continue
|
|
226
|
+
iii = np.where(np.isfinite(yy))[0]
|
|
227
|
+
xx = np.arange(0, n)
|
|
228
|
+
f = si.interp1d(xx[iii], yy[iii], kind='linear', bounds_error=False, fill_value='extrapolate')
|
|
229
|
+
yy_new = f(xx)
|
|
230
|
+
vars['HEIGHT'][i, :] = yy_new
|
|
231
|
+
|
|
232
|
+
yy = vars['RANGE'][i, :].flatten()
|
|
233
|
+
iii = np.where(~np.isfinite(yy))
|
|
234
|
+
if not list(iii):
|
|
235
|
+
continue
|
|
236
|
+
iii = np.where(np.isfinite(yy))[0]
|
|
237
|
+
xx = np.arange(0, n)
|
|
238
|
+
f = si.interp1d(xx[iii], yy[iii], kind='linear', bounds_error=False, fill_value='extrapolate')
|
|
239
|
+
yy_new = f(xx)
|
|
240
|
+
vars['RANGE'][i, :] = yy_new
|
|
219
241
|
|
|
220
242
|
if np.isscalar(vars['AZ']):
|
|
221
243
|
az = np.empty((vars['DATETIME_1'].shape[0], 1))
|
|
@@ -336,8 +358,12 @@ class Loader:
|
|
|
336
358
|
inds_ran_max = np.append(inds_ran_max, len(ran)-1)
|
|
337
359
|
inds_ran_max.sort()
|
|
338
360
|
|
|
339
|
-
|
|
340
|
-
|
|
361
|
+
if self.gate_num is None:
|
|
362
|
+
self.gate_num = ngates_max = np.max(np.diff(inds_ran_max))
|
|
363
|
+
else:
|
|
364
|
+
ngates_max = self.gate_num
|
|
365
|
+
num_row = inds_ran_min.shape[0]
|
|
366
|
+
data_array = np.empty((nvar_h5, num_row, ngates_max))
|
|
341
367
|
data_array[::] = np.nan
|
|
342
368
|
for ip in range(nvar_h5):
|
|
343
369
|
var_tmp = np.array(data[ip])
|
|
@@ -345,7 +371,7 @@ class Loader:
|
|
|
345
371
|
ind1 = inds_ran_min[i]
|
|
346
372
|
ind2 = inds_ran_max[i]
|
|
347
373
|
data_array[ip, i, 0: ind2-ind1+1] = var_tmp[ind1: ind2+1]
|
|
348
|
-
|
|
374
|
+
|
|
349
375
|
vars_h5 = {}
|
|
350
376
|
for ip in range(nvar_h5):
|
|
351
377
|
|
|
@@ -382,21 +408,31 @@ class Loader:
|
|
|
382
408
|
vars['T_e_err'] = vars['T_e'] * np.sqrt((vars['T_i_err'] / vars['T_i']) ** 2
|
|
383
409
|
+ (vars['T_r_err'] / vars['T_r']) ** 2)
|
|
384
410
|
vars['AZ'] = vars['AZ'] % 360.
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
411
|
+
|
|
412
|
+
inds_nan = np.where(np.isnan(vars['HEIGHT']))
|
|
413
|
+
if list(inds_nan):
|
|
414
|
+
m, n = vars['HEIGHT'].shape
|
|
415
|
+
for i in range(m):
|
|
416
|
+
yy = vars['HEIGHT'][i, :].flatten()
|
|
417
|
+
iii = np.where(~np.isfinite(yy))
|
|
418
|
+
if not list(iii):
|
|
419
|
+
continue
|
|
420
|
+
iii = np.where(np.isfinite(yy))[0]
|
|
421
|
+
xx = np.arange(0, n)
|
|
422
|
+
f = si.interp1d(xx[iii], yy[iii], kind='linear', bounds_error=False, fill_value='extrapolate')
|
|
423
|
+
yy_new = f(xx)
|
|
424
|
+
vars['HEIGHT'][i, :] = yy_new
|
|
425
|
+
|
|
426
|
+
yy = vars['RANGE'][i, :].flatten()
|
|
427
|
+
iii = np.where(~np.isfinite(yy))
|
|
428
|
+
if not list(iii):
|
|
429
|
+
continue
|
|
430
|
+
iii = np.where(np.isfinite(yy))[0]
|
|
431
|
+
xx = np.arange(0, n)
|
|
432
|
+
f = si.interp1d(xx[iii], yy[iii], kind='linear', bounds_error=False, fill_value='extrapolate')
|
|
433
|
+
yy_new = f(xx)
|
|
434
|
+
vars['RANGE'][i, :] = yy_new
|
|
435
|
+
|
|
400
436
|
|
|
401
437
|
self.variables = vars
|
|
402
438
|
self.metadata = metadata
|
|
@@ -46,7 +46,7 @@ default_variable_names = [
|
|
|
46
46
|
'DATETIME', 'AZ', 'EL', 'PULSE_LENGTH',
|
|
47
47
|
'P_Tx', 'n_e', 'n_e_err', 'T_i', 'T_i_err', 'T_e', 'T_e_err',
|
|
48
48
|
'v_i_los', 'v_i_los_err', 'comp_mix', 'comp_mix_err',
|
|
49
|
-
'HEIGHT', 'RANGE', 'CGM_LAT', 'CGM_LON'
|
|
49
|
+
'HEIGHT', 'RANGE', 'CGM_LAT', 'CGM_LON', 'BEAM_ID', 'CHISQ'
|
|
50
50
|
]
|
|
51
51
|
|
|
52
52
|
# default_data_search_recursive = True
|
|
@@ -55,7 +55,7 @@ default_attrs_required = []
|
|
|
55
55
|
|
|
56
56
|
pulse_code_dict = {
|
|
57
57
|
'alternating code': 'AC',
|
|
58
|
-
'long pulse': '
|
|
58
|
+
'long pulse': 'LP',
|
|
59
59
|
}
|
|
60
60
|
|
|
61
61
|
|
|
@@ -138,8 +138,8 @@ class Dataset(datahub.DatasetSourced):
|
|
|
138
138
|
self.beam_az = load_obj.beam_az
|
|
139
139
|
self.beam_el = load_obj.beam_el
|
|
140
140
|
|
|
141
|
-
if self.add_APEX or self.add_AACGM:
|
|
142
|
-
|
|
141
|
+
# if self.add_APEX or self.add_AACGM:
|
|
142
|
+
self.calc_lat_lon()
|
|
143
143
|
|
|
144
144
|
if self['HEIGHT'].value is None:
|
|
145
145
|
self['HEIGHT'] = self['GEO_ALT']
|
|
@@ -353,7 +353,7 @@ class Dataset(datahub.DatasetSourced):
|
|
|
353
353
|
pulse_code=self.pulse_code,
|
|
354
354
|
dry_run=dry_run,
|
|
355
355
|
data_file_root_dir=self.data_root_dir,
|
|
356
|
-
include_exp_ids=self.
|
|
356
|
+
include_exp_ids=self.experiment_ids,
|
|
357
357
|
include_exp_name_patterns=include_exp_name_patterns)
|
|
358
358
|
return download_obj.data_file_paths
|
|
359
359
|
|
|
@@ -205,8 +205,8 @@ class Dataset(datahub.DatasetSourced):
|
|
|
205
205
|
sin_glon_1 = np.sin(glon_1 * factor)
|
|
206
206
|
sin_glon_2 = np.sin(glon_2 * factor)
|
|
207
207
|
cos_glon_2 = np.cos(glon_2 * factor)
|
|
208
|
-
itpf_sin = interp1d(sectime_2, sin_glon_2, kind='
|
|
209
|
-
itpf_cos = interp1d(sectime_2, cos_glon_2, kind='
|
|
208
|
+
itpf_sin = interp1d(sectime_2, sin_glon_2, kind='linear', bounds_error=False, fill_value='extrapolate')
|
|
209
|
+
itpf_cos = interp1d(sectime_2, cos_glon_2, kind='linear', bounds_error=False, fill_value='extrapolate')
|
|
210
210
|
sin_glon_2_i = itpf_sin(sectime_1)
|
|
211
211
|
sin_glon_2_i = np.where(sin_glon_2_i > 1., 1., sin_glon_2_i)
|
|
212
212
|
sin_glon_2_i = np.where(sin_glon_2_i < -1., -1., sin_glon_2_i)
|
|
@@ -177,8 +177,8 @@ class Dataset(datahub.DatasetSourced):
|
|
|
177
177
|
sin_glon_1 = np.sin(glon_1 * factor)
|
|
178
178
|
sin_glon_2 = np.sin(glon_2 * factor)
|
|
179
179
|
cos_glon_2 = np.cos(glon_2 * factor)
|
|
180
|
-
itpf_sin = interp1d(sectime_2, sin_glon_2, kind='
|
|
181
|
-
itpf_cos = interp1d(sectime_2, cos_glon_2, kind='
|
|
180
|
+
itpf_sin = interp1d(sectime_2, sin_glon_2, kind='linear', bounds_error=False, fill_value='extrapolate')
|
|
181
|
+
itpf_cos = interp1d(sectime_2, cos_glon_2, kind='linear', bounds_error=False, fill_value='extrapolate')
|
|
182
182
|
sin_glon_2_i = itpf_sin(sectime_1)
|
|
183
183
|
cos_glon_2_i = itpf_cos(sectime_1)
|
|
184
184
|
rad = np.sign(sin_glon_2_i) * (np.pi / 2 - np.arcsin(cos_glon_2_i))
|