scipy.interpolate.griddata - странный результат - PullRequest
0 голосов
/ 03 марта 2020

У меня есть массив 512X512 со значениями NaN.

Я использую scipy.interpolate.griddata для интерполяции этих значений NaN.

Но я получил странный результат, когда метод griddata = ' Cubi c». (но с методом 'linear' и 'near' эти результаты кажутся великолепными.)

Я что-то не так делаю с моим кодом?

enter image description here

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import interpolate


data = pd.read_csv('data_with_nan.csv', header=None)
array = np.array(data)


x = np.arange(0, array.shape[1])
y = np.arange(0, array.shape[0])
#mask invalid values
array = np.ma.masked_invalid(array)
xx, yy = np.meshgrid(x, y)
#get only the valid values
x1 = xx[~array.mask]
y1 = yy[~array.mask]
newarr = array[~array.mask]

GD1 = interpolate.griddata((x1, y1), newarr.ravel(), (xx, yy), method='cubic') #cubic, linear, nearest

plt.imshow(GD1)
plt.show()
...