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

GRASS: меняем DBF на SQLite

Добавлено: 25 сен 2011, 15:12
Александр Мурый
Сразу говорю: писано для Linux/bash, в Windows можно то же самое в граф. интерфейсе или даже в консоли.

Если не работает v.db.reconnect.all (а с ним такое случается), "подключить" вектора к SQLite вместо осточертевших ( :twisted: ) уже DBF-таблиц можно ещё и так:
  • сначала подключаемся к SQLite

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

    eval $(g.gisenv)
    db.connect driver=sqlite database=$GISDBASE/$LOCATION_NAME/$MAPSET/$MAPSET.db
  • проверяем подключение:

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

    db.connect -p
  • затем пакетно как здесь (или только те, что надо) копируем таблицы из DBF в SQLite:

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

    for i in $(g.mlist vect); do db.copy from_driver=dbf from_database=$GISDBASE/$LOCATION_NAME/$MAPSET/dbf from_table=$i to_driver=sqlite to_database=$GISDBASE/$LOCATION_NAME/$MAPSET/$MAPSET.db to_table=$i; done
  • теперь пакетно же (или только те, что надо) подсоединяем атрибуты к векторам :

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

    for i in $(g.mlist vect); do v.db.connect -o map=$i driver=sqlite database=$GISDBASE/$LOCATION_NAME/$MAPSET/$MAPSET.db table=$i; done

Re: GRASS: меняем DBF на SQLite

Добавлено: 24 авг 2012, 23:28
Александр Мурый
Все описанные выше действия можно произвести с помощью шелл-скрипта dbf2sqlite. Запускается из командной строки без аргументов.

Проверено в GRASS 6.4.*