我有一个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
这是一年范围内的每日数据。该变量是布尔类型。
我想获取该变量为True的特定日期的所有坐标(纬度,经度)值。
new_da = da_criteria_daily.where(da_criteria_daily==True, drop=True)
print(new_da)
我知道了
<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
您是否具有xarray.DataArray的任何可用于从变量中检索坐标的函数?
答案 0 :(得分:2)
您可以通过numpy来做到这一点:
<com.your.package.Ennemy1
android:id="@+id/enemyId"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
numpy.argwhere(numpy.array(da_criteria_daily))
为您提供非零(True)元素的索引。然后,您可以使用经度,纬度和时间坐标数组来获取真实值。
使用xarray的numpy.argwhere()
只会用nans替换不满足条件的值,即,您的False值现在将是nans。我不知道任何xarray的方法来获取某些值的坐标。它将绝对有用,但是我想还没有人开发它。