
Вся гибкость нашего софта в резиновых костылях
отсюда
Вычисление преобладающего залегания облака точек
Довольно часто в процессе моделирования возникает ощущение, что (например) пробы, вскрывшие то или иное геологическое тело, группируются в нечто уплощённое. После этого обычно возникает острое желание понять, как именно ориентирована эта самая "уплощённость". Конечно, можно прикинуть это "на глаз" и этим удовольствоваться. Однако, как несложно догадаться, такая оценка довольно субъективна и неточна. Предлагаемый скрипт как раз и пытается вычислить ориентировку плоскости, которая наилучшим образом приближает облако точек. . При этом следует иметь в виду, что скрипт не отвечает на вопрос о степени уплощённости/вытянутости/изометричности и т.д. облака точек. То есть, в любом случае результат будет вычислен, а уж насколько он полезен – решать пользователю. Скрипт может быть использован с любыми данными, имеющими координатные поля – файлы точек, линий, скважин, моделей и т.д.
Интерфейс скрипта прост:

Вряд ли какие-либо элементы интерфейса могут вызвать вопросы: кнопка «Обзор» используется для выбора исследуемого файла, выпадающие списки под заголовками «X», «Y», «Z» - для выбора координатных полей (если они не были определены автоматически). В принципе, никто не мешает использовать в качестве координат (например) содержания неких компонентов. В этом случае будет получена ориентировка облака точек проб в пространстве содержаний (зачем это нужно и какой смысл получаемого результата – не знаю, но использовать можно). Смысл остальных кнопок также интуитивно понятен. Результат выводится в виде сообщения с элементами залегания плоскости:

Единственное, что имеет смысл пояснить, это опцию «В данных присутствует поле веса.
Дело в том, что для вычисления положения плоскости, к которой наилучшим образом приближены исследуемые точки, используется величина момента инерции (осевого). Момент инерции точки относительно заданной оси вычисляется как произведение квадрата расстояния от точки до оси на величину массы точки. В случае отсутствия поля веса (массы) массы точек считаются равными (единичными). Однако, если присутствует какое-либо поле, придающее точкам большую или меньшую значимость, его можно задействовать с помощью этой опции. По идее, можно в качестве поля веса использовать величину содержания полезного компонента – в этом случае должна быть вычислена ориентировка обогащённых зон (опять же – см. первый абзац). Краткое пояснение мысли. Пусть у нас есть облако точек:

Несложно заметить, что облако имеет неплохо выраженную уплощённость. Результат вычисления положения плоскости - выше, но напомню:

Теперь предположим, что часть точек имеет значительно больший вес (например, содержание металла):

Красные точки имеют повышенную массу, синие – пониженную. Красные точки ориентированы вдоль горизонтальной плоскости:

Если в этой ситуации использовать поле веса точек, то результат вычисления положения аппроксимирующей плоскости будет несколько отличаться от предыдущего:

Собственно, в этом и заключается глубинный смыл поля веса.