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

Reply via email to