From 5c6a11ff574649e4e6d5be2d8c76fd0ab748564f Mon Sep 17 00:00:00 2001 From: Simon Liu Date: Mon, 29 Jan 2024 12:12:16 -0800 Subject: [PATCH] update to make fill_missing and ppd optional for each variable --- CHANGELOG.md | 2 +- README.md | 7 +++++++ example_vars.csv | 6 +++--- podaac/tig/generate_hitide_config.py | 18 ++++++++++++++++-- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d8a258..584bcfa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - ** Add image uploading ** - update tig to upload tig image to ecr - ** Add palette support to generating configuration ** - - [issue/44] (https://github.com/podaac/hitide/issues/44): Add support to palette in csv in generating configuration + - [issue/44] (https://github.com/podaac/hitide/issues/44): Add support to palette, ppd, fill_missing in csv in generating configuration ### Changed ### Deprecated ### Removed diff --git a/README.md b/README.md index c052c55..427103a 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,13 @@ latitude: latitude variable include the group if they're in a group defaults to time: time variable include the group if they're in a group defaults to time footprint_strategy: strategy to generate footprint will default to None options should be ["periodic", "linestring", "polar", "swot_linestring", "polarsides", "smap"] +### CSV Columns + +variable: name of variable +min: min value for variable +max: max value for variable +fill_missing (optional): if the generated images have missing pixel in images most likely resolution is to big, either lower resolution or we can fill in the pixels with surrounding pixel +ppd (optional): resolution of the variable, must be an integer ## How to load and use tig module diff --git a/example_vars.csv b/example_vars.csv index 0b534ca..fff970c 100644 --- a/example_vars.csv +++ b/example_vars.csv @@ -1,3 +1,3 @@ -variable,min,max -data_01/ku/ssha,-0.2,0.2 -data_01/ku/swh_ocean,0,30 +variable,min,max,fill_missing,ppd +data_01/ku/ssha,-0.2,0.2,TRUE,20 +data_01/ku/swh_ocean,0,30,FALSE,15 \ No newline at end of file diff --git a/podaac/tig/generate_hitide_config.py b/podaac/tig/generate_hitide_config.py index a646636..cc9176d 100644 --- a/podaac/tig/generate_hitide_config.py +++ b/podaac/tig/generate_hitide_config.py @@ -122,10 +122,15 @@ def generate_hitide_config(granule, dataset_id, include_image_variables, longitu long_name = variable.long_name if 'long_name' in variable.ncattrs() else '' palette = 'paletteMedspirationIndexed' + fill_missing = False + ppd = 16 + if data_var in vars_data: min_val = float(vars_data[data_var]['min']) max_val = float(vars_data[data_var]['max']) palette = vars_data[data_var].get('palette') + fill_missing = vars_data[data_var].get('fill_missing', False) + ppd = vars_data[data_var].get('ppd', 16) else: min_val = variable.valid_min if 'valid_min' in variable.ncattrs() else '' max_val = variable.valid_max if 'valid_max' in variable.ncattrs() else '' @@ -133,14 +138,23 @@ def generate_hitide_config(granule, dataset_id, include_image_variables, longitu if not palette: palette = 'paletteMedspirationIndexed' - dataset_config['imgVariables'].append({ + dataset_dict = { 'id': data_var, 'title': long_name, 'units': units, 'min': min_val, 'max': max_val, 'palette': palette - }) + } + + if fill_missing: + fill_missing = fill_missing.lower().strip() + dataset_dict['fill_missing'] = fill_missing == "true" + + if ppd != 16 and ppd.isdigit(): + dataset_dict['ppd'] = int(ppd) + + dataset_config['imgVariables'].append(dataset_dict) except Exception as ex: # pylint: disable=broad-exception-caught print(f"Error: Failed on variable {data_var}, exception: " + str(ex))