[GRASS-Italia] Re: problemi tesi e v.patch

Paolo Craveri pcraveri a gmail.com
Mer 1 Ago 2007 13:09:19 CEST


ciao.

Una parte del problema consiste in effetti nel merge di una serie di n
shapefiles e nell'import del risultato (merge) in GRASS.
v.append effettua il merge a due a due di vettoriali già facenti parte di un
mapset di GRASS, esportandoli prima in shapefile, usando ogr2ogr sui
shapefiles esportati e reimportando il risultato in GRASS (vedere lo script
di v.append).

Con l'intento di unire (merge NON TOPOLOGICO) n shapefiles prima  di ogni
import in GRASS ho messo giù lo script che allego e che spero possa essere
utile.

Il vettoriale risultato del merge potrà poi essere importato in GRASS con
v.in.ogr  facendo attenzione all'opzione -c (do not clean polygons) in
considerazione del fatto che gli shapefiles di partenza non sono corretti
(overlap).

Le condizioni ricordate da Leonardo (tabelle dei vettoriali di input con la
stessa struttura) devono essere verificate a priori.

ciao


Il 01/08/07, Leonardo Lami <lami a faunalia.it> ha scritto:
>
> Ciao Mauro,
> chiaramente la cosa non è semplice da spiegare perchè andrebbe un pò
> testata e via mail è un pò difficile.
> Intanto ti dico, ma mi sembra di capire che tu te ne sia accorto, che se
> usi v.patch con vettoriali che hanno confini comuni GRASS crea errori di
> topologia.
> Per ovviare a tale problema ti consiglio di scaricare lo scrpt v.append
> (http://www.public.asu.edu/~cmbarton/files/grass_scripts/v.append) e
> copiarlo nella cartella di script di GRASS (/usr/lib/grass/scripts)
>
> Aggiungi il nome del foglio in una nuova colonna e poi utilizzalo come
> un qualsiasi altro comando
> Prima però modificalo aggiungendo l'opzione -c al comando v.in.ogr
> ovvero tarsforma:
>
> #export GRASS vectors to shape files
> v.out.ogr input=$GIS_OPT_vect1 type=$GIS_OPT_vtype dsn="$TMP1"
> olayer=$GIS_OPT_vmerged layer=$GIS_OPT_vlayer
> v.out.ogr input=$GIS_OPT_vect2 type=$GIS_OPT_vtype dsn="$TMP2"
> olayer=$GIS_OPT_vmerged layer=$GIS_OPT_vlayer
>
> in:
>
> #export GRASS vectors to shape files
> v.out.ogr input=$GIS_OPT_vect1 type=$GIS_OPT_vtype dsn="$TMP1"
> olayer=$GIS_OPT_vmerged layer=$GIS_OPT_vlayer -c
> v.out.ogr input=$GIS_OPT_vect2 type=$GIS_OPT_vtype dsn="$TMP2"
> olayer=$GIS_OPT_vmerged layer=$GIS_OPT_vlayer -c
>
>
> Lo script effettua la stessa funzione di v.patch, ma in modo migliore,
> cosa fondamentale è però il fatto che i due vettori di input devono
> essere associati a tabelle con la stessa struttura (numero, nomi e tipo
> di campi).
>
> Spero che questo possa servire.
>
> Ciao
> Leonardo
>
>
>
> Mauro Mosso ha scritto:
> > Ciao ad entrambi, sperando adentemente che almeno uno dei due non sia
> > in ferie provo a scrivervi.
> >
> > Ho già mandato una richiesta sulla lista di grass la scorsa settimana
> > ma non ho ricevuto risposta e sono bloccato con il lavoro della tesi.
> >
> > Provo a girarla direttamente a voi sperando in un possibile aiuto.
> > Scusate ancora se approfitto, ma appena ci vediamo cercherò di
> > sdebitarmi con del buon vino piemontese.
> >
> > Ancora un nuovo problema con i PFT (complimenti a chi li ha costruiti
> > e digitalizzati!!!!!)
> >
> > Come ormai ben saprete mi trovo nella condizione di unire parecchi pft
> > di alcune vallate alpine. Siccome i fogli son una 40ina ho
> > implementato uno script ideato e creato da Paolo C.
> >
> > Avrete già visto alcune richieste di suggerimenti su questi maledetti
> > pft, ma ora mi trovo ad affrontare un nuovo problema:
> >     Siccome nell'unione di alcuni fogli si vengono a creare degli
> > errori di topologia ho l'esigenza di sapere il numero del foglio di
> > origine da cui sono partito. L'idea è stata quella di aggiungere una
> > colonna nel database associato alla geometria e fargli scrivere il
> > numero del foglio di appartenenza.
> >
> > Il problema è che quando uso v.patch il vect risultante nella sua
> > tabella associata ha perso il campo che avevo creato e riempito nelle
> > singole carte.   Se uso l'opzione v.patch -e quando mi fa il vect
> > risultante la tabella associata ha si il campo con il numero di carta
> > da cui proviene ma mi sballa completamente il valore della colonna cat.
> > Prima di unire ed aggiungere il campo n_carta faccio una
> > riclassificazione del campo cat da stringa a numerico.
> >
> > Vi allego il testo di una parte di script che ho implementato e il
> > file reclass.rec. Se a qualcuno servissero anche gli shapes me lo
> > faccia sapere così li spedisco.
> >
> > v.in.ogr dsn=/home/mauro/tesi/pft2/001200.SHP output=v_001200 -o
> > v.reclass input=v_001200 output=ric_v_001200
> > type=point,line,boundary,centroid
> > rules=/home/mauro/tesi/script_grass/reclass.rec --overwrite
> > v.dissolve input=ric_v_001200 layer=1 output=dis_ric_v_001200
> --overwrite
> >
> > v.db.addtable dis_ric_v_001200 columns="cat integer, n_carta
> varchar(20)"
> > v.db.connect -p map=dis_ric_v_001200 table=dis_ric_v_001200 key=cat
> > v.db.update map=dis_ric_v_001200 column=n_carta value='001200'
> >
> >
> > v.in.ogr dsn=/home/mauro/tesi/pft2/001201.SHP output=v_001201 -o
> > v.reclass input=v_001201 output=ric_v_001201
> > type=point,line,boundary,centroid
> > rules=/home/mauro/tesi/script_grass/reclass.rec --overwrite
> > v.dissolve input=ric_v_001201 layer=1 output=dis_ric_v_001201
> --overwrite
> >
> > v.db.addtable dis_ric_v_001201 columns="cat integer, n_carta
> varchar(20)"
> > v.db.connect -p map=dis_ric_v_001201 table=dis_ric_v_001201 key=cat
> > v.db.update map=dis_ric_v_001201 column=n_carta value='001201'
> >
> > v.patch input=pft_comlex_11,dis_ric_v_001229 output=p_pft_12 --overwrite
> >
> >
> > Grazie per l'aiuto. Mauro
> >
> >
> > --
> > ------
> > Mauro MOSSO - Consulenze faunistiche, ambientali e zootecniche
> > Via Inserra, 18 - 14020 CERRETO D'ASTI (AT)
> > Cell. +39 339 7944830      mauro.mosso a gmail.com
> > <mailto:mauro.mosso a gmail.com>
> > ------
>
> _______________________________________________
> GRASS-Italia mailing list
> GRASS-Italia a listserv.unipr.it
> http://listserv.unipr.it/mailman/listinfo/grass-italia
>



-- 
-- 
Craveri Paolo Livio

Lat. 44° 39' 11.08'' N  Long. 7° 23' 25.26'' E
-------------------------------------------------------------
Preferisco ricevere allegati in formato OpenDocument
http://it.wikipedia.org/wiki/OpenDocument
I prefer to receive attachments in OpenDocument format
http://en.wikipedia.org/wiki/OpenDocument
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://listserv.unipr.it/pipermail/grass-italia/attachments/20070801/e5bc0dfb/attachment.html 
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        mergeshp1.sh
Tipo:        application/x-sh
Dimensione:  2549 bytes
Descrizione: non disponibile
Url:         http://listserv.unipr.it/pipermail/grass-italia/attachments/20070801/e5bc0dfb/attachment.sh 


Maggiori informazioni sulla lista GRASS-Italia