From 4919c8c1fdcaf527642ea7540cf7d747d796c690 Mon Sep 17 00:00:00 2001
From: davidh-ssec <david.hoese@ssec.wisc.edu>
Date: Sat, 12 May 2018 14:30:14 -0500
Subject: [PATCH] Fix handling of unwritten variables

---
 aosstower/level_b1/nc.py | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/aosstower/level_b1/nc.py b/aosstower/level_b1/nc.py
index 099eea9..c85f9a7 100644
--- a/aosstower/level_b1/nc.py
+++ b/aosstower/level_b1/nc.py
@@ -16,7 +16,7 @@ from aosstower.level_00 import parser
 from metobscommon.util import calc
 from metobscommon.util.nc import (make_summary_dict, write_vars,
                                   calculate_wind_gust, summary_over_interval,
-                                  create_variables)
+                                  create_variables, write_qc_for_unwritten)
 
 LOG = logging.getLogger(__name__)
 SOFTWARE_VERSION = '00'
@@ -125,7 +125,15 @@ def create_giant_netcdf(input_files, output_fn, zlib, chunk_size,
     nc_file.createDimension('time', None)
     nc_file.createDimension('max_len_station_name', 32)
     create_variables(nc_file, first_stamp, database, chunk_sizes, zlib)
-    write_vars(nc_file, frame, database, station_info)
+    written_vars = write_vars(nc_file, frame, database, station_info)
+    unwritten_vars = set(nc_file.variables.keys()) - set(written_vars)
+    written_vars.extend(write_qc_for_unwritten(nc_file.variables,
+                                               unwritten_vars))
+    # remove any of the qc_ variables we just added
+    unwritten_vars = set(nc_file.variables.keys()) - set(written_vars)
+    for unwritten in unwritten_vars:
+        LOG.warning("Variable created but no data written: {}".format(unwritten))
+
     write_global_attributes(nc_file,
                             [os.path.basename(x) for x in input_files],
                             interval=interval_width,
-- 
GitLab