Hi all, is there an easy way to transfer the information reported by v.net (operation=report) directly to the attribute table of the vector network (arc-table)?
The approach I am using so far is to create an temporary database table (using python) where I store the output from v.net operation=report, and then use a SQL statement to update the original arc-table from the temporary table: ########### fidimo_db.execute('''CREATE TEMP TABLE arcs_temp (cat INTEGER, from INTEGER, to INTEGER)''') # Get for each arc the orig cat for the start (from) and end point (to) e = [(int(x.split()[0]),int(x.split()[1]),int(x.split()[2])) for x in grass.read_command("v.net", quiet=True, input="my_net", operation="report", arc_layer=3).splitlines()] my_db.executemany("INSERT INTO arcs_tmp (cat, from, to) VALUES (?,?,?)", e) my_db.execute('''UPDATE arcs SET from = (SELECT from FROM arcs_tmp WHERE cat=arcs.cat), to = (SELECT to FROM arcs_tmp WHERE cat=arcs.cat) WHERE EXISTS (SELECT cat FROM arcs_tmp WHERE cat=arcs.cat)''') ########## That approach works for me, but I was wondering if there is something easier/more direct? However it seems a direct update of the attribute table is not included in v.net. The module v.db.update has an option for adding start/end points of lines, however this refers to coordinate pairs rather than to category values of nodes in a network. Any other ideas? Best, Johannes
_______________________________________________ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user