xarray数据集选择方法非常慢

时间:2019-06-06 08:06:40

标签: python-3.x dask python-xarray

我有37年的NetCDF文件,具有每天的时间步长,并计算了所有年份(13513天)中每个单元的功能。对所有单元重复此函数的计算。为此,我正在使用xarrayda.sel方法,但是它非常慢,并且没有利用笔记本电脑的多个内核。我正在努力弄清楚如何在当前情况下使用dask。有任何改进/加快代码的建议吗?

for c in range(len(df)):
    arr = np.array([])
    lon=df.X[c]
    lat=df.Y[c]
    for yr in range(1979,2016,1):
        ds = xr.open_dataset('D:/pr_'+str(yr)+'.nc')
        da = ds.var.sel(lon=lon, lat=lat, method='nearest')
        arr = np.concatenate([arr, da])

    fun = function(arr)

1 个答案:

答案 0 :(得分:1)

您似乎正在寻找xarray.open_mfdataset

if($image_row = mysqli_fetch_assoc($ress)) {
  $stat = $image_row['STATUS'];

  $user_name = $image_row['user_name'];
  $user_id = $image_row['user_id'];

  $_SESSION['user_name'] = $user_name;
  $_SESSION['user_id'] = $user_id;

  if($image_row['STATUS'] === 1) {
    echo "<img src='files/status/1/default.png' width='500px' height='300px'>";
  }
}
else
{
  echo "<img src='files/status/0/'".$_SESSION['file_new_name'].">";
}

您的代码特别慢,因为您反复调用ds = xr.open_dataset('D:/pr_*.nc') 。每次调用此函数时,都必须复制到目前为止已加载的所有数据。这是二次方。