Пример #1
0
    def setUp(self):

        vals = [
            {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 0, 'LAT': 0.0, 'LON': 0.0, 'SST': 5.0, 'AT': 10.0,
             'DPT': 11.0, 'SLP': 1023.0, 'UID': 'A642D2'},
            {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 0, 'LAT': 0.0, 'LON': 0.0, 'SST': 5.0, 'AT': 10.0,
             'DPT': 10.0},
            {'ID': 'BBBBBBBBB', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 0, 'LAT': 0.0, 'LON': 0.0, 'SST': 5.0, 'AT': 10.0,
             'DPT': 9.0},
            {'ID': 'BBBBBBBBB', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 0, 'LAT': 0.0, 'LON': 0.0, 'SST': 5.0},
            {'ID': 'BBBBBBBBB', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 10.0, 'LAT': 0.0, 'LON': 0.0, 'SST': 5.0},
            {'ID': 'BBBBBBBBB', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 10.0, 'LAT': 0.0, 'LON': 0.0, 'SST': 5.0},
            {'ID': 'BBBBBBBBB', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 10.0, 'LAT': 1.0, 'LON': 0.0, 'SST': 5.0}]

        self.reps = []

        for v in vals:
            rec = IMMA()
            for key in v:
                rec.data[key] = v[key]
            rep = ex.MarineReport(rec)
            self.reps.append(rep)

        self.reps[0].set_qc('POS', 'pos', 0)
        self.reps[1].set_qc('POS', 'pos', 1)
        self.reps[2].set_qc('POS', 'pos', 0)
        self.reps[3].set_qc('POS', 'pos', 1)
        self.reps[4].set_qc('POS', 'pos', 0)
        self.reps[5].set_qc('POS', 'pos', 1)
Пример #2
0
    def test_repeated_saturated_values(self):

        dumval = {
            'ID': 'AAAAAAAAA',
            'YR': 2003,
            'MO': 12,
            'DY': 1,
            'HR': 0,
            'LAT': 0.0,
            'LON': 0.0,
            'SST': 5.0
        }
        saturated = ex.Voyage()
        gaps = ex.Voyage()
        quick = ex.Voyage()
        for i in range(50):
            val = dumval.copy()
            val['HR'] = float(i)
            while val['HR'] >= 24:
                val['HR'] -= 24
                val['DY'] += 1
            val['DPT'] = 15.2
            val['AT'] = 15.2

            rec = IMMA()
            for key in val:
                rec.data[key] = val[key]
            rep = ex.MarineReportQC(rec)
            saturated.add_report(rep)

            if i % 19 == 0:
                rec.data['DPT'] = 13.0
            rep = ex.MarineReportQC(rec)
            gaps.add_report(rep)

            rec.data['HR'] = float(i) / 5.0
            rep = ex.MarineReportQC(rec)
            quick.add_report(rep)

        parameters = {'min_time_threshold': 48.0, 'shortest_run': 20}

        #make sure that 19 consecutive values passes
        gaps.find_saturated_runs(parameters)
        for rep in gaps.rep_feed():
            self.assertEqual(rep.get_qc('DPT', 'repsat'), 0)

#make sure that 20 consecutive values in 24 hours passes
        quick.find_saturated_runs(parameters)
        for rep in quick.rep_feed():
            self.assertEqual(rep.get_qc('DPT', 'repsat'), 0)


#make sure that 20 consecutive values in 48 hours fails
        saturated.find_saturated_runs(parameters)
        for rep in saturated.rep_feed():
            self.assertEqual(rep.get_qc('DPT', 'repsat'), 1)
Пример #3
0
    def setUp(self):
        vals = {'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 0, 'LAT': 0.0, 'LON': 0.0}
        rec = IMMA()
        for key in vals:
            rec.data[key] = vals[key]

        self.rep = ex.MarineReport(rec)
        self.rep.set_qc('POS', 'pos', 0)

        self.rep_fail = ex.MarineReport(rec)
        self.rep_fail.set_qc('POS', 'pos', 1)

        self.deck = ex.Deck()
        self.deck.append(self.rep)
        self.deck.append(self.rep_fail)
Пример #4
0
    def setUp(self):

        vals = [{'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 0, 'LAT': 0.0, 'LON': 0.0, 'SST': 5.0},
                {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 1, 'LAT': 0.1, 'LON': 0.0, 'SST': 5.0},
                {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 2, 'LAT': 0.2, 'LON': 0.0, 'SST': 5.0},
                {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 3, 'LAT': 0.3, 'LON': 0.0, 'SST': 5.0},
                {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 4, 'LAT': 0.4, 'LON': 0.0, 'SST': 5.0},
                {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 5, 'LAT': 0.5, 'LON': 0.0, 'SST': 5.0},
                {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 6, 'LAT': 0.6, 'LON': 0.0, 'SST': 5.0}]

        badvals = [{'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 0, 'LAT': 0.0, 'LON': 0.0, 'SST': 5.0},
                   {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 1, 'LAT': 0.1, 'LON': 0.0, 'SST': 5.0},
                   {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 2, 'LAT': 0.2, 'LON': 0.0, 'SST': 5.0},
                   {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 3, 'LAT': 0.3, 'LON': 10.0, 'SST': 5.0},
                   {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 4, 'LAT': 0.4, 'LON': 0.0, 'SST': 5.0},
                   {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 5, 'LAT': 0.5, 'LON': 0.0, 'SST': 5.0},
                   {'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 6, 'LAT': 0.6, 'LON': 0.0, 'SST': 5.0}]

        self.reps = ex.Voyage()
        self.badreps = ex.Voyage()

        for v in vals:
            rec = IMMA()
            for key in v:
                rec.data[key] = v[key]
            rep = ex.MarineReportQC(rec)
            self.reps.add_report(rep)

        for v in badvals:
            rec = IMMA()
            for key in v:
                rec.data[key] = v[key]
            rep = ex.MarineReportQC(rec)
            self.badreps.add_report(rep)
Пример #5
0
    def setUp(self):

        vals = [{'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 0, 'LAT': 0.5, 'LON': 0.5, 'SST': 5.0},
                {'ID': 'BBBBBBBBB', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 0, 'LAT': 0.5, 'LON': 0.5, 'SST': 5.0},
                {'ID': 'BBBBBBBBB', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 10.0, 'LAT': 0.5, 'LON': 0.5, 'SST': 5.0},
                {'ID': 'BBBBBBBBB', 'YR': 2003, 'MO': 12, 'DY': 1, 'HR': 10.0, 'LAT': 1.5, 'LON': 0.5, 'SST': 5.0}]

        self.reps = []

        for v in vals:
            rec = IMMA()
            for key in v:
                rec.data[key] = v[key]
            rep = ex.MarineReport(rec)
            rep.add_climate_variable('SST', 0.5)
            self.reps.append(rep)

        vals = [{'ID': 'AAAAAAAAA', 'YR': 2003, 'MO': 1, 'DY': 1, 'HR': 0, 'LAT': 0.5, 'LON': 0.5, 'SST': 5.0},
                {'ID': 'BBBBBBBBB', 'YR': 2003, 'MO': 1, 'DY': 1, 'HR': 0, 'LAT': 0.5, 'LON': 0.5, 'SST': 5.0},
                {'ID': 'BBBBBBBBB', 'YR': 2003, 'MO': 1, 'DY': 1, 'HR': 10.0, 'LAT': 0.5, 'LON': 0.5, 'SST': 5.0},
                {'ID': 'BBBBBBBBB', 'YR': 2002, 'MO': 12, 'DY': 31, 'HR': 10.0, 'LAT': 0.5, 'LON': 0.5, 'SST': 2.0},
                {'ID': 'BBBBBBBBB', 'YR': 2003, 'MO': 1, 'DY': 1, 'HR': 10.0, 'LAT': 1.5, 'LON': 0.5, 'SST': 5.0}]

        self.reps2 = []
        for v in vals:
            rec = IMMA()
            for key in v:
                rec.data[key] = v[key]
            rep = ex.MarineReport(rec)
            rep.add_climate_variable('SST', 0.5)
            self.reps2.append(rep)

        self.dummy_pentad_stdev = clim.Climatology(np.full([73, 180, 360], 1.0))
Пример #6
0
    def setUp(self):

        vals = [{
            'ID': 'AAAAAAAAA',
            'YR': 2003,
            'MO': 1,
            'DY': 1,
            'HR': 2,
            'LAT': 0.5,
            'LON': 20.5,
            'SST': 5.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 31,
            'HR': 2,
            'LAT': 1.5,
            'LON': 20.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 30,
            'HR': 2,
            'LAT': 1.5,
            'LON': 21.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 29,
            'HR': 2,
            'LAT': 1.5,
            'LON': 19.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 28,
            'HR': 2,
            'LAT': 0.5,
            'LON': 19.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 6,
            'HR': 2,
            'LAT': 0.5,
            'LON': 21.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 7,
            'HR': 2,
            'LAT': -0.5,
            'LON': 20.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 8,
            'HR': 2,
            'LAT': -0.5,
            'LON': 21.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 9,
            'HR': 2,
            'LAT': -0.5,
            'LON': 19.5,
            'SST': 2.0
        }]

        self.reps = []

        for v in vals:
            rec = IMMA()
            for key in v:
                rec.data[key] = v[key]
            rep = ex.MarineReport(rec)
            rep.add_climate_variable('SST', 0.5)
            self.reps.append(rep)

        vals2 = [{
            'ID': 'AAAAAAAAA',
            'YR': 2003,
            'MO': 1,
            'DY': 1,
            'HR': 2,
            'LAT': 0.5,
            'LON': 20.5,
            'SST': 5.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 21,
            'HR': 2,
            'LAT': 1.5,
            'LON': 20.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 20,
            'HR': 2,
            'LAT': 1.5,
            'LON': 21.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 19,
            'HR': 2,
            'LAT': 1.5,
            'LON': 19.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 18,
            'HR': 2,
            'LAT': 0.5,
            'LON': 19.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 16,
            'HR': 2,
            'LAT': 0.5,
            'LON': 21.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 17,
            'HR': 2,
            'LAT': -0.5,
            'LON': 20.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 18,
            'HR': 2,
            'LAT': -0.5,
            'LON': 21.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 19,
            'HR': 2,
            'LAT': -0.5,
            'LON': 19.5,
            'SST': 2.0
        }]

        self.reps2 = []

        for v in vals2:
            rec = IMMA()
            for key in v:
                rec.data[key] = v[key]
            rep = ex.MarineReport(rec)
            rep.add_climate_variable('SST', 0.5)
            self.reps2.append(rep)

        vals3 = [{
            'ID': 'AAAAAAAAA',
            'YR': 2003,
            'MO': 1,
            'DY': 1,
            'HR': 2,
            'LAT': 0.5,
            'LON': 20.5,
            'SST': 5.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 21,
            'HR': 2,
            'LAT': 2.5,
            'LON': 20.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 20,
            'HR': 2,
            'LAT': 2.5,
            'LON': 22.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 19,
            'HR': 2,
            'LAT': 2.5,
            'LON': 18.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 18,
            'HR': 2,
            'LAT': 0.5,
            'LON': 18.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 16,
            'HR': 2,
            'LAT': 0.5,
            'LON': 22.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 17,
            'HR': 2,
            'LAT': -1.5,
            'LON': 20.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 18,
            'HR': 2,
            'LAT': -1.5,
            'LON': 22.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 19,
            'HR': 2,
            'LAT': -1.5,
            'LON': 18.5,
            'SST': 2.0
        }]

        self.reps3 = []

        for v in vals3:
            rec = IMMA()
            for key in v:
                rec.data[key] = v[key]
            rep = ex.MarineReport(rec)
            rep.add_climate_variable('SST', 0.5)
            self.reps3.append(rep)

        self.dummy_pentad_stdev = clim.Climatology(np.full([73, 180, 360],
                                                           1.5))

        vals4 = [{
            'ID': 'AAAAAAAAA',
            'YR': 2003,
            'MO': 1,
            'DY': 1,
            'HR': 2,
            'LAT': 0.5,
            'LON': 20.5,
            'SST': 5.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 21,
            'HR': 2,
            'LAT': 3.5,
            'LON': 20.5,
            'SST': 1.9
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 20,
            'HR': 2,
            'LAT': 3.5,
            'LON': 23.5,
            'SST': 1.7
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 19,
            'HR': 2,
            'LAT': 3.5,
            'LON': 17.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2002,
            'MO': 12,
            'DY': 18,
            'HR': 2,
            'LAT': 0.5,
            'LON': 17.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 16,
            'HR': 2,
            'LAT': 0.5,
            'LON': 23.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 17,
            'HR': 2,
            'LAT': -2.5,
            'LON': 20.5,
            'SST': 2.0
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 18,
            'HR': 2,
            'LAT': -2.5,
            'LON': 23.5,
            'SST': 2.3
        }, {
            'ID': 'BBBBBBBBB',
            'YR': 2003,
            'MO': 1,
            'DY': 19,
            'HR': 2,
            'LAT': -2.5,
            'LON': 17.5,
            'SST': 2.1
        }]

        self.reps4 = []

        for v in vals4:
            rec = IMMA()
            for key in v:
                rec.data[key] = v[key]
            rep = ex.MarineReport(rec)
            rep.add_climate_variable('SST', 0.5)
            self.reps4.append(rep)

        self.dummy_pentad_stdev = clim.Climatology(np.full([73, 180, 360],
                                                           1.5))