[GRASS-user] v.edit break ERROR: Attempt to delete dead feature

achim ak7 at jupiter.uni-freiburg.de
Tue Aug 18 12:20:37 EDT 2009


> **************
> ## update network table with start,end point cats
> ## takes a long time!!!
> v.net -c --overwrite input=$1 operation=report > line_end_cats.txt
> while read line; do
>     cat=$(echo $line | cut -d' ' -f1)
>     start=$(echo $line | cut -d' ' -f2)
>     end=$(echo $line | cut -d' ' -f3)
>   ## update network table, line layer
>   sqlite3 /home/achim/grass/sqlite_db "UPDATE $1
>   SET start=$start,end=$end WHERE cat = $cat;"
> done < line_end_cats.txt
> ++++++++++++++++++++
> 
> 
> Can't you do this with v.to.db option=start / end ? Don't know if this
> is faster, though...
it would be faster, but v.to.db option=start/end just update the
coordinate (x,y).
then two double values instead of one integer will have to be compared

> 
> In any case, you can probably speed it up by putting all your SQL
> statements into a file and then executing sqlite on that file outside
> the loop. Database connections always create quite a lot of overhead.
right, good idea. Another possibility would be to make a table from
"v.net -c --overwrite input=$1 operation=report" and make the update
with one sql statement. ...but its just a workaround and not a final
version ;-).

Achim




More information about the grass-user mailing list