Salve a tutti,

sto scrivendo uno script bash che assegna a dei punti, generati casualmente, dei valori sia da vettoriali che da raster, usando GRASS, installato su OS Windows XP.

La prima parte dello script (messa qui sotto), si blocca al v.db.addcol, con il messaggio : command not found

# crea i punti all'interno della region
g.region vect=provbg
v.random output=rndpnt1 n=$punti
v.db.addcol rndpnt1 column="cat integer"

Ho usato allora il comodo comando di QGis per generare i punti casuali all'interno di un poligono. Lo script importa allora in GRASS lo shape e associa i dati necessari. Di seguito, vi incollo i comandi:

# Verifica se esiste lo shapefile
if [ ! -f "d:/atlante_prBG/modelli/pntrnd1.shp" ] ; then
  echo "lo shapefile non esiste! Crearlo con QGis"
  exit 1
fi

# verifica se esiste gia' il file rand1 e lo elimina
MAPNAME=rand1
eval `g.findfile element=vector file="$MAPNAME"`
if [ -n "$name" ] ; then
  echo "Rimozione del vecchio file dei punti casuali"
  g.remove vect=rand1
fi

v.in.ogr -o dsn=D:/atlante_prBG/modelli/pntrnd1.shp output=rand1

# rimuove lo shapefile
if [ -f "d:/atlante_prBG/modelli/pntrnd1.shp" ] ; then
  rm d:/atlante_prBG/modelli/pntrnd1.*
fi

v.db.connect -o map=rand1 table=public.rand1

## aggiungi le colonne per le coordinate
echo ALTER TABLE rand1 ADD COLUMN x double precision | db.execute
echo ALTER TABLE rand1 ADD COLUMN y double precision | db.execute

# aggiorna con valori delle coordinate
v.to.db map=rand1 option=coor units=meters columns=x,y

# aggiorna la tabella con i valori del vettoriale UR (grigliabg) nella colonna ur
echo ALTER TABLE rand1 ADD COLUMN ur integer | db.execute
v.what.vect vector=rand1 column=ur qvector=gridbg qcolumn=cat_

# aggiorna la tabella con i valori del raster ambienti (anni2010) nella colonna amb
echo ALTER TABLE rand1 ADD COLUMN amb integer | db.execute
v.what.rast vector=rand1 raster=anni2010 column=amb

# aggiorna la tabella con i valori del raster altitudine (cls_altit) nella colonna alt
echo ALTER TABLE rand1 ADD COLUMN alt integer | db.execute
v.what.rast vector=rand1 raster=cls_altit column=alt

# aggiorna la tabella con i valori del raster esposizione (cls_espo) nella colonna espo
echo ALTER TABLE rand1 ADD COLUMN espo integer | db.execute
v.what.rast vector=rand1 raster=cls_espo column=espo

# aggiungi una colonna v_reg, con valore 0, per impostare a 0 i valori per la regressione logistica
echo ALTER TABLE rand1 ADD COLUMN v_reg integer | db.execute
echo UPDATE rand1 SET v_reg = 0 | db.execute

Tutto gira e aggiunge i dati, tranne il v.what.vect, che mi dice: command not found. Si può ovviamente sistemare il tutto trasformando in raster il vettoriale, ma mi piacerebbe che funzionasse anche così.

Guardando un po' nell'installazione, mi sembra che non funzionino i comandi che, in C:\OSGeo4W\apps\grass\grass-6.4.1\bin, vengono fatti partire con un *.bat (come il v.add.col e il v.what.vect), mentre quelli che hanno l'exe e il .manifest funzionano.

Qualche idea? Sto sbagliando qualche settaggio in GRASS?

grazie,

roberto



_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
Gfoss@lists.gfoss.it
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
502 iscritti all'11.2.2011

Rispondere a