如今的大数据时代,很多气象数据都是nc格式的,尤其外网的大尺度数据,怎么进行nc文件的处理呢?当然arcgis也可以,不过我推荐python中的xarray包。xarray包相当灵活便捷,我写了一段nc文件读取、裁剪和输出的函数,供大家参考。
import xarray as xr
import matplotlib
def read_clip_output_ncdata(input_data_path,output_data_path,min_x,min_y,max_x,max_y,variable_name,min_time=0,max_time=0):
'''
input_data_path:str,输入文件的路径
output_data_path:str,输出文件的路径
min_x,min_y,max_x,max_y:float,需要裁减区域的经纬度坐标
variable_name:str,数据的变量名
min_time、max_time:str,需要提取的时间,格式为"1970-01-01"
'''
# read data
data = xr.open_dataset(input_data_path)
if max_time == 0:
# clip data
data_clip = data[variable_name].loc[:,min_x:max_x,min_y:max_y]
else:
data_clip = data[variable_name].loc[min_time:max_time,min_x:max_x,min_y:max_y]
# ouput data
data_clip.to_netcdf(output_data_path)
return data_clip
read_clip_output_ncdata(r'F:\气象\解压数据\lrad.nc',r'F:\气象\解压数据\lrad_new1.nc',41.17,116.34,45.341,124.04,"lrad")