我想使用一系列用于年度时间序列数据的 numpy 数组创建一个具有以下坐标的 Xarray DataArray(假设它是一个统一的 1500X1500 矩阵上的温度)。
('time', 'lon', 'lat') 坐标:
- 时间(时间) datetime64[ns] 2000-12-31 2001-12-31 ... 2020-12-31
- lon (lon) float64 -19.98 -19.93 -19.88 -19.82 ... 54.88 54.93 54.98
- 纬度 (lat) float64 39.97 39.92 39.87 39.82 ... -34.88 -34.93 -34.98
我使用的原始(“原始”)时间序列数据存储为单独的文件,文件名表示时间序列中的每一年(即,数据文件本身没有提供时间信息,只是名称 temp2000. xxx、temp2001.xxx 等)。我将这些单独的数据文件中的每一个导入到单独的 numpy 数组中,这些数组具有空间维度(对应于上面的纬度/经度),但除了我分配的变量名之外没有时间维度。
我试图弄清楚如何将所有这些 numpy 数组组合成一个多维 xarray DataArray,其中包含 numpy 数组的纬度/经度和时间变量定义的时间(取自文件名)。
这可能很简单,但我无法理解它。
temp2000 = np.random.rand(1500, 1500)
xll = -20.0
xur = 55.0
yll = -35.0
yur = 40.0
cellsize = 0.1
lon_tup = np.arange(xll, xur, cellsize) + (cellsize / 2)
lat_tup = np.arange(yll, yur, cellsize)
lat_tup = lat_tup[::-1] + (cellsize / 2)
time2 = pd.date_range("2000-01-01", freq="Y", periods=21)
ds = xr.DataArray(
coords=[time2, lat_tup, lon_tup], dims=["time", "lat", "lon"])
ds["Temperature_2000"] = (["time", "lat", "lon"], temp2000)
DataArray 创建得很好,但显然无法添加 numpy 数组,因为它缺少“时间”维度。我可以通过单独的步骤强制时间维度吗?示例仅用于一个时间步(2000 年),其中包含用于说明目的的虚拟数据。