disdrodb 0.2.1__py3-none-any.whl → 0.4.0__py3-none-any.whl
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.
- disdrodb/__init__.py +3 -1
- disdrodb/_config.py +2 -3
- disdrodb/_version.py +2 -2
- disdrodb/accessor/__init__.py +2 -1
- disdrodb/accessor/methods.py +10 -9
- disdrodb/api/checks.py +3 -7
- disdrodb/api/configs.py +1 -3
- disdrodb/api/create_directories.py +4 -6
- disdrodb/api/info.py +1 -3
- disdrodb/api/io.py +233 -32
- disdrodb/api/path.py +3 -7
- disdrodb/cli/disdrodb_check_metadata_archive.py +3 -2
- disdrodb/cli/disdrodb_check_products_options.py +45 -0
- disdrodb/cli/disdrodb_create_summary.py +54 -28
- disdrodb/cli/disdrodb_create_summary_station.py +41 -20
- disdrodb/cli/disdrodb_data_archive_directory.py +2 -3
- disdrodb/cli/disdrodb_download_archive.py +50 -30
- disdrodb/cli/disdrodb_download_metadata_archive.py +28 -16
- disdrodb/cli/disdrodb_download_station.py +58 -29
- disdrodb/cli/disdrodb_initialize_station.py +43 -23
- disdrodb/cli/disdrodb_metadata_archive_directory.py +2 -3
- disdrodb/cli/disdrodb_open_data_archive.py +17 -13
- disdrodb/cli/disdrodb_open_logs_directory.py +31 -21
- disdrodb/cli/disdrodb_open_metadata_archive.py +26 -13
- disdrodb/cli/disdrodb_open_metadata_directory.py +34 -23
- disdrodb/cli/disdrodb_open_product_directory.py +39 -23
- disdrodb/cli/disdrodb_open_readers_directory.py +2 -3
- disdrodb/cli/disdrodb_run.py +189 -0
- disdrodb/cli/disdrodb_run_l0.py +61 -70
- disdrodb/cli/disdrodb_run_l0_station.py +50 -55
- disdrodb/cli/disdrodb_run_l0a.py +53 -51
- disdrodb/cli/disdrodb_run_l0a_station.py +41 -40
- disdrodb/cli/disdrodb_run_l0b.py +51 -51
- disdrodb/cli/disdrodb_run_l0b_station.py +40 -39
- disdrodb/cli/disdrodb_run_l0c.py +56 -53
- disdrodb/cli/disdrodb_run_l0c_station.py +44 -41
- disdrodb/cli/disdrodb_run_l1.py +55 -51
- disdrodb/cli/disdrodb_run_l1_station.py +43 -40
- disdrodb/cli/disdrodb_run_l2e.py +56 -51
- disdrodb/cli/disdrodb_run_l2e_station.py +44 -40
- disdrodb/cli/disdrodb_run_l2m.py +55 -51
- disdrodb/cli/disdrodb_run_l2m_station.py +43 -40
- disdrodb/cli/disdrodb_run_station.py +184 -0
- disdrodb/cli/disdrodb_upload_archive.py +51 -42
- disdrodb/cli/disdrodb_upload_station.py +42 -36
- disdrodb/configs.py +20 -16
- disdrodb/constants.py +5 -2
- disdrodb/data_transfer/__init__.py +1 -3
- disdrodb/data_transfer/download_data.py +45 -61
- disdrodb/data_transfer/upload_data.py +7 -11
- disdrodb/data_transfer/zenodo.py +2 -4
- disdrodb/docs.py +1 -3
- disdrodb/etc/configs/attributes.yaml +52 -2
- disdrodb/etc/configs/encodings.yaml +45 -1
- disdrodb/etc/products/L0C/ODM470/global.yaml +5 -0
- disdrodb/etc/products/L0C/global.yaml +5 -0
- disdrodb/etc/products/L1/ODM470/global.yaml +6 -0
- disdrodb/etc/products/L1/global.yaml +0 -13
- disdrodb/etc/products/L2E/LPM/1MIN.yaml +1 -0
- disdrodb/etc/products/L2E/LPM/global.yaml +36 -0
- disdrodb/etc/products/L2E/LPM_V0/1MIN.yaml +1 -0
- disdrodb/etc/products/L2E/LPM_V0/global.yaml +36 -0
- disdrodb/etc/products/L2E/ODM470/1MIN.yaml +1 -0
- disdrodb/etc/products/L2E/ODM470/global.yaml +36 -0
- disdrodb/etc/products/L2E/PARSIVEL/1MIN.yaml +1 -0
- disdrodb/etc/products/L2E/PARSIVEL/global.yaml +36 -0
- disdrodb/etc/products/L2E/PARSIVEL2/1MIN.yaml +1 -0
- disdrodb/etc/products/L2E/PARSIVEL2/global.yaml +36 -0
- disdrodb/etc/products/L2E/PWS100/1MIN.yaml +1 -0
- disdrodb/etc/products/L2E/PWS100/global.yaml +36 -0
- disdrodb/etc/products/L2E/RD80/1MIN.yaml +19 -0
- disdrodb/etc/products/L2E/SWS250/1MIN.yaml +19 -0
- disdrodb/etc/products/L2E/global.yaml +16 -2
- disdrodb/fall_velocity/__init__.py +47 -0
- disdrodb/fall_velocity/graupel.py +484 -0
- disdrodb/fall_velocity/hail.py +288 -0
- disdrodb/{l1/fall_velocity.py → fall_velocity/rain.py} +265 -44
- disdrodb/issue/__init__.py +1 -3
- disdrodb/issue/checks.py +2 -3
- disdrodb/issue/reader.py +2 -3
- disdrodb/issue/writer.py +2 -5
- disdrodb/l0/__init__.py +2 -1
- disdrodb/l0/check_configs.py +36 -29
- disdrodb/l0/check_standards.py +1 -4
- disdrodb/l0/configs/LPM/l0a_encodings.yml +17 -17
- disdrodb/l0/configs/LPM/l0b_cf_attrs.yml +55 -55
- disdrodb/l0/configs/LPM/l0b_encodings.yml +17 -17
- disdrodb/l0/configs/LPM/raw_data_format.yml +17 -17
- disdrodb/l0/configs/LPM_V0/l0a_encodings.yml +2 -2
- disdrodb/l0/configs/LPM_V0/l0b_cf_attrs.yml +2 -2
- disdrodb/l0/configs/LPM_V0/l0b_encodings.yml +2 -2
- disdrodb/l0/configs/LPM_V0/raw_data_format.yml +2 -2
- disdrodb/l0/configs/ODM470/bins_diameter.yml +643 -0
- disdrodb/l0/configs/ODM470/bins_velocity.yml +0 -0
- disdrodb/l0/configs/ODM470/l0a_encodings.yml +11 -0
- disdrodb/l0/configs/ODM470/l0b_cf_attrs.yml +46 -0
- disdrodb/l0/configs/ODM470/l0b_encodings.yml +106 -0
- disdrodb/l0/configs/ODM470/raw_data_format.yml +111 -0
- disdrodb/l0/configs/PARSIVEL/l0b_cf_attrs.yml +1 -1
- disdrodb/l0/l0_reader.py +2 -3
- disdrodb/l0/l0a_processing.py +6 -8
- disdrodb/l0/l0b_nc_processing.py +3 -6
- disdrodb/l0/l0b_processing.py +2 -16
- disdrodb/l0/l0c_processing.py +29 -12
- disdrodb/l0/readers/LPM/ARM/ARM_LPM.py +2 -1
- disdrodb/l0/readers/LPM/AUSTRALIA/MELBOURNE_2007_LPM.py +18 -18
- disdrodb/l0/readers/LPM/BRAZIL/CHUVA_LPM.py +18 -18
- disdrodb/l0/readers/LPM/BRAZIL/GOAMAZON_LPM.py +18 -18
- disdrodb/l0/readers/LPM/GERMANY/DWD.py +244 -63
- disdrodb/l0/readers/LPM/ITALY/GID_LPM.py +65 -23
- disdrodb/l0/readers/LPM/ITALY/GID_LPM_AQ.py +277 -0
- disdrodb/l0/readers/LPM/ITALY/GID_LPM_PI.py +19 -18
- disdrodb/l0/readers/LPM/ITALY/GID_LPM_T.py +23 -19
- disdrodb/l0/readers/LPM/ITALY/GID_LPM_W.py +19 -21
- disdrodb/l0/readers/LPM/KIT/CHWALA.py +19 -20
- disdrodb/l0/readers/LPM/NETHERLANDS/DELFT_LPM_NC.py +1 -1
- disdrodb/l0/readers/LPM/NETHERLANDS/DELFT_RWANDA_LPM_NC.py +18 -18
- disdrodb/l0/readers/LPM/NORWAY/HAUKELISETER_LPM.py +19 -20
- disdrodb/l0/readers/LPM/NORWAY/NMBU_LPM.py +19 -20
- disdrodb/l0/readers/LPM/SLOVENIA/ARSO.py +19 -20
- disdrodb/l0/readers/LPM/SLOVENIA/UL.py +19 -20
- disdrodb/l0/readers/LPM/SWITZERLAND/INNERERIZ_LPM.py +19 -20
- disdrodb/l0/readers/LPM/UK/DIVEN.py +1 -1
- disdrodb/l0/readers/LPM/UK/WITHWORTH_LPM.py +19 -20
- disdrodb/l0/readers/LPM/USA/CHARLESTON.py +19 -20
- disdrodb/l0/readers/LPM/USA/DEVEX.py +255 -0
- disdrodb/l0/readers/LPM_V0/BELGIUM/ULIEGE.py +3 -5
- disdrodb/l0/readers/LPM_V0/ITALY/GID_LPM_V0.py +4 -3
- disdrodb/l0/readers/ODM470/OCEAN/OCEANRAIN.py +124 -0
- disdrodb/l0/readers/PARSIVEL/AUSTRALIA/MELBOURNE_2007_PARSIVEL.py +1 -1
- disdrodb/l0/readers/PARSIVEL/BASQUECOUNTRY/EUSKALMET_OTT.py +2 -1
- disdrodb/l0/readers/PARSIVEL/CHINA/CHONGQING.py +2 -3
- disdrodb/l0/readers/PARSIVEL/EPFL/ARCTIC_2021.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/COMMON_2011.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/DAVOS_2009_2011.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/EPFL_2009.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/EPFL_ROOF_2008.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/EPFL_ROOF_2010.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/EPFL_ROOF_2011.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/EPFL_ROOF_2012.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/GENEPI_2007.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/GRAND_ST_BERNARD_2007.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/GRAND_ST_BERNARD_2007_2.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/HPICONET_2010.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/HYMEX_LTE_SOP2.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/HYMEX_LTE_SOP3.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/HYMEX_LTE_SOP4.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/LOCARNO_2018.py +1 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/LOCARNO_2019.py +1 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/PARADISO_2014.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/PARSIVEL_2007.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/PLATO_2019.py +1 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/RACLETS_2019.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/RACLETS_2019_WJF.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/RIETHOLZBACH_2011.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/SAMOYLOV_2017.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/SAMOYLOV_2019.py +2 -1
- disdrodb/l0/readers/PARSIVEL/EPFL/UNIL_2022.py +2 -1
- disdrodb/l0/readers/PARSIVEL/JAPAN/JMA.py +1 -1
- disdrodb/l0/readers/PARSIVEL/KOREA/ICEPOP_MSC.py +159 -0
- disdrodb/l0/readers/PARSIVEL/NASA/LPVEX.py +1 -1
- disdrodb/l0/readers/PARSIVEL/NASA/MC3E.py +1 -1
- disdrodb/l0/readers/PARSIVEL/NCAR/CCOPE_2015.py +1 -1
- disdrodb/l0/readers/PARSIVEL/NCAR/OWLES_MIPS.py +1 -1
- disdrodb/l0/readers/PARSIVEL/NCAR/PECAN_MOBILE.py +1 -1
- disdrodb/l0/readers/PARSIVEL/NCAR/PLOWS_MIPS.py +1 -1
- disdrodb/l0/readers/PARSIVEL/NCAR/VORTEX2_2009.py +1 -1
- disdrodb/l0/readers/PARSIVEL/NCAR/VORTEX2_2010.py +1 -3
- disdrodb/l0/readers/PARSIVEL/NCAR/VORTEX2_2010_UF.py +1 -3
- disdrodb/l0/readers/PARSIVEL/SLOVENIA/UL.py +2 -1
- disdrodb/l0/readers/PARSIVEL2/ARM/ARM_PARSIVEL2.py +2 -1
- disdrodb/l0/readers/PARSIVEL2/BASQUECOUNTRY/EUSKALMET_OTT2.py +2 -1
- disdrodb/l0/readers/PARSIVEL2/BELGIUM/ILVO.py +2 -3
- disdrodb/l0/readers/PARSIVEL2/BRAZIL/CHUVA_PARSIVEL2.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/BRAZIL/GOAMAZON_PARSIVEL2.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/CANADA/UQAM_NC.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/DENMARK/DTU.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/DENMARK/EROSION_nc.py +2 -1
- disdrodb/l0/readers/PARSIVEL2/DENMARK/EROSION_raw.py +2 -1
- disdrodb/l0/readers/PARSIVEL2/FINLAND/FMI_PARSIVEL2.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/FRANCE/ENPC_PARSIVEL2.py +2 -3
- disdrodb/l0/readers/PARSIVEL2/FRANCE/OSUG.py +2 -2
- disdrodb/l0/readers/PARSIVEL2/FRANCE/SIRTA_PARSIVEL2.py +1 -3
- disdrodb/l0/readers/PARSIVEL2/GREECE/NOA.py +4 -3
- disdrodb/l0/readers/PARSIVEL2/ITALY/GID_PARSIVEL2.py +1 -3
- disdrodb/l0/readers/PARSIVEL2/ITALY/HYDROX.py +6 -3
- disdrodb/l0/readers/PARSIVEL2/JAPAN/PRECIP.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/KIT/BURKINA_FASO.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/KIT/TEAMX.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/KOREA/ICEPOP_MSC.py +161 -0
- disdrodb/l0/readers/PARSIVEL2/KOREA/ICEPOP_UCLM.py +126 -0
- disdrodb/l0/readers/PARSIVEL2/MEXICO/OH_IIUNAM_nc.py +2 -1
- disdrodb/l0/readers/PARSIVEL2/MPI/BCO_PARSIVEL2.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/MPI/BOWTIE.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/NASA/APU.py +3 -1
- disdrodb/l0/readers/PARSIVEL2/NASA/NSSTC.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/NCAR/FARM_PARSIVEL2.py +2 -1
- disdrodb/l0/readers/PARSIVEL2/NCAR/PECAN_FP3.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/NCAR/PECAN_MIPS.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/NCAR/PERILS_MIPS.py +2 -1
- disdrodb/l0/readers/PARSIVEL2/NCAR/PERILS_PIPS.py +2 -1
- disdrodb/l0/readers/PARSIVEL2/NCAR/RELAMPAGO_PARSIVEL2.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/NCAR/SNOWIE_PJ.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/NCAR/SNOWIE_SB.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/NCAR/VORTEX_SE_2016_P1.py +2 -3
- disdrodb/l0/readers/PARSIVEL2/NCAR/VORTEX_SE_2016_P2.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/NCAR/VORTEX_SE_2016_PIPS.py +2 -1
- disdrodb/l0/readers/PARSIVEL2/NETHERLANDS/DELFT_NC.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/NORWAY/UIB.py +10 -2
- disdrodb/l0/readers/PARSIVEL2/PHILIPPINES/PAGASA.py +2 -3
- disdrodb/l0/readers/PARSIVEL2/SPAIN/CENER.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/SPAIN/CR1000DL.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/SPAIN/GRANADA.py +2 -3
- disdrodb/l0/readers/PARSIVEL2/SPAIN/LIAISE.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/SWEDEN/SMHI.py +2 -1
- disdrodb/l0/readers/PARSIVEL2/USA/CSU.py +1 -1
- disdrodb/l0/readers/PARSIVEL2/USA/CW3E.py +2 -1
- disdrodb/l0/readers/PWS100/AUSTRIA/HOAL.py +2 -3
- disdrodb/l0/readers/PWS100/FRANCE/ENPC_PWS100.py +2 -3
- disdrodb/l0/readers/PWS100/FRANCE/ENPC_PWS100_SIRTA.py +2 -1
- disdrodb/l0/readers/RD80/BRAZIL/ATTO_RD80.py +1 -3
- disdrodb/l0/readers/RD80/BRAZIL/CHUVA_RD80.py +1 -3
- disdrodb/l0/readers/RD80/BRAZIL/GOAMAZON_RD80.py +1 -3
- disdrodb/l0/readers/RD80/NCAR/CINDY_2011_RD80.py +1 -3
- disdrodb/l0/readers/RD80/NCAR/RELAMPAGO_RD80.py +1 -3
- disdrodb/l0/readers/RD80/NOAA/PSL_RD80.py +2 -3
- disdrodb/l0/readers/SWS250/BELGIUM/KMI.py +2 -3
- disdrodb/l0/readers/template_reader_raw_netcdf_data.py +2 -3
- disdrodb/l0/readers/template_reader_raw_text_data.py +2 -3
- disdrodb/l0/standards.py +4 -5
- disdrodb/l0/template_tools.py +7 -11
- disdrodb/l1/__init__.py +2 -1
- disdrodb/l1/classification.py +914 -0
- disdrodb/l1/processing.py +36 -106
- disdrodb/l1/resampling.py +13 -3
- disdrodb/l1_env/__init__.py +1 -1
- disdrodb/l1_env/routines.py +7 -6
- disdrodb/l2/__init__.py +2 -1
- disdrodb/l2/empirical_dsd.py +58 -31
- disdrodb/l2/processing.py +327 -61
- disdrodb/metadata/checks.py +10 -13
- disdrodb/metadata/download.py +5 -4
- disdrodb/metadata/geolocation.py +3 -4
- disdrodb/metadata/info.py +3 -5
- disdrodb/metadata/manipulation.py +1 -3
- disdrodb/metadata/reader.py +1 -3
- disdrodb/metadata/search.py +1 -4
- disdrodb/metadata/standards.py +1 -3
- disdrodb/metadata/writer.py +1 -3
- disdrodb/physics/__init__.py +17 -0
- disdrodb/physics/atmosphere.py +273 -0
- disdrodb/physics/water.py +131 -0
- disdrodb/physics/wrappers.py +63 -0
- disdrodb/psd/__init__.py +1 -2
- disdrodb/psd/fitting.py +23 -9
- disdrodb/psd/models.py +2 -1
- disdrodb/routines/__init__.py +6 -1
- disdrodb/routines/l0.py +39 -25
- disdrodb/routines/l1.py +23 -16
- disdrodb/routines/l2.py +12 -9
- disdrodb/routines/options.py +117 -73
- disdrodb/routines/options_validation.py +728 -0
- disdrodb/routines/wrappers.py +460 -40
- disdrodb/scattering/__init__.py +1 -2
- disdrodb/scattering/axis_ratio.py +6 -6
- disdrodb/scattering/permittivity.py +9 -8
- disdrodb/scattering/routines.py +33 -15
- disdrodb/summary/__init__.py +1 -1
- disdrodb/summary/routines.py +95 -30
- disdrodb/utils/__init__.py +1 -1
- disdrodb/utils/archiving.py +18 -10
- disdrodb/utils/attrs.py +7 -5
- disdrodb/utils/cli.py +8 -10
- disdrodb/utils/compression.py +10 -13
- disdrodb/utils/coords.py +45 -0
- disdrodb/utils/dask.py +7 -5
- disdrodb/utils/dataframe.py +5 -6
- disdrodb/utils/decorators.py +3 -4
- disdrodb/utils/dict.py +1 -1
- disdrodb/utils/directories.py +5 -7
- disdrodb/utils/encoding.py +4 -5
- disdrodb/utils/event.py +1 -1
- disdrodb/utils/list.py +1 -3
- disdrodb/utils/logger.py +1 -3
- disdrodb/utils/manipulations.py +175 -4
- disdrodb/utils/pydantic.py +81 -0
- disdrodb/utils/routines.py +2 -3
- disdrodb/utils/subsetting.py +1 -1
- disdrodb/utils/time.py +6 -4
- disdrodb/utils/warnings.py +2 -3
- disdrodb/utils/writer.py +5 -3
- disdrodb/utils/xarray.py +31 -3
- disdrodb/utils/yaml.py +1 -3
- disdrodb/viz/__init__.py +1 -1
- disdrodb/viz/plots.py +193 -18
- {disdrodb-0.2.1.dist-info → disdrodb-0.4.0.dist-info}/METADATA +5 -4
- disdrodb-0.4.0.dist-info/RECORD +361 -0
- {disdrodb-0.2.1.dist-info → disdrodb-0.4.0.dist-info}/entry_points.txt +3 -0
- disdrodb/etc/products/L1/1MIN.yaml +0 -13
- disdrodb/etc/products/L1/LPM/1MIN.yaml +0 -13
- disdrodb/etc/products/L1/LPM_V0/1MIN.yaml +0 -13
- disdrodb/etc/products/L1/PARSIVEL/1MIN.yaml +0 -13
- disdrodb/etc/products/L1/PARSIVEL2/1MIN.yaml +0 -13
- disdrodb/etc/products/L1/PWS100/1MIN.yaml +0 -13
- disdrodb/etc/products/L1/RD80/1MIN.yaml +0 -13
- disdrodb/etc/products/L1/SWS250/1MIN.yaml +0 -13
- disdrodb/etc/products/L2M/10MIN.yaml +0 -12
- disdrodb/l1/beard_model.py +0 -662
- disdrodb/l1/filters.py +0 -205
- disdrodb-0.2.1.dist-info/RECORD +0 -329
- {disdrodb-0.2.1.dist-info → disdrodb-0.4.0.dist-info}/WHEEL +0 -0
- {disdrodb-0.2.1.dist-info → disdrodb-0.4.0.dist-info}/licenses/LICENSE +0 -0
- {disdrodb-0.2.1.dist-info → disdrodb-0.4.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# -----------------------------------------------------------------------------.
|
|
2
|
+
# Copyright (c) 2021-2026 DISDRODB developers
|
|
3
|
+
#
|
|
4
|
+
# This program is free software: you can redistribute it and/or modify
|
|
5
|
+
# it under the terms of the GNU General Public License as published by
|
|
6
|
+
# the Free Software Foundation, either version 3 of the License, or
|
|
7
|
+
# (at your option) any later version.
|
|
8
|
+
#
|
|
9
|
+
# This program is distributed in the hope that it will be useful,
|
|
10
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
11
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
12
|
+
# GNU General Public License for more details.
|
|
13
|
+
#
|
|
14
|
+
# You should have received a copy of the GNU General Public License
|
|
15
|
+
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
|
+
# -----------------------------------------------------------------------------.
|
|
17
|
+
"""Script to check the validity of the DISDRODB products configuration files."""
|
|
18
|
+
|
|
19
|
+
import sys
|
|
20
|
+
|
|
21
|
+
import click
|
|
22
|
+
|
|
23
|
+
from disdrodb.utils.cli import parse_empty_string_and_none
|
|
24
|
+
|
|
25
|
+
sys.tracebacklimit = 0 # avoid full traceback error if occur
|
|
26
|
+
|
|
27
|
+
# -------------------------------------------------------------------------.
|
|
28
|
+
# Click Command Line Interface decorator
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
@click.command()
|
|
32
|
+
@click.option(
|
|
33
|
+
"--products_configs_dir",
|
|
34
|
+
type=str,
|
|
35
|
+
show_default=True,
|
|
36
|
+
default=None,
|
|
37
|
+
help="Directory with DISDRODB products configurations files",
|
|
38
|
+
)
|
|
39
|
+
def disdrodb_check_products_options(products_configs_dir):
|
|
40
|
+
"""Validate the DISDRODB products configuration files."""
|
|
41
|
+
from disdrodb.routines.options_validation import validate_products_configurations
|
|
42
|
+
|
|
43
|
+
products_configs_dir = parse_empty_string_and_none(products_configs_dir)
|
|
44
|
+
|
|
45
|
+
validate_products_configurations(products_configs_dir)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -----------------------------------------------------------------------------.
|
|
2
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026 DISDRODB developers
|
|
3
3
|
#
|
|
4
4
|
# This program is free software: you can redistribute it and/or modify
|
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
# -----------------------------------------------------------------------------.
|
|
17
17
|
"""Script to create summary figures and tables for a DISDRODB stationn."""
|
|
18
|
+
|
|
18
19
|
import sys
|
|
19
|
-
from typing import Optional
|
|
20
20
|
|
|
21
21
|
import click
|
|
22
22
|
|
|
@@ -49,37 +49,63 @@ sys.tracebacklimit = 0 # avoid full traceback error if occur
|
|
|
49
49
|
)
|
|
50
50
|
def disdrodb_create_summary(
|
|
51
51
|
# Stations options
|
|
52
|
-
data_sources:
|
|
53
|
-
campaign_names:
|
|
54
|
-
station_names:
|
|
52
|
+
data_sources: str | None = None,
|
|
53
|
+
campaign_names: str | None = None,
|
|
54
|
+
station_names: str | None = None,
|
|
55
55
|
# Processing options:
|
|
56
56
|
parallel=False,
|
|
57
57
|
temporal_resolution="1MIN",
|
|
58
58
|
# DISDRODB root directories
|
|
59
|
-
data_archive_dir:
|
|
60
|
-
metadata_archive_dir:
|
|
59
|
+
data_archive_dir: str | None = None,
|
|
60
|
+
metadata_archive_dir: str | None = None,
|
|
61
61
|
):
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
If
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
62
|
+
"""Create summary figures and tables for DISDRODB stations.
|
|
63
|
+
|
|
64
|
+
Generates summary visualizations and statistics from DISDRODB L2E data products.
|
|
65
|
+
The DISDRODB L2E files must be available.
|
|
66
|
+
|
|
67
|
+
\b
|
|
68
|
+
Station Selection:
|
|
69
|
+
If no station filters are specified, creates summaries for ALL available stations.
|
|
70
|
+
Use data_sources, campaign_names, and station_names to filter stations.
|
|
71
|
+
Filters work together to narrow down the selection (AND logic).
|
|
72
|
+
|
|
73
|
+
\b
|
|
74
|
+
Processing Options:
|
|
75
|
+
--parallel: Reads files in parallel for faster processing (default: False)
|
|
76
|
+
--temporal_resolution: Temporal resolution of L2E product to use (default: 1MIN)
|
|
77
|
+
Valid temporal resolutions depend on available L2E products.
|
|
78
|
+
|
|
79
|
+
\b
|
|
80
|
+
Archive Directories:
|
|
81
|
+
--data_archive_dir: Custom path to DISDRODB data archive
|
|
82
|
+
--metadata_archive_dir: Custom path to DISDRODB metadata archive
|
|
83
|
+
If not specified, paths from the active DISDRODB configuration are used
|
|
84
|
+
|
|
85
|
+
\b
|
|
86
|
+
Examples:
|
|
87
|
+
# Create summaries for all stations
|
|
88
|
+
disdrodb_create_summary
|
|
89
|
+
|
|
90
|
+
# Create summaries for specific data sources
|
|
91
|
+
disdrodb_create_summary --data_sources 'EPFL NASA'
|
|
92
|
+
|
|
93
|
+
# Create summaries for specific campaigns
|
|
94
|
+
disdrodb_create_summary --campaign_names 'HYMEX_LTE_SOP2 IFLOODS'
|
|
95
|
+
|
|
96
|
+
# Create summaries for specific stations with custom temporal resolution
|
|
97
|
+
disdrodb_create_summary --station_names 'apu01 apu02' --temporal_resolution 5MIN
|
|
98
|
+
|
|
99
|
+
# Create summaries with custom archive directory
|
|
100
|
+
disdrodb_create_summary --data_sources EPFL --data_archive_dir /path/to/DISDRODB
|
|
101
|
+
|
|
102
|
+
\b
|
|
103
|
+
Important Notes:
|
|
104
|
+
- Data source names must be in UPPER CASE
|
|
105
|
+
- Campaign names must be in UPPER CASE
|
|
106
|
+
- To specify multiple values, use space-separated strings in quotes
|
|
107
|
+
- Requires L2E data products to be available for the selected stations
|
|
108
|
+
""" # noqa: D301
|
|
83
109
|
from disdrodb.routines import create_summary
|
|
84
110
|
from disdrodb.utils.dask import close_dask_cluster, initialize_dask_cluster
|
|
85
111
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -----------------------------------------------------------------------------.
|
|
2
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026 DISDRODB developers
|
|
3
3
|
#
|
|
4
4
|
# This program is free software: you can redistribute it and/or modify
|
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
# -----------------------------------------------------------------------------.
|
|
17
17
|
"""Script to create summary figures and tables for a DISDRODB station."""
|
|
18
|
+
|
|
18
19
|
import sys
|
|
19
|
-
from typing import Optional
|
|
20
20
|
|
|
21
21
|
import click
|
|
22
22
|
|
|
@@ -53,25 +53,46 @@ def disdrodb_create_summary_station(
|
|
|
53
53
|
parallel=False,
|
|
54
54
|
temporal_resolution="1MIN",
|
|
55
55
|
# DISDRODB root directories
|
|
56
|
-
data_archive_dir:
|
|
56
|
+
data_archive_dir: str | None = None,
|
|
57
57
|
):
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
58
|
+
"""Create summary figures and tables for a specific DISDRODB station.
|
|
59
|
+
|
|
60
|
+
Generates summary visualizations and statistics using the DISDRODB L2E product
|
|
61
|
+
of the specified station.
|
|
62
|
+
|
|
63
|
+
\b
|
|
64
|
+
Station Specification:
|
|
65
|
+
Requires exact specification of data_source, campaign_name, and station_name.
|
|
66
|
+
All three parameters must be provided and are case-sensitive (UPPER CASE required).
|
|
67
|
+
|
|
68
|
+
\b
|
|
69
|
+
Processing Options:
|
|
70
|
+
--parallel: Reads files in parallel for faster processing (default: False)
|
|
71
|
+
--temporal_resolution: Temporal resolution of L2E product to use (default: 1MIN)
|
|
72
|
+
Valid temporal resolutions depend on available L2E products
|
|
73
|
+
|
|
74
|
+
\b
|
|
75
|
+
Archive Directory:
|
|
76
|
+
--data_archive_dir: Custom path to DISDRODB data archive
|
|
77
|
+
If not specified, the path from the active DISDRODB configuration is used
|
|
78
|
+
|
|
79
|
+
\b
|
|
80
|
+
Examples:
|
|
81
|
+
# Create summary for a specific station
|
|
82
|
+
disdrodb_create_summary_station EPFL HYMEX_LTE_SOP2 10
|
|
83
|
+
|
|
84
|
+
# Create summary with custom temporal resolution
|
|
85
|
+
disdrodb_create_summary_station EPFL HYMEX_LTE_SOP2 10 --temporal_resolution 5MIN
|
|
86
|
+
|
|
87
|
+
# Create summary with custom archive directory
|
|
88
|
+
disdrodb_create_summary_station NASA IFLOODS apu01 --data_archive_dir /path/to/DISDRODB
|
|
89
|
+
|
|
90
|
+
\b
|
|
91
|
+
Important Notes:
|
|
92
|
+
- Data source, campaign, and station names must be in UPPER CASE
|
|
93
|
+
- All three station identifiers are required (no wildcards)
|
|
94
|
+
- Requires L2E data products to be available for the specified station
|
|
95
|
+
""" # noqa: D301
|
|
75
96
|
from disdrodb.summary.routines import create_station_summary
|
|
76
97
|
from disdrodb.utils.dask import close_dask_cluster, initialize_dask_cluster
|
|
77
98
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
|
|
3
1
|
# -----------------------------------------------------------------------------.
|
|
4
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026 DISDRODB developers
|
|
5
3
|
#
|
|
6
4
|
# This program is free software: you can redistribute it and/or modify
|
|
7
5
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -17,6 +15,7 @@
|
|
|
17
15
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
18
16
|
# -----------------------------------------------------------------------------.
|
|
19
17
|
"""Routine to print the DISDRODB Data Archive directory."""
|
|
18
|
+
|
|
20
19
|
import sys
|
|
21
20
|
|
|
22
21
|
import click
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -----------------------------------------------------------------------------.
|
|
2
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026 DISDRODB developers
|
|
3
3
|
#
|
|
4
4
|
# This program is free software: you can redistribute it and/or modify
|
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
"""Wrapper to download stations from the DISDRODB Decentralized Data Archive."""
|
|
18
18
|
|
|
19
19
|
import sys
|
|
20
|
-
from typing import Optional
|
|
21
20
|
|
|
22
21
|
import click
|
|
23
22
|
|
|
@@ -38,36 +37,57 @@ sys.tracebacklimit = 0 # avoid full traceback error if occur
|
|
|
38
37
|
@click_metadata_archive_dir_option
|
|
39
38
|
@click_download_options
|
|
40
39
|
def disdrodb_download_archive(
|
|
41
|
-
data_sources:
|
|
42
|
-
campaign_names:
|
|
43
|
-
station_names:
|
|
44
|
-
data_archive_dir:
|
|
45
|
-
metadata_archive_dir:
|
|
40
|
+
data_sources: str | None = None,
|
|
41
|
+
campaign_names: str | None = None,
|
|
42
|
+
station_names: str | None = None,
|
|
43
|
+
data_archive_dir: str | None = None,
|
|
44
|
+
metadata_archive_dir: str | None = None,
|
|
46
45
|
force: bool = False,
|
|
47
46
|
):
|
|
48
|
-
"""Download DISDRODB stations
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
47
|
+
"""Download raw data for multiple DISDRODB stations from the DISDRODB Decentralized Data Archive.
|
|
48
|
+
|
|
49
|
+
It downloads station raw data files and stores them in the local DISDRODB Data Archive.
|
|
50
|
+
The data are organized by data_source, campaign_name, and station_name.
|
|
51
|
+
|
|
52
|
+
\b
|
|
53
|
+
Station Selection:
|
|
54
|
+
If no station filters are specified, downloads ALL stations.
|
|
55
|
+
Use data_sources, campaign_names, and station_names to filter stations.
|
|
56
|
+
Filters work together to narrow down the selection (AND logic).
|
|
57
|
+
Only stations with a ``disdrodb_data_url`` in their metadata will be downloaded.
|
|
58
|
+
|
|
59
|
+
\b
|
|
60
|
+
Download Behavior:
|
|
61
|
+
For webserver/FTP-hosted data:
|
|
62
|
+
- Incremental downloads: Fetch only new files when they become available
|
|
63
|
+
- Existing files on disk are skipped unless '--force True' is used
|
|
64
|
+
|
|
65
|
+
For repository-hosted data (e.g., Zenodo):
|
|
66
|
+
- Use '--force True' to download new versions when available
|
|
67
|
+
- Without '--force True', download is skipped if data already exists locally
|
|
68
|
+
|
|
69
|
+
\b
|
|
70
|
+
Download Options:
|
|
71
|
+
--force: Removes existing raw data files and forces complete re-download (default: False)
|
|
72
|
+
Warning: All existing station data will be deleted before re-downloading
|
|
73
|
+
|
|
74
|
+
\b
|
|
75
|
+
Archive Directories:
|
|
76
|
+
--data_archive_dir: Custom path to DISDRODB data archive
|
|
77
|
+
--metadata_archive_dir: Custom path to DISDRODB metadata archive
|
|
78
|
+
If not specified, paths from the active DISDRODB configuration are used
|
|
79
|
+
|
|
80
|
+
\b
|
|
81
|
+
Examples:
|
|
82
|
+
# Download all stations with available download URLs
|
|
83
|
+
disdrodb_download_archive
|
|
84
|
+
|
|
85
|
+
# Download all stations from specific data sources
|
|
86
|
+
disdrodb_download_archive --data_sources 'EPFL NASA'
|
|
87
|
+
|
|
88
|
+
# Download specific campaigns and force re-download
|
|
89
|
+
disdrodb_download_archive --campaign_names 'HYMEX_LTE_SOP2 IFLOODS' --force True
|
|
90
|
+
""" # noqa: D301
|
|
71
91
|
from disdrodb.data_transfer.download_data import download_archive
|
|
72
92
|
|
|
73
93
|
data_archive_dir = parse_archive_dir(data_archive_dir)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -----------------------------------------------------------------------------.
|
|
2
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026 DISDRODB developers
|
|
3
3
|
#
|
|
4
4
|
# This program is free software: you can redistribute it and/or modify
|
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -15,7 +15,9 @@
|
|
|
15
15
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
# -----------------------------------------------------------------------------.
|
|
17
17
|
"""Routine to download the DISDRODB Metadata Data Archive."""
|
|
18
|
+
|
|
18
19
|
import sys
|
|
20
|
+
from pathlib import Path
|
|
19
21
|
|
|
20
22
|
import click
|
|
21
23
|
|
|
@@ -25,7 +27,7 @@ sys.tracebacklimit = 0 # avoid full traceback error if occur
|
|
|
25
27
|
|
|
26
28
|
|
|
27
29
|
@click.command()
|
|
28
|
-
@click.argument("directory_path", metavar="
|
|
30
|
+
@click.argument("directory_path", required=False, metavar="[directory]", type=click.Path())
|
|
29
31
|
@click.option("-f", "--force", type=bool, show_default=True, default=False, help="Force overwriting")
|
|
30
32
|
def disdrodb_download_metadata_archive(
|
|
31
33
|
directory_path,
|
|
@@ -33,21 +35,31 @@ def disdrodb_download_metadata_archive(
|
|
|
33
35
|
):
|
|
34
36
|
"""Download the DISDRODB Metadata Archive to the specified directory.
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
The
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
38
|
+
\b
|
|
39
|
+
Download Options:
|
|
40
|
+
'--force True' removes the existing DISDRODB-METADATA directory and forces re-download.
|
|
41
|
+
The default is --force False. If the DISDRODB-METADATA directory already exists, it raises an error.
|
|
42
|
+
|
|
43
|
+
\b
|
|
44
|
+
Examples:
|
|
45
|
+
# Download metadata archive to current directory
|
|
46
|
+
disdrodb_download_metadata_archive
|
|
47
|
+
|
|
48
|
+
# Download to specific directory
|
|
49
|
+
disdrodb_download_metadata_archive /path/to/directory
|
|
50
|
+
|
|
51
|
+
# Force re-download of existing metadata archive
|
|
52
|
+
disdrodb_download_metadata_archive /path/to/directory --force True
|
|
53
|
+
|
|
54
|
+
\b
|
|
55
|
+
Important Notes:
|
|
56
|
+
- Use --force with caution as it will delete the existing metadata archive
|
|
57
|
+
""" # noqa: D301
|
|
49
58
|
from disdrodb import download_metadata_archive
|
|
50
59
|
|
|
51
|
-
|
|
60
|
+
# Default to current directory if none provided
|
|
61
|
+
directory_path = Path(directory_path or ".").resolve()
|
|
62
|
+
directory_path = parse_archive_dir(str(directory_path))
|
|
52
63
|
|
|
64
|
+
# Download metadata archive
|
|
53
65
|
download_metadata_archive(directory_path, force=force)
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
|
|
3
1
|
# -----------------------------------------------------------------------------.
|
|
4
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026 DISDRODB developers
|
|
5
3
|
#
|
|
6
4
|
# This program is free software: you can redistribute it and/or modify
|
|
7
5
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -19,7 +17,6 @@
|
|
|
19
17
|
"""Routine to download station data from the DISDRODB Decentralized Data Archive."""
|
|
20
18
|
|
|
21
19
|
import sys
|
|
22
|
-
from typing import Optional
|
|
23
20
|
|
|
24
21
|
import click
|
|
25
22
|
|
|
@@ -43,33 +40,65 @@ def disdrodb_download_station(
|
|
|
43
40
|
data_source: str,
|
|
44
41
|
campaign_name: str,
|
|
45
42
|
station_name: str,
|
|
46
|
-
data_archive_dir:
|
|
47
|
-
metadata_archive_dir:
|
|
43
|
+
data_archive_dir: str | None = None,
|
|
44
|
+
metadata_archive_dir: str | None = None,
|
|
48
45
|
force: bool = False,
|
|
49
46
|
):
|
|
50
|
-
"""
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
47
|
+
"""Download raw data of a single station from the DISDRODB Decentralized Data Archive.
|
|
48
|
+
|
|
49
|
+
It downloads station raw data files and stores them in the local DISDRODB Data Archive.
|
|
50
|
+
The data are organized by data_source, campaign_name, and station_name.
|
|
51
|
+
|
|
52
|
+
For stations data hosted on FTP/webservers, recursive calls of
|
|
53
|
+
this command allows to fetch and download just the new data when becomes available.
|
|
54
|
+
|
|
55
|
+
For stations data hosted on data repository such as Zenodo in ZIP archives,
|
|
56
|
+
if a new version becomes available, you must set force=True to download the new version.
|
|
57
|
+
|
|
58
|
+
\b
|
|
59
|
+
Station Specification:
|
|
60
|
+
Requires exact specification of data_source, campaign_name, and station_name.
|
|
61
|
+
All three parameters must be provided and are case-sensitive (UPPER CASE required).
|
|
62
|
+
|
|
63
|
+
\b
|
|
64
|
+
Download Behavior:
|
|
65
|
+
For webserver/FTP-hosted data:
|
|
66
|
+
- Incremental downloads: Fetch only new files when they become available
|
|
67
|
+
- Existing files on disk are skipped unless --force is used
|
|
68
|
+
|
|
69
|
+
For repository-hosted data (e.g., Zenodo):
|
|
70
|
+
- Use --force to download new versions when available
|
|
71
|
+
- Without --force, download is skipped if data already exists locally
|
|
72
|
+
|
|
73
|
+
\b
|
|
74
|
+
Download Options:
|
|
75
|
+
--force: Removes existing raw data files and forces complete re-download (default: False)
|
|
76
|
+
WARNING: All existing station data will be deleted before re-downloading.
|
|
77
|
+
|
|
78
|
+
\b
|
|
79
|
+
Archive Directories:
|
|
80
|
+
--data_archive_dir: Custom path to DISDRODB data archive
|
|
81
|
+
--metadata_archive_dir: Custom path to DISDRODB metadata archive
|
|
82
|
+
If not specified, paths from the active DISDRODB configuration are used
|
|
83
|
+
|
|
84
|
+
\b
|
|
85
|
+
Examples:
|
|
86
|
+
# Download data for a single station
|
|
87
|
+
disdrodb_download_station EPFL HYMEX_LTE_SOP2 10
|
|
88
|
+
|
|
89
|
+
# Force re-download of existing data
|
|
90
|
+
disdrodb_download_station EPFL HYMEX_LTE_SOP2 10 --force True
|
|
91
|
+
|
|
92
|
+
# Download with custom archive directory
|
|
93
|
+
disdrodb_download_station NASA IFLOODS apu01 --data_archive_dir /path/to/DISDRODB
|
|
94
|
+
|
|
95
|
+
\b
|
|
96
|
+
Important Notes:
|
|
97
|
+
- Data source, campaign, and station names must be UPPER CASE
|
|
98
|
+
- All three station identifiers are required (no wildcards)
|
|
99
|
+
- Downloaded files are placed in <data_archive_dir>/Raw/<data_source>/<campaign_name>/<station_name>/
|
|
100
|
+
- Use --force with caution as it will remove data on disk before starting to re-download them.
|
|
101
|
+
""" # noqa: D301
|
|
73
102
|
from disdrodb.data_transfer.download_data import download_station
|
|
74
103
|
|
|
75
104
|
data_archive_dir = parse_archive_dir(data_archive_dir)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# -----------------------------------------------------------------------------.
|
|
2
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026 DISDRODB developers
|
|
3
3
|
#
|
|
4
4
|
# This program is free software: you can redistribute it and/or modify
|
|
5
5
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
# -----------------------------------------------------------------------------.
|
|
17
17
|
"""Script to initialize the DISDRODB station directory structure."""
|
|
18
|
+
|
|
18
19
|
import sys
|
|
19
|
-
from typing import Optional
|
|
20
20
|
|
|
21
21
|
import click
|
|
22
22
|
|
|
@@ -43,28 +43,48 @@ def disdrodb_initialize_station(
|
|
|
43
43
|
campaign_name: str,
|
|
44
44
|
station_name: str,
|
|
45
45
|
# DISDRODB root directories
|
|
46
|
-
data_archive_dir:
|
|
47
|
-
metadata_archive_dir:
|
|
46
|
+
data_archive_dir: str | None = None,
|
|
47
|
+
metadata_archive_dir: str | None = None,
|
|
48
48
|
):
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
49
|
+
"""Initialize the DISDRODB directory structure for a new station.
|
|
50
|
+
|
|
51
|
+
Creates the required directory structure and default YAML configuration files
|
|
52
|
+
for a new station in both the DISDRODB Data and Metadata archives.
|
|
53
|
+
|
|
54
|
+
\b
|
|
55
|
+
Station Specification:
|
|
56
|
+
Requires exact specification of data_source, campaign_name, and station_name.
|
|
57
|
+
All three parameters must be provided and are case-sensitive (UPPER CASE required).
|
|
58
|
+
|
|
59
|
+
\b
|
|
60
|
+
Created Structure:
|
|
61
|
+
Data Archive:
|
|
62
|
+
- Data directory for the station where to place the raw data files
|
|
63
|
+
|
|
64
|
+
Metadata Archive:
|
|
65
|
+
- Station metadata YAML file (template)
|
|
66
|
+
- Station issue YAML file (template)
|
|
67
|
+
|
|
68
|
+
\b
|
|
69
|
+
Archive Directories:
|
|
70
|
+
--data_archive_dir: Custom path to DISDRODB data archive
|
|
71
|
+
--metadata_archive_dir: Custom path to DISDRODB metadata archive
|
|
72
|
+
If not specified, paths from the active DISDRODB configuration are used
|
|
73
|
+
|
|
74
|
+
\b
|
|
75
|
+
Examples:
|
|
76
|
+
# Initialize a new station with default configuration
|
|
77
|
+
disdrodb_initialize_station DATA_SOURCE CAMPAIGN_NAME STATION_NAME
|
|
78
|
+
|
|
79
|
+
# Initialize with custom archive directories
|
|
80
|
+
disdrodb_initialize_station DATA_SOURCE CAMPAIGN_NAME STATION_NAME --data_archive_dir /path/to/DISDRODB
|
|
81
|
+
|
|
82
|
+
\b
|
|
83
|
+
Important Notes:
|
|
84
|
+
- Data source, campaign, and station names must be in UPPER CASE
|
|
85
|
+
- All three station identifiers are required (no wildcards)
|
|
86
|
+
- Creates template YAML files that need to be manually filled in
|
|
87
|
+
""" # noqa: D301
|
|
68
88
|
from disdrodb.api.create_directories import create_initial_station_structure
|
|
69
89
|
|
|
70
90
|
data_archive_dir = parse_archive_dir(data_archive_dir)
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
|
|
3
1
|
# -----------------------------------------------------------------------------.
|
|
4
|
-
# Copyright (c) 2021-
|
|
2
|
+
# Copyright (c) 2021-2026 DISDRODB developers
|
|
5
3
|
#
|
|
6
4
|
# This program is free software: you can redistribute it and/or modify
|
|
7
5
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -17,6 +15,7 @@
|
|
|
17
15
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
18
16
|
# -----------------------------------------------------------------------------.
|
|
19
17
|
"""Routine to print the DISDRODB Data Archive directory."""
|
|
18
|
+
|
|
20
19
|
import sys
|
|
21
20
|
|
|
22
21
|
import click
|