понедельник, 4 июня 2012 г.

Анонс: открытое ПО GeoMed3D для построения 3D модели недр

Выложил часть своих наработок, связанных с восстановлением 3D модели недр по космоснимкам. Софт написан на ANSI C под OC linux (32 и 64 разрядные). Source-пакет и бинарная сборка под 32 бит linux Deian прилагаются. http://mobigroup.ru/debian/pool-squeeze/main/g/geomed3d-bin/ Документацию пока не выкладывал, равно как и примеры снимков. Ежели у кого есть снимки, которые можно опубликовать и по которым получаются интересные результаты - выкладывайте здесь ссылки, с описанием, что на снимке, кому он принадлежит и под какой лицензией публикуется. Скрипт для построения вертикального разреза приведен ниже:
#!/bin/sh
# скрипт построения вертикального разреза
# глубина в метрах = 0.7*R*(разрешение исходного изображения)
# для работы скрипта нужен установленный ImageMagick и пакет geomed3d
set -e

# исходное изображение
IMAGE=sample.tif
# размер исходного изображения, пикселов
WIDTH=3217
HEIGHT=2782
# глубина построения разреза, шагов
R=300

# удалить файлы предыдущего запуска
rm -f v_min.grad.tif v_mode.grad.tif

# преобразуем исходное изображение в RAW массив
convert -depth 8 "$IMAGE" gray:in.raw
# строим маску
geomed3d_mask $WIDTH $HEIGHT 0 0.5 1 0.5 > v_mask
# размер маски в пикселях (каждому пикселу соответствует отдельная строка в файле маски)
LENGTH=$(cat v_mask | wc -l)
# построить вертикальное сечение (фокальная статистика)
cat v_mask | geomed3d $WIDTH 0 $R in.raw v_min.raw v_mode.raw
# определим размерности полученного массива
W=$LENGTH
H=$((R+1))
# посчитать градиент
geomed3d_grad $LENGTH v_min.raw        v_min.grad.raw
geomed3d_grad $LENGTH v_mode.raw       v_mode.grad.raw
# для просмотра
convert -size ${W}x${H} -depth 8 gray:v_min.grad.raw  v_min.grad.tif
convert -size ${W}x${H} -depth 8 gray:v_mode.grad.raw v_mode.grad.tif

# удалить временные файлы
rm -f in.raw v_mask v_min.raw v_mode.raw v_min.grad.raw v_mode.grad.raw

# готово! смотреть файлы v_min.grad.tif и v_mode.grad.tif
Также анонсировал здесь: http://gis-lab.info/forum/viewtopic.php?f=20&t=10754
Для интересующихся на форуме выкладываю "Использование фотополимеризующихся композиций для записи и восстановления распределения интенсивности" (http://zalil.ru/33382501), где я и начинал заниматься вопросами рассеяния на различных неоднородностях. Смотрите 2-ю главу "Спектры рассеяния на собственных неоднородностях ФПК" и главу 3 "Восстановление изображения с транспарантов, записанных на ФПК". Фотополимеризующаяся композиция (ФПК) - двухкомпонентная среда (мономер и полимер, при конверсии мономера образуется полимер), для которой можно и матмодель сделать, и проверить результат в лаборатории. Далее, выкладываю проведенную по гранту компании LG работу "Получение коллимированных пучков после прохождения сферического волнового фронта через фазовую зонную пластинку" (http://zalil.ru/33382544), где изучается и моделируется уже дифракция. Как видим, то, что в геологии называется "малые кольцевые структуры" хорошо изучено и часто встречается. Далее открывайте Фивенского (благо здесь уже и скан выложен, спасибо!). После чего смотрите результаты, полученные специалистами ООО "ГеоКосмоМониторинг". И наконец, можете изучить исходники и запустить анонсированную в топике программу.

Upd. Сборка под виндоус анонсированных утилит: http://zalil.ru/33381973 Для поддержки функций memory mapping использован проект mman-win32.

Upd. Сделал краткое объяснение моего представления о физ. механизме образования кольцевых неоднородностей, раз на форуме так хотят его услышать:

Я полагаю, регистрируемую картинку подземных неоднородностей на поверхности дают значительно более мощные относительно среднего фона сейсмоволны при землетрясениях, нежели чем картинка проявляется как результат накопления изменений от воздействия среднего фона. За несколько десятилетий, которые называет Фивенский минимальным сроком "проявления" малых кольцевых структур, землетрясения амплитудой 8 баллов и выше происходят практически везде (из вики: "За год на Земле происходит примерно: 1 землетрясение с магнитудой 8,0 и выше;10 — с магнитудой 7,0—7,9;100 — с магнитудой 6,0—6,9; 1000 — с магнитудой 5,0—5,9."), что соответствует амплитуде вертикальных колебаний поверхности уже не микроны, а сантиметры, метры и даже десятки метров, причем одна мощная волна с рассеянием на подземных неоднородностях даст интерференционную картину аналогично когерентному источнику (тогда как при среднем сейсмическом фоне когерентности нет). Такой механизм образования кольцевых структур мне представляется намного более вероятным, и дает ответ на вопрос, откуда же берется когерентность сейсмоволн - я вообще не встречал нигде попытки объяснить эту самую когерентность, про которую все упоминают, так как без нее ничего не получается. Итак, землетрясение - это процесс записи на поверхности Земли интерферограммы ее внутреннего строения. Спектры рассеивания (или, что эквивалентно, угловое распределение энергии рассеянной волны) продуцируют образование кольцевых структур на поверхности, причем изотропные неоднородности продуцируют кольца, анизотропные - "полумесяцы", как можно увидеть в моей работе по спектрам рассеивания. Соответственно, картина геологического строения может производиться путем восстановления записанной на поверхности интерферограммы. Технически это реализуется путем поиска кольцевых структур и дальнейшего анализа их характеристик.

Комментариев нет:


(C) Alexey Pechnikov aka MBG, mobigroup.ru