如何使用Python和xarray从变量满足netCDF数据集标准的位置提取坐标?

如何使用Python和xarray从变量满足netCDF数据集标准的位置提取坐标?,python,pandas,netcdf,python-xarray,Python,Pandas,Netcdf,Python Xarray,我有一个xarray DataArray对象da_criteria_daily,其中是从netCDF文件生成的 <xarray.DataArray (time: 365, latitude: 106, longitude: 193)> dask.array<shape=(365, 106, 193), dtype=bool, chunksize=(1, 106, 193)> Coordinates: * time (time) datetime64[ns]

我有一个xarray DataArray对象
da_criteria_daily
,其中是从netCDF文件生成的

<xarray.DataArray (time: 365, latitude: 106, longitude: 193)>
dask.array<shape=(365, 106, 193), dtype=bool, chunksize=(1, 106, 193)>
Coordinates:
  * time       (time) datetime64[ns] 2017-01-01 2017-01-02 ... 2017-12-31
  * latitude   (latitude) float32 -39.2 -39.149525 ... -33.950478 -33.9
  * longitude  (longitude) float32 140.8 140.84792 140.89584 ... 149.95209 150.0
我得到:

<xarray.DataArray (time: 161, latitude: 106, longitude: 193)>
dask.array<shape=(161, 106, 193), dtype=float64, chunksize=(1, 106, 193)>
Coordinates:
  * time       (time) datetime64[ns] 2017-01-01 2017-01-02 ... 2017-12-31
  * latitude   (latitude) float32 -39.2 -39.149525 ... -33.950478 -33.9
  * longitude  (longitude) float32 140.8 140.84792 140.89584 ... 149.95209 150.0

dask阵列
协调:
*时间(时间)日期时间64[ns]2017-01-01 2017-01-02。。。2017-12-31
*纬度32-39.2-39.149525-33.950478 -33.9
*经度(经度)浮动32140.8140.84792140.89584。。。149.95209 150.0

您是否使用xarray.DataArray的函数从变量中检索坐标?

您可以通过以下方式使用numpy:

numpy.argwhere(numpy.array(da_criteria_daily))
numpy.argwhere()
提供非零(True)元素的索引。然后可以使用经度、纬度和时间坐标数组来获取实际值


使用xarray的
.where()
只会将不符合条件的值替换为nans,也就是说,您的假值现在将是nans。我不知道xarray有什么方法可以得到某些值的坐标。它肯定是有用的,但我想还没有人开发它。

你应该展示你尝试过的东西和不起作用的东西。就目前而言,你是在要求别人为你工作。@jhamman。谢谢,我已经尽可能多地补充了。但是我不知道从这里到哪里去。
numpy.argwhere(numpy.array(da_criteria_daily))