You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sdap.apache.org by fg...@apache.org on 2019/08/20 21:11:53 UTC

[incubator-sdap-nexus] branch 1.1.0-SNAPSHOT updated: SDAP-204 Fix quality flag bugs

This is an automated email from the ASF dual-hosted git repository.

fgreg pushed a commit to branch 1.1.0-SNAPSHOT
in repository https://gitbox.apache.org/repos/asf/incubator-sdap-nexus.git


The following commit(s) were added to refs/heads/1.1.0-SNAPSHOT by this push:
     new bea0d16  SDAP-204 Fix quality flag bugs
bea0d16 is described below

commit bea0d16ac3c11c6721cff9c9c0b8d81e934d3b96
Author: Maya DeBellis <ma...@gmail.com>
AuthorDate: Tue Aug 20 14:11:48 2019 -0700

    SDAP-204 Fix quality flag bugs
    
    fix bugs - csv headers for quality, add quality api DOMS header (#76)
---
 .../webservice/algorithms/doms/BaseDomsHandler.py  | 25 ++++++++++++++--------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/analysis/webservice/algorithms/doms/BaseDomsHandler.py b/analysis/webservice/algorithms/doms/BaseDomsHandler.py
index a41c08b..6d1a713 100644
--- a/analysis/webservice/algorithms/doms/BaseDomsHandler.py
+++ b/analysis/webservice/algorithms/doms/BaseDomsHandler.py
@@ -129,9 +129,9 @@ class DomsCSVFormatter:
         headers = [
             # Primary
             "id", "source", "lon (degrees_east)", "lat (degrees_north)", "time", "platform",
-            "sea_surface_salinity (1e-3)", "sea_surface_salinity_quality", "sea_surface_temperature (degree_C)",
-            "sea_surface_temperature_quality", "wind_speed (m s-1)", "wind_speed_quality", "wind_direction",
-            "wind_u (m s-1)", "wind_v (m s-1)", "wind_component_quality",
+            "sea_surface_salinity (1e-3)", "sea_surface_temperature (degree_C)",
+            "wind_speed (m s-1)", "wind_direction",
+            "wind_u (m s-1)", "wind_v (m s-1)",
             # Match
             "id", "source", "lon (degrees_east)", "lat (degrees_north)", "time", "platform",
             "depth (m)", "sea_water_salinity (1e-3)", "sea_water_salinity_quality",
@@ -147,11 +147,11 @@ class DomsCSVFormatter:
                 # Primary
                 primaryValue["id"], primaryValue["source"], str(primaryValue["x"]), str(primaryValue["y"]),
                 primaryValue["time"].strftime(ISO_8601), primaryValue["platform"],
-                primaryValue.get("sea_water_salinity", ""), primaryValue.get("sea_water_salinity_quality", ""),
-                primaryValue.get("sea_water_temperature", ""), primaryValue.get("sea_water_temperature_quality", ""),
-                primaryValue.get("wind_speed", ""), primaryValue.get("wind_speed_quality", ""),
+                primaryValue.get("sea_water_salinity", ""),
+                primaryValue.get("sea_water_temperature", ""),
+                primaryValue.get("wind_speed", ""),
                 primaryValue.get("wind_direction", ""), primaryValue.get("wind_u", ""), primaryValue.get("wind_v", ""),
-                primaryValue.get("wind_component_quality", "")
+
             ]
 
             for matchup in primaryValue["matches"]:
@@ -307,6 +307,8 @@ class DomsCSVFormatter:
             {"Global Attribute": "DOMS_primary", "Value": params["primary"]},
             {"Global Attribute": "DOMS_match_up", "Value": params["matchup"]},
             {"Global Attribute": "DOMS_ParameterPrimary", "Value": params.get("parameter", "")},
+            {"Global Attribute": "DOMS_QualityFlag", "Value": params.get("qualityFlag", "")},
+
 
             {"Global Attribute": "DOMS_time_to_complete", "Value": details["timeToComplete"]},
             {"Global Attribute": "DOMS_time_to_complete_units", "Value": "seconds"},
@@ -366,6 +368,7 @@ class DomsNetCDFFormatter:
         # dataset.URI_Subset = "http://webservice subsetting query request"
         dataset.URI_Matchup = "http://{webservice}/domsresults?id=" + executionId + "&output=NETCDF"
         dataset.DOMS_ParameterPrimary = params["parameter"] if "parameter" in params else ""
+        dataset.DOMS_QualityFlag = params["qualityFlag"] if "qualityFlag" in params else ""
         dataset.DOMS_platforms = params["platforms"]
         dataset.DOMS_primary = params["primary"]
         dataset.DOMS_time_to_complete = details["timeToComplete"]
@@ -613,7 +616,8 @@ class DomsNetCDFValueWriter:
 
         if self.wind_component_quality.count(None) != len(self.wind_component_quality):
             windComponentQualVar = self.group.createVariable("WindComponentQuality", "f4", ("dim",), fill_value=9)
-            self.__enrichQuality(windComponentQualVar, "Wind component quality")
+            self.__enrichQuality(windComponentQualVar, "Wind component quality", wind=True)
+
             windComponentQualVar[:] = self.wind_component_quality
 
         if self.sea_water_temperature.count(None) != len(self.sea_water_temperature):
@@ -764,10 +768,13 @@ class DomsNetCDFValueWriter:
         var.coordinates = "lon lat depth time"
 
     @staticmethod
-    def __enrichQuality(var, long_name):
+    def __enrichQuality(var, long_name, wind=False):
         var.long_name = long_name
         var.standard_name = "status_flag"
         var.valid_min = 1
         var.valid_max = 4
         var.flag_values = 1, 2, 3, 4
         var.flag_meanings = "good unknown_unavailable_notevaluated questionable_suspect bad"
+
+        if wind:
+            var.comment = "this status_flag applies to WindU and WindV"