Применение GRASS в геологии и геофизике
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Применение GRASS в геологии и геофизике
trex, скачал я это дело, щас посмотрю, что и как. отпишусь.
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Применение GRASS в геологии и геофизике
trex, завел таки я интерполяцию.. уже 60% сделалось.
Теперь о том, как. Как я понял, драйвер DBF -- довольно глючная штука (у меня и раньше его колбасило).
Поэтому после возни с DBF (он не хочет создавать нужную таблицу из файла Vel.csv) я пошел другим путем.
Это можно делать из GRASS, но удобнее в чем-то для работы с SQLite. Здесь я использовал SQLiteman
- Для начала в Gnumeric (можно в Excel) я добавил к Vel.csv столбец cat, "протянул" вниз до последней точки. Получилось от 1 до 3456.
- С помощью SQLiteman создал базу данных supertest.sqlitedb, в ней таблицу supertest с полями:
где
cat --> столбец "категорий", т.е. личного "номера" точки, без них GRASS не будет работать с интерполяцией
x --> это первый столбец в файле Vel.csv
y --> второй..
z --> третий
value --> параметр
и т.д.
Импортируем файл Vel.csv в таблицу supertest.
- Присоединяем таблицу supertest к слою точек:
Подключаем драйвер SQLite (лучше указать полный путь к созданной ранее базе данных):
Подсоединяем слой supertest к таблице supertest:
- Подгоняем регион под наш слой точек, делаем не очень большое 3D-разрешение -- 100
- Интерполируем в растр 3D:
Результат скоро выложу.
P.S. написал сумбурно. будут вопросы -- прошу)
Теперь о том, как. Как я понял, драйвер DBF -- довольно глючная штука (у меня и раньше его колбасило).
Поэтому после возни с DBF (он не хочет создавать нужную таблицу из файла Vel.csv) я пошел другим путем.
Это можно делать из GRASS, но удобнее в чем-то для работы с SQLite. Здесь я использовал SQLiteman
- Для начала в Gnumeric (можно в Excel) я добавил к Vel.csv столбец cat, "протянул" вниз до последней точки. Получилось от 1 до 3456.
- С помощью SQLiteman создал базу данных supertest.sqlitedb, в ней таблицу supertest с полями:
Код: Выделить всё
"cat" INTEGER,
"x" INTEGER,
"y" INTEGER,
"z" INTEGER,
"value" DOUBLE PRECISION
cat --> столбец "категорий", т.е. личного "номера" точки, без них GRASS не будет работать с интерполяцией
x --> это первый столбец в файле Vel.csv
y --> второй..
z --> третий
value --> параметр
и т.д.
Импортируем файл Vel.csv в таблицу supertest.
- Присоединяем таблицу supertest к слою точек:
Подключаем драйвер SQLite (лучше указать полный путь к созданной ранее базе данных):
Код: Выделить всё
db.connect driver=sqlite database=/home/user/grassdata/spearfish60/user1/supertest.sqlitedb
Подсоединяем слой supertest к таблице supertest:
Код: Выделить всё
v.db.connect map=supertest driver=sqlite table=supertest
Код: Выделить всё
g.region vect=supertest res3=100 -3p
- Интерполируем в растр 3D:
dmin=0 для того, чтобы считалось по всем точкамv.vol.rst input=supertest wcolumn=value elev=supertest_g3d dmin=0
Результат скоро выложу.
P.S. написал сумбурно. будут вопросы -- прошу)
Редактор материалов, модератор форума
-
- Участник
- Сообщения: 58
- Зарегистрирован: 14 май 2010, 13:54
- Репутация: 0
Re: Применение GRASS в геологии и геофизике
ай спасибо!!!!! начал делать по вашему алгоритму, от треволнений ажно курить захотелось ....т.е. сообшение интерполятора Невозможно получить информацию о слое для векторной карты все же из-за отсутсвия векторных точек в базе данных?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Применение GRASS в геологии и геофизике
Курить вредно)
Все беды из-за отсутствия нормальных аттрибутов в нормальном виде ))
Сами точки импортируются легко без всяких таблиц.
Сейчас пробую визуализировать полученный volume.
Вот вывод команды r3.info supertest_g3d:
А вот базовая статистика по объему:
r3.stats -e input=supertest_g3d
Все беды из-за отсутствия нормальных аттрибутов в нормальном виде ))
Сами точки импортируются легко без всяких таблиц.
Сейчас пробую визуализировать полученный volume.
Вот вывод команды r3.info supertest_g3d:
Код: Выделить всё
+----------------------------------------------------------------------------+
| Layer: supertest_g3d Date: Tue Jun 1 08:01:55 2010 |
| Mapset: user1 Login of Creator: user |
| Location: spearfish60 |
| DataBase: /media/Elements/GRASSDATA |
| Title: ( supertest_g3d ) |
| Timestamp: none |
|----------------------------------------------------------------------------|
| |
| Type of Map: 3d cell Number of Categories: 0 |
| Data Type: double |
| Rows: 1273 |
| Columns: 1872 |
| Depths: 40 |
| Total Cells: 95322240 |
| Projection: UTM (zone 13) |
| N: 45659.88 S: -81665.95 Res: 100.02029065 |
| E: 53115 W: -134122.95 Res: 100.02027244 |
| T: -20.11 B: -3980 Res: 98.99725 |
| Range of data: min = 1576.92663574 max = 3003.9934082 |
| |
| Data Source: |
| |
| |
| |
| Data Description: |
| generated by v.vol.rst |
| |
| Comments: |
| v.vol.rst input="supertest" wcolumn="value" tension=40. smooth=0.1 s\ |
| egmax=50 npmin=200 dmin=0 wmult=1.0 zmult=1.0 elev="supertest_g3d" |
| |
+----------------------------------------------------------------------------+
r3.stats -e input=supertest_g3d
Код: Выделить всё
total null and non-null cells: 95322240
total null cells: 0
Of the non-null cells:
----------------------
n: 95322240
minimum: 1576.93
maximum: 3003.99
range: 1427.07
mean: 2108.34
mean of absolute values: 2108.34
standard deviation: 106.11
variance: 11259.3
variation coefficient: 5.03286 %
sum: 200971724123.3463134766
1st quartile: 2034.34
median (even number of cells): 2102.22
3rd quartile: 2182.09
90th percentile: 2227.09
Редактор материалов, модератор форума
-
- Участник
- Сообщения: 58
- Зарегистрирован: 14 май 2010, 13:54
- Репутация: 0
Re: Применение GRASS в геологии и геофизике
Все беды из-за отсутствия нормальных аттрибутов в нормальном виде ))
Сами точки импортируются легко без всяких таблиц.
т.е. это я неправильно загрузил в Грасс точки с атрибутами или грасс сам по себе немного подглючивает на этом этапе?
Сами точки импортируются легко без всяких таблиц.
т.е. это я неправильно загрузил в Грасс точки с атрибутами или грасс сам по себе немного подглючивает на этом этапе?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Применение GRASS в геологии и геофизике
И первое, и второе.
- Ты думал, что умная GRASS распознает сама типы полей в таблице с аттрибутами.
- По умолчанию стоит драйвер DBF, и он "сам по себе немного подглючивает".
- Третье: и я делаю что-то не так.
- Ты думал, что умная GRASS распознает сама типы полей в таблице с аттрибутами.
- По умолчанию стоит драйвер DBF, и он "сам по себе немного подглючивает".
- Третье: и я делаю что-то не так.
Редактор материалов, модератор форума
-
- Участник
- Сообщения: 58
- Зарегистрирован: 14 май 2010, 13:54
- Репутация: 0
Re: Применение GRASS в геологии и геофизике
йопсель, форум постоянно выбрасывает меня.....в смысле? а как тогда грузить точки с параметрами? там же ведь указывается последняя колонка- Номер столбца в которой указывается категория (cat) - я и предполагал что это параметр, а это оказывается ID....а куда тогда параметр затолкать? только вот так вот как вы описали с помощью SQLite?
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Применение GRASS в геологии и геофизике
Как по-нормальному -- надо разобраться еще. Я сделал просто "грязный хак". Чтоб заработало.
По идее, аттрибуты точек должны нормально импортироваться как в DBF, так и в SQLite, MySQL, PostgreSQL..
Грузить точки с параметрами можно через тот же v.in.ascii, но с указанием типов полей (как в мануале написано). Желательно, чтоб в ascii-файле столбик cat уже был, а то будет геморрой.
Пример:
Надо попробовать импорт точек с пом. v.in.ogr (там есть тип CSV)
По идее, аттрибуты точек должны нормально импортироваться как в DBF, так и в SQLite, MySQL, PostgreSQL..
Грузить точки с параметрами можно через тот же v.in.ascii, но с указанием типов полей (как в мануале написано). Желательно, чтоб в ascii-файле столбик cat уже был, а то будет геморрой.
Пример:
Код: Выделить всё
v.in.ascii -z input=Vel.csv output=supertest x=1 y=2 z=3 cat=4 fs=',' columns='cat int, x int, y int, z int, value double precision'
Редактор материалов, модератор форума
-
- Участник
- Сообщения: 58
- Зарегистрирован: 14 май 2010, 13:54
- Репутация: 0
Re: Применение GRASS в геологии и геофизике
понял, ща попробую, дык че с интерполяцией? чет красивое получилось ?:)
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Применение GRASS в геологии и геофизике
Вечером будет полный красочный отчет))
А пока немного:
- с помощью r3.to.rast делаем серию растров-разрезов (получилось 40 штук, т.к. depth=40 в параметрах региона)
Затем:
Добавляем векторные точки, верхний и нижний "разрезы"
А пока немного:
- с помощью r3.to.rast делаем серию растров-разрезов (получилось 40 штук, т.к. depth=40 в параметрах региона)
Код: Выделить всё
r3.to.rast input=supertest_g3d output=supertest_slices
Код: Выделить всё
nviz vol=supertest_g3d
Редактор материалов, модератор форума
-
- Участник
- Сообщения: 58
- Зарегистрирован: 14 май 2010, 13:54
- Репутация: 0
Re: Применение GRASS в геологии и геофизике
ок, сенкс, будем помсмотреть
-
- Участник
- Сообщения: 58
- Зарегистрирован: 14 май 2010, 13:54
- Репутация: 0
Re: Применение GRASS в геологии и геофизике
v.in.ascii -z input=Vel.csv output=supertest x=1 y=2 z=3 cat=4 fs=',' columns='cat int, x int, y int, z int, value double precision'
а где в таком случае тут описана колонка с параметром?
а где в таком случае тут описана колонка с параметром?
-
- Гуру
- Сообщения: 810
- Зарегистрирован: 22 авг 2007, 14:58
- Репутация: 123
- Откуда: Казань
Re: Применение GRASS в геологии и геофизике
Мне кажется, вы не с того конца заходите.
Дело в том, что v.in.ascii работает не с любыми текстовыми файлами, а с созданными в определенном формате. (Модуль создан, в первую очередь, для импорта собственных карт и поддерживает сложные геометрии - линии, полигоны и т.п., можно, конечно, импортировать, как вы и делаете, просто точки). Самое главное: этот модуль создает только векторные объекты. Атрибуты он не импортирует.
Почему? Да потому, что с любой векторной картой можно связать не одну таблицу атрибутов, а несколько. Поэтому таблицы атрибутов нужно импортировать отдельно. Связь между строками базы данных и векторным объектом идет по колонке "cat". Для импорта таблицы базы данных существует специальный модуль: db.in.ogr.
После того, как вы импортировали векторную карту из текстового файла и соответствующую таблицу, нужно связать между собой вектор и атрибуты, делается это при помощи модуля v.db.connect.
В общих чертах как-то так. Нужно будет подробнее -- спрашивайте.
Дело в том, что v.in.ascii работает не с любыми текстовыми файлами, а с созданными в определенном формате. (Модуль создан, в первую очередь, для импорта собственных карт и поддерживает сложные геометрии - линии, полигоны и т.п., можно, конечно, импортировать, как вы и делаете, просто точки). Самое главное: этот модуль создает только векторные объекты. Атрибуты он не импортирует.
Почему? Да потому, что с любой векторной картой можно связать не одну таблицу атрибутов, а несколько. Поэтому таблицы атрибутов нужно импортировать отдельно. Связь между строками базы данных и векторным объектом идет по колонке "cat". Для импорта таблицы базы данных существует специальный модуль: db.in.ogr.
После того, как вы импортировали векторную карту из текстового файла и соответствующую таблицу, нужно связать между собой вектор и атрибуты, делается это при помощи модуля v.db.connect.
В общих чертах как-то так. Нужно будет подробнее -- спрашивайте.
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Применение GRASS в геологии и геофизике
Спасибо, Дима. Меня действительно занесло не в те дебри ..
То есть алгоритм импорта точек с определенным параметром из ascii-файла такой:
1) v.in.ascii -- импортируется одна геометрия, причем указываем cat=0, чтобы добавился столбец категорий
2) db.in.ogr -- отдельно импортируем аттрибуты
3) v.db.connect -- подключаем таблицу к вект. слою
Потом интерполировать в объемный растр --> в NVIZ или в *.vtk, например.
P.S. trex , в
То есть алгоритм импорта точек с определенным параметром из ascii-файла такой:
1) v.in.ascii -- импортируется одна геометрия, причем указываем cat=0, чтобы добавился столбец категорий
2) db.in.ogr -- отдельно импортируем аттрибуты
3) v.db.connect -- подключаем таблицу к вект. слою
Потом интерполировать в объемный растр --> в NVIZ или в *.vtk, например.
P.S. trex , в
колонки параметра нет, это меня переклинило.v.in.ascii -z input=Vel.csv output=supertest x=1 y=2 z=3 cat=4 fs=',' columns='cat int, x int, y int, z int, value double precision'
Редактор материалов, модератор форума
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 793
- Ваше звание: званий не имею
- Откуда: Москва
Re: Применение GRASS в геологии и геофизике
Почитал мануал db.in.ogr, у OGR слабая поддержка CSV, с типом поля сложно.
Вопрос:
? на каком этапе и как лучше создавать таблицу (DBF или SQLite) с нужными типами полей ?
- С db.in.ogr нужную таблицу создать не получится, тип поля ставится везде "CHARACTER"
- Если создавать таблицу отдельно, например,
то db.in.ogr хочет ее перезаписать
Просьба: Дима, ты не мог бы скачать вышележащий файлик *csv и проделать три хода (для создания точечного файла с аттрибутами), а потом выложить сюда команды? Заранее спасибо)
Вопрос:
? на каком этапе и как лучше создавать таблицу (DBF или SQLite) с нужными типами полей ?
- С db.in.ogr нужную таблицу создать не получится, тип поля ставится везде "CHARACTER"
- Если создавать таблицу отдельно, например,
Код: Выделить всё
echo 'create table supertest (id int, x integer, y integer, z integer, value double precision)' | db.execute
Просьба: Дима, ты не мог бы скачать вышележащий файлик *csv и проделать три хода (для создания точечного файла с аттрибутами), а потом выложить сюда команды? Заранее спасибо)
Редактор материалов, модератор форума
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 13 гостей