Последовательность действий при добавлении таблицы:
Создаем таблицу, например, состоящую из колонок cat,x,y,flamo:
Код: Выделить всё
echo "create table pnts_coord (cat int,x double,y double ,flamo int)" | db.execute
Код: Выделить всё
db.tables -p
Однако, мало создать таблицу -- нужно еще добавить идентификаторы объектов в созданную таблицу (GRASS связывает каждый объект с соответствующей записью в таблице при помощи идентификаторов -- чисел, которые должны совпадать у объекта и у записи таблицы). По умолчанию, идентификаторы, по которым производится связывание, хранятся в поле "cat" таблицы атрибутов.
Идентификаторы к объектам можно узнать, например, используя команду v.out.ascii:
Код: Выделить всё
v.out.ascii pnts
здесь первые два поля -- координаты, а третье поле -- идентификаторы46.22599554|45.15012522|1
44.75096359|46.06735923|2
45.58276768|44.72287613|3
44.28656638|46.12159521|4
...
Добавим в созданную таблицу записи, у которых в поле cat будут прописаны соответствующие идентификаторы объектов pnts:
Код: Выделить всё
for id in `v.out.ascii pnts | cut -d\| -f3`
do echo 'insert into pnts_coord (cat) values' \($id\) | db.execute
done
Код: Выделить всё
for id in `v.out.ascii pnts | cut -d\| -f3 | sort -un`
do echo 'insert into pnts_coord (cat) values' \($id\) | db.execute
done
Код: Выделить всё
v.db.connect -o map=pnts table=pnts_coord
См.
db.execute
db.tables
v.out.ascii
v.db.connect
man cut
man sort