Skip to content

Commit

Permalink
Add grouping parameters for the 'viirs_sdr' reader
Browse files Browse the repository at this point in the history
  • Loading branch information
djhoese committed Jun 12, 2019
1 parent 06496b2 commit 14edc87
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 1 deletion.
4 changes: 3 additions & 1 deletion satpy/etc/readers/viirs_sdr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ reader:
description: VIIRS SDR Reader
reader: !!python/name:satpy.readers.viirs_sdr.VIIRSSDRReader
sensors: [viirs]
default_channels:
# file pattern keys to sort files by with 'satpy.utils.group_files'
# by default, don't use start_time group files (only orbit and platform)
group_keys: ['orbit', 'platform_shortname']

datasets:
i_lon:
Expand Down
62 changes: 62 additions & 0 deletions satpy/tests/test_readers.py
Original file line number Diff line number Diff line change
Expand Up @@ -595,6 +595,31 @@ def setUp(self):
]
self.g16_files = input_files
self.g17_files = [x.replace('G16', 'G17') for x in input_files]
self.noaa20_files = [
"GITCO_j01_d20180511_t2027292_e2028538_b02476_c20190530192858056873_noac_ops.h5",
"GITCO_j01_d20180511_t2028550_e2030195_b02476_c20190530192932937427_noac_ops.h5",
"GITCO_j01_d20180511_t2030208_e2031435_b02476_c20190530192932937427_noac_ops.h5",
"GITCO_j01_d20180511_t2031447_e2033092_b02476_c20190530192932937427_noac_ops.h5",
"GITCO_j01_d20180511_t2033105_e2034350_b02476_c20190530192932937427_noac_ops.h5",
"SVI03_j01_d20180511_t2027292_e2028538_b02476_c20190530190950789763_noac_ops.h5",
"SVI03_j01_d20180511_t2028550_e2030195_b02476_c20190530192911205765_noac_ops.h5",
"SVI03_j01_d20180511_t2030208_e2031435_b02476_c20190530192911205765_noac_ops.h5",
"SVI03_j01_d20180511_t2031447_e2033092_b02476_c20190530192911205765_noac_ops.h5",
"SVI03_j01_d20180511_t2033105_e2034350_b02476_c20190530192911205765_noac_ops.h5",
"SVI04_j01_d20180511_t2027292_e2028538_b02476_c20190530190951848958_noac_ops.h5",
"SVI04_j01_d20180511_t2028550_e2030195_b02476_c20190530192903985164_noac_ops.h5",
"SVI04_j01_d20180511_t2030208_e2031435_b02476_c20190530192903985164_noac_ops.h5",
"SVI04_j01_d20180511_t2031447_e2033092_b02476_c20190530192903985164_noac_ops.h5",
"SVI04_j01_d20180511_t2033105_e2034350_b02476_c20190530192903985164_noac_ops.h5"
]
self.npp_files = [
"GITCO_npp_d20180511_t1939067_e1940309_b33872_c20190612031740518143_noac_ops.h5",
"GITCO_npp_d20180511_t1940321_e1941563_b33872_c20190612031740518143_noac_ops.h5",
"GITCO_npp_d20180511_t1941575_e1943217_b33872_c20190612031740518143_noac_ops.h5",
"SVI03_npp_d20180511_t1939067_e1940309_b33872_c20190612032009230105_noac_ops.h5",
"SVI03_npp_d20180511_t1940321_e1941563_b33872_c20190612032009230105_noac_ops.h5",
"SVI03_npp_d20180511_t1941575_e1943217_b33872_c20190612032009230105_noac_ops.h5",
]

def test_no_reader(self):
"""Test that reader must be provided."""
Expand Down Expand Up @@ -663,6 +688,43 @@ def test_two_instruments_files_split(self):
self.assertEqual(12, len(groups))
self.assertEqual(2, len(groups[0]['abi_l1b']))

def test_viirs_orbits(self):
"""Test a reader that doesn't use 'start_time' for default grouping."""
from satpy.readers import group_files
groups = group_files(self.noaa20_files + self.npp_files, reader='viirs_sdr')
self.assertEqual(2, len(groups))
# the noaa-20 files will be first because the orbit number is smaller
# 5 granules * 3 file types
self.assertEqual(5 * 3, len(groups[0]['viirs_sdr']))
# 3 granules * 2 file types
self.assertEqual(6, len(groups[1]['viirs_sdr']))

def test_viirs_override_keys(self):
"""Test overriding a group keys to add 'start_time'."""
from satpy.readers import group_files
groups = group_files(self.noaa20_files + self.npp_files, reader='viirs_sdr',
group_keys=('start_time', 'orbit', 'platform_shortname'))
self.assertEqual(8, len(groups))
self.assertEqual(2, len(groups[0]['viirs_sdr'])) # NPP
self.assertEqual(2, len(groups[1]['viirs_sdr'])) # NPP
self.assertEqual(2, len(groups[2]['viirs_sdr'])) # NPP
self.assertEqual(3, len(groups[3]['viirs_sdr'])) # N20
self.assertEqual(3, len(groups[4]['viirs_sdr'])) # N20
self.assertEqual(3, len(groups[5]['viirs_sdr'])) # N20
self.assertEqual(3, len(groups[6]['viirs_sdr'])) # N20
self.assertEqual(3, len(groups[7]['viirs_sdr'])) # N20

# Ask for a larger time span with our groups
groups = group_files(self.noaa20_files + self.npp_files, reader='viirs_sdr',
time_threshold=60 * 60 * 2,
group_keys=('start_time', 'orbit', 'platform_shortname'))
self.assertEqual(2, len(groups))
# NPP is first because it has an earlier time
# 3 granules * 2 file types
self.assertEqual(6, len(groups[0]['viirs_sdr']))
# 5 granules * 3 file types
self.assertEqual(5 * 3, len(groups[1]['viirs_sdr']))


def suite():
"""The test suite for test_readers."""
Expand Down

0 comments on commit 14edc87

Please sign in to comment.