28 aprile, 2014 | di

Le relazioni in QGIS consentono di sviluppare dei casi d’uso applicativi molto interessanti; una delle ragioni del post è quella di contribuire alla diffusione della conoscenza del tema.

Il caso d’uso: le strade e la loro manutenzione

Immaginate di essere i gestori del network della rete stradale della vostra città e di volere utilizzare QGIS (insieme ad altri strumenti) per farlo. Avete quindi un layer cartografico con tutte le strade (e i relativi attributi) e la necessità di associare a questo il dataset delle manutenzioni che vengono realizzate nei vari componenti della rete.

A seguire vedremo come gestire la cosa con QGIS, le relazioni e con il comodo supporto delle maschere di input personalizzabili.

Chiavi e relazione

Per mettere in relazione il dataset delle manutenzioni con quello delle strade, potrete usare il meccanismo classico delle chiavi.

Il layer delle strade sarà caratterizzato da un campo con un codice identificativo numerico univoco per ogni strada – la chiave primaria - denominato nell’esempio di questo post “pkuid”.

Il database delle manutenzioni – che è una semplice tabella senza alcun attributo spaziale – è composto dai campi “PK_UID”, “data”, “responsabile”, “compagnia”, “note”; aggiungeremo un campo che contenga il codice identificativo della strada a cui la manutezione è riferita. Questo campo farà da chiave esterna e si chiamerà “ce_pkuid”.

Il nostro modello prevede, per semplicità, che ad ogni strada sia possibile associare una o più manutenzioni; una classica relazione 1:N impostata sulle due chiavi numeriche di cui sopra.

Layer

Il layer delle strade ha la struttura sottostante, in cui sono stati introdotti dei campi per raccogliere il nome della Via, il relativo tipo (Corso, Viale, Via, ecc.) e il codice identificativo comunale.

image02

Quello delle manutenzioni conterrà un codice identificativo numerico univoco per ogni elemento, un campo in cui inserire la data dell’intervento di manutenzione, il nome del responsabile, il nome della compagnia incaricata e un campo per le note.

image10

Definire la relazione

La relazione tra i due dataset si definisce a livello di “Proprietà di progetto”. Aperto il tab Relations si farà click su “Add Relation” e si imposteranno i seguenti parametri:

  • Name, per dare un nome alla relazione;
  • Referencing Layer (Child), per il nome del layer che contiene la chiave esterna;
  • Referencing Field, per il nome della chiave esterna;
  • Referencing Layer (Parent), per il nome del layer che contiene la chiave primaria;
  • Referencing Field, per il nome della chiave primaria;
  • Id, che viene usato internamente da QGIS, deve essere univoco e fa da indice della tabella di relazione tra chiave primaria e chiave esterna.

image00

A relazione definita, questa apparirà nella finestra di dialogo:

image03

Moduli

Una volta definita la relazione, se ne avrà evidenza anche nel modulo di inserimento/modifica degli attributi del dataset delle strade. La visualizzazione a moduli in QGIS è molto utile per alcuni task di verifica ed inserimento dei dati, ed è molto personalizzabile.

image05

La tabella della manutenzioni sarà visibile in un widget del modulo dello strade, e sopra questa saranno visibili cinque pulsanti:

  1. la matita, per attivare la modifica della tabella delle manutenzioni;
  2. il “+” per aggiungere un nuovo record alla tabella, che di default verrà associato all’elemento attivo del layer “strade”;
  3. il tasto “x” per cancellare il record selezionato della tabella “manutenzioni”;
  4. il tasto “catenella” che aprirà una nuova finestra di dialogo con il quale associare qualsiasi manutenzione presente alla strada corrente;
  5. il tasto “rompi catenella” che rimuoverà l’associazione tra la manutenzione selezionata e la strada corrente;
  6. ed infine, a destra, ci sono due pulsanti per passare dalla vista “tabella” a quella modulo.

Anche per il dataset delle manutenzioni è possibile attivare il modulo di inserimento/modifica degli attributi, in modo che dia conto visivamente della relazione con il layer delle strade.

A partire dalle proprietà del layer manutenzioni, bisognerà modificare il widget del campo che fa da chiave esterna.

image04

E scegliere come tipo di widget “Relation Reference”, utilizzando i parametri visibili nella figura sottostante:

image08

Una volta scelto questo speciale widget, sarà possibile leggere la relazione tra i due layer anche nel modulo delle manutezioni:

image06

Note finali (riferimenti, file esempio e video demo)

Questo articolo è quasi una traduzione di questo di Matthias Kuhn. Sono caduto nel suo bel blog, perché tra i tipi di widget accessibili nelle proprietà dei campi di un layer ho scoperto il tipo “Relation Reference”. A me era completamente ignoto; ho provato a cercare nella documentazione, senza però trovarne traccia. Il post di Matthias mi è sembrata una piccola perla e ho creduto utile clonarlo.

Da qui potrete scaricare un file di progetto d’esempio basato su QGIS 2.2 e come formato dati su SpatiaLite. Questo ultimo farà da contenitore unico sia del file spaziale (le strade), che della tabella delle manutenzioni.

Nel progetto, per i due moduli, ho impostato altri widget diversi da quello di default (“Line edit”); alcuni sono di grande comodità come quello per il campo “data” delle manutenzioni (widget di tipo “Calendar”), o l’elenco controllato del campo “Tipo” (widget di tipo “Value map”) del layer delle strade.

image01

Per chi vuole vedere la cosa in azione ho preparato un piccolo video, che non ha alcuna pretesa didattica. Vuole essere soltanto una carrelata visuale rapida di alcune delle cose descritte in questo post.

image07

Un’ultima annotazione finale: il caso d’uso descritto è molto semplificato e non tiene conto di tutte i requisiti di un’applicazione complessa come la gestione di un network stradale. Mi è stato utile come esempio per scrivere di QGIS, relazioni, moduli e widget.

NdR: Salvatore Fiandaca, prendendo spunto da questo post, ne ha creato una sorta di versione aggiornata che trovate qui. Ringraziamo Totò e consigliamo la lettura :)

19 settembre, 2011 | di

In questo post parlerò un po’ di TANTO, dei suoi autori e di come stanno insieme. Non sarà un contributo dei “nostri”, ma è in un certo senso necessario.
A giugno del 2011 questo spazio ha festeggiato il suo sesto compleanno e, come ho detto in altre occasioni, non avrei nemmeno immaginato di arrivare alla prima candelina; figuriamoci la sesta. Ogni anno, in corrispondenza della ricorrenza, vorrei sempre scrivere un post celebrativo, perché mi piacciono le cerimonie e soprattutto i rituali, perché fanno “un giorno diverso dagli altri giorni, un’ora dalle altre ore”. Ma non sono quasi mai riuscito a rispettare le date; almeno quelle ufficiali.
Per (mia) fortuna, almeno una volta all’anno, per una ragione o per un’altra, viene sempre un momento, in cui riesco a fissare sulla “nuvola” alcuni pensieri su questo cammino iniziato più di sei anni fa.
Non vi parlerò di TANTO come blog, delle sue statistiche di accesso, delle soddisfazioni professionali e personali che ci siamo tolti utilizzandolo come interfaccia con il mondo esterno. Non è poco, ma è riduttivo rispetto a quanto gli autori di TANTO hanno acquisito e costruito insieme: essere soprattutto una (piccola e sgangherata) comunità, un insieme di persone che hanno comunione di vita sociale (purtroppo soprattutto virtuale) e che condividono alcuni comportamenti e interessi. In questa ho avuto l’opportunità di crescere professionalmente e soprattutto umanamente, e continuo sempre a stupirmi di quanto siano robuste le cose che ci uniscono e di quanto mi stimolino quelle che ci dividono.
In questi sei anni siamo cresciuti in numero,  soprattutto siamo diventati un gruppo più sano e più maturo. Questo stato di salute ci da l’opportunità di avere una certa facilità nel creare bei rapporti con le persone, perché il benessere e il benestare sono in qualche modo contagiosi e magnetici. E anche noi siamo ovviamente sensibili al magnetismo.
Una di queste persone, con la quale da diverso tempo in qualche modo ci specchiamo, quest’estate – parlando della sua azienda – ci ha scritto:

L’ho costruita con questa idea, la condivisione, la libertà e il rispetto. Nella speranza di costruire una rete di persone delle quali fidarsi. Che non si muovano solo per una fattura, ma anche per un “bene” comune, senza pressioni, ognuno dando quello che sa fare meglio, quando può. E ancora oggi, nello scriverlo, sembra una cosa così semplice. E’ per quello che ci credo. E’ un “motto” semplice e incredibilmente potente.

Non si “vive” di queste frasi, ma incontrare questo tipo di persone, scambiare con loro idee e provare a creare insieme qualcosa di concreto, sicuramente fa stare meglio.
Abbiamo allora deciso di invitarla a fare parte della nostra tavola e ha accettato. Si tratta di Andrea Antonello e questo post vale anche come benvenuto ufficiale da parte di tutta la redazione.
Andrea non ha bisogno di presentazioni, è uno dei guru della geomatica italiana (e oltre), una “cintura nera” di Java, specializzato nello sviluppo di applicazioni spaziali. E’ il creatore (tra le altre cose) di JGrass e Geopaparazzi, ed uno dei soci di HydroloGIS.
Siamo in contatto da alcuni anni: al primo incontro “intenso” che abbiamo avuto (purtroppo soltanto una video conferenza di un’ora), mi colpì per una grandissima disponibilità e competenza. Con lui c’era la sua socia Silvia Franceschi, ed anche lei mostrò le medesime virtù.

In un post di alcuni fa in cui davo il benvenuto a Pietro, sostenevo che il successo di un Blog fosse avere un nuovo autore. Avere Andrea con noi sarà una grande risorsa per i nostri lettori, e quindi (per me) una conferma di questa tesi. Ma la cosa più bella, il successo che per ora mi sembra il più grande, è che questo gruppo ha creato le condizioni per cui tutto questo accadesse.

Tutto qui, poco, ma tanto.

23 marzo, 2009 | di
La mappa delle Scienze

Come ci raccontano gli autori nell’articolo pubblicato su PLoS ONE, è stata realizzata attraverso l’implementazione di un “modello clickstream” – una Catena di Markov di primo ordine – estraendo le sequenze di più di un miliardo di interazioni degli utenti dai log di siti web, biblioteche e riviste che si occupano a vario titolo di Scienze umane, mediche, matematiche, fisiche e naturali. L’interrelazione tra le varie discipline è stata ricostruita catalogando le citazioni esterne delle singole pubblicazioni.

Il modello clickstream è stato validato mediante confronto con il thesaurus di architettura e arte del Getty Research Institute. Il risultato è visualizzato come una rete che descrive le relazioni intercorrenti tra i vari settori scientifici e chiarisce le connessioni tra le scienze sociali, quelle umanistiche passando per le scienze naturali.

Ogni pallino della mappa rappresenta le singole riviste scientifiche, mentre i colori le grandi branche delle scienze, rosa e azzurro per fisica e chimica, verde biologia, rosso medicina, giallo e bianco invece scienze sociali ed umane, dulcis in fundo ocra scienze della terra e geografia.

Le cose che personalmente mi colpiscono sono innanzitutto il grande “ammasso stellare” centrale, ricco di citazioni indistinte che non è possibile far afferire a gruppi specifici, anche se ha come “satelliti” quelli delle scienze umane (in giallo e bianco). L’ammasso denota una grande vivacità di scritti e pubblicazioni proprio attorno a questa categoria scientifica, con la musica leggermente distante ma fortemente connessa.

Fisica e chimica (rosa e azzurro) costituiscono una galassia a sè, con grandi intrecci e numerose correlazioni tra esse, legata in qualche modo attraverso la biochimica (verde-azzurro) alle altre discipline, soprattutto le scienze ambientali (in verde), altro gruppo molto prolifico che ha grandeimportanza nel garantire l’interconnessione più trasversale tra tutte, con legami verso le altre grandi scienze.

Interessante invece notare come le svariate branche mediche (in rosso) risultino tra loro molto differenziate, dislocate in maniera più diffusa ai margini della “sciencesphere”, con frequenti connessioni con le scienze umane e sociali.

In un remoto angolino, con relazioni essenzialmente verso le scienze ambientali, sono relegate le scienze della terra, rappresentate da poco più di una decina di riviste.

Per quel che riguarda la geografia, la troviamo a metà strada proprio tra la geologia, le scienze naturali e collegata con la sua propaggine della geografia umana all’antropologia.

Concludo riflettendo come mappe di questo tipo siano una miniera enorme di informazioni, e meritino attente e ponderate riflessioni, che possono portare davvero verso strade difficilmente percorribili con altri strumenti.

19 aprile, 2008 | di

Questo Blog è nato quasi tre anni fa, per la voglia di testare questo mezzo di comunicazione e per quella di condividere esperienze.
TANTO nel tempo si è evoluto (spero in meglio), ha aumentato il suo numero di lettori ed è ancora in vita; questo per me è già un successo.

Quando questo blog farà il suo terzo compleanno, vorrei dedicargli un post, con la sua storia, le sue statistiche, i commenti più interessanti, l’email ricevute, i link in ingresso, e tutto quello che serve a valutare il successo di un sito. Ma più passa il tempo, più alcune di queste cose, mi sembrano meno importanti per la definizione di un successo “vero”.

La vita di un Blog è semplice: ha bisogno di un po’ di passione, di un po’ di tempo, di buoni contenuti e di lettori fidelizzati. E’ semplice definirla, ma non praticarla, specie se gli autori sono pochi e magari hanno giornate dense di impegni e di scadenze. I commenti dei lettori, i suggerimenti e le critiche, le citazioni dei contenuti, tutto ciò che è relazione e scambio con gli altri è linfa. Quando dopo una giornata di lavoro impegnativa, leggi un’email con un lettore che ti ringrazia e ti mette in difficoltà con una domanda inaspettata, passa la stanchezza e ti ritrovi a scrivere un post su FWtools all’alba. Ma c’è di meglio, e torniamo alle relazioni.

Otto mesi fa sono “caduto” dentro questo thread della mailing list italiana dedicata al software geografico libero e a codice sorgente aperto: GFOSS.it. L’autore era un tale PietroBlu (ho pensato il classico nick da smanettone informatico), ed il suo messaggio evidenziava come fosse sconveniente che un portale cartografico nazionale fosse aperto quasi esclusivamente all’accesso effettuato con software proprietario. Di quel messaggio mi piacquero i toni, la forma ed i contenuti. La cosa più bella fu a mio avviso, come spesso avviene nelle mailing list, lo sviluppo della discussione: si mescolarono argomentazioni tecniche ed etiche, che portarono all’invio di una lettera  ai gestori del portale cartografico citato nei vari messaggi. Questa lettera fu redatta proprio da PietroBlu, che ancora una volta mi colpì per stile, contenuti ed energia; pensai “tosto questo PietroBlu”.
Da quella discussione ne “gemmarono” altre, e lungo questo percorso io e Pietro ci siamo conosciuti un po’ meglio: dalla mailing list, a qualche commento su questo blog, dalla chat alle email.

Pietro nel tempo è diventato uno dei lettori più attenti di TANTO, sempre prodigo di complimenti e di stimoli. Chiude quasi sempre le email che mi scrive con un saluto antico e molto benaugurale: ad maiora. Nelle ultime settimane mi ha segnalato due prodotti molto interessanti, ed io – ringraziandolo – gli ho promesso che ci avrei scritto un post, non appena avessi avuto un po’ di tempo libero. Ma quando?

Il tempo passa e PietroBlu, allora mi tratta come il portale cartografico nazionale, e mi scrive un’email di “protesta”: “lo scrivo io il post su UUorld? lo scrivo io il post su TITAN?”. Questo è per me il successo di un blog: un lettore che stimo come persona e come professionista, e che nel tempo è diventato un amico, mi chiede di scrivere un post.

pietroblu Tutto questo per dire che dal 14 Aprile questo blog ha un nuovo autore: Pietro Blu Giandonato (è quello nella foto accanto). Magari ve ne eravate accorti, ma ci tenevo a evidenziarlo.

E come direbbe Pietro: ad maiora a tutti!!


TANTO non rappresenta una testata giornalistica ai sensi della legge n. 62 del 7.03.2001, in quanto non viene aggiornato con una precisa e determinata periodicita'. Pertanto, in alcun modo puo' considerarsi un prodotto editoriale.