class TestOrbitalGranuleFilter(unittest.TestCase):
    def setUp(self):
        config = {'config_name':"DummySatData",
                  'sat_name':"NOAA 19",
                  'instrument':"AVHRR",
                  'file_source_pattern':"/home/msg/archive/AVHRR/avhrr_%Y%m%d_%H%M00_noaa19.hrp.bz2",
                  'granule_duration':"00:01:00",
                  'time_step':"00:01:00",
                  'time_step_offset':"00:00:00",
                  'area_of_interest':"(-25,62.5),(-25,67),(-13,67),(-13,62.5)"}
        self.af = OrbitalGranuleFilter(config)
        # override orbital_layer with a particular TLE orbital element.
        self.af.orbital_layer.set_tle("1 29499U 06044A   11254.96536486  .00000092  00000-0  62081-4 0  5221",
                                      "2 29499  98.6804 312.6735 0001758 111.9178 248.2152 14.21501774254058")

    def test_validate(self):
        # Run
        result1 = self.af.validate("/home/msg/archive/AVHRR/avhrr_20140225_133400_noaa19.hrp.bz2")
        result2 = self.af.validate("/home/msg/archive/AVHRR/avhrr_20140225_133500_noaa19.hrp.bz2")
        result3 = self.af.validate("/home/msg/archive/AVHRR/avhrr_20140225_133600_noaa19.hrp.bz2")
        result4 = self.af.validate("/home/msg/archive/AVHRR/avhrr_20140225_133700_noaa19.hrp.bz2")
        result5 = self.af.validate("/home/msg/archive/AVHRR/avhrr_20140225_160000_noaa19.hrp.bz2")
        # Assert
        self.assertTrue(result1)
        self.assertTrue(result2)
        self.assertTrue(result3)
        self.assertFalse(result4)
        self.assertFalse(result5)

    def test_filter(self):
        # Run
        files = ["blabla",
                 "H-000-MSG3__-MSG3________-WV_073___-000009___-201401231300",
                 "/home/msg/archive/AVHRR/avhrr_20140225_133400_noaa19.hrp.bz2",
                 "/home/msg/archive/AVHRR/avhrr_20140225_133500_noaa19.hrp.bz2",
                 "/home/msg/archive/AVHRR/avhrr_20140225_133600_noaa19.hrp.bz2",
                 "/home/msg/archive/AVHRR/avhrr_20140225_133700_noaa19.hrp.bz2",
                 "/home/msg/archive/AVHRR/avhrr_20140225_160000_noaa19.hrp.bz2",
                 "H-000-MSG3__-MSG3________-IR_108___-000003___-201401231300"]
        result = self.af(files)
        # Assert
        self.assertItemsEqual(result,[files[2],files[3],files[4]])

    def test_complete(self):
        # Run
        result = self.af.complete("/home/msg/archive/AVHRR/avhrr_20140225_133500_noaa19.hrp.bz2")
        # Assert
        self.assertItemsEqual(result, ["/home/msg/archive/AVHRR/avhrr_20140225_133400_noaa19.hrp.bz2",
                                       "/home/msg/archive/AVHRR/avhrr_20140225_133500_noaa19.hrp.bz2",
                                       "/home/msg/archive/AVHRR/avhrr_20140225_133600_noaa19.hrp.bz2"])
        
    def test_gf_complete_vs_gbd_complete(self):
        # Run
        gf_result = self.af.complete("/home/msg/archive/AVHRR/avhrr_20140225_133500_noaa19.hrp.bz2")
        gbd_result = self.af(["/home/msg/archive/AVHRR/avhrr_20140225_133500_noaa19.hrp.bz2"]).complete()
        # Assert
        self.assertItemsEqual(gf_result, gbd_result)
示例#2
0
    def setUp(self):
        config = {
            'config_name':
            "DummySatData",
            'sat_name':
            "NOAA 19",
            'instrument':
            "AVHRR",
            'file_source_pattern':
            "/tmp/test_pygranule/sftp/avhrr_%Y%m%d_%H%M00_noaa19.{0}.hrp.bz2",
            'subsets':
            "{L1,L2}",
            'granule_duration':
            "00:01:00",
            'time_step':
            "00:01:00",
            'time_step_offset':
            "00:00:00",
            'area_of_interest':
            "(0.0,73.0),(0.0,61.0),(-30.0,61.0),(-39,63.5),(-55.666,63.5),(-57.75,65),(-76,76),(-75,78),(-60,82),(0,90),(30,82),(0,82)"
        }

        self.gf = OrbitalGranuleFilter(config)
        # override orbital_layer with a particular TLE orbital element.
        self.gf.orbital_layer.set_tle(
            "1 29499U 06044A   11254.96536486  .00000092  00000-0  62081-4 0  5221",
            "2 29499  98.6804 312.6735 0001758 111.9178 248.2152 14.21501774254058"
        )
        # generate some filenames
        self.files = []
        t = datetime(2014, 2, 25, 13, 15)
        dt = timedelta(minutes=1.0)
        for i in range(20):
            self.files += self.gf.source_file_name_parser.filenames_from_time(
                t + i * dt)
 def setUp(self):
     config = {
         'config_name': "DummySatData",
         'sat_name': "NOAA 19",
         'instrument': "AVHRR",
         'file_source_pattern':
         "/home/msg/archive/AVHRR/avhrr_%Y%m%d_%H%M00_noaa19.hrp.bz2",
         'granule_duration': "00:01:00",
         'time_step': "00:01:00",
         'time_step_offset': "00:00:00",
         'area_of_interest': "(-25,62.5),(-25,67),(-13,67),(-13,62.5)"
     }
     self.af = OrbitalGranuleFilter(config)
     # override orbital_layer with a particular TLE orbital element.
     self.af.orbital_layer.set_tle(
         "1 29499U 06044A   11254.96536486  .00000092  00000-0  62081-4 0  5221",
         "2 29499  98.6804 312.6735 0001758 111.9178 248.2152 14.21501774254058"
     )
示例#4
0
    def setUp(self):
        try:
            f = open("ssh_test_access", "r")
            host = f.readline().strip()
            user = f.readline().strip()
            passwd = f.readline().strip()
        except:
            self.skipTest("no 'ssh_test_access' file defined")

        config = {
            'config_name':
            "DummySatData",
            'sat_name':
            "NOAA 19",
            'instrument':
            "AVHRR",
            'protocol':
            "sftp",
            'server':
            user + ":" + passwd + "@" + host,
            'file_source_pattern':
            "/tmp/test_pygranule/sftp/avhrr_%Y%m%d_%H%M00_noaa19.{0}.hrp.bz2",
            'file_destination_pattern':
            "/tmp/test_pygranule/local/%Y/%j/{0}/n19_%H%M%S_%Y%j.{0}.hrp.bz2",
            'subsets':
            "{L1,L2}",
            'granule_duration':
            "00:01:00",
            'time_step':
            "00:01:00",
            'time_step_offset':
            "00:00:00",
            'area_of_interest':
            "(0.0,73.0),(0.0,61.0),(-30.0,61.0),(-39,63.5),(-55.666,63.5),(-57.75,65),(-76,76),(-75,78),(-60,82),(0,90),(30,82),(0,82)"
        }

        self.gf = OrbitalGranuleFilter(config)
        # override orbital_layer with a particular TLE orbital element.
        self.gf.orbital_layer.set_tle(
            "1 29499U 06044A   11254.96536486  .00000092  00000-0  62081-4 0  5221",
            "2 29499  98.6804 312.6735 0001758 111.9178 248.2152 14.21501774254058"
        )
        # generate some filenames
        self.files = []
        t = datetime(2014, 2, 25, 13, 30)
        dt = timedelta(minutes=1.0)
        for i in range(20):
            self.files += self.gf.source_file_name_parser.filenames_from_time(
                t + i * dt)

        # touch filenames
        for fn in self.files:
            make_dummy_file(fn)
 def setUp(self):
     config = {'config_name':"DummySatData",
               'sat_name':"NOAA 19",
               'instrument':"AVHRR",
               'file_source_pattern':"/home/msg/archive/AVHRR/avhrr_%Y%m%d_%H%M00_noaa19.hrp.bz2",
               'granule_duration':"00:01:00",
               'time_step':"00:01:00",
               'time_step_offset':"00:00:00",
               'area_of_interest':"(-25,62.5),(-25,67),(-13,67),(-13,62.5)"}
     self.af = OrbitalGranuleFilter(config)
     # override orbital_layer with a particular TLE orbital element.
     self.af.orbital_layer.set_tle("1 29499U 06044A   11254.96536486  .00000092  00000-0  62081-4 0  5221",
                                   "2 29499  98.6804 312.6735 0001758 111.9178 248.2152 14.21501774254058")
class TestOrbitalGranuleFilter(unittest.TestCase):
    def setUp(self):
        config = {
            'config_name': "DummySatData",
            'sat_name': "NOAA 19",
            'instrument': "AVHRR",
            'file_source_pattern':
            "/home/msg/archive/AVHRR/avhrr_%Y%m%d_%H%M00_noaa19.hrp.bz2",
            'granule_duration': "00:01:00",
            'time_step': "00:01:00",
            'time_step_offset': "00:00:00",
            'area_of_interest': "(-25,62.5),(-25,67),(-13,67),(-13,62.5)"
        }
        self.af = OrbitalGranuleFilter(config)
        # override orbital_layer with a particular TLE orbital element.
        self.af.orbital_layer.set_tle(
            "1 29499U 06044A   11254.96536486  .00000092  00000-0  62081-4 0  5221",
            "2 29499  98.6804 312.6735 0001758 111.9178 248.2152 14.21501774254058"
        )

    def test_validate(self):
        # Run
        result1 = self.af.validate(
            "/home/msg/archive/AVHRR/avhrr_20140225_133400_noaa19.hrp.bz2")
        result2 = self.af.validate(
            "/home/msg/archive/AVHRR/avhrr_20140225_133500_noaa19.hrp.bz2")
        result3 = self.af.validate(
            "/home/msg/archive/AVHRR/avhrr_20140225_133600_noaa19.hrp.bz2")
        result4 = self.af.validate(
            "/home/msg/archive/AVHRR/avhrr_20140225_133700_noaa19.hrp.bz2")
        result5 = self.af.validate(
            "/home/msg/archive/AVHRR/avhrr_20140225_160000_noaa19.hrp.bz2")
        # Assert
        self.assertTrue(result1)
        self.assertTrue(result2)
        self.assertTrue(result3)
        self.assertFalse(result4)
        self.assertFalse(result5)

    def test_filter(self):
        # Run
        files = [
            "blabla",
            "H-000-MSG3__-MSG3________-WV_073___-000009___-201401231300",
            "/home/msg/archive/AVHRR/avhrr_20140225_133400_noaa19.hrp.bz2",
            "/home/msg/archive/AVHRR/avhrr_20140225_133500_noaa19.hrp.bz2",
            "/home/msg/archive/AVHRR/avhrr_20140225_133600_noaa19.hrp.bz2",
            "/home/msg/archive/AVHRR/avhrr_20140225_133700_noaa19.hrp.bz2",
            "/home/msg/archive/AVHRR/avhrr_20140225_160000_noaa19.hrp.bz2",
            "H-000-MSG3__-MSG3________-IR_108___-000003___-201401231300"
        ]
        result = self.af(files)
        # Assert
        self.assertItemsEqual(result, [files[2], files[3], files[4]])

    def test_complete(self):
        # Run
        result = self.af.complete(
            "/home/msg/archive/AVHRR/avhrr_20140225_133500_noaa19.hrp.bz2")
        # Assert
        self.assertItemsEqual(result, [
            "/home/msg/archive/AVHRR/avhrr_20140225_133400_noaa19.hrp.bz2",
            "/home/msg/archive/AVHRR/avhrr_20140225_133500_noaa19.hrp.bz2",
            "/home/msg/archive/AVHRR/avhrr_20140225_133600_noaa19.hrp.bz2"
        ])

    def test_gf_complete_vs_gbd_complete(self):
        # Run
        gf_result = self.af.complete(
            "/home/msg/archive/AVHRR/avhrr_20140225_133500_noaa19.hrp.bz2")
        gbd_result = self.af([
            "/home/msg/archive/AVHRR/avhrr_20140225_133500_noaa19.hrp.bz2"
        ]).complete()
        # Assert
        self.assertItemsEqual(gf_result, gbd_result)