使用griddata进行均匀网格和离散点之间的相互插值

您所在的位置:网站首页 气象数据栅格化 使用griddata进行均匀网格和离散点之间的相互插值

使用griddata进行均匀网格和离散点之间的相互插值

2023-11-08 02:45| 来源: 网络整理| 查看: 265

文章目录 1 griddata函数介绍2 离散点插值到均匀网格3 均匀网格插值到离散点4 获取最近邻的Index 插值操作非常常见,数学思想也很好理解。常见的一维插值很容易实现,相对来说,要实现较快的二维插值,比较难以实现。这里就建议直接使用scipy 的griddata函数。

1 griddata函数介绍

官网介绍

在这里插入图片描述

2 离散点插值到均匀网格 def interp2d_station_to_grid(lon,lat,data,loc_range = [18,54,73,135], det_grid = 1 ,method = 'cubic'): ''' func : 将站点数据插值到等经纬度格点 inputs: lon: 站点的经度 lat: 站点的纬度 data: 对应经纬度站点的 气象要素值 loc_range: [lat_min,lat_max,lon_min,lon_max]。站点数据插值到loc_range这个范围 det_grid: 插值形成的网格空间分辨率 method: 所选插值方法,默认 0.125 return: [lon_grid,lat_grid,data_grid] ''' #step1: 先将 lon,lat,data转换成 n*1 的array数组 lon = np.array(lon).reshape(-1,1) lat = np.array(lat).reshape(-1,1) data = np.array(data).reshape(-1,1) #shape = [n,2] points = np.concatenate([lon,lat],axis = 1) #step2:确定插值区域的经纬度网格 lat_min = loc_range[0] lat_max = loc_range[1] lon_min = loc_range[2] lon_max = loc_range[3] lon_grid, lat_grid = np.meshgrid(np.arange(lon_min,lon_max+det_grid,det_grid), np.arange(lat_min,lat_max+det_grid,det_grid)) #step3:进行网格插值 grid_data = griddata(points,data,(lon_grid,lat_grid),method = method) grid_data = grid_data[:,:,0] #保证纬度从上到下是递减的 if lat_grid[0,0]


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3