Python使用RBF插值得到的结果向右旋转90度问题求助
RBF插值结果旋转90度问题修复方案
问题原因
- 插值结果数组维度和
imshow要求的维度顺序不匹配:你通过np.mgrid[340:350:100j, 23:32:100j]生成插值网格后,得到的fnew数组第一维对应经度(水平x轴)变化,第二维对应纬度(垂直y轴)变化。但imshow默认要求输入数组的第一维对应垂直y轴,第二维对应水平x轴,顺序刚好相反,所以输出会呈现旋转90度的效果。 imshow默认原点设置不符合经纬度展示习惯:imshow默认origin='upper',也就是图像左上角为坐标原点,而经纬度数据常规展示要求纬度数值随垂直方向向上增大,原点在左下角,也会导致图像方向异常。
修复方法
仅修改imshow调用行即可,对fnew做转置同时指定原点位置:
py.imshow(fnew.T, extent=[340, 350, 23, 32], cmap=py.cm.jet, origin='lower')
如果修改后仍存在坐标轴对应问题,可以检查原始数据中x、y列和经纬度的对应关系,也可以直接交换Rbf调用时的x、y输入参数:
newfunc=interpolate.Rbf(resulttokenY2.astype('float'), resulttokenX2.astype('float'), resulttokenF2.astype('float'), function='multiquadric')
内容的提问来源于stack exchange,提问作者slow_learner
相关产品推荐
相关产品推荐

