Il 07 maggio 2011 14:13, Roberto Facoetti <robi...@tiscali.it> ha scritto: > 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? >
potrebbe essere che i dati che stai provando ad inserire non siano integer? prova a lanciare il comando direttamente da grass, senza script, che errore ti restituisce? consiglio di usare v.db.addcol invece di db.execute per aggiungere una colonna > grazie, > > roberto > -- ciao Luca http://gis.cri.fmach.it/delucchi/ www.lucadelu.org _______________________________________________ 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