GRASS: "переподключение" атрибутивных данных при смене путей

Решенные задачи, первая запись - описание решения.
Ответить
Александр Мурый
Гуру
Сообщения: 5171
Зарегистрирован: 26 сен 2009, 16:26
Статьи: 3
Проекты: 5/1
Репутация: 779
Ваше звание: званий не имею
Откуда: Москва

GRASS: "переподключение" атрибутивных данных при смене путей

Сообщение Александр Мурый » 19 янв 2011, 14:42

Рассмотрим вполне жизненную ситуацию:

Мы работаем в GRASS на машине №1 (например, под Linux), база данных находится в каталоге /home/amuriy/Work/grassdata. Затем нам надо продолжить работать с той же областью на машине №2 с базой данных в /home/user/Work/grassdata/ (или, например, на флешке, смонтированной в /media/flash).

Конечно, первым делом надо перенести на носитель (жесткий диск, флешку, USB-HDD и т.д.) каталог с самой областью (лично я упаковываю tar и сжимаю gzip). Далее запускаем GRASS с учетом нового расположения области на машине №2:

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

grass64 -text /home/user/Work/grassdata/my_location/PERMANENT


Теперь надо "переподключить" нужные базы данных с атрибутивными таблицами.
-- Выясняем "старый" (предыдущий) путь к нашей БД:

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

db.connect -p

-- Устанавливаем новое соединение с помошью модуля db.connect. Пусть для примера это будет SQLite:

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

db.connect driver=sqlite database=/home/user/Work/grassdata/my_location/sqlite.db

-- С помощью модуля v.db.reconnect.all "переподключаем" все таблицы сразу:

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

v.db.reconnect.all old_database=/home/amuriy/Work/grassdata/my_location/sqlite.db new_database=/home/user/Work/grassdata/my_location/sqlite.db

Модуль использует v.db.connect для соединения с БД, по мере своей работы выводит разную информацию об ошибках или успешном подключении.
Редактор материалов, модератор форума

Ответить

Вернуться в «Рецепты»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость