[Gfoss] aiuto: unire attributi di due shape

salve,
cerco di fare capire cosa vorrei fare:

ho uno layer di punti
a questo layer vorrei unire degli attributi di un altro layer (su cui ricadono questi punti).

Es.: ho dei punti, vorrei sapere in automatico (creando un nuovo dato) in quale Comune ricadono (ho ad esempio lo shape dei limiti comunali della mia provincia)

Non so se sono stato chiaro e chiedo scusa per questo.

saluti
Maurizio Marrese
FG

PS: probabilmente fTOOLS lo fa… :wink:

Join by location?
menu vector.

Il giorno lun, 20/06/2011 alle 13.02 +0200, Maurizio Marrese ha
scritto:

salve,
cerco di fare capire cosa vorrei fare:

ho uno layer di punti
a questo layer vorrei unire degli attributi di un altro layer (su cui
ricadono questi punti).

Es.: ho dei punti, vorrei sapere in automatico (creando un nuovo dato)
in quale Comune ricadono (ho ad esempio lo shape dei limiti comunali
della mia provincia)

Non so se sono stato chiaro e chiedo scusa per questo.

saluti
Maurizio Marrese
FG

PS: probabilmente fTOOLS lo fa... :wink:
_______________________________________________
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.
518 iscritti al 3.6.2011

--
Paolo Cavallini: http://www.faunalia.it/pc

Il 20 giugno 2011 13:02, Maurizio Marrese <maurizio.marrese@gmail.com>
ha scritto:

salve,
cerco di fare capire cosa vorrei fare:

ho uno layer di punti
a questo layer vorrei unire degli attributi di un altro layer (su cui
ricadono questi punti).

con grass (spero anche tramite il plugin di qgis)

v.what.vect (se l'altro layer è vettoriale)
v.what.rast (se l'altro layer è raster)

saluti
Maurizio Marrese
FG

--
ciao
Luca

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

Salve a tutti. Devo portare a termine questa operazione: ho un elenco di indirizzi, in formato testo, disposto in righe. Ogni blocco di indirizzi è fatto così:
1 -- Nome oggetto
2 -- indirizzo cap citta (PROV)
3 -- tel fax email
vorrei disporlo in colonne in modo da avere una info per colonna:
nome oggetto | indirizzo | cap | citta | prov | tel | fax | email
  per poi darlo in pasto ad es. al plugin mmqgis per fare il geocoding.

Ho iniziato a smacchinarlo con gedit e cerca/sostituisci, ma così facendo mi rimane ancora un sacco di lavoro manuale da fare.

Qualche suggerimento per velocizzare il lavoro, magari con sed/grep/awk?

Grazie

Ciao Giuseppe,

di solito queste cose le faccio in AWK perchè è stato il primo tool del
genere che ho imparato ad usare; molti storcerebbero il naso e ti
direbbero di usare perl o python.

In AWK per leggere un input multiriga puoi utilizzare delle variabili
per i diversi campi alle quali assegni il valore nel blocco di codice
triggerato da un opportuno pattern.

La scrittura della riga avviene nel blocco di codice triggerato dal
"pattern di chiusura", ovvero dalla regexp che identifica l'ultima riga,
e anche dal pattern END, nel caso la chiusura non sia rilevabile da un
pattern ma dalla semplice fine del file.

I pattern che usi per identificare le righe possono essere semplici
(\^Nome:\) o complessi a seconda di come sono le righe, se hanno una
intestazione fissa dei campi o se contengono solo le informazioni.

Puoi anche usare dei contatori di riga se l'input è organizzato in
"record" con numero fisso di righe.

Se però non hai mai usato AWK, spiegato così può risultare di difficile
comprensione.

Se non ne vieni a capo postaci qualche riga di dati.

Buon lavoro

Sig

Il giorno lun, 20/06/2011 alle 15.38 +0200, Patti Giuseppe ha scritto:

Salve a tutti. Devo portare a termine questa operazione: ho un elenco di
indirizzi, in formato testo, disposto in righe. Ogni blocco di indirizzi
è fatto così:
1 -- Nome oggetto
2 -- indirizzo cap citta (PROV)
3 -- tel fax email
vorrei disporlo in colonne in modo da avere una info per colonna:
nome oggetto | indirizzo | cap | citta | prov | tel | fax | email
  per poi darlo in pasto ad es. al plugin mmqgis per fare il geocoding.

Ho iniziato a smacchinarlo con gedit e cerca/sostituisci, ma così
facendo mi rimane ancora un sacco di lavoro manuale da fare.

Qualche suggerimento per velocizzare il lavoro, magari con sed/grep/awk?

Grazie
_______________________________________________
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.
518 iscritti al 3.6.2011

_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

On Mon, 20 Jun 2011 16:10:35 +0200
"Luca Sigfrido Percich" <sigfrido@tiscali.it> wrote:

Ciao Giuseppe,

di solito queste cose le faccio in AWK perchè è stato il primo tool
del genere che ho imparato ad usare; molti storcerebbero il naso e ti
direbbero di usare perl o python.

infatti (ciao Sig :-)): in perl (anche in python) c'e' la funzione
split che divide una stringa in substringhe usando il carattere che vuoi
(blank, tab,ecc);

leggi il campo e lo dividi come ti serve; se ti servisse memorizzarlo
hai i moduli perl (e python) per connetterti al server RDBMS
e aggiornare i campi di una tabella gia' preparata;

ovviamente mi riferisco ad uno script autonomo con cui aggiornare
l'archivio che hai; puo' darsi sia possibile farlo con comandi SQL
all'interno di qGis, ma la mia conoscenza di uno e dell'altro e'
troppo scarsa per aiutari :-(((

Buon lavoro

Sig

ciao,
giuliano

Ciao a tutti,

dimenticavo di aggiungere, per chi non conosce AWK, che si tratta di una
utility molto comoda se il testo è già di per sé diviso in campi (che
vengono separati automaticamente) e per righe alle quali è possibile
applicare dei filtri. In questo caso il codice è essenzialmente
dichiarativo, la parte procedurale è ridotta a poche istruzioni print.

Se invece le righe, per la complessità delle informazioni che
contengono, devono essere ulteriormente processate usando funzioni
regexp, e le funzioni di filtro native devono essere integrate con
ulteriori controlli, allora la parte procedurale del codice aumenta e
tanto vale dare retta a chi storce il naso e consiglia perl o
python :)))

Buon lavoro

Sig

Il giorno lun, 20/06/2011 alle 17.18 +0200, giuliano ha scritto:

On Mon, 20 Jun 2011 16:10:35 +0200
"Luca Sigfrido Percich" <sigfrido@tiscali.it> wrote:

> Ciao Giuseppe,
>
> di solito queste cose le faccio in AWK perchè è stato il primo tool
> del genere che ho imparato ad usare; molti storcerebbero il naso e ti
> direbbero di usare perl o python.

infatti (ciao Sig :-)): in perl (anche in python) c'e' la funzione
split che divide una stringa in substringhe usando il carattere che vuoi
(blank, tab,ecc);

leggi il campo e lo dividi come ti serve; se ti servisse memorizzarlo
hai i moduli perl (e python) per connetterti al server RDBMS
e aggiornare i campi di una tabella gia' preparata;

ovviamente mi riferisco ad uno script autonomo con cui aggiornare
l'archivio che hai; puo' darsi sia possibile farlo con comandi SQL
all'interno di qGis, ma la mia conoscenza di uno e dell'altro e'
troppo scarsa per aiutari :-(((

_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

On 16:10 Mon 20 Jun , Luca Sigfrido Percich wrote:

di solito queste cose le faccio in AWK

Suggerisco alcune guide su awk:

http://digilander.libero.it/jacknake/informatica/manipolazione-testo.html
http://www.linuxfocus.org/Italiano/September1999/article103.html
http://www.grymoire.com/Unix/Awk.html
http://www.gnu.org/software/gawk/manual/gawk.html

Io userei sed (più facile) per mettere i campi in una sola riga
http://digilander.libero.it/jacknake/informatica/manipolation-text/lavori-sed/guida-sed01.html
(vedi il par. 12), e poi awk per separare i campi.

Ciao,
  Marco

altre utili guide su Sed:

http://www.grymoire.com/Unix/Sed.html
http://www.gnu.org/software/sed/manual/index.html

Marco

Grazie, a tutti!

Il 20/06/2011 18:23, Marco Curreli ha scritto:

altre utili guide su Sed:

http://www.grymoire.com/Unix/Sed.html
http://www.gnu.org/software/sed/manual/index.html

Marco

_______________________________________________
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.
518 iscritti al 3.6.2011

sono contento che ogni tanto emerga spazio di recupero delle care vecchie utility…

con grep, sed, e awk - si fa sia tant’ che poc’

con sed , awk e grep, si fa 'o rock come 'o rap

con awk, grep, e sed, si fa il blue, il green e il red

W grep, sed, awk … e anche xargs.

buona giornata!

andrea
http://www.pibinko.org

Il giorno 21 giugno 2011 08:35, Patti Giuseppe <geognu@infinito.it> ha scritto:

Grazie, a tutti!
…

...90 minuti di applausi!

:slight_smile:

PS Grazie a Macro per gli utilissimi links

Sig

Il giorno mar, 21/06/2011 alle 08.40 +0200, andrea giacomelli ha
scritto:

sono contento che ogni tanto emerga spazio di recupero delle care
vecchie utility...

con grep, sed, e awk - si fa sia tant' che poc'

con sed , awk e grep, si fa 'o rock come 'o rap

con awk, grep, e sed, si fa il blue, il green e il red

W grep, sed, awk ... e anche xargs.

_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

Dopo diversi "mumble mumble", e alcune ricerche in rete, sono pervenuto
alla seguente conclusione:

sed -e 's/^$/@/g' -e 's/[A-Za-z0-9]$/&%/g' prova.txt | tr -d \\n | tr @ \\n > prova2.txt

dove % è il separatore di campo da usare con awk

Marco

Ciao Marco,

la tua elegante soluzione si basa sul presupposto che:

- record diversi siano separati da 1 riga vuota (^$).
- l'ordine delle righe sia sempre lo stesso, e non ci siano buchi;

ovvero:

campo1: valore1a
campo2: valore2a
campo3: valore3a

campo1: valore1b
campo2: valore2b
campo3: valore3b

campo1...

Nel caso di record con campi opzionali o multiriga, tipo

campo1: valore1b
campo3: valore3b (e manca il campo2)
  valore3c a capo
  valore3d a capo...

come per esempio potresti avere in un report di stampa,

la soluzione con sed risulta difficile e conviene far digerire
direttamente ad awk il file originale.

Sig

Il giorno mar, 21/06/2011 alle 23.49 +0200, Marco Curreli ha scritto:

sed -e 's/^$/@/g' -e 's/[A-Za-z0-9]$/&%/g' prova.txt | tr -d \\n | tr
@ \\n > prova2.txt

_____________
PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).

PRIVACY
Le informazioni contenute in questo messaggio sono riservate e confidenziali. Il loro utilizzo e' consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo dal Suo Sistema e a distruggere le varie copie o stampe, dandone gentilmente comunicazione all’indirizzo mail del mittente. Ogni utilizzo improprio e' contrario ai principi del D.lgs 196/03 e alla legislazione europea (Direttiva 2002/58/CE).