Страница 1 из 7

Применение GRASS в геологии и геофизике

Добавлено: 09 янв 2010, 18:39
Peter_Kurkin
Итоговый результат хочется видеть в 3D модели геологических слоев, т.е. составление модели месторождения , с вынсом вертикальных разрезов (растровых слоев), скважин и д.р. геологических атрибутов.
На данный момент имею созданые в SURFER 8 карты по геологическим горизонтам, по ним построен грид и импортирован в GRASS, остановился на этапе построения по гриду карты, векторного слоя, для загрузки в NVIZ.
Подскажите как мне реализовать данную идею, в комплексе программ QGIS, какие действия необходимы для создания модели в NVIZ'е.
Буду рад любой информации по документации и различных руководставх.

Re: Применение GRASS в геологии и геофизики

Добавлено: 09 янв 2010, 20:38
KolesovDmitry
Peter_Kurkin писал(а):Итоговый результат хочется видеть в 3D модели геологических слоев, т.е. составление модели месторождения , с вынсом вертикальных разрезов (растровых слоев), скважин и д.р. геологических атрибутов.
...
Буду рад любой информации по документации и различных руководставх.
Есть очень интересная статья по построению 3D моделей: Construction and Visualization of Three Dimensional Geologic Model Using GRASS GIS
Интересна там сама идея: авторы создали 3D модель (именно 3D, а не 2.5) на основе обычной растровой арифметики.
Второй интересный момент: не очень понятно, зачем они использовали обычные растры (2.5D), и так мучались, чтобы построить в результате 3D, а не взяли сразу 3D растры, которые уже и так реализованы в GRASS... Единственное объяснение, которое приходит в голову - на момент написания статьи (2002г) 3D растров в GRASS еще не было.

Re: Применение GRASS в геологии и геофизики

Добавлено: 10 янв 2010, 11:15
Peter_Kurkin
Спасибо за скорый ответ. Но я не могу понять, что нужно делать дальше с 3D гридом? Импортируя в грасс из файла ASCII я получаю набор точек, без поверхности и без раскраски. При этом визуализируя в NVIZ'e ничего не видно...
Буду признателен, если опишиет поэтапно (по модолям), что нужно делать с набором данных ASCII (x,y,z), чтобы получить поверхности для просмотра в NVIZ'e.

P.S. Статья как раз то что мне нужно. Еще раз спасибо!

Re: Применение GRASS в геологии и геофизики

Добавлено: 10 янв 2010, 16:13
KolesovDmitry
Peter_Kurkin писал(а):Импортируя в грасс из файла ASCII я получаю набор точек, без поверхности и без раскраски. При этом визуализируя в NVIZ'e ничего не видно...
Буду признателен, если опишиет поэтапно (по модолям), что нужно делать с набором данных ASCII (x,y,z), чтобы получить поверхности для просмотра в NVIZ'e.
Пара встречных вопросов:
1) Опишите, как именно вы импортируете ASCII грид, что у вас получается набор точек (это действительно набор точек, а не растр получается?).
2) Немного расшифруйте, что означает "поверхность для просмотра в NVIZ" (не очень понятно, в чем загвоздка, т.к. NVIZ показывает растры без особых проблем...)

Re: Применение GRASS в геологии и геофизики

Добавлено: 10 янв 2010, 19:09
Peter_Kurkin
KolesovDmitry,
В SURFER полученный грид после интерполяции экспортируется в ASCII dat файл, содержащий набор координат с указанием высоты точек (x,y,z). Затем в GRASS данные импортируем модулем v.in.ascii, с укзанием раздилителя, ключа -z и последовательности столбцов (x,y,x). На выходе получаем векторный слой с множеством точек. Пробывал так же импорт того же грида в формате ASCII с помощью модуля r3.in.ascii получил растр с точками, при просмотре которого в NVIZ ничего не видно, но есть продвижение :D точки имеют разный цвет. Может нужен модуль r.color или интерполяция? Подскажите, может мне нужно идти в друго направлении?

Re: Применение GRASS в геологии и геофизики

Добавлено: 10 янв 2010, 20:21
KolesovDmitry
После импорта модулем v.in.ascii вы получили набор трехмерных векторных точек. Конечно, их можно расскрасить разными цветами в зависимости от высоты, но, скорее всего, вам нужно не это.

Модуль r3.in.ascii создает трехмерный растр, т.е. это не обычный 2.5D грид (прямоугольники на плоскости и в каждый прямоугольник записано числовое значение - высота), а трехмерный грид (прямоугольные параллелепипеды и в каждый такой "кирпичик" записано числовое значение). Как я понимаю, вы хотите получить именно такую модель. Но, как я опять же предполагаю, в качестве входных данных у вас "плоские" гриды (2.5D).

Для этого вам нужно сначала импортировать ваши гриды в виде обычных растров (например, модулем r.in.ascii), а потом из нескольких "плоских" растров можно собрать 3D растр (r.to.rast3).

Возможно, я ошибаюсь в своих предположениях - тогда поправьте меня и поясните свою задачу.

Re: Применение GRASS в геологии и геофизики

Добавлено: 11 янв 2010, 01:54
Александр Мурый
Первое, что надо отметить: для GRASS нет универсального метода построения геологических моделей.
Для этого есть спец.программные комплексы (Geomodeller3D, Petrel, Gocad и т.д.)
Более полный список - на Википедии: Geologic_modelling
GRASS применяется скорее для подготовки данных к визуализации (экспорт данных --> анализ/обработка --> импорт в формат vtk -- > Paraview)
какие действия необходимы для создания модели в NVIZ'е?
Насколько я понимаю, NVIZ визуализирует все, что вы туда засунете (растр, растр3D, вектор). Это не самый продвинутый визуализатор (для сложных случаев больше подходят специализированные программы типа Paraview, MayaVi и прочие там VTK). Однако, показать лежащие на разных глубинах поверхности и скважины может и NVIZ:
Изображение
Взято из статьи японцев Development of Visualization Tool for Geologic Information on GRASS GIS. Однако, там нужно доустанавливать какие-то модули (ссылок не дается)



Далее.
Буду признателен, если опишиет поэтапно (по модолям), что нужно делать с набором данных ASCII (x,y,z), чтобы получить поверхности для просмотра в NVIZ'e
Использовать только Surfer для построения поверхностей необязательно, это можно сделать в GRASS
1) исходные данные ASCII (x,y,z) --> v.in.ascii

2) точечный векторный слой --> интерполяция (для поверхностей кровли/подошвы геол.пластов лучше подойдет, наверное, метод "Regularized spline with tension":
v.surf.rst --> поверхность (растр 2,5 D)
И так для каждой поверхности.

3) для трехмерных растров (voxel) используем модуль v.vol.rst

Скважины - это трехмерные векторные объекты(?), при экспорте данных по ним в виде X,Y,Z надо использоватьь параметр "создать 3D вектор" --> в NVIZ должны нормально отображаться.

А вообще, вам бы хорошо бы почитать краткие введения в тему:
Vector data processing in GRASS GIS
Raster data processing in GRASS GIS
3D Raster data (voxel) in GRASS GIS

Еще хорошие примеры визуализации с анимацией:
MULTIDIMENSIONAL SPATIAL INTERPOLATION
INTERPOLATION AND VISUALIZATION FROM 3D AND 4D SCATTERED DATA USING GRASS GIS
Статья про визуализацию с помощью GRASS и Vis5D (правда, про почвы)
Volume modeling of soils using GRASS GIS 3D-Tools

Re: Применение GRASS в геологии и геофизике

Добавлено: 17 янв 2010, 12:19
Trace
А зачем экспортировать данные серфера в dat-файл? когда можно загрузить изначально растр в виде grd-файла. формат серфера поддерживается гдалом, как бинарный так и текстовый. можно сделать это через кугис, будет очень хорошо визуализировано. Вот единственный вопрос как визуализировать скважины? если к примеру нет инклинометрии то линия скважины будет состоять из 2 точек, которые самому сделать несложно а вот если есть инклинометрия? а вот как вынести геологическую, геофизическую информацию, при наличии инклинометрии?

Re: Применение GRASS в геологии и геофизике

Добавлено: 24 янв 2010, 21:14
Александр Мурый
По мне, Surfer здесь вообще можно не использовать, а обойтись силами GRASS/QGIS.

Как визуализировать скважины? вопрос для маркшейдера-программиста.
Видимо, надо вооружиться формулами:
стр.1
стр.2
стр.3
и копать в сторону r.mapcalc и r3.mapcalc (если представить скважину как трехмерный растр)..
Лично я себе это очень смутно представляю, ибо не специалист. Но может кто-то возьмется?

Выносить геологическую и геофизическую информацию (в смысле подписи) в NVIZ, вроде бы, нельзя. Зато можно в VTK и программах, его использующих (Paraview, ViSit, MayaVi).

Вот нарыл, как делали визуализацию месторождения со скважинами в VTK еще в 90-х годах:
http://books.google.ru/books?id=8tXjD2o ... TK&f=false

Re: Применение GRASS в геологии и геофизике

Добавлено: 23 апр 2010, 04:53
Trace
Выползает ошибка "cache_queue_enqueue: position not in queue" при построении 3Д. как ее можно устранить.

Re: Применение GRASS в геологии и геофизике

Добавлено: 23 апр 2010, 08:32
KolesovDmitry
Trace писал(а):Выползает ошибка "cache_queue_enqueue: position not in queue" при построении 3Д. как ее можно устранить.
Мало информации. Поясните, на какой операции вылетает (команда), на каких данных (если можно приведите пример файла), какая версия GRASS.

Re: Применение GRASS в геологии и геофизике

Добавлено: 23 апр 2010, 18:35
Trace
устанвлен грасс с помощью OSGeo4W grass64_svn7
загружаю файлы из арквью, через формат asc.
с помощью команды r.to.rast3 пытаюсь импортировать набор растров (глубин), в 3Д растр.
сам пример растров выложу в понедельник.

Re: Применение GRASS в геологии и геофизике

Добавлено: 23 апр 2010, 22:55
Александр Мурый
ошибка звучит: "позиция не в очереди"
согласно мануалу http://grass.itc.it/gdp/html_grass64/r.to.rast3.html, 2D-растры должны располагаться в порядке снизу вверх:
r.to.rast3 input=raster_300m,raster_250m,raster_200m output=raster3d
и еще надо проверить, верно ли задан 3D-регион:

Код: Выделить всё

g.region -p3
-- выход команды в студию))

3D-регион задать можно примерно так:

Код: Выделить всё

g.region b=200 t=300 tbres=20 res3=10

Re: Применение GRASS в геологии и геофизике

Добавлено: 24 апр 2010, 07:58
Trace
вывод команды (проверка в убунту).

Код: Выделить всё

GRASS 6.4.0RC6 (UTZ):~ > g.region -p3
projection: 99 (Transverse Mercator)
zone:       0
datum:      S-42
ellipsoid:  krassovsky
north:      6725268.9786997
south:      6681568.9786997
west:       331224.47738855
east:       399324.47738855
top:        1.00000000
bottom:     0.00000000
nsres:      100
nsres3:     100
ewres:      100
ewres3:     100
tbres:      1
rows:       437
rows3:      437
cols:       681
cols3:      681
depths:     1
cells:      297597
3dcells:    297597

Re: Применение GRASS в геологии и геофизике

Добавлено: 24 апр 2010, 10:27
KolesovDmitry
Нужно настроить параметры области. У вас:
Trace писал(а):

Код: Выделить всё

GRASS 6.4.0RC6 (UTZ):~ > g.region -p3
...
top:        1.00000000
bottom:     0.00000000
...
tbres:      1
Нужно задать пределы изменения области по вертикали (у вас сейчас - в область умещается только один растр) см g.region.