scipy学习

1、Delaunay三角剖分

from scipy.spatial.qhull import Delaunay
from scipy.interpolate import LinearNDInterpolator, griddata

tri = Delaunay(np.asarray([orig_lon.ravel(), orig_lat.ravel()]).T)
interpolator = LinearNDInterpolator(tri, orig_val.ravel())

2、scipy.interpolate.LinearNDInterpolator线性插值

https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.LinearNDInterpolator.html

3、scipy.interpolate.griddata 3D插值

https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html#scipy.interpolate.griddata

4、scipy.interpolate.NearestNDInterpolator 最近点插值

5、经纬度插值经纬度

Rbf方法nan过多可能出问题

from scipy.interpolate import Rbf

		olon, olat = np.meshgrid(lon2_1d, lat2_1d) #lon2_1d, lat2_1d原始经纬度,一维数组,data的经纬度
		func = Rbf(olon.flatten(), olat.flatten(), data.flatten(), function='linear') #olon.flatten(), olat.flatten(), data.flatten() 都是一维数组,length必须相同
		olon1, olat1 = np.meshgrid(lon1_1d, lat1_1d)
		dataRegrid = func(olon1, olat1) #olon1, olat1必须是二维数组,想要的经纬度
import xarray as xr

        data2 = dataset.get_data()[::50, ::50]
        data2[data2 == -9999] = np.nan  # <class 'tuple'>: (5587, 5685)
        lon2_1d, lat2_1d = dataset.create_latlon(1)
        lon2_1d = lon2_1d[::50]
        lat2_1d = lat2_1d[::50]
        data2 = xr.Dataset({'data2': (['lat', 'lon'], data2)},
                           coords={'lat': (['lat'], lat2_1d),
                                   'lon': (['lon'], lon2_1d), })
        dataRegrid = data2.interp(lat=lat1_1d, lon=lon1_1d)
        dataRegrid.to_netcdf(path=fileout, mode="w", format="NETCDF4")
        del dataRegrid
        del data2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值