HPGL - High Performance Geostatistics Library

[ENG] [RUS]

Оглавление

  1. Описание
  2. Особенности
  3. Реализованные алгоритмы
  4. Сравнение с GSLIB
  5. Используемые компоненты
  6. Лицензирование
  7. Как получить
  8. Документация пользователя
  9. Solved Problems in Geostatistics
  10. Авторы
  11. Благодарности

1. Описание

HPGL расшифровывается как High Performance Geostatistics Library, или Высокопроизводительная Библиотека Геостатистических Алгоритмов.

HPGL написан на С++/Python и в нем реализованы различные геостатистические алгоритмы (полный список ниже). Использование алгоритмов осуществляется при помощи команд на языке Python.

2. Особенности

Отличительными чертами HPGL являются:

  1. высокая производительность (даже по сравнению с коммерческими альтернативами);

  2. малое потребление памяти;

  3. параллельная реализация алгоритмов Кригинга (в рамках общей памяти, на основе OpenMP);

  4. кроссплатформенность (Windows, Linux);

  5. возможность создания автоматических сценариев моделирования на языке Python.

  6. совместимость с NumPy/SciPy (данные алгоритмов являются NumPy-массивами)

  7. встроенная поддержка текстовых файлов форматов GSLIB и Eclipse Property

  8. LAPACK-решатели для систем линейных уравнений в Кригинге и Симуляции

Распространение свойств осуществляется на трехмерной декартовой (IJK) сетке.

3. Реализованные алгоритмы

В текущей версии HPGL 0.9.9 реализованы следующие алгоритмы:

  1. Simple Kriging (SK)

  2. Ordinary Kriging (OK)

  3. Indicator Kriging (IK)

  4. Local Varying Mean Kriging (LVM Kriging)

  5. Simple CoKriging (Markov Models 1 & 2)

  6. Sequential Indicator Simulation (SIS)

  7. Corellogram Local Varying Mean SIS (CLVM SIS)

  8. Local Varying Mean SIS (LVM SIS)

  9. Sequential Gaussian Simulation (SGS)

  10. Truncated Gaussian Simulation (GTSIM) [в наборе скриптов на Python]

4. Сравнение производительности с GSLIB

Параметры тестирования:

- 1 CPU case (Intel Core Duo 1.8 Ghz)
- Grid Size: 166x141x225 (5+ millions cells)
- Indicator Property: 20% defined points, 80% undefined, 2 indicators
- Continious Property: 20% defined points, 80% undefined, Values: [0:1]
- Variogram = (10, 10, 10)
- Search Radius = (20, 20, 20)
- Max Neighbourhoods = 12

Result:

АлгоритмGSLIBHPGL 0.9.5
Simple Kriging4m 10s1m 7s
Ordinary Kriging4m 30s1m 80s
Indicator Kriging1h 30m+1m 60s
Sequential Indicator Simulation4m 40s1m 30s
Sequential Gaussian Simulation3m 10s1m 70s

5. Используемые компоненты

В библиотеке используются следующие свободно распространяемые компоненты:

  1. TNT (Template Numerical Toolkit) – библиотека для решения систем линейных уравнений;

  2. набор библиотек boost (в частности, boost::python).

6. Лицензирование

HPGL распространяется на условиях лицензии BSD

7. Как получить

Для работы с HPGL вам понадобится Python 2.5 с установленными пакетами NumPy/SciPy

Под операционной системой Windows также понадобится установить Visual C++ 2005 Redistritable package, который можно скачать здесь.

Скачать последнюю стабильную версию библиотеки для различных платформ (а также исходный код) можно на сайте проекта в разделе Downloads.

8. Документация пользователя

Документация пользователя на русском и английском языках (а также набор примеров использования на языке Python) доступна в виде PDF-файлов на сайте проекта в разделе Downloads.

9. Solved Problems in Geostatistics

На сайте проекта, в разделе "solved problems" также доступны скрипты на Python, реализующие задания из книги Oy Leuangthong, K.Daniel Khan, Clayton V. Deutsch "Solved Problems in Geostatistics".

Вы можете посмотреть примеры готовых заданий, графиков, гистограм, и проч. на странице примеров Solved Problems (english only).

10. Авторы

Руководство и математическая поддержка:

    Савичев Владимир

    Безруков Андрей

Программирование (С++, Python), сопровождение, тестирование:

    Мухарлямов Артур

    Барский Константин

    Насибуллина Дина

11. Благодарности

Выражаем благодарность Андре Журнелю за поддержку и заразительный энтузиазм, который отчасти и сподвигнул нас на эту работу.

Также благодарим Шафикова Искандера за помощь в переводе документации на английский язык (и за обложку руководства пользователя).