[GRASS-user] Returning values to Python

Pietro peter.zamb at gmail.com
Thu Oct 30 01:38:55 PDT 2014


On Thu, Oct 30, 2014 at 8:04 AM, Glynn Clements
<glynn at gclements.plus.com> wrote:
>> One of the documentation pages mentioned a function "stdout2dict" from
>> "grass.pygrass.modules", but it does not look like this is in the
>> pygrass package any longer?
>
> If you use grass.script.raster_what(), it returns a list of
> dictionaries.
>
> AFAICT, PyGRASS requires you to add stdout_=PIPE, then you can get the
> output as a string from module.outputs["stdout"].value.

or simplier: module.outputs.stdout

or using directly the C API through python with:

{{{
from grass.pygrass.vector import VectorTopo
from grass.pygrass.raster import RasterRow
from grass.pygrass.gis.region import Region

with RasterRow('elevation', mode='r') as rast:
    with VectorTopo('hospitals', mode='r') as hospitals:
        region = Region()
        for hosp in hospitals:
            value = rast.get_value(hosp, region)
            if value is not None:
                print(hosp.cat, value)
}}}

Pietro


More information about the grass-user mailing list