Вопрос: Как лучше всего рассчитать в Python интерполяцию с обратным взвешиванием по расстоянию (IDW) для местоположений точек?
Немного предыстории. В настоящее время я использую RPy2 для взаимодействия с R и его модулем gstat. К сожалению, модуль gstat конфликтует с arcgisscripting, который я получил, запустив анализ на основе RPy2 в отдельном процессе. Даже если эта проблема будет решена в недавнем / будущем выпуске и эффективность может быть улучшена, я все равно хотел бы удалить свою зависимость от установки R.
Веб-сайт gstat предоставляет автономный исполняемый файл, который легче упаковать с моим скриптом python, но я все еще надеюсь на решение Python, которое не требует многократной записи на диск и запуска внешних процессов. Количество вызовов функции интерполяции отдельных наборов точек и значений может приближаться к 20 000 при обработке, которую я выполняю.
Мне особенно нужно интерполировать точки, поэтому использование функции IDW в ArcGIS для генерации растровых звуков даже хуже, чем использование R, с точки зрения производительности ... если нет способа эффективно замаскировать только те точки, которые мне нужны. Даже с этой модификацией я бы не ожидал, что производительность будет такой большой. Я рассмотрю этот вариант как еще одну альтернативу. ОБНОВЛЕНИЕ: проблема в том, что вы привязаны к размеру используемой ячейки. Если вы уменьшите размер ячейки для повышения точности, обработка займет много времени. Вам также необходимо продолжить извлечение по точкам ... Уродливый метод, если вам нужны значения для определенных точек.
Я просмотрел документацию scipy, но похоже, что там нет прямой способ рассчитать IDW.
Я думаю о том, чтобы свернуть свою собственную реализацию, возможно, используя некоторые из функций scipy для определения ближайших точек и расчета расстояний.
Я упускаю что-то очевидное? Есть ли модуль Python, который я не видел, который делает именно то, что я хочу? Является ли создание моей собственной реализации с помощью scipy мудрым выбором?