Code: Select all
import numpy as np
import pandas as pd
import xarray as xr
import os
# Load the dataset
x = xr.open_dataset(
r"example .grib",
engine="cfgrib",
backend_kwargs={"indexpath": ""}
)
# Check coordinate names
print(x.coords)
# Extract latitude and longitude variables
lat = x["latitude"]
long = x["longitude"]
# Sort dataset by latitude and longitude
x = x.sortby(["latitude", "longitude"])
# Convert longitude from [0, 360] to [-180, 180]
x["longitude"] = x["longitude"].where(x["longitude"]
Ich habe versucht, einen Vergleich zwischen einer verschiedenen Version zu erstellen, mit AI und zu testen, ob der Pfad selbst das [url=viewtopic.php?t=26065]Problem[/url] ist, aber er scheint immer noch erfolgreich zu drucken. c:/Users/rune/Downloads/file.py
skipping variable: paramId==167 shortName='t2m'
Traceback (most recent call last):
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\cfgrib\dataset.py", line 725, in build_dataset_components
dict_merge(variables, coord_vars)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\cfgrib\dataset.py", line 641, in dict_merge
raise DatasetBuildError(
......
)
cfgrib.dataset.DatasetBuildError: key present and new value is different: key='heightAboveGround' value=Variable(dimensions=(), data=10.0) new_value=Variable(dimensions=(), data=2.0)
C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\cfgrib\xarray_plugin.py:131: FutureWarning: In a future version of xarray decode_timedelta will default to False rather than None. To silence this warning, set decode_timedelta to True, False, or a 'CFTimedeltaCoder' instance.
vars, attrs, coord_names = xr.conventions.decode_cf_variables(
Size: 12GB
Dimensions: (step: 41, isobaricInhPa: 13, latitude: 721,
longitude: 1440)
Coordinates:
time datetime64[ns] 8B ...
* step (step) timedelta64[ns] 328B 0 days 00:00:00 ... 10 day...
* isobaricInhPa (isobaricInhPa) float64 104B 1e+03 925.0 ... 100.0 50.0
* latitude (latitude) float64 6kB 90.0 89.75 89.5 ... -89.75 -90.0
* longitude (longitude) float64 12kB 0.0 0.25 0.5 ... 359.5 359.8
valid_time (step) datetime64[ns] 328B ...
meanSea float64 8B ...
heightAboveGround float64 8B ...
Data variables:
z (step, isobaricInhPa, latitude, longitude) float32 2GB ...
q (step, isobaricInhPa, latitude, longitude) float32 2GB ...
t (step, isobaricInhPa, latitude, longitude) float32 2GB ...
u (step, isobaricInhPa, latitude, longitude) float32 2GB ...
v (step, isobaricInhPa, latitude, longitude) float32 2GB ...
msl (step, latitude, longitude) float32 170MB ...
u10 (step, latitude, longitude) float32 170MB ...
v10 (step, latitude, longitude) float32 170MB ...
Attributes:
GRIB_edition: 2
GRIB_centre: ecmf
GRIB_centreDescription: European Centre for Medium-Range Weather Forecasts
GRIB_subCentre: 0
Conventions: CF-1.7
institution: European Centre for Medium-Range Weather Forecasts
history: 2025-06-03T02:42 GRIB to CDM+CF via cfgrib-0.9.1...
Coordinates:
time datetime64[ns] 8B ...
* step (step) timedelta64[ns] 328B 0 days 00:00:00 ... 10 day...
* isobaricInhPa (isobaricInhPa) float64 104B 1e+03 925.0 ... 100.0 50.0
* latitude (latitude) float64 6kB 90.0 89.75 89.5 ... -89.75 -90.0
* longitude (longitude) float64 12kB 0.0 0.25 0.5 ... 359.5 359.8
valid_time (step) datetime64[ns] 328B ...
meanSea float64 8B ...
heightAboveGround float64 8B ...
Traceback (most recent call last):
File "c:\Users\rune\Downloads\file.py", line 20, in
santa_cruz = santa_cruz_array.to_dataframe().reset_index()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\xarray\core\dataset.py", line 7146, in to_dataframe
return self._to_dataframe(ordered_dims=ordered_dims)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\xarray\core\dataset.py", line 7068, in _to_dataframe
if not is_extension_array_dtype(self.variables[k].data)
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\xarray\core\variable.py", line 416, in data
duck_array = self._data.get_duck_array()
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\xarray\core\indexing.py", line 837, in get_duck_array
self._ensure_cached()
~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\xarray\core\indexing.py", line 834, in _ensure_cached
self.array = as_indexable(self.array.get_duck_array())
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\xarray\core\indexing.py", line 791, in get_duck_array
return self.array.get_duck_array()
~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\xarray\core\indexing.py", line 654, in get_duck_array
array = self.array[self.key]
~~~~~~~~~~^^^^^^^^^^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\cfgrib\xarray_plugin.py", line 163, in __getitem__
return xr.core.indexing.explicit_indexing_adapter(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
key, self.shape, xr.core.indexing.IndexingSupport.BASIC, self._getitem
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\xarray\core\indexing.py", line 1015, in explicit_indexing_adapter
result = raw_indexing_method(raw_key.tuple)
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\cfgrib\xarray_plugin.py", line 172, in _getitem
return self.array[key]
~~~~~~~~~~^^^^^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\cfgrib\dataset.py", line 373, in __getitem__
message = self.index.get_field(message_ids[0]) # type: ignore
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\cfgrib\messages.py", line 488, in get_field
return ComputedKeysAdapter(self.fieldset[message_id], self.computed_keys)
~~~~~~~~~~~~~^^^^^^^^^^^^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\cfgrib\messages.py", line 345, in __getitem__
return self.message_from_file(file, offset=item)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\cfgrib\messages.py", line 341, in message_from_file
return Message.from_file(file, offset, **kwargs)
~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\rune\AppData\Local\Programs\Python\Python313\Lib\site-packages\cfgrib\messages.py", line 94, in from_file
file.seek(offset)
~~~~~~~~~^^^^^^^^
OSError: [Errno 22] Invalid argument