ale*_*xtc 5 python netcdf pandas 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] 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
Run Code Online (Sandbox Code Playgroud)
这是一个地理范围内一年多的每日数据。该变量是布尔类型。
我想获取变量为 True 的特定日期的所有坐标(纬度、经度)值。
new_da = da_criteria_daily.where(da_criteria_daily==True, drop=True)
print(new_da)
Run Code Online (Sandbox Code Playgroud)
我有:
<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
Run Code Online (Sandbox Code Playgroud)
您是否有任何带有 xarray.DataArray 的函数可用于从变量中检索坐标?
你可以用 numpy 这样做:
numpy.argwhere(numpy.array(da_criteria_daily))
Run Code Online (Sandbox Code Playgroud)
numpy.argwhere()为您提供非零(True)元素的索引。然后您可以使用经度、纬度和时间坐标数组来获取真实值。
使用 xarray.where()只会将不满足条件的值替换为 nans,也就是说,您的 False 值现在将是 nans。我不知道 xarray 有什么方法可以获取某些值的坐标。它绝对有用,但我想还没有人开发它。
| 归档时间: |
|
| 查看次数: |
2807 次 |
| 最近记录: |