Я пытаюсь использовать 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, которые находятся во входном списке, но это тоже не сработало. Кто-нибудь знает, что здесь происходит? Или если я использую неправильную интерполяцию.
Нет, это не выше границы интерполяции. Я дважды проверил это и также упомянул об этом в вопросе. – Omayr
@ Омайр хорошо, тогда вы можете дать образцы для всех массивов из вашего вопроса? – ShabashP