You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sdap.apache.org by rk...@apache.org on 2023/07/31 20:42:01 UTC
[incubator-sdap-nexus] 01/01: SDAP-479: Subset will not fail is standard/variable name not given (CSV)
This is an automated email from the ASF dual-hosted git repository.
rkk pushed a commit to branch SDAP-479
in repository https://gitbox.apache.org/repos/asf/incubator-sdap-nexus.git
commit 6ca306405338d34dbc04747a1b0a354a2b9606cd
Author: rileykk <ri...@jpl.nasa.gov>
AuthorDate: Mon Jul 31 13:40:35 2023 -0700
SDAP-479: Subset will not fail is standard/variable name not given (CSV)
---
CHANGELOG.md | 1 +
analysis/webservice/algorithms/doms/subsetter.py | 12 ++++++++++--
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f2beb15..41e05ae 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- SDAP-465: Removed `climatology` directory.
### Fixed
- SDAP-474: Fixed bug in CSV attributes where secondary dataset would be rendered as comma separated characters
+- SDAP-479: Fixed `/cdmssubset` failure for variables without specified standard_name.
### Security
## [1.1.0] - 2023-04-26
diff --git a/analysis/webservice/algorithms/doms/subsetter.py b/analysis/webservice/algorithms/doms/subsetter.py
index 0dca80f..60c3762 100644
--- a/analysis/webservice/algorithms/doms/subsetter.py
+++ b/analysis/webservice/algorithms/doms/subsetter.py
@@ -203,14 +203,22 @@ class DomsResultsRetrievalHandler(BaseDomsHandler.BaseDomsQueryCalcHandler):
tile = tile[0]
+ def get_best_name(variable):
+ if variable.standard_name:
+ return variable.standard_name
+ elif variable.variable_name:
+ return variable.variable_name
+ else:
+ return 'UNNAMED_VARIABLE'
+
for nexus_point in tile.nexus_point_generator():
if tile.is_multi:
data_points = {
- tile.variables[idx].standard_name: nexus_point.data_vals[idx]
+ get_best_name(tile.variables[idx]): nexus_point.data_vals[idx]
for idx in range(len(tile.variables))
}
else:
- data_points = {tile.variables[0].standard_name: nexus_point.data_vals}
+ data_points = {get_best_name(tile.variables[0]): nexus_point.data_vals}
data.append({
'latitude': nexus_point.latitude,
'longitude': nexus_point.longitude,