Pull to refresh
22
1.5
Алексей Печников @N-Cube

Geoscience R&D and Geophysical Modeling

Send message

Спасибо! Сам с удовольствием читаю ваши статьи и жду новых!

Интересно, не хотите для MantaFlow такую модель сделать, если разбираетесь в предметной области? Там много примеров есть, возможно, и для данной задачи найдется подходящий, чтобы с нуля не разбираться.

Так и возьмите потом сетку поболее, если сходимость есть и результат физически адекватный. Сетки 256х256х64 и 50-100 шагов по времени за несколько часов на ноутбуке 2014 года считаются, а если убедились, что параметры модели годные — на Amazon AWS EC2 или где вам удобно считаете уже на нужной сетке. Просто не стоит начинать сразу с долгих вычислений, пока вы не уверены в том, что у вас вообще получится.

Да как всегда — считаете то же самое на двойном и половинном масштабе и оцениваете сходимость. То есть будет ли результат при увеличении детализации постепенно уточняться (сходиться) или получится нечто совсем другое. Это же не проверка корректности, тут чисто технически все просто оценить.

Посмотрите примеры MantaFlow, они по умолчанию на сетке 64х64х64, у вас можно попробовать по вертикали снизить разрешение и увеличить по горизонтали, к примеру, для задания сетки 128х128х16:


# solver params
dim = 3
res = 128
scale = 0.125

Будет считаться быстро и, думаю, хватит для проверки гипотезы.

Спасибо за пример, интересно. Видимо, у вас сложность с размером модели? Если задать размер типового здания один пиксел на несколько в горизонтальном сечении, результат хоть как-то приближен к реальности? Тут вариант с tensorflow для улучшения детальности выглядит как раз подходящим.

Выше в этой же ветке я так и сказал:


доопределив соответствующие веса как единичные

В ответ на olegbor:


Что-то не очень у вас с математикой, с чего вы взяли, что значение в исходной точке не определено?

Если что, «доопределить» это математический термин, вовсе не идентичный термину «определить».
P.S. Вы там все такие, любой ценой стараетесь запутать и оскорбить собеседников?

То есть выдаваемое выше за доказательство тождество от olegbor вы подменяете на формулу 2 из статьи? Просто отлично. Посмотрите выше, что в этой ветке обсуждается.


Да, верно, про кригинг это другая ветка дискуссии, каюсь, попутал.

Вот, как раз в тему статья про кригинг интерполяцию при наличии разломов, попалась по тегу VTK, как ни странно:
3D Visualization of Stratum with Faults Based on VTK
Тема-то общеизвестная и актуальная… в отличие от просто формулы из вики.

Вы зачем-то пытаетесь доказать тождество альфа_k равно альфа_k. Так чему равно это самое альфа_k? А равно оно 1/(R_k^2) и вычислить его вы не можете. И вы еще заявляете, что это у кого-то другого плохо с математикой?:)

Значение 1/R не определено при R=0. Поэтому в первоначальном определении кригинга значения в исходных точках доопределяются отдельно.


У вас же на картинке α (слева) приравнено к αk (справа), что не имеет смысла. На самом же деле, это просто тождество и слева тоже должно стоять αk, но какой в этом смысл? Домножая числитель и знаменатель на квадрат Rk, вы просто заменили 1/Rk на коэффициент αk, пропорциональный 1/Rk, который вы не можете вычислить.


А кроме того, если считать по одной формуле и значения в исходных точках, доопределив соответствующие веса как единичные (вычислить их не удастся), из-за не нулевого вклада от остальных точек вы получите отличающиеся значения в исходных точках — против чего вы очень протестовали выше:)

Это значения с заданной погрешностью, то есть интервалы. Вы же любите безразмерные сетки — ну и определите сетку так, что эти значения находятся в соседних ее узлах.
1) интерполяция нужна для получения приблизительных значений там, где они не определены исходно — то есть в узлах сетки для вычислений модели, которая, как правило, выбирается регулярной. Скажем, нужно вам моделировать миграцию нефти — необходимо пористость и прочие параметры в каждом узле расчетной сетки задать.
2) картинка из википедии, статья кригинг, об этом явно сказано выше. Вам непонятно, что в вики написано или вы не смотрели?

Не вижу никаких усложняющих рассуждений. Давайте на примере. Даны два значения плотности — 2.95 и 3.05, точность определения каждого плюс-минус 10%. Так значение 3.0 для этих двух величин — это интерполяция или аппроксимация? По вашему мнению, это значение совпадает или не совпадает с измеренными данными? Сколько можно сделать интерполяций, при наличии разброса значений?


Если непонятно, откуда ошибка, поясню еще раз. Пусть 5% ошибка определения плотности по несколько поврежденным образцам керна (см. статью), еще 5% ошибки добавляется из-за вычисления геологических параметров типа плотности по геофизическим измерениям (каротажным диаграммм) проводимости и проч. для диапазонов и скважин, где анализов керна нет (см. статью). Это еще скромная ошибка, на самом деле.


В статье речь про интерполяцию кригингом, так что вычисляются только значения между измеренными. Но, как я уже писал выше, это не важно — при переходе от нерегулярной сетки к регулярной все значения на регулярной сетке являются интерполированными, то есть исходные значения не попадают в итоговые. Дело не в этом. Кригинг это такая интерполяция, которая минимизирует ошибку интерполированных данных в предположении гауусовости пространственного распределения значений. Таким образом, и исходные значения, заданные доверительным интервалом, прекрасно подходят, а «магический» коэффициент в ядре криггинга из примера статьи (20) и есть мера разброса значений! Даже в вики об этом явно сказано:
image


The kriging interpolation, shown in red, runs along the means of the normally distributed confidence intervals shown in gray.

Но что делать, если распределение значений не гауссово? А если оно гауссово, но зависит не от расстояния? А если оно должно быть гауссовым, но при этом есть разрывы непрерывности? Вот тут и пригодится стохастическое моделирование, где можно и различные виды законов распределения попробовать, и разрывы непрерывности задать и так далее. И, разумеется, метод Монте-Карло намного более знаком каждому, нежели термин стохастического моделирования. И вы еще говорите, что это я что-то усложняю:)

Вы бы воздержались от оскорблений, тем более, раз вы представитель компании. Тем более, что я статью не критиковал — по себе знаю, как сложно объяснить все это простым языком. Если уж в мой профиль заглянули, то в геологии я разрабатываю и публикую открытое ПО и модели, см. мой гитхаб: https://github.com/mobigroup Так что я на вашу должность не претендую, если что:) А если профиль весь прочитаете, то и вовсе станет стыдно хвалиться, что вы где-то преподаете.
Далее, далеко не все интерполяции в заданных точках дают исходные значения. Выше я написал про метод обратных расстояний с выколотой средней точкой — который по определению дает отличающееся значение в исходных точках. Зачем это нужно, я тоже написал. Более того, приведенные в статье интерполяции из неравномерно заданных значений на равномерную сетку также дают сглаженные поверхности — что и сказано в статье, при этом, оставлено за кадром, какие проблемы возникают, если одна или несколько исходных нерегулярных точек совпадут с точками регулярной сетки. При этом, ценны методы получения исходных значений в исходно заданных точках и при этом гладкой поверхности, и вот здесь речь заходит про криггинг. И об этом тоже сказано в статье. С чем вы спорите?


P.S. Почему я вообще трачу на эту дискуссию время, так это потому, что периодически есть необходимость просто и понятно описывать разные алгоритмы. Но конкретно в блоге данной компании — токсичность удивляет.

Геологическая плотность — плотность при заданном масштабе геологического исследования. В статье же сказано про зависимость от масштаба.
Про палеопространство вы полную ерунду пишете, прикрывая невежество минусами ответам на свои посты. Нет никакого безразмерного идеального палеопространства без нарушений — нарушения были и есть всегда, а палеопространство это просто состояние в какой-то давний момент времени. Вы в самом деле считаете, что миллион-десять-сто назад длина была безразмерной? Безразмерная только вычислительная модель, а не физический мир.

Не было, разумеется, поскольку никогда литосфера не была статичной. Древние разломы перекрываются современными, геологические блоки двигаются, литосферные плиты раздвигаются или сдвигаются и трутся и т.п. Постройте интерферограммы любого участка земной поверхности за полвека (за это время можно найти данные) и вы увидите, что изменения происходят непрерывно (в том числе, очень значительные изменения — сдвиги на десятки и сотни метров вполне возможны).
Кстати, немало публикаций на тему выделения палеоразломов — это важная и нужная задача, а палеоповерхности выделить проще. Вот пример из практики — в Африке не редкость газ, прямо выходящий на поверхность, при этом горизонты залегания привязаны к палеоповерхностям, а точки выхода на поверхность к современным разломам. Притом, этот газ мигрировал из кристаллического фундамента по палеоразломам, уже «заросшим», в палеоловушки, потом они нарушились более современными разломами...

Вы путаете безразмерную численную модель и реальный мир. Да еще пытаетесь козырять терминами, которых не понимаете. Не стоит, и уж точно не на хабре. Никогда литосфера не была однородной, это раз, и всегда расстояния измеряются в единицах расстояния, а не в безразмерных пикселах, это два. Вероятно, вы что-то слышали про необходимость обезразмеривания для численных методов вычислений и про кусочно-блочную модель, где по нарушениям непрерывности выделяются блоки и моделируются по отдельности.
Кстати, если месторождение образовалось до разрывных нарушений — нефть и газ могли мигрировать оттуда (попросту говоря, утечь) и остался, скажем, неизвлекаемый битум (тяжелые густые фракции нефти). А если мы хотим узнать, куда что мигрировало — надо моделировать все вместе с нарушениями, тогда может оказаться, что нефть и газ просто перетекли в нефтегазовую ловушку повыше, и находиться она может и близко и не очень от исходной разрушенной.

Вы отвечаете вопросом на вопрос. Но мне не сложно пояснить — метод обратных квадратов (как и других степеней, вообще говоря, посмотрите, что такое IDW) не определен в точке, где задано исходное значение. Знаете, на ноль делить нельзя… что-то забрезжило в сознании? Так вот, обычно из нерегулярной сетки пересчитывают в регулярную, так что значения исходные и интерполируемые пространственно не совпадают. Также, этот метод можно использовать для сглаживания на регулярной сетки — выкалывая центральную точку, то есть совпадающая исходная точка игнорируется. В результате получается сглаженная поверхность с ограниченным пространственным спектром. Итого, исходные и результирующие данные чаще всего определены в разных точках, но даже если они определены в одних и тех же точках, они не совпадают. Попытка взять совпадающие исходные точки «как есть» приведет к нарушениям гладкости поверхности и бесконечному спектру. Посмотрите спектры триангуляционной поверхности и интерполированной методом обратных квадратов, к примеру. Теперь понятно?

Не рассказывает, на самом деле. Потому что при наличии в реальном мире разрывов непрерывности все это не работает. И тот самый дорогой софт, о котором с таким пренебрежением автор то и дело упоминает, просто умеет работать с таким вещами, о которых автор, видимо, даже не догадывается.

Information

Rating
1,234-th
Location
Таиланд
Registered
Activity