¿Llamando a funciones de GRASS desde Python externo?

8

Tengo instalado GRASS 6.4.3 svn en mi máquina con Windows 7. También en mi máquina, instalé Python 2.7.3 para Windows. Ahora necesito llamar a las bibliotecas GRASS desde Python y no dentro del shell de Python en la GUI GRASS. Configuré las variables de entorno en env.batpara esto. Pero la conexión falla. Este es el env.batque tengo:

set GISBASE=C:\Program Files\GRASS GIS 6.4.3svn

set HOME=%USERPROFILE%

set LD_LIBRARY_PATH = %GISBASE%\lib

set PATH= %GISBASE%\etc;%PATH%
set PATH=%GISBASE%\Python27;%PATH%
set PATH=%GISBASE%\lib;%GISBASE%\bin;%GISBASE%\extralib;%GISBASE%\msys\bin;%PATH%
set PATH=C:\Python27;%PATH%

set PYTHONLIB= C:\Python27;%PYTHONLIB%
set PYTHONPATH= %GISBASE%\etc\python;%PYTHONPATH%

rem Environmental variables for GRASS stand-alone installer

set GRASS_WISH=%GISBASE%\extrabin\wish.exe
set GRASS_PYTHON=python

set GRASS_PROJSHARE=%GISBASE%\proj
set GRASS_HTML_BROWSER=explorer
set GRASS_SH=%GISBASE%\msys\bin\sh.exe

set PYTHONHOME=%GISBASE%\Python27
set GDAL_DATA=%GISBASE%\share\gdal
set PROJ_LIB=%GISBASE%\proj
set GEOTIFF_CSV=%GISBASE%\share\epsg_csv

set PATH=%GISBASE%\msys\bin;%PATH%
set PATH=%GISBASE%\extrabin;%GISBASE%\extralib;%PATH%
set PATH=%GISBASE%\tcl-tk\bin;%GISBASE%\sqlite\bin;%GISBASE%\gpsbabel;%PATH%
set PATH=%GISBASE%\bin;%PATH%

rem Path to the python directory --
rem set PYTHONHOME=%GISBASE%\Python27 
rem if "x%GRASS_PYTHON%" == "x" set GRASS_PYTHON=python 

¿Alguien puede ayudarme a rectificar el problema?

Sanjeewa
fuente

Respuestas:

5

Revisa esta página; puede darte una idea de cómo configurarlo:

http://grasswiki.osgeo.org/wiki/GRASS_and_Python

-> Crear scripts de Python que llaman a la funcionalidad GRASS desde afuera

-> MS-Windows

markusN
fuente
Si. Modifiqué el env.bat usando el sitio web. Sin embargo, no encuentro .grassrc6 en la ruta dada en el sitio web (GISRC = C: \ Documents and Settings \ user \ .grassrc6) o en ninguna otra ruta. A veces puede ser la causa. ¿Alguna idea sobre esto?
Sanjeewa
1
Ejecute GRASS una vez para crear automáticamente el archivo .grassrc6 o créelo manualmente. He actualizado la página wiki en consecuencia.
markusN
Ejecuté el GRASS nuevamente pero el archivo no fue creado. Mis configuraciones actuales son: GSIDBASE = C: \ users \ kabs \ My Document, Location = Spearfish60 y Mapset = user1. Cómo actualizar al directorio existente (he creado c: \ users \ grassdata) con ubicación, conjunto de mapas y especialmente GRASS_DB_ENCODING: ascii
Sanjeewa
¿Tengo razón en que discutimos lo mismo en la lista de correo de usuarios de césped? Sin embargo, la página Wiki se actualizó nuevamente.
markusN
2

Al configurar Python para pasto me enfrenté con el mismo problema. He encontrado grassrc6 en APPDATA:

No importa cómo se llame el archivo, siempre que% GISRC% lo señale y contenga la configuración necesaria.

La ubicación normal de GRASS 6.x en Windows es:% APPDATA% \ GRASS6 \ grassrc6

En Windows 7, una configuración típica para% APPDATA% es C: \ Users \\ AppData \ Roaming

Está escrito aquí .

GokcenG
fuente