2016-09-27 6 views
0

Я пытаюсь использовать scipy.interpolate.interp1d для определения значений долготы и широты координатам x-координаты и y-координаты изображения карты. У меня есть примеры значений:Python scipy.interpolate.interp1d не работает с большими значениями float

y = [0, 256, 512, 768, 1024, 1280, 1536] 
lat = [615436414755, 615226949459, 615017342897, 614807595000, 614597705702, 614387674936, 614177502635] 
x = [0, 256, 512, 768, 1024, 1280, 1536, 1792, 2048, 2304] 
lon = [235986328125, 236425781250, 236865234375, 237304687500, 237744140625, 238183593750, 238623046875, 239062500000, 239501953125, 239941406250] 

, когда я прохожу к функции, как это:

xInterpolation = interp1d(xDegree, xPixel) 
    yInterpolation = interp1d(yDegree, yPixel) 

    return (int(xInterpolation(lon)),int(yInterpolation(lat))) 

я получаю ошибку значение:

ValueError("A value in x_new is above the interpolation " ValueError: A value in x_new is above the interpolation range.

Независимо от того, какое значение я стараюсь, она бросает значение ошибка, я даже попытался дать те же значения lat или lon, которые находятся во входном списке, но это тоже не сработало. Кто-нибудь знает, что здесь происходит? Или если я использую неправильную интерполяцию.

ответ

1

От interp1ddocs:

bounds_error : bool, optional If True, a ValueError is raised any time interpolation is attempted on a value outside of the range of x (where extrapolation is necessary). If False, out of bounds values are assigned fill_value. By default, an error is raised.

Так, некоторые из ваших интерполированных данных выше интерполяция границы. Вы пытаетесь экстраполировать, а не интерполировать.

При использовании интерполяции, как

xInterpolation = interp1d(xDegree, xPixel) xInterpolation(lon)

все значения от lon должны принадлежать интервалу [xDegree.min, xDegree.max].

Итак, вы должны исправить свои данные для интерполяции или использовать extrapolation.

+0

Нет, это не выше границы интерполяции. Я дважды проверил это и также упомянул об этом в вопросе. – Omayr

+0

@ Омайр хорошо, тогда вы можете дать образцы для всех массивов из вашего вопроса? – ShabashP