我想把不规则网格的值分布映射到规则网格上。
我试着用不同的插值器,但看起来我做不到。在
这是我写的代码:import numpy as np
from scipy import interpolate
import matplotlib.pyplot as plt
N = 100
M = 10
lat = ((np.random.rand(M,N))*2)+0.2
lon = ((np.random.rand(M,N))*3)+0.2
theta = ((np.random.rand(M,N))*180)
lat_min = np.min(lat)
lat_max = np.max(lat)
lon_min = np.min(lon)
lon_max = np.max(lon)
dlat = 0.1 # regular step for the lat[rad]
dlon = 0.1 # regular step for the lon[rad]
# Grid dimensions
Nlat = np.int(np.abs(lat_max-lat_min)/dlat)+1
Nlon = np.int(np.abs(lon_max-lon_min)/dlon)+1
# Lat-Lon vector
reg_lat = np.linspace(lat_min, lat_max, Nlat) # regularly spaced latitude vector
reg_lon = np.linspace(lon_min, lon_max, Nlon) # regularly spaced longitude vector
# Lat-Lon regular Grid
reg_lon_mesh, reg_lat_mesh = np.meshgrid(reg_lon, reg_lat)
我用过:
^{pr2}$
但插值似乎是错误的
以及f = interpolate.interp2d(lon.ravel(), lat.ravel(), theta,kind='cubic')
它也提出了一个警告:理论上不可能找到一个光滑的样条曲线
fp=s。可能的原因:s太小或eps选择不当。
(绝对值(fp-s)/s>;0.001)
kx,ky=3,3 nx,ny=36,34米=1000英尺=14832451.907306 s=0.000000