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,184 @@
|
|
|
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 launch all DISDRODB products generation for a given station."""
|
|
18
|
+
|
|
19
|
+
import sys
|
|
20
|
+
|
|
21
|
+
import click
|
|
22
|
+
|
|
23
|
+
from disdrodb.utils.cli import (
|
|
24
|
+
click_data_archive_dir_option,
|
|
25
|
+
click_l0_archive_options,
|
|
26
|
+
click_metadata_archive_dir_option,
|
|
27
|
+
click_processing_options,
|
|
28
|
+
click_station_arguments,
|
|
29
|
+
parse_archive_dir,
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
sys.tracebacklimit = 0 # avoid full traceback error if occur
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# -------------------------------------------------------------------------.
|
|
36
|
+
# Click Command Line Interface decorator
|
|
37
|
+
@click.command()
|
|
38
|
+
@click_station_arguments
|
|
39
|
+
@click_processing_options
|
|
40
|
+
@click_l0_archive_options
|
|
41
|
+
@click.option(
|
|
42
|
+
"-l1",
|
|
43
|
+
"--l1_processing",
|
|
44
|
+
type=bool,
|
|
45
|
+
show_default=True,
|
|
46
|
+
default=True,
|
|
47
|
+
help="Run L1 processing",
|
|
48
|
+
)
|
|
49
|
+
@click.option(
|
|
50
|
+
"-l2e",
|
|
51
|
+
"--l2e_processing",
|
|
52
|
+
type=bool,
|
|
53
|
+
show_default=True,
|
|
54
|
+
default=True,
|
|
55
|
+
help="Run L2E processing",
|
|
56
|
+
)
|
|
57
|
+
@click.option(
|
|
58
|
+
"-l2m",
|
|
59
|
+
"--l2m_processing",
|
|
60
|
+
type=bool,
|
|
61
|
+
show_default=True,
|
|
62
|
+
default=True,
|
|
63
|
+
help="Run L2M processing.",
|
|
64
|
+
)
|
|
65
|
+
@click_data_archive_dir_option
|
|
66
|
+
@click_metadata_archive_dir_option
|
|
67
|
+
def disdrodb_run_station(
|
|
68
|
+
# Station arguments
|
|
69
|
+
data_source: str,
|
|
70
|
+
campaign_name: str,
|
|
71
|
+
station_name: str,
|
|
72
|
+
# L0 archive options
|
|
73
|
+
l0a_processing: bool = True,
|
|
74
|
+
l0b_processing: bool = True,
|
|
75
|
+
l0c_processing: bool = True,
|
|
76
|
+
remove_l0a: bool = False,
|
|
77
|
+
remove_l0b: bool = False,
|
|
78
|
+
# Higher level processing options
|
|
79
|
+
l1_processing: bool = True,
|
|
80
|
+
l2e_processing: bool = True,
|
|
81
|
+
l2m_processing: bool = True,
|
|
82
|
+
# Processing options
|
|
83
|
+
force: bool = False,
|
|
84
|
+
verbose: bool = True,
|
|
85
|
+
parallel: bool = True,
|
|
86
|
+
debugging_mode: bool = False,
|
|
87
|
+
# DISDRODB root directories
|
|
88
|
+
data_archive_dir: str | None = None,
|
|
89
|
+
metadata_archive_dir: str | None = None,
|
|
90
|
+
):
|
|
91
|
+
"""Run the complete processing of a specific DISDRODB station.
|
|
92
|
+
|
|
93
|
+
This function processes a single station through the complete DISDRODB processing
|
|
94
|
+
chain, from raw data ingestion to final derived products. All processing levels
|
|
95
|
+
are executed in sequence for the specified station.
|
|
96
|
+
|
|
97
|
+
\b
|
|
98
|
+
Processing Levels:
|
|
99
|
+
L0A: Raw data converted to DISDRODB standardized Apache Parquet format
|
|
100
|
+
L0B: L0A data converted to DISDRODB standardized netCDF4 format
|
|
101
|
+
L0C: Apply time QC and consolidate L0B data into (by default daily) netCDF files
|
|
102
|
+
L1: Temporally resample L0C data to standard intervals (1-60 minutes), apply QC algorithms
|
|
103
|
+
and determine precipitation phase and hydrometeors types
|
|
104
|
+
L2E: Compute empirical integral DSD variables (e.g., rain rate, liquid water content)
|
|
105
|
+
L2M: Fit parametric DSD models and compute model-based integral DSD variables
|
|
106
|
+
|
|
107
|
+
\b
|
|
108
|
+
Station Specification:
|
|
109
|
+
Requires exact specification of data_source, campaign_name, and station_name.
|
|
110
|
+
All three parameters must be provided and are case-sensitive (UPPER CASE required).
|
|
111
|
+
|
|
112
|
+
\b
|
|
113
|
+
Performance Options:
|
|
114
|
+
--parallel: Uses multiple processes for faster processing (default: True)
|
|
115
|
+
If parallel processing is enabled, each process will use a single thread
|
|
116
|
+
to avoid issues with the HDF/netCDF library.
|
|
117
|
+
The DASK_NUM_WORKERS environment variable controls the number of processes
|
|
118
|
+
to use.A sensible default is automatically set by the software.
|
|
119
|
+
--debugging_mode: Processes only a subset of data for testing
|
|
120
|
+
--force: Overwrites existing output files (default: False)
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
\b
|
|
124
|
+
Examples:
|
|
125
|
+
# Process a single station with full processing chain
|
|
126
|
+
disdrodb_run_station EPFL HYMEX_LTE_SOP2 10
|
|
127
|
+
|
|
128
|
+
# Process station, skip L0A processing (start from existing L0B data)
|
|
129
|
+
disdrodb_run_station NASA IFLOODS apu01 --l0a_processing False
|
|
130
|
+
|
|
131
|
+
# Process station with debugging mode and custom workers
|
|
132
|
+
DASK_NUM_WORKERS=4 disdrodb_run_station NETHERLANDS DELFT PAR001_Cabauw --debugging_mode True
|
|
133
|
+
|
|
134
|
+
# Process station, skip final L2M level
|
|
135
|
+
disdrodb_run_station FRANCE ENPC_CARNOT Carnot_Pars1 --l2m_processing False
|
|
136
|
+
|
|
137
|
+
# Force overwrite existing files with verbose output
|
|
138
|
+
disdrodb_run_station EPFL HYMEX_2012 10 --force True --verbose True
|
|
139
|
+
|
|
140
|
+
\b
|
|
141
|
+
Data Management:
|
|
142
|
+
--remove_l0a: Delete L0A files after L0B processing (saves disk space)
|
|
143
|
+
--remove_l0b: Delete L0B files after L0C processing (saves disk space)
|
|
144
|
+
Use with caution - removed files cannot be recovered without reprocessing
|
|
145
|
+
|
|
146
|
+
\b
|
|
147
|
+
Important Notes:
|
|
148
|
+
- Data source, campaign, and station names must be UPPER CASE
|
|
149
|
+
- All three station identifiers are required (no wildcards or filtering)
|
|
150
|
+
- Processing chain: L0A → L0B → L0C → L1 → L2E → L2M
|
|
151
|
+
- You can skip early or late processing levels, but not intermediate ones
|
|
152
|
+
- Processing validates chain consistency and will raise errors for gaps
|
|
153
|
+
- Station-specific processing may require significant time for large datasets
|
|
154
|
+
- Use --debugging_mode for initial testing with reduced data volumes
|
|
155
|
+
""" # noqa: D301
|
|
156
|
+
from disdrodb.routines import run_station
|
|
157
|
+
|
|
158
|
+
data_archive_dir = parse_archive_dir(data_archive_dir)
|
|
159
|
+
metadata_archive_dir = parse_archive_dir(metadata_archive_dir)
|
|
160
|
+
|
|
161
|
+
run_station(
|
|
162
|
+
# DISDRODB root directories
|
|
163
|
+
data_archive_dir=data_archive_dir,
|
|
164
|
+
metadata_archive_dir=metadata_archive_dir,
|
|
165
|
+
# Station arguments
|
|
166
|
+
data_source=data_source,
|
|
167
|
+
campaign_name=campaign_name,
|
|
168
|
+
station_name=station_name,
|
|
169
|
+
# L0 archive options
|
|
170
|
+
l0a_processing=l0a_processing,
|
|
171
|
+
l0b_processing=l0b_processing,
|
|
172
|
+
l0c_processing=l0c_processing,
|
|
173
|
+
remove_l0a=remove_l0a,
|
|
174
|
+
remove_l0b=remove_l0b,
|
|
175
|
+
# Higher level processing options
|
|
176
|
+
l1_processing=l1_processing,
|
|
177
|
+
l2e_processing=l2e_processing,
|
|
178
|
+
l2m_processing=l2m_processing,
|
|
179
|
+
# Processing options
|
|
180
|
+
force=force,
|
|
181
|
+
verbose=verbose,
|
|
182
|
+
debugging_mode=debugging_mode,
|
|
183
|
+
parallel=parallel,
|
|
184
|
+
)
|
|
@@ -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
|
"""Routines to upload data to the DISDRODB Decentralized Data Archive."""
|
|
20
18
|
|
|
21
19
|
import sys
|
|
22
|
-
from typing import Optional
|
|
23
20
|
|
|
24
21
|
import click
|
|
25
22
|
|
|
@@ -41,48 +38,60 @@ sys.tracebacklimit = 0 # avoid full traceback error if occur
|
|
|
41
38
|
@click_metadata_archive_dir_option
|
|
42
39
|
def disdrodb_upload_archive(
|
|
43
40
|
# DISDRODB root directories
|
|
44
|
-
data_archive_dir:
|
|
45
|
-
metadata_archive_dir:
|
|
41
|
+
data_archive_dir: str | None = None,
|
|
42
|
+
metadata_archive_dir: str | None = None,
|
|
46
43
|
# Stations options
|
|
47
|
-
data_sources:
|
|
48
|
-
campaign_names:
|
|
49
|
-
station_names:
|
|
44
|
+
data_sources: str | None = None,
|
|
45
|
+
campaign_names: str | None = None,
|
|
46
|
+
station_names: str | None = None,
|
|
50
47
|
# Upload options
|
|
51
|
-
platform:
|
|
48
|
+
platform: str | None = None,
|
|
52
49
|
force: bool = False,
|
|
53
50
|
):
|
|
54
|
-
"""
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
If
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
51
|
+
"""Upload raw data for multiple DISDRODB stations to the DISDRODB Decentralized Data Archive.
|
|
52
|
+
|
|
53
|
+
Currently, only upload to the Zenodo data repository is implemented.
|
|
54
|
+
The station metadata files are automatically updated with the remote data URL.
|
|
55
|
+
|
|
56
|
+
PLEASE UPLOAD JUST YOUR DATA !
|
|
57
|
+
|
|
58
|
+
\b
|
|
59
|
+
Station Selection:
|
|
60
|
+
If no station filters are specified, uploads ALL stations with local data.
|
|
61
|
+
Use data_sources, campaign_names, and station_names to filter stations.
|
|
62
|
+
Filters work together to narrow down the selection (AND logic).
|
|
63
|
+
Only stations with local raw data files will be uploaded.
|
|
64
|
+
|
|
65
|
+
\b
|
|
66
|
+
Upload Behavior:
|
|
67
|
+
By default, upload is skipped if data already exists on a remote location.
|
|
68
|
+
Use '--force True' to upload even if data already exists remotely.
|
|
69
|
+
Warning: Forcing upload may create duplicate versions on the remote platform.
|
|
70
|
+
|
|
71
|
+
\b
|
|
72
|
+
Upload Options:
|
|
73
|
+
--platform: Remote platform name (default: 'sandbox.zenodo' for testing)
|
|
74
|
+
Use 'zenodo' for final data dissemination.
|
|
75
|
+
--force: Upload even if data already exists remotely (default: False)
|
|
76
|
+
|
|
77
|
+
\b
|
|
78
|
+
Archive Directories:
|
|
79
|
+
--data_archive_dir: Custom path to DISDRODB data archive
|
|
80
|
+
--metadata_archive_dir: Custom path to DISDRODB metadata archive
|
|
81
|
+
If not specified, paths from the active DISDRODB configuration are used
|
|
82
|
+
|
|
83
|
+
\b
|
|
84
|
+
Examples:
|
|
85
|
+
|
|
86
|
+
# Upload a specific data sources to Zenodo Sandbox
|
|
87
|
+
disdrodb_upload_archive --data_sources 'YOUR_DATA_SOURCE' --platform sandbox.zenodo
|
|
88
|
+
|
|
89
|
+
# Upload a specific data sources to Zenodo and force upload
|
|
90
|
+
disdrodb_upload_archive --data_sources 'YOUR_DATA_SOURCE' --platform zenodo --force True
|
|
91
|
+
|
|
92
|
+
# Upload specific campaigns to Zenodo
|
|
93
|
+
disdrodb_upload_archive --campaign_names 'HYMEX_LTE_SOP2 IFLOODS' --platform zenodo
|
|
94
|
+
""" # noqa: D301
|
|
86
95
|
from disdrodb.data_transfer.upload_data import upload_archive
|
|
87
96
|
|
|
88
97
|
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
|
|
@@ -19,7 +17,6 @@
|
|
|
19
17
|
"""Routines to upload station data to the DISDRODB Decentralized Data Archive."""
|
|
20
18
|
|
|
21
19
|
import sys
|
|
22
|
-
from typing import Optional
|
|
23
20
|
|
|
24
21
|
import click
|
|
25
22
|
|
|
@@ -45,41 +42,50 @@ def disdrodb_upload_station(
|
|
|
45
42
|
campaign_name: str,
|
|
46
43
|
station_name: str,
|
|
47
44
|
# Upload options
|
|
48
|
-
platform:
|
|
45
|
+
platform: str | None = None,
|
|
49
46
|
force: bool = False,
|
|
50
47
|
# DISDRODB root directories
|
|
51
|
-
data_archive_dir:
|
|
52
|
-
metadata_archive_dir:
|
|
48
|
+
data_archive_dir: str | None = None,
|
|
49
|
+
metadata_archive_dir: str | None = None,
|
|
53
50
|
):
|
|
54
|
-
"""
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
If
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
51
|
+
"""Upload raw data from a single DISDRODB station to the DISDRODB Decentralized Data Archive.
|
|
52
|
+
|
|
53
|
+
Currently, only upload to the Zenodo data repository is implemented.
|
|
54
|
+
|
|
55
|
+
The station metadata file is automatically updated with the remote data URL.
|
|
56
|
+
|
|
57
|
+
PLEASE UPLOAD JUST YOUR DATA !
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
\b
|
|
61
|
+
Upload Behavior:
|
|
62
|
+
By default, upload is skipped if data already exists on a remote location.
|
|
63
|
+
Use '--force True' to upload even if data already exists remotely.
|
|
64
|
+
Warning: Forcing upload will overwrite the existing disdrodb_data_url in metadata.
|
|
65
|
+
|
|
66
|
+
\b
|
|
67
|
+
Upload Options:
|
|
68
|
+
--platform: Remote platform name (default: 'sandbox.zenodo' for testing)
|
|
69
|
+
Use 'zenodo' for final data dissemination
|
|
70
|
+
--force: Upload even if data already exists remotely (default: False)
|
|
71
|
+
|
|
72
|
+
\b
|
|
73
|
+
Archive Directories:
|
|
74
|
+
--data_archive_dir: Custom path to DISDRODB data archive
|
|
75
|
+
--metadata_archive_dir: Custom path to DISDRODB metadata archive
|
|
76
|
+
If not specified, paths from the active DISDRODB configuration are used
|
|
77
|
+
|
|
78
|
+
\b
|
|
79
|
+
Examples:
|
|
80
|
+
# Upload a station to sandbox for testing
|
|
81
|
+
disdrodb_upload_station DATA_SOURCE CAMPAIGN_NAME STATION_NAME
|
|
82
|
+
|
|
83
|
+
# Upload a station to production Zenodo
|
|
84
|
+
disdrodb_upload_station DATA_SOURCE CAMPAIGN_NAME STATION_NAME --platform zenodo
|
|
85
|
+
|
|
86
|
+
# Force upload and update metadata URL
|
|
87
|
+
disdrodb_upload_station DATA_SOURCE CAMPAIGN_NAME STATION_NAME --force True
|
|
88
|
+
""" # noqa: D301
|
|
83
89
|
from disdrodb.data_transfer.upload_data import upload_station
|
|
84
90
|
|
|
85
91
|
data_archive_dir = parse_archive_dir(data_archive_dir)
|
disdrodb/configs.py
CHANGED
|
@@ -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
|
|
@@ -20,7 +18,6 @@
|
|
|
20
18
|
|
|
21
19
|
import os
|
|
22
20
|
import shutil
|
|
23
|
-
from typing import Optional
|
|
24
21
|
|
|
25
22
|
from disdrodb.utils.yaml import read_yaml, write_yaml
|
|
26
23
|
|
|
@@ -34,13 +31,13 @@ def _define_config_filepath():
|
|
|
34
31
|
|
|
35
32
|
|
|
36
33
|
def define_configs(
|
|
37
|
-
data_archive_dir:
|
|
38
|
-
metadata_archive_dir:
|
|
39
|
-
scattering_table_dir:
|
|
40
|
-
products_configs_dir:
|
|
41
|
-
folder_partitioning:
|
|
42
|
-
zenodo_token:
|
|
43
|
-
zenodo_sandbox_token:
|
|
34
|
+
data_archive_dir: str | None = None,
|
|
35
|
+
metadata_archive_dir: str | None = None,
|
|
36
|
+
scattering_table_dir: str | None = None,
|
|
37
|
+
products_configs_dir: str | None = None,
|
|
38
|
+
folder_partitioning: str | None = None,
|
|
39
|
+
zenodo_token: str | None = None,
|
|
40
|
+
zenodo_sandbox_token: str | None = None,
|
|
44
41
|
):
|
|
45
42
|
"""
|
|
46
43
|
Defines the DISDRODB configuration file with the given credentials and base directory.
|
|
@@ -194,7 +191,11 @@ def get_scattering_table_dir(scattering_table_dir=None):
|
|
|
194
191
|
if scattering_table_dir is None:
|
|
195
192
|
scattering_table_dir = disdrodb.config.get("scattering_table_dir", None)
|
|
196
193
|
if scattering_table_dir is None:
|
|
197
|
-
|
|
194
|
+
msg = (
|
|
195
|
+
"The directory where to save DISDRODB T-Matrix scattering look-up tables is not specified. "
|
|
196
|
+
+ "Please specify it using disdrodb.define_configs(scattering_table_dir=<path>)"
|
|
197
|
+
)
|
|
198
|
+
raise ValueError(msg)
|
|
198
199
|
scattering_table_dir = check_scattering_table_dir(scattering_table_dir) # ensure Path converted to str
|
|
199
200
|
return scattering_table_dir
|
|
200
201
|
|
|
@@ -246,16 +247,19 @@ def get_default_products_configs_dir():
|
|
|
246
247
|
return products_configs_dir
|
|
247
248
|
|
|
248
249
|
|
|
249
|
-
def get_products_configs_dir():
|
|
250
|
+
def get_products_configs_dir(products_configs_dir=None):
|
|
250
251
|
"""Return the DISDRODB products configuration directory."""
|
|
251
252
|
import disdrodb
|
|
252
253
|
|
|
253
|
-
if
|
|
254
|
+
if products_configs_dir is not None:
|
|
255
|
+
return str(products_configs_dir)
|
|
256
|
+
|
|
257
|
+
if os.environ.get("PYTEST_CURRENT_TEST") and not os.environ.get("DISDRODB_VALIDATION_FLAG"):
|
|
254
258
|
products_configs_dir = os.path.join(disdrodb.package_dir, "tests", "products")
|
|
255
259
|
else:
|
|
256
260
|
products_configs_dir = disdrodb.config.get("products_configs_dir", None)
|
|
257
|
-
if products_configs_dir is None:
|
|
258
|
-
products_configs_dir = get_default_products_configs_dir()
|
|
261
|
+
if products_configs_dir is None: # not specified by user
|
|
262
|
+
products_configs_dir = get_default_products_configs_dir() # take disdrodb defaults
|
|
259
263
|
return products_configs_dir
|
|
260
264
|
|
|
261
265
|
|
disdrodb/constants.py
CHANGED
|
@@ -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,6 +15,7 @@
|
|
|
15
15
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
16
16
|
# -----------------------------------------------------------------------------.
|
|
17
17
|
"""DISDRODB constants."""
|
|
18
|
+
|
|
18
19
|
import importlib
|
|
19
20
|
|
|
20
21
|
ARCHIVE_VERSION = "V0"
|
|
@@ -41,7 +42,9 @@ COORDINATES = [
|
|
|
41
42
|
"time",
|
|
42
43
|
"sample_interval",
|
|
43
44
|
]
|
|
44
|
-
|
|
45
|
+
METEOROLOGICAL_VARIABLES = ["air_temperature", "relative_humidity", "wind_speed", "wind_direction"]
|
|
46
|
+
|
|
47
|
+
OPTICAL_SENSORS = ["PARSIVEL", "PARSIVEL2", "LPM", "LPM_V0", "PWS100", "SWS250", "ODM470"]
|
|
45
48
|
IMPACT_SENSORS = ["RD80"]
|
|
46
49
|
|
|
47
50
|
PRODUCTS = ["RAW", "L0A", "L0B", "L0C", "L1", "L2E", "L2M"]
|
|
@@ -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
|