Esempio n. 1
0
 def keys(self, namespace=None):
     # self.unpack()
     # return super(self.__class__, self).keys(namespace)
     iterator = eccodes.codes_bufr_keys_iterator_new(self.codes_id)
     keys = []
     while eccodes.codes_bufr_keys_iterator_next(iterator):
         key = eccodes.codes_bufr_keys_iterator_get_name(iterator)
         keys.append(key)
     eccodes.codes_bufr_keys_iterator_delete(iterator)
     return keys
Esempio n. 2
0
def test_bufr_keys_iterator():
    bid = eccodes.codes_bufr_new_from_samples("BUFR3_local_satellite")
    # Header keys only
    iterid = eccodes.codes_bufr_keys_iterator_new(bid)
    count = 0
    while eccodes.codes_bufr_keys_iterator_next(iterid):
        keyname = eccodes.codes_bufr_keys_iterator_get_name(iterid)
        assert "#" not in keyname
        count += 1
    # assert count == 54

    eccodes.codes_set(bid, "unpack", 1)
    eccodes.codes_bufr_keys_iterator_rewind(iterid)
    count = 0
    while eccodes.codes_bufr_keys_iterator_next(iterid):
        keyname = eccodes.codes_bufr_keys_iterator_get_name(iterid)
        count += 1
    # assert count == 157
    eccodes.codes_bufr_keys_iterator_rewind(iterid)
    eccodes.codes_bufr_keys_iterator_delete(iterid)
    eccodes.codes_release(bid)
Esempio n. 3
0
 def message_bufr_keys(self):
     # type: () -> T.Generator[str, None, None]
     iterator = eccodes.codes_bufr_keys_iterator_new(self.codes_id)
     while eccodes.codes_bufr_keys_iterator_next(iterator):
         yield eccodes.codes_bufr_keys_iterator_get_name(iterator)
     eccodes.codes_bufr_keys_iterator_delete(iterator)