You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sdap.apache.org by nc...@apache.org on 2021/09/08 22:32:00 UTC

[incubator-sdap-ingester] branch dev updated: SDAP-340:fix:allow null when standard_name is missing (#39)

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

nchung pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-sdap-ingester.git


The following commit(s) were added to refs/heads/dev by this push:
     new ce9567b  SDAP-340:fix:allow null when standard_name is missing (#39)
ce9567b is described below

commit ce9567bcc8010c7a7834e029bf3e75585cdc74cf
Author: wphyojpl <38...@users.noreply.github.com>
AuthorDate: Wed Sep 8 15:31:55 2021 -0700

    SDAP-340:fix:allow null when standard_name is missing (#39)
    
    * feat:allow null when standard_name is missing
    
    * feat: add test case to confirm string value can be converted to object via json lib
---
 .../granule_ingester/processors/TileSummarizingProcessor.py        | 7 ++-----
 .../tests/reading_processors/test_TileSummarizingProcessor.py      | 4 ++++
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/granule_ingester/granule_ingester/processors/TileSummarizingProcessor.py b/granule_ingester/granule_ingester/processors/TileSummarizingProcessor.py
index 2caeb0e..602fcd6 100644
--- a/granule_ingester/granule_ingester/processors/TileSummarizingProcessor.py
+++ b/granule_ingester/granule_ingester/processors/TileSummarizingProcessor.py
@@ -100,11 +100,8 @@ class TileSummarizingProcessor(TileProcessor):
             pass
         logger.debug(f'calc standard_name')
         standard_names = [dataset.variables[k].attrs.get('standard_name')for k in data_var_name]
-        if any([k is None for k in standard_names]):
-            logger.debug(f'one or more of standard_names is None. skipping. {standard_names}')
-        else:
-            logger.debug(f'using standard_names as all are not None: {standard_names}')
-            tile_summary.standard_name = json.dumps(standard_names if len(standard_names) > 1 else standard_names[0])
+        logger.debug(f'using standard_names: {standard_names}')
+        tile_summary.standard_name = json.dumps(standard_names if len(standard_names) > 1 else standard_names[0])
         logger.debug(f'copy tile_summary to tile')
         tile.summary.CopyFrom(tile_summary)
         return tile
diff --git a/granule_ingester/tests/reading_processors/test_TileSummarizingProcessor.py b/granule_ingester/tests/reading_processors/test_TileSummarizingProcessor.py
index 5bf7462..3f78114 100644
--- a/granule_ingester/tests/reading_processors/test_TileSummarizingProcessor.py
+++ b/granule_ingester/tests/reading_processors/test_TileSummarizingProcessor.py
@@ -74,6 +74,8 @@ class TestTileSummarizingProcessor(unittest.TestCase):
             output_tile = reading_processor._generate_tile(ds, dimensions_to_slices, input_tile)
             tile_summary_processor = TileSummarizingProcessor('test')
             new_tile = tile_summary_processor.process(tile=output_tile, dataset=ds)
+            self.assertEqual('null', new_tile.summary.standard_name, f'wrong new_tile.summary.standard_name')
+            self.assertEqual(None, json.loads(new_tile.summary.standard_name), f'unable to convert new_tile.summary.standard_name from JSON')
             self.assertTrue(abs(new_tile.summary.stats.mean - 0.26137) < 0.001, f'mean value is not close expected: 0.26137. actual: {new_tile.summary.stats.mean}')
 
     def test_hls_multiple_var_01(self):
@@ -104,4 +106,6 @@ class TestTileSummarizingProcessor(unittest.TestCase):
             output_tile = reading_processor._generate_tile(ds, dimensions_to_slices, input_tile)
             tile_summary_processor = TileSummarizingProcessor('test')
             new_tile = tile_summary_processor.process(tile=output_tile, dataset=ds)
+            self.assertEqual('[null, null, null, null, null, null, null, null, null, null, null]', new_tile.summary.standard_name, f'wrong new_tile.summary.standard_name')
+            self.assertEqual([None for _ in range(11)], json.loads(new_tile.summary.standard_name), f'unable to convert new_tile.summary.standard_name from JSON')
             self.assertTrue(abs(new_tile.summary.stats.mean - 0.26523) < 0.001, f'mean value is not close expected: 0.26523. actual: {new_tile.summary.stats.mean}')
\ No newline at end of file