如何在python中为数据集分配lat/lon坐标?

如何在python中为数据集分配lat/lon坐标?,python,pandas,numpy,python-xarray,Python,Pandas,Numpy,Python Xarray,我有三个xarray数据集,纬度、经度、风速都具有相同的x、y维度。我想将纬度和经度数据集指定为x,y框架中每个点的风速坐标,以便可变风速具有如下维度:风速(纬度,经度) 我应该如何进行? 输入数据是Netcdf格式的网格化天气模型的输出。我已经根据输入做了一些计算,我想将坐标分配给计算的输出(风速)。稍后我想用最近邻法进行空间插值,这样我就可以在数据集中的任意纬度上得到一个值。 导入后的Latitude XArray示例: array([[21.821693, 21.821693, 21.82

我有三个xarray数据集,纬度、经度、风速都具有相同的x、y维度。我想将纬度和经度数据集指定为x,y框架中每个点的风速坐标,以便可变风速具有如下维度:风速(纬度,经度)

我应该如何进行? 输入数据是Netcdf格式的网格化天气模型的输出。我已经根据输入做了一些计算,我想将坐标分配给计算的输出(风速)。稍后我想用最近邻法进行空间插值,这样我就可以在数据集中的任意纬度上得到一个值。 导入后的Latitude XArray示例:

array([[21.821693, 21.821693, 21.821693, ..., 21.821693, 21.821693,
        21.821693],
        ......................................................
       [30.20221 , 30.20221 , 30.20221 , ..., 30.20221 , 30.20221 ,
        30.20221 ]], dtype=float32)
沙雷风速:

array([[8.725852, 8.758366, 8.728758, ...,      nan,      nan,      nan],
       [8.502903, 8.563703, 8.574378, ...,      nan,      nan,      nan],
       ........]] dtype=float32)

一种解决方案是构建一个DICT列表:

speed_lat_long_list_dict = 
[ {id:1, speed:'1', lat:'20.8', long: '-18.5}, 
  {id:2, speed:'3', lat:'24.8', long: '-14.5},
  ....
  {id:n, speed:'n', lat:'n', long: 'n} ]
这将避免将坐标设置为重复速度值的混淆。e、 g如果我们对相同的速度测量有不同的坐标,我们该怎么办


如果需要,可以将其传递到数据帧,也可以使用for循环或列表理解对其进行处理

您可以合并数据集,然后将所需变量指定为坐标:

data = np.random.rand(50,50)

windspeed = xr.Dataset({'windspeed':(['x','y'], data)})
lattitude = xr.Dataset({'lattitude':(['x','y'], np.cos(data))})
longitude = xr.Dataset({'longitude':(['x','y'], np.sin(data))})

ds = xr.merge([windspeed, lattitude, longitude])

ds.set_coords(['lattitude','longitude'])

尺寸:(x:50,y:50)
协调:
格度(x,y)浮动64 0.7035 0.9987 0.917 0.9958。。。0.593 0.93 0.7624
经度(x,y)浮动64 0.7107 0.05069 0.3988。。。0.8052 0.3675 0.6471
不带坐标的尺寸:x,y
数据变量:
风速(x,y)浮动64 0.7905 0.05071 0.4102。。。0.936 0.3763 0.7037

为了能够帮助您,您必须发布一个问题。您必须具有可复制/粘贴的示例输入数据,以及您希望输出表看起来像什么的示例请提供更多信息,以及您以后希望如何处理该数据。你想画它吗?附加分析?到目前为止,在我看来,您只需要数组或数据帧中的数据。如果你有一个等间距的网格,你可以制作一个等级为3的numpy数组。否则,您可以创建一个数据框:
df=pd.dataframe([纬度、经度、风速])
更新问题。将风列指定为坐标数据框的索引如何?
<xarray.Dataset>
Dimensions:    (x: 50, y: 50)
Coordinates:
    lattitude  (x, y) float64 0.7035 0.9987 0.917 0.9958 ... 0.593 0.93 0.7624
    longitude  (x, y) float64 0.7107 0.05069 0.3988 ... 0.8052 0.3675 0.6471
Dimensions without coordinates: x, y
Data variables:
    windspeed  (x, y) float64 0.7905 0.05071 0.4102 ... 0.936 0.3763 0.7037