由于xarray只能对矩阵操作,非矩阵操作如选取某一些格点,并提取其坐标的工作,必须要由Pandas完成。
这段代码用于提取xr_data中格点上值小于0的位置坐标
def location_of_nan_in_xarray(xr_data,data_name):
# xr_data输入变量(xarray DataSet)
# data_name输入变量名例如:‘precip’ 这里双引号必须加
# 选出大于等于零的区域,将小于等于0的全部划为Nan,然后转为dataframe,去掉值为Nan的点,调用其坐标index,并将index转为列表
location_of_nan=xr_data[data_name].where(xr_data[data_name]>=0).to_dataframe().dropna().index.to_list()
return location_of_nan
以此类推,提取xr_data中格点上值大于0的位置坐标
def location_of_nan_in_xarray(xr_data,data_name):
# xr_data输入变量(xarray DataSet)
# data_name输入变量名例如:‘precip’ 这里双引号必须加
# 选出大于等于零的区域,将小于等于0的全部划为Nan,然后转为dataframe,去掉值为Nan的点,调用其坐标index,并将index转为列表
location_of_nan=xr_data[data_name].where(xr_data[data_name]<0).to_dataframe().dropna().index.to_list()
return location_of_nan