
Мы создаем софт для горно-геологических служб калийных рудников, и после первой статьи про [кригинг на чистом NumPy](https://habr.com/ru/articles/1055612/) самый частый вопрос звучал одинаково: «Хорошо, а какой именно кригинг брать?» Вопрос правильный: под словом «кригинг» живёт целое семейство методов, и выбор между ними влияет на результат сильнее, чем тонкая настройка вариограммы. В плагине Isoliner их пять — простой, ординарный, с полиномиальным трендом, блочный и индикаторный, — и каждый существует не для галочки, а под конкретный класс геологических задач.
Под катом — разбор всех пяти на живых примерах калийного месторождения: когда какой, какие параметры за что отвечают, как это выглядит в коде и на каких ошибках спотыкаются чаще всего.
<cut/>
## Общая механика: что меняется, а что нет
Напомню каркас из первой статьи: оценка в точке — взвешенная сумма соседних скважин, веса — решение системы уравнений с ковариациями из вариограммы:
«`python
s = np.linalg.solve(A, r) # A — ковариации соседей между собой,
w = s[:na] # r — ковариации соседей с точкой оценки
est = float(np.dot(w, vra))
«`
Все пять видов кригинга решают эту систему. Различаются они тем, что считается неизвестным про среднее поле и что именно оценивается — точка, блок или вероятность. Это и есть ключ к выбору.
## Простой кригинг (SK): среднее известно
Простой кригинг предполагает, что среднее значение поля вам известно заранее и постоянно по площади. Тогда система решается без дополнительных условий, а недобор веса соседей компенсируется этим средним: