On 5/19/21 9:52 PM, Kelsey Wong wrote:
Hi,
I am trying to use the r.water.outlet function in a python script in GRASS. For
the ‘coordinates’ parameter my x,y coordinate values are stored in two columns
in the attribute table of another layer. Is there a way to access these values
from the attribute table directly?
The grass.script command 'parse_command' returns the module output as a
python dict, so something like:
import grass.script as gscript
xy = gscript.parse_command('v.db.select', map_="another_table",
columns=['x_coord'_column, 'y_coord_column'], separator="comma")
will probably get you on the right track. If you have multiple points in
the "another_table", then you'll have to loop thru the list, and run
r.water.outlet on each pair separately.
The addon `r.streams.basins`, on the other hand, can deal with a list of
coordinate pairs. So if you convert the output of v.db.select into a
comma separated list like: x1,y1,x2,y2, x3,y3... then you can get all
basins in one go. What's more, this addon can accept a point vector of
drainage outlet points, and prepare basins for each. So if your
"another_table" is indeed a point vector, and the two columns in the
attribute table are the point coordinates, then no need to extract
coordinate from the attrib table. just feed the point vector to the
`points` parameter of `r.streams.basins`.
Thanks,
Kelsey
_______________________________________________
grass-user mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/grass-user
--
Micha Silver
Ben Gurion Univ.
Sde Boker, Remote Sensing Lab
cell: +972-523-665918
_______________________________________________
grass-user mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/grass-user