[Gfoss] R: Re: da character (99) a character (1) e conseguente problema in v.patch

marco.donnini a tiscali.it marco.donnini a tiscali.it
Gio 10 Maggio 2012 10:19:36 CEST


Ciao Markus,

grazie mille per la risposta... prima di rispondere c'è 
un info che potrebbe tornare utile: la mappa incriminata è una "clip" 
nel senso che avevo una grossa mappa alla quale ho tagliato solo la 
parte relativa alla svizzera. Ho il sospetto (ma non sono sicuro perchè 
non ricordo bene) che la clip l'ho fatta con QGIS (esporta mappa da 
grass -> importa in qgis -> clip -> importa in grass) perchè per le 
visualizzazioni e per altre operazioni preferisco lavorare in qgis.

In 
merito allle tue domande, andando per ordine:

(1) 

ho GRASS 6.4.1, il 
SO è Ubuntu su macchina virtuale in un pc nel quale c'è win 7.

(2) v.
db.connect -p

su una mappa che non mi fa problemi: 

GRASS 6.4.1 
(utm_wgs84_32):~ > v.db.connect -p Geo_Germany_lito_new_diss
Vector map 
<Geo_Germany_lito_new_diss a Alpi> is connected by:
layer <1> table 
<Geo_Germany_lito_new_diss> in database 
</home/marco/DATAGRASS/utm_wgs84_32/Alpi/sqlite.db> through driver 
<sqlite> with key <cat>

sulla mappa incriminata: 

GRASS 6.4.1 
(utm_wgs84_32):~ > v.db.connect -p Geo_Svizzera_Clip_Lito_New_Diss

Vector map <Geo_Svizzera_Clip_Lito_New_Diss a Alpi> is connected by:

layer <1> table <Geo_Svizzera_Clip_Lito_New_Diss> in database 
</home/marco/DATAGRASS/utm_wgs84_32/Alpi/sqlite.db> through driver 
<sqlite> with key <cat>

(3) v.info -h sulla mappa incriminata:

v.info 
-h Geo_Svizzera_Clip_Lito_New_Diss
COMMAND: v.in.ogr dsn="
/media/condivisa_win/mappe_e_cartografia/Carta Geologica Semplificata 
Alpi 
utm_wgs84_32/DEFINITIVO/LITO_NEW/Geo_Svizzera_Clip_Lito_New_Diss/Geo_Svizzera_Clip_Lito_New_Diss.
shp" output="Geo_Svizzera_Clip_Lito_New_Diss" min_area=0.0001 snap=-1

GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi 
USER: marco DATE: Fri Apr 27 16:55:37 2012

-----------------------------------------------------
4506 input 
polygons
Total area: 4.09794E+10 (4487 areas)
Overlapping area: 
0.0256803 (8 areas)
Area without category: 5.47818E+06 (2 areas)

---------------------------------------------------------------------------------

COMMAND: v.db.dropcol "--q" "column=cat_" 
"map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" "layer=1"
GISDBASE: 
/home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi USER: marco 
DATE: Fri Apr 27 17:00:56 2012

---------------------------------------------------------------------------------

COMMAND: v.db.addcol "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "columns=LITO_NEW_ varchar(99)"
GISDBASE: 
/home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi USER: marco 
DATE: Wed May  9 10:26:07 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW_" "value=WATER" "where=LITO_NEW='WATER'"

GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi 
USER: marco DATE: Wed May  9 10:28:15 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW_" "value=TRIAS" "where=LITO_NEW='TRIAS'"

GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi 
USER: marco DATE: Wed May  9 10:28:55 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW_" "value=PURE CARB" "where=LITO_NEW='PURE 
CARB'"
GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: 
Alpi USER: marco DATE: Wed May  9 10:29:34 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW_" "value=PRE TRIAS" "where=LITO_NEW='PRE 
TRIAS'"
GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: 
Alpi USER: marco DATE: Wed May  9 10:30:01 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW_" "value=NON CARB" "where=LITO_NEW='NON 
CARB'"
GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: 
Alpi USER: marco DATE: Wed May  9 10:30:24 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW_" "value=MIX CARB" "where=LITO_NEW='MIX 
CARB'"
GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: 
Alpi USER: marco DATE: Wed May  9 10:30:45 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW_" "value=DEBRIS" "where=LITO_NEW='DEBRIS'"

GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi 
USER: marco DATE: Wed May  9 10:31:19 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW_" "value=BG" "where=LITO_NEW='BG'"
GISDBASE: 
/home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi USER: marco 
DATE: Wed May  9 10:31:37 2012

---------------------------------------------------------------------------------

COMMAND: v.db.dropcol "--q" "column=LITO_NEW" 
"map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" "layer=1"
GISDBASE: 
/home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi USER: marco 
DATE: Wed May  9 10:32:02 2012

---------------------------------------------------------------------------------

COMMAND: v.db.addcol "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "columns=LITO_NEW varchar(99)"
GISDBASE: 
/home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi USER: marco 
DATE: Wed May  9 10:33:28 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW" "value=WATER" "where=LITO_NEW_='WATER'"

GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi 
USER: marco DATE: Wed May  9 10:34:05 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW" "value=TRIAS" "where=LITO_NEW_='TRIAS'"

GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi 
USER: marco DATE: Wed May  9 10:34:38 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW" "value=PURE CARB" "where=LITO_NEW_='PURE 
CARB'"
GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: 
Alpi USER: marco DATE: Wed May  9 10:34:57 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW" "value=PRE TRIAS" "where=LITO_NEW_='PRE 
TRIAS'"
GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: 
Alpi USER: marco DATE: Wed May  9 10:35:18 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW" "value=NON CARB" "where=LITO_NEW_='NON 
CARB'"
GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: 
Alpi USER: marco DATE: Wed May  9 10:35:36 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW" "value=MIX CARB" "where=LITO_NEW_='MIX 
CARB'"
GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: 
Alpi USER: marco DATE: Wed May  9 10:35:50 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW" "value=DEBRIS" "where=LITO_NEW_='DEBRIS'"

GISDBASE: /home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi 
USER: marco DATE: Wed May  9 10:36:20 2012

---------------------------------------------------------------------------------

COMMAND: v.db.update "map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" 
"layer=1" "column=LITO_NEW" "value=BG" "where=LITO_NEW_='BG'"
GISDBASE: 
/home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi USER: marco 
DATE: Wed May  9 10:36:34 2012

---------------------------------------------------------------------------------

COMMAND: v.db.dropcol "--q" "column=LITO_NEW_" 
"map=Geo_Svizzera_Clip_Lito_New_Diss a Alpi" "layer=1"
GISDBASE: 
/home/marco/DATAGRASS
LOCATION: utm_wgs84_32 MAPSET: Alpi USER: marco 
DATE: Wed May  9 10:39:48 2012


grazie mille!!
Marco


----Messaggio 
originale----
Da: neteler a osgeo.org
Data: 09/05/2012 23.13
A: "marco.
donnini a tiscali.it"<marco.donnini a tiscali.it>
Cc: "Mailing List Gfoss 
(ita)"<gfoss a lists.gfoss.it>
Ogg: Re: [Gfoss] da character (99) a 
character (1) e conseguente problema in v.patch

Ciao Marco,

2012/5/9 
marco.donnini a tiscali.it <marco.donnini a tiscali.it>:
> Ciao a tutti/e
>

> ho delle mappe che vorrei unire conservando le colonne
> attributi 
(usando quindi "v.patch" settando “copy also the attribute
> table”).


Quale versione di GRASS su quale OS usi?

> Ho delle mappe che hanno in 
attributo:
> cat integer (20)
> LITO_NEW character (99)

che dice

v.db.
connect -p la_tua_mappa
?

> una delle mie mappe però presenta (non so 
per
> quale motivo)
> cat integer (20)
> LITO_NEW character (1)

v.info 
-h questa_mappa

ti dice come è stata creata (per capire il 1 byte 
length).

> e di conseguenza
> non posso lanciare "v.patch" settando 
“copy also the attribute table”.
>
> decido quindi:
> (1) di lanciare 
"v.db.addcol" e creare una colonna
> LITO_NEW_ varchar (99)
> (2) con 
"v.db.update" copio gli attributi di
> LITO_NEW in LITO_NEW_
> (3) "g.
gui gui=wxpython" -> carico in GRASS la
> mappa -> tasto dx -> propietà 
-> gestione delle tabelle -> seleziona
> LITO_NEW -> tasto dx -> 
cancella la colonna selezionata...
> vedo che la
> mia LITO_NEW_ 
character (99) mi diventa LITO_NEW_ character (1)
>
>
> [l'idea era 
quella di creare nuovamente una LITO_NEW character (99),
> con "v.db.
update" copiare nuovamente gli attributi ed elminare
> LITO_NEW_, non 
so se mi sono spiegato...]

Spiegato benissimo... non dovrebbe ridurre 
su 1 byte. Mi puzza di SQLite
driver?

> che cosa non ho considerato
> 
nelle mie operazioni??
> cosa posso fare??

... darci le risposte sulle 
domande di sopra.
Poi speriamo di avere una risposta.

ciao
Markus





Invita i tuoi amici e Tiscali ti premia! Il consiglio di un amico vale più di uno spot in TV.Per ogni nuovo abbonato 30 € di premio per te e per lui! Un amico al mese e parli e navighisempre gratis: http://freelosophy.tiscali.it/


Maggiori informazioni sulla lista Gfoss