Как я могу интерполировать данные с географической привязкой в ​​Python?

У меня есть много строк гидрологических данных с географической привязкой и еженедельным разрешением:

Station name, Lat, Long, Week 1 average, Week 2 average ... Week 52 average

К сожалению, у меня также есть данные с ежемесячным разрешением:

Station name, Lat, Long, January average, February average ... December average

Вместо того, чтобы «изобретать колесо», может ли кто-нибудь порекомендовать любимый модуль, пакет или технику, которая обеспечила бы разумную интерполяцию недельных значений из ежемесячных значений? Линейный - это нормально, но было бы неплохо, если бы мы могли использовать координаты для улучшения интерполяции на основе ближайших станций.

Я пометил этот пост с помощью python, потому что это язык, который я использовал в последнее время (но не его статистические функции). Если ответ - «используйте статистическую программу вроде r», пусть будет так, но мне любопытно, что там есть для python. Спасибо!


person Martin Burch    schedule 23.07.2012    source источник


Ответы (4)


У меня не было возможности вникнуть в это, но hpgl (Библиотека высокопроизводительной геостатистики) предоставляет ряд методов кригинга (геопространственной интерполяции):

Алгоритмы

  • Простой кригинг (СК)
  • Обычный кригинг (ОК)
  • Индикатор кригинга (ИК)
  • Локальный кригинг с переменным средним значением (LVM Kriging)
  • Простой кокригинг (Марковские модели 1 и 2)
  • Последовательное индикаторное моделирование (SIS)
  • Corellogram Local Varying Mean SIS (CLVM SIS)
  • Местное изменяющееся среднее значение SIS (LVM SIS)
  • Последовательное гауссовское моделирование (SGS)
person monkut    schedule 24.07.2012
comment
Это выглядит немного странно - немного документации и примеров - но я ценю ваши усилия. Конечно, было бы приятно получить известие от кого-нибудь, кто им пользовался. - person Martin Burch; 26.07.2012
comment
Я, вероятно, нашел этот пакет из этого вопроса (не для Python): gis.stackexchange.com/questions/1041/ - person monkut; 01.08.2012

Если вы заинтересованы в расширении своего опыта в R, существует ряд хороших, хорошо используемых и задокументированных пакетов. Я бы начал с просмотра Spatial Taskview, в котором перечислены пакеты, которые можно использовать для пространственных данных. Один из параграфов посвящен интерполяции. Я больше всего знаком с automap / gstat (я написал automap), где особенно gstat - это мощный пакет геостатистики, который поддерживает широкий спектр методов.

http://cran.r-project.org/web/views/Spatial.html

Интегрировать Python и R можно разными способами, например. Использование системных вызовов или ссылки в памяти с помощью Rpy. Смотрите также:

Интерфейс Python для языка программирования R

person Paul Hiemstra    schedule 30.07.2012

Я собираюсь сделать то же самое и нашел этот модуль кригинга, написанный Сат Кумар Томер, AMBHAS.

Похоже, существуют методы получения вариограмм и выполнения обычного кригинга.

Я обновлю этот ответ, если воспользуюсь им и сделаю дальнейшие открытия.

person ryanjdillon    schedule 16.04.2013

Поскольку я изначально разместил этот вопрос (в 2012 году!), Был выпущен активно разрабатываемый модуль Python Kriging https://github.com/bsmurphy/PyKrige

Есть также более старый вариант: https://github.com/capaulson/pyKriging.

person Martin Burch    schedule 01.03.2017