Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何替换xarray变量中的值?_Python_Pandas_Numpy_Python Xarray_Xarray - Fatal编程技术网

Python 如何替换xarray变量中的值?

Python 如何替换xarray变量中的值?,python,pandas,numpy,python-xarray,xarray,Python,Pandas,Numpy,Python Xarray,Xarray,我有一个xarray数据集ds <xarray.Dataset> Dimensions: (elevation_band: 4, latitude: 1, longitude: 1) Coordinates: * longitude (longitude) float64 -111.4 * latitude (latitude) float64 44.51 * elevation_band (elevation_band) in

我有一个xarray数据集
ds

<xarray.Dataset>
Dimensions:         (elevation_band: 4, latitude: 1, longitude: 1)
Coordinates:
  * longitude       (longitude) float64 -111.4
  * latitude        (latitude) float64 44.51
  * elevation_band  (elevation_band) int32 1 2 3 4
Data variables:
    area_frac       (elevation_band, latitude, longitude) float64 0.005109 ...
    mean_elev       (elevation_band, latitude, longitude) float64 2.45e+03 ...
    prec_frac       (elevation_band, latitude, longitude) float64 0.005109 ...
错误2
MissingDimensionsError:无法使用没有显式维度名称的三维数据设置变量“mean_elev”。而是传递一个元组(DIM、数据)。

试验2 到目前为止,我已尝试创建一个单独的数据阵列用于合并:

lat = ds['latitude'].values
long = ds['longitude'].values
elevation_band = ds['elevation_band'].values

mean_elev = np.array([0.1, 0.5, 0.3, 0.6]).reshape((4, 1, 1))

xr.DataArray(mean_elev, coords={'latitude': lat, 'longitude': long, 
                                'elevation_band': elevation_band},
             dims=['latitude', 'longitude', 'elevation_band'])
错误2
ValueError:维度“纬度”的大小冲突:数据上的长度为4,坐标“纬度”上的长度为1


开放给其他解决方案,或者让其中一个可行。

我搞乱了DIM的顺序。这项工作:

lat = ds['latitude'].values
long = ds['longitude'].values
elevation_band = ds['elevation_band'].values

mean_elev = np.array([0.1, 0.5, 0.3, 0.6]).reshape((4, 1, 1))

me = xr.DataArray(mean_elev, coords={'latitude': lat, 'longitude': long, 
                                'elevation_band': elevation_band},
             dims=['elevation_band', 'latitude', 'longitude'])
ds['mean_elev'] = me
确认书

ds['mean_elev']

<xarray.DataArray 'mean_elev' (elevation_band: 4, latitude: 1, longitude: 1)>
array([[[ 0.1]],

       [[ 0.5]],

       [[ 0.3]],

       [[ 0.6]]])
Coordinates:
  * longitude       (longitude) float64 -111.4
  * latitude        (latitude) float64 44.51
  * elevation_band  (elevation_band) int32 1 2 3 4
ds['mean_elev']
数组([[0.1]],
[[ 0.5]],
[[ 0.3]],
[[ 0.6]]])
协调:
*经度(经度)64-111.4
*纬度(纬度)64 44.51
*标高带(标高带)int32 1 2 3 4
ds['mean_elev']

<xarray.DataArray 'mean_elev' (elevation_band: 4, latitude: 1, longitude: 1)>
array([[[ 0.1]],

       [[ 0.5]],

       [[ 0.3]],

       [[ 0.6]]])
Coordinates:
  * longitude       (longitude) float64 -111.4
  * latitude        (latitude) float64 44.51
  * elevation_band  (elevation_band) int32 1 2 3 4