From 55e0e255876ddebc35550c4d7ff6db1aceb5d26f Mon Sep 17 00:00:00 2001 From: "Gustavo H. X. Shiroma" Date: Wed, 6 Sep 2023 10:38:42 -0700 Subject: [PATCH] allow for the product version to be a string --- src/rtc/h5_prep.py | 34 +++++++++++++++++++++++---- src/rtc/rtc_s1.py | 9 ++++--- src/rtc/rtc_s1_single_job.py | 9 ++++--- src/rtc/schemas/rtc_s1.yaml | 2 +- tests/runconfigs/s1b_los_angeles.yaml | 2 -- 5 files changed, 38 insertions(+), 18 deletions(-) diff --git a/src/rtc/h5_prep.py b/src/rtc/h5_prep.py index cb755c16..c169b890 100644 --- a/src/rtc/h5_prep.py +++ b/src/rtc/h5_prep.py @@ -233,6 +233,32 @@ def save_hdf5_file(hdf5_obj, output_hdf5_file, clip_max, logger.info(f'file saved: {output_hdf5_file}') +def get_product_version(product_version_runconfig): + ''' + Returns the product version from the product + version defined by the user in the runconfig. + + Parameters + --------- + product_version_runconfig: scalar + RunConfig product version + + Returns + ------- + product_version: scalar + Product version + ''' + if product_version_runconfig is None: + product_version = SOFTWARE_VERSION + return product_version + try: + product_version_float = float(product_version_runconfig) + product_version = f'{product_version_float:.1f}' + except ValueError: + product_version = product_version_runconfig + return product_version + + def create_hdf5_file(product_id, output_hdf5_file, orbit, burst, cfg, processing_datetime, is_mosaic): '''Create HDF5 file @@ -362,11 +388,9 @@ def get_metadata_dict(product_id: str, product_type = cfg_in.groups.primary_executable.product_type # product version - product_version_float = cfg_in.groups.product_group.product_version - if product_version_float is None: - product_version = SOFTWARE_VERSION - else: - product_version = f'{product_version_float:.1f}' + product_version_runconfig = cfg_in.groups.product_group.product_version + product_version_runconfig = cfg.groups.product_group.product_version + product_version = get_product_version(product_version_runconfig) # DEM description dem_file_description = cfg_in.dem_file_description diff --git a/src/rtc/rtc_s1.py b/src/rtc/rtc_s1.py index d30a9fc2..dbabc02a 100755 --- a/src/rtc/rtc_s1.py +++ b/src/rtc/rtc_s1.py @@ -28,6 +28,7 @@ from rtc.version import VERSION as SOFTWARE_VERSION from rtc.h5_prep import (save_hdf5_file, create_hdf5_file, get_metadata_dict, + get_product_version, all_metadata_dict_to_geotiff_metadata_dict, layer_hdf5_dict, DATA_BASE_GROUP, @@ -266,13 +267,11 @@ def run_parallel(cfg: RunConfig, logfile_path, flag_logger_full_format): # primary executable product_type = cfg.groups.primary_executable.product_type - product_version_float = cfg.groups.product_group.product_version + product_version_runconfig = cfg.groups.product_group.product_version rtc_s1_static_validity_start_date = \ cfg.groups.product_group.rtc_s1_static_validity_start_date - if product_version_float is None: - product_version = SOFTWARE_VERSION - else: - product_version = f'{product_version_float:.1f}' + product_version_runconfig = cfg.groups.product_group.product_version + product_version = get_product_version(product_version_runconfig) # unpack processing parameters processing_namespace = cfg.groups.processing diff --git a/src/rtc/rtc_s1_single_job.py b/src/rtc/rtc_s1_single_job.py index 449ae010..b571e238 100755 --- a/src/rtc/rtc_s1_single_job.py +++ b/src/rtc/rtc_s1_single_job.py @@ -25,6 +25,7 @@ from rtc.core import (save_as_cog, check_ancillary_inputs, build_empty_vrt) from rtc.h5_prep import (save_hdf5_file, create_hdf5_file, + get_product_version, get_metadata_dict, all_metadata_dict_to_geotiff_metadata_dict, layer_names_dict, @@ -1096,13 +1097,11 @@ def run_single_job(cfg: RunConfig): # primary executable product_type = cfg.groups.primary_executable.product_type - product_version_float = cfg.groups.product_group.product_version rtc_s1_static_validity_start_date = \ cfg.groups.product_group.rtc_s1_static_validity_start_date - if product_version_float is None: - product_version = SOFTWARE_VERSION - else: - product_version = f'{product_version_float:.1f}' + + product_version_runconfig = cfg.groups.product_group.product_version + product_version = get_product_version(product_version_runconfig) # unpack processing parameters processing_namespace = cfg.groups.processing diff --git a/src/rtc/schemas/rtc_s1.yaml b/src/rtc/schemas/rtc_s1.yaml index 993fb338..7175a755 100644 --- a/src/rtc/schemas/rtc_s1.yaml +++ b/src/rtc/schemas/rtc_s1.yaml @@ -40,7 +40,7 @@ runconfig: processing_type: enum('NOMINAL', 'URGENT', 'CUSTOM', 'UNDEFINED', required=False) - product_version: num(required=False) + product_version: str(required=False) # Directory where PGE will place results product_path: str() diff --git a/tests/runconfigs/s1b_los_angeles.yaml b/tests/runconfigs/s1b_los_angeles.yaml index 5ed01d05..4f230615 100644 --- a/tests/runconfigs/s1b_los_angeles.yaml +++ b/tests/runconfigs/s1b_los_angeles.yaml @@ -34,8 +34,6 @@ runconfig: product_group: processing_type: 'CUSTOM' - # product_version: 3.1 - # Directory where PGE will place results product_path: .