Пример #1
0
def test_grib_uuid_get_set():
    # ECC-1167
    gid = eccodes.codes_grib_new_from_samples("GRIB2")
    eccodes.codes_set(gid, "gridType", "unstructured_grid")
    uuid = eccodes.codes_get_string(gid, "uuidOfHGrid")
    assert uuid == "00000000000000000000000000000000"
    eccodes.codes_set_string(gid, "uuidOfHGrid",
                             "DEfdBEef10203040b00b1e50001100FF")
    uuid = eccodes.codes_get_string(gid, "uuidOfHGrid")
    assert uuid == "defdbeef10203040b00b1e50001100ff"
    eccodes.codes_release(gid)
Пример #2
0
def test_grib_keys_iterator_skip():
    gid = eccodes.codes_grib_new_from_samples("reduced_gg_pl_1280_grib1")
    iterid = eccodes.codes_keys_iterator_new(gid, "ls")
    count = 0
    eccodes.codes_skip_computed(iterid)
    # codes_skip_coded(iterid)
    eccodes.codes_skip_edition_specific(iterid)
    eccodes.codes_skip_duplicates(iterid)
    eccodes.codes_skip_read_only(iterid)
    eccodes.codes_skip_function(iterid)
    while eccodes.codes_keys_iterator_next(iterid):
        keyname = eccodes.codes_keys_iterator_get_name(iterid)
        keyval = eccodes.codes_get_string(gid, keyname)
        assert len(keyval) > 0
        count += 1
    # centre, level and dataType
    assert count == 3
    eccodes.codes_keys_iterator_delete(iterid)

    iterid = eccodes.codes_keys_iterator_new(gid)
    count = 0
    eccodes.codes_skip_coded(iterid)
    while eccodes.codes_keys_iterator_next(iterid):
        count += 1
    assert count == 141
    eccodes.codes_keys_iterator_delete(iterid)
    eccodes.codes_release(gid)
Пример #3
0
def _index_grib_file(path, path_name=None):
    import eccodes

    with open(path, "rb") as f:

        h = eccodes.codes_grib_new_from_file(f)

        while h:
            try:
                field = dict()

                if isinstance(path_name, str):
                    field["_path"] = path_name
                elif path_name is False:
                    pass
                elif path_name is None:
                    field["_path"] = path
                else:
                    raise ValueError(
                        f"Value of path_name cannot be '{path_name}.'")

                i = eccodes.codes_keys_iterator_new(h, "mars")
                try:
                    while eccodes.codes_keys_iterator_next(i):
                        name = eccodes.codes_keys_iterator_get_name(i)
                        value = eccodes.codes_get_string(h, name)
                        field[name] = value

                finally:
                    eccodes.codes_keys_iterator_delete(i)

                field["_offset"] = eccodes.codes_get_long(h, "offset")
                field["_length"] = eccodes.codes_get_long(h, "totalLength")

                field["_param_id"] = eccodes.codes_get_string(h, "paramId")
                field["param"] = eccodes.codes_get_string(h, "shortName")

                yield field

            finally:
                eccodes.codes_release(h)

            h = eccodes.codes_grib_new_from_file(f)
Пример #4
0
def test_grib_keys_iterator():
    gid = eccodes.codes_grib_new_from_samples("reduced_gg_pl_1280_grib1")
    iterid = eccodes.eccodes.codes_keys_iterator_new(gid, "ls")
    count = 0
    while eccodes.codes_keys_iterator_next(iterid):
        keyname = eccodes.codes_keys_iterator_get_name(iterid)
        keyval = eccodes.codes_get_string(gid, keyname)
        assert len(keyval) > 0
        count += 1
    assert count == 10
    eccodes.codes_keys_iterator_rewind(iterid)
    eccodes.eccodes.codes_keys_iterator_delete(iterid)
    eccodes.codes_release(gid)
Пример #5
0
 def get_string(self, k: str) -> str:
     return eccodes.codes_get_string(self.gid, k)
Пример #6
0
 def get_string(self, name):
     try:
         return eccodes.codes_get_string(self.handle, name)
     except eccodes.KeyValueNotFoundError:
         return None
Пример #7
0
 def get_string(self, key):
     return eccodes.codes_get_string(self.handle, key)