Пример #1
0
 def test_serialize(self):
     """Message can be serialized to file."""
     with GribFile(TESTGRIB) as grib_file:
         msg = GribMessage(grib_file)
         with open(TEST_OUTPUT, "w") as test:
             msg.write(test)
     os.unlink(TEST_OUTPUT)
Пример #2
0
 def test_missing_message_behaviour(self):
     """Key with MISSING value."""
     with GribFile(TESTGRIB) as grib_file:
         msg = GribMessage(grib_file)
         self.assertTrue(msg.missing("scaleFactorOfSecondFixedSurface"))
         msg["scaleFactorOfSecondFixedSurface"] = 5
         msg.set_missing("scaleFactorOfSecondFixedSurface")
Пример #3
0
 def test_value_setting(self):
     """Keys can be set properly."""
     with GribFile(TESTGRIB) as grib_file:
         msg = GribMessage(grib_file)
         msg["scaleFactorOfSecondFixedSurface"] = 5
         msg["values"] = [1, 2, 3]
         self.assertEqual(msg['scaleFactorOfSecondFixedSurface'], 5)
Пример #4
0
 def test_iterator_protocol(self):
     """The GribFile allows pythonic iteration over all messages."""
     step_ranges = []
     with GribFile(TESTGRIB) as grib_file:
         for msg in grib_file:
             step_ranges.append(msg["stepRange"])
     self.assertSequenceEqual(step_ranges, ["0", "6", "12", "18", "24"])
Пример #5
0
def test_iterating_through_grib_file():
    sample_path = os.path.join(codes_samples_path(), "GRIB2.tmpl")
    with GribFile(sample_path) as grib:
        count = 0
        for msg in grib:
            count += 1
    assert count == 1
Пример #6
0
 def test_metadata(self):
     """Metadata is read correctly from GribMessage."""
     with GribFile(TESTGRIB) as grib_file:
         msg = GribMessage(grib_file)
         msg_keys = list(msg.keys())
         for key in KNOWN_GRIB_KEYS:
             assert key in msg_keys, "key '%s' not found" % key
         # Size of message in bytes
         self.assertEqual(msg.size(), 160219)
         self.assertEqual(len(list(msg.keys())), len(msg))
Пример #7
0
 def test_memory_management(self):
     """Messages in GribFile can be opened and closed properly."""
     with GribFile(TESTGRIB) as grib_file:
         self.assertEqual(len(grib_file), 5)
         for i in range(len(grib_file)):
             msg = GribMessage(grib_file)
             self.assertEqual(msg["shortName"], "msl")
             self.assertEqual(msg['count'], i + 1)
         self.assertEqual(len(grib_file.open_messages), 5)
     self.assertEqual(len(grib_file.open_messages), 0)
Пример #8
0
 def test_multi_value_setting(self):
     """Multiple keys/values can be set properly."""
     msg = GribMessage(sample='GRIB1')
     msg[ 'paramId', 'stepType', 'edition' ] = 49, 'avg', 2
     self.assertEqual( msg['shortName'], '10fg' )
     # Another test
     with GribFile(TESTGRIB) as grib_file:
         msg = GribMessage(grib_file)
         msg[ 'setLocalDefinition', 'localDefinitionNumber' ] = 1,25
         msg[ 'typeOfFirstFixedSurface', 'typeOfSecondFixedSurface' ] = 1, 8
         msg[ ('typeOfFirstFixedSurface','typeOfSecondFixedSurface') ] = (1, 8) #Also works
         self.assertEqual( msg['localDefinitionNumber'], 25 )
         self.assertEqual( msg['typeOfLevel'], 'entireAtmosphere' )
Пример #9
0
 def test_clone(self):
     """Messages can be used to produce clone Messages."""
     with GribFile(TESTGRIB) as grib_file:
         msg = GribMessage(grib_file)
         msg2 = GribMessage(clone=msg)
         self.assertSequenceEqual(list(msg.keys()), list(msg2.keys()))
Пример #10
0
 def test_read_invalid_file(self):
     """Trying to open message on nonexistent GRIB file raises IOError."""
     with NamedTemporaryFile(mode='r') as f:
         with GribFile(f.name) as grib_file:
             self.assertRaises(IOError, lambda: GribMessage(grib_file))
Пример #11
0
 def test_read_past_last_message(self):
     """Trying to open message on exhausted GRIB file raises IOError."""
     with GribFile(TESTGRIB) as grib_file:
         for _ in range(len(grib_file)):
             GribMessage(grib_file)
         self.assertRaises(IOError, lambda: GribMessage(grib_file))
Пример #12
0
 def test_message_counting_works(self):
     """The GribFile is aware of its messages."""
     with GribFile(TESTGRIB) as grib_file:
         msg_count = len(grib_file)
     self.assertEqual(msg_count, 5)
Пример #13
0
def get_vdvt(INPUT):
    with GribFile(INPUT) as grib:
        msg = GribMessage(grib)
        validityDate = msg['validityDate']
        validityTime = msg['validityTime']
    return validityDate, validityTime