1 votos

Creación de una localización de GRASS desde un bash script

Me gustaría tener un GRASS script que cree una nueva ubicación propia, en lugar de utilizar una ubicación existente. Esto facilita el uso del script por parte de otros usuarios.

Revisando la guía sobre Trabajar con GRASS sin iniciarlo explícitamente y las notas sobre crear ubicaciones desde la línea de comandos He llegado al siguiente script:

#!/bin/sh
# path to GRASS binaries and libraries:
export GISBASE=/usr/lib/grass74
export PATH=$PATH:$GISBASE/bin:$GISBASE/scripts
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$GISBASE/lib

# GRASS session variables
GRASSDB="/tmp/grassdata"
GRASSLOC="tmp_location"

mkdir -p "$GRASSDB/$GRASSLOC/PERMANENT"

# Create a new GRASS location
#grass74 -c $PATH_IN"ORCDRC_M_sl1_250m_clip.tif" "$GRASSDB$GRASSLOC"

grass74 -c /path/to/some/file.tif "$GRASSDB$GRASSLOC"

echo "Creation done"

# path to GRASS settings file
export GISRC=/tmp/grass7-${USER}-$GIS_LOCK/gisrc
# remove any leftover files/folder
rm -fr /tmp/grass7-${USER}-$GIS_LOCK
mkdir /tmp/grass7-${USER}-$GIS_LOCK
# set GISDBASE, LOCATION_NAME, and/or MAPSET
echo "GISDBASE: $GRASSDB" >>$GISRC
echo "LOCATION_NAME: $GRASSLOC" >>$GISRC
echo "MAPSET: PERMANENT" >>$GISRC
# start in text mode
echo "GRASS_GUI: text" >>$GISRC

# Test it
g.version

Este tipo de obras, sin embargo, las grass74 -c no sólo crea una nueva localización, sino que también inicia una nueva sesión de GRASS y lanza la GUI.

¿Existe otra forma de crear una ubicación sin lanzar la GUI (y crear una sesión)?

3voto

Steven Parkes Puntos 625

Utilice grass -c -e -text ...

de la Ayuda:

 -e           exit after creation of location or mapset. Only with -c flag
 -text        use text based interface (skip welcome screen)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X