[Gfoss] R: Re: creare una mappa geologica semplificata (raggruppare categorie)

Ciao Luca, grazie per le dritte.
Chiaramente, come purtroppo prevedevo,
ho qualche problema...

Veniamo per ordine: spatialite o postgis non li
ho mai usati, pertanto mi sono orientato ad usare GRASS.

Il file *shp
al quale sto lavorando si chimata: Carta_Geologica_Nord_Italia e
presenta un database di tipo *dbf.
Nella colonna DESCR ho le litologie.

Come prima prova mi va bene raggruppare alla voce "calcari" le
seguenti litologie: "Calcari (Siluriano)" e "Calcari (Carbonifero)".

(1) Per prima cosa ho lanciato "db.connect", ecco lo script:

db.
connect driver=dbf database=$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/

(2)
Dopo di che con "v.db.addcol" ho creato la colonna "Lito"

v.db.addcol
map=Carta_Geologica_Nord_Italia@Alpi layer=1 'columns=Lito varchar
(99)'

(3) lancio "v.db.update"

considerando:
map =
Carta_Geologica_Nord_Italia
layer = 1
column = Lito
value = calcari

qcolumn = DESCR
where = Calcari (Siluriano) e Calcari (Carbonifero)

lancio quindi:

v.db.update map=Carta_Geologica_Nord_Italia@Alpi
layer=1 column=Lito value=Calcari qcolumn=DESCR 'where=Calcari
(Siluriano),Calcari (Carbonifero)'

da terminale leggo il seguente
messaggio di errore:

ERRORE: Either value or qcolumn parameter have to
be used

che interpreto come se devo usare sia "value" che "qcolumn" ed
evidentemente interpreto male, perchè ho usato sia "value" che
"qcolumn", probabilmente in maniera errata...

grazie fin da ora!!

marco

----Messaggio originale----
Da: lucadeluge@gmail.com
Data:
25/01/2012 22.19
A: "marco.donnini@tiscali.it"<marco.donnini@tiscali.
it>
Cc: "Mailing List Gfoss (ita)"<gfoss@lists.gfoss.it>
Ogg: Re:
[Gfoss] creare una mappa geologica semplificata (raggruppare categorie)

Il 25 gennaio 2012 18:08, marco.donnini@tiscali.it
<marco.
donnini@tiscali.it> ha scritto:

Ciao a tutti/e

ciao marco

qualcuno ha un'idea migliore??

beh almeno 2 o 3...
allora la prima
che mi viene in mente è caricare lo shape su un db
(spatialite o
postgis) e lavorare di li. con qualche query te la cavi
se no puoi
lavorare solo su grass e qui hai diverse scelte. La più
semplice
secondo me è caricare lo shape (prima però setta sqlite come
db
utilizzando db.connect)
Con sqlite puoi fare query più complesse che
con il dbf e perciò crei
una nuova colonna e qui con v.db.update crei
le categorie che ti
servono attraverso l'opzione where per i calcari
per esempio
where="nome_colonna LIKE 'calcari%' ". a questo punto ti
fai un bel
v.dissolve e hai ottenuto il file che ti serve
Con qgis e
gvsig si dovrebbe poter fare lo stesso ma non so darti una dritta

grazie mille!!

marco

--
ciao
Luca

http://gis.cri.fmach.
it/delucchi/
www.lucadelu.org

E' nata indoona: chiama, videochiama e messaggia Gratis. Scarica indoona per iPhone, Android e PC: http://www.indoona.com/

Il 26 gennaio 2012 11:31, marco.donnini@tiscali.it
<marco.donnini@tiscali.it> ha scritto:

Ciao Luca, grazie per le dritte.

ciao marco

(1) Per prima cosa ho lanciato "db.connect", ecco lo script:

db.
connect driver=dbf database=$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/

allora devi collegarti ad sqlite ed è meglio farlo prima di importare
il file shape

db.connect driver=sqlite database='$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite.db'

(2)
Dopo di che con "v.db.addcol" ho creato la colonna "Lito"

v.db.addcol
map=Carta_Geologica_Nord_Italia@Alpi layer=1 'columns=Lito varchar
(99)'

ok

(3) lancio "v.db.update"

considerando:
map =
Carta_Geologica_Nord_Italia
layer = 1
column = Lito
value = calcari

qcolumn = DESCR
where = Calcari (Siluriano) e Calcari (Carbonifero)

lancio quindi:

v.db.update map=Carta_Geologica_Nord_Italia@Alpi
layer=1 column=Lito value=Calcari qcolumn=DESCR 'where=Calcari
(Siluriano),Calcari (Carbonifero)'

questa non è corretta

v.db.update map=Carta_Geologica_Nord_Italia@Alpi
layer=1 column=Lito value=Calcari
where=" DESCR='Calcari(Siluriano)' OR DESCR='Calcari (Carbonifero)' ''

da terminale leggo il seguente
messaggio di errore:

ERRORE: Either value or qcolumn parameter have to
be used

che interpreto come se devo usare sia "value" che "qcolumn" ed
evidentemente interpreto male, perchè ho usato sia "value" che
"qcolumn", probabilmente in maniera errata...

si direi che l'errore è sbagliato..probabilmente è un refuso, penso
possa essere che le opzioni where e qcol non possono essere messe
assieme controllerò

grazie fin da ora!!

marco

--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org

2012/1/26 marco.donnini@tiscali.it <marco.donnini@tiscali.it>:
...

ho mai usati, pertanto mi sono orientato ad usare GRASS.

Bravo :slight_smile:

...

db.connect driver=dbf database=$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/

attenzione: va quotato con '...' (singole virgolette), altrimenti la
shell interpreta le variabili:

db.connect driver=dbf database='$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/'

Meglio credo SQLite però:

db.connect driver=sqlite database='$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite.db'

Il resto ha già spiegato Luca.

ciao
Markus

On 11:31 Thu 26 Jan , marco.donnini@tiscali.it wrote:

ERRORE: Either value or qcolumn parameter have to
be used

che interpreto come se devo usare sia "value" che "qcolumn"

either a or b significa o a o b, in alternativa
either a and b: sia a che b

comunque anch'io, come Luca, ho il dubbio che il messaggio sia
sbagliato: in genere è where che è incompatibile con qualunque altro
parametro di interrogazione.

Ciao,

Marco