如何为维护点的时间和位置的数组创建计数函数(python)

2024-09-27 23:17:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个netcdf文件,用于计算休斯顿地区的湿度指数。从那里,我需要找到一种方法来计算每个lat/lon的天数,这些天数满足某个阈值(41)。然后,我需要绘制一张该区域的计数空间图,这样我就可以比较该区域每个点的酷热天数。我使用了xarray.where来隔离此阈值下的天数,但当我应用计数函数时,我丢失了时间和lat/lon变量,只得到此阈值下数据点总数的输出

humidex是两个不同netcdf文件的计算,它有纬度和经度变量 ​

>>> hotday = xr.DataArray(humidex)
>>> hotday.where(hotday >=41)


<xarray.DataArray 'tasmax' (lat: 960, lon: 1920)>
array([[nan, nan, nan, ..., nan, nan, nan],
       [nan, nan, nan, ..., nan, nan, nan],
       [nan, nan, nan, ..., nan, nan, nan],
       ...,
       [nan, nan, nan, ..., nan, nan, nan],
       [nan, nan, nan, ..., nan, nan, nan],
       [nan, nan, nan, ..., nan, nan, nan]], dtype=float32)
Coordinates:
  * lat      (lat) float64 -89.86 -89.67 -89.48 -89.3 ... 89.3 89.48 89.67 89.86
  * lon      (lon) float64 0.0 0.1875 0.375 0.5625 ... 359.2 359.4 359.6 359.8
    height   float64 2.0

>>>for ii in hotday:
  >>> counting=xr.DataArray.count(ii)
>>>counting

<xarray.DataArray 'tasmax' ()>
array(1920)
Coordinates:
    lat      float64 89.86
    height   float64 ...

我希望这是有意义的,我还是一个新的编码,这真的让我失望


Tags: 文件区域阈值netcdfnanwhere计数xarray
1条回答
网友
1楼 · 发布于 2024-09-27 23:17:52

欢迎来到SO。有很多方法可以解决你的问题

这里有一个建议的方法:

import xarray as xr
data = xr.tutorial.open_dataset('air_temperature') 

high_temps = xr.where(data > 300, 1, 0) #set all temps over 300K = 1; others to 0
summed_temps = high_temps.sum(dim='time')

然后可以直接绘制热图

相关问题 更多 >

    热门问题