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

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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@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@osgeo.org
Data: 09/05/2012 23.13
A: "marco.
donnini@tiscali.it"<marco.donnini@tiscali.it>
Cc: "Mailing List Gfoss
(ita)"<gfoss@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@tiscali.it <marco.donnini@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/