来自 xarray 数据集的卫星图像

问题描述 投票:0回答:1

我想绘制一些来自 xarray 数据集的卫星图像。我的数据有这个结构

<xarray.Dataset>
Dimensions:                      (time: 1, y_geostationary: 4176,
                                  x_geostationary: 5548, variable: 1)
Coordinates:
  * time                         (time) datetime64[ns] 2021-01-01
  * variable                     (variable) <U3 'HRV'
  * x_geostationary              (x_geostationary) float64 -2.733e+06 ... 2.8...
  * y_geostationary              (y_geostationary) float64 1.395e+06 ... 5.57...
Data variables:
    data                         (time, y_geostationary, x_geostationary, variable) float16 dask.array<chunksize=(1, 100, 100, 1), meta=np.ndarray>
    x_geostationary_coordinates  (time, x_geostationary) float64 dask.array<chunksize=(1, 5548), meta=np.ndarray>
    y_geostationary_coordinates  (time, y_geostationary) float64 dask.array<chunksize=(1, 4176), meta=np.ndarray>

我试着这样做。

import matplotlib.pyplot as plt

# Squeeze the dimensions of the satellite image
image = df['data'].squeeze()

# Plot the satellite image
plt.imshow(image, origin='lower')
plt.show()

但我不认为它工作正常,因为输出只是一个灰色的几乎正方形。

我不确定如何为此提供示例数据,但我希望有人能指出我正确的方向来绘制一般图像。

python-xarray
1个回答
0
投票

因为有4个维度,其中两个是奇异的,可以直接做下面的 例如,

ds = xr.open_dataset("file.nc")

ds['data'].plot(x='x_geostationary', y='y_geostationary')

或者你也可以做类似的事情

ds['data'].isel(time=0, variable=0).plot(x='x_geostationary', y='y_geostationary')
© www.soinside.com 2019 - 2024. All rights reserved.