thanks

Il 03/16/2017 11:04 PM, Andres Solarte ha scritto:
Hello Carmine, what I do is create a script (connect.py) to start session as follows:

# -*- coding: utf-8 -*-
import os
import sys

def launch(location,mapset,db):
# path to the GRASS GIS launch script
grass7bin = '/usr/bin/grass72'

# Set GISDBASE environment variable
os.environ['GISDBASE'] = gisdb
# query GRASS 7 itself for its GISBASE
gisbase = "/usr/lib/grass72"
os.environ['GISBASE'] = gisbase

# define GRASS-Python environment
gpydir = "/usr/lib/grass72/etc/python"
sys.path.append(gpydir)
# import GRASS Python bindings
import grass.script.setup as gsetup
############ launch session
gsetup.init(gisbase, gisdb, location, mapset)



After that I call the function from my main script and execute the functions as follows #!/usr/bin/env python # -*- coding: UTF-8 -*- import connect #this is the script to connect with grass
gisdb = "/path/to/the/main/folder/"
location = "/path/to/the/location/"
mapset = "/path/to/the/mapset/"
#Connect connect.launch(location,mapset,gisdb) import grass.script as gscript
#Now I can execute the functions using gscript.run_command as follows:
#Load map
gscript.run_command("r.in.gdal", input="input image", flags='e' ,output = "map name") #Set region gscript.run_command('g.region', n=north, s=south, e=east, w=west, ewres=resX, nsres=resY)
I hope this helps
Regards,
Andrés.

2017-03-16 12:53 GMT-03:00 Carmine Massarelli <[email protected] <mailto:[email protected]>>:

    Dear,
    I have prepared a couple of scripts to execute a batch job: the
    first opens a csv file and formats the data for the second
    (invoked from the first) that include some grass functionality.
    The second script uses grass functionality without starting grass
    explicitly.
    If I execute the first script from shell all it is working, but if
    i invoke it from a php button (shell_exec('python
    path/script.py')) I receive the error: /Cannot find GRASS GIS 7
    start script (['grass72', '--config', 'path'])/
    I saw that it is related to subprocess (here the code):

    /p = subprocess.Popen(startcmd,
    shell=False,stdout=subprocess.PIPE, stderr=subprocess.PIPE)//
    //out, err = p.communicate()//
    //if p.returncode != 0://
    //    print >>sys.stderr, "ERROR: Cannot find GRASS GIS 7 start
    script (%s)" % startcmd//
    //    sys.exit(-1)//
    //gisbase = out.strip('\n\r')/

    but I am not expert about this, so I ask for your help.
    What could I do?
    I have already set sudoers   www-data ALL=NOPASSWD: ALL   and
    checked permission.
    Thanks in advance

    carmine


    _______________________________________________
    grass-user mailing list
    [email protected] <mailto:[email protected]>
    https://lists.osgeo.org/mailman/listinfo/grass-user
    <https://lists.osgeo.org/mailman/listinfo/grass-user>



Dr. Nat. Carmine Massarelli, Ph.D.
Environmental Technologist

IRSA-CNR
Mob: +39 339 32 57 311
Tel: +39 080 582 05 06
Addr: Via De Blasio, n.5 - 70132 (Ba) - IT

_______________________________________________
grass-user mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/grass-user

Reply via email to