我有37年的NetCDF文件,具有每天的时间步长,并计算了所有年份(13513天)中每个单元的功能。对所有单元重复此函数的计算。为此,我正在使用xarray
和da.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)
答案 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')
。每次调用此函数时,都必须复制到目前为止已加载的所有数据。这是二次方。