<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Ciao a tutti,<br>
siccome questa e-mail di Sandro mi è piaciuta molto e mi pare molto
utile, l'ho ripubblicata nel mio blog:
<a class="moz-txt-link-freetext" href="https://ilsarrett.wordpress.com/2015/10/02/topologia-e-software-gfoss/">https://ilsarrett.wordpress.com/2015/10/02/topologia-e-software-gfoss/</a><br>
<br>
Ale<br>
<br>
<div class="moz-cite-prefix">On 02/10/2015 01:33, <a class="moz-txt-link-abbreviated" href="mailto:a.furieri@lqt.it">a.furieri@lqt.it</a>
wrote:<br>
</div>
<blockquote cite="mid:45c804d0a177e0b7097d34d772e68cc7@lqt.it"
type="cite">On Thu, 1 Oct 2015 11:31:20 -0700 (MST), nformica
wrote:
<br>
<blockquote type="cite">Ciao Roberto,
<br>
capisco che l'argomento è abbastanza complesso !
<br>
Ma proprio nell'ottica di capire un pò tutti qualcosa (... anche
chi non
<br>
sviluppa/programma), ti sarebbe possibile spiegarci con parole
più semplici
<br>
in cosa consiste la questione ??
<br>
Mi riferisco sopratutto, per chi è un semplice utente finale.
<br>
<br>
</blockquote>
<br>
Nino,
<br>
<br>
ci provo io a sintetizzare (si fa per dire ...) i termini della
<br>
questione nella forma piu' liscia e semplice di cui sono capace.
<br>
(avviso in anticipo: non saro' breve perche' la materia e' di per
<br>
se abbastanza complicata).
<br>
<br>
sostanzialmente dietro ad un unica etichetta "topologia" si
<br>
celano due interpretazioni (e due modelli concettuali) che
<br>
differiscono tra di se in modo abbastanza radicale.
<br>
<br>
<br>
"vera topologia"
<br>
----------------
<br>
scordati immediatamente concetti come Point, Linestring e Polygon,
<br>
e dimenticati pure il concetto di layer.
<br>
quelle sono le rappresentazioni "simple feature" delle geometrie,
<br>
e non hanno nulla a che vedere con il modello adottato dalla
<br>
"vera topologia".
<br>
<br>
in una "vera topologia" hai semplicemente un'unica superficie
<br>
infinita sulla quale si appoggiano oggetti Node, Edge e Face;
<br>
- un Node e' un punto notevole in cui si incontrano due o piu'
Edges
<br>
- un Edge e' un tratto di confine comune tra due Faces adiacenti
<br>
(pensa p.es. al confine italo-austriaco inteso come un'unica
linea
<br>
comune ad entrambi gli Stati).
<br>
- una Face e' una superficie delimitata da un certo numero di
Edges;
<br>
anche una topologia completamente vuota comprende una Face che
<br>
e' la "faccia universo", cioe' la superficie infinita stessa.
<br>
pensa p.es. alla penisola Italiana come territorio compreso tra
<br>
le linee di confine italo-francese, italo-svizzera,
italo-austriaca,
<br>
italo-slovena e la linea di costa; linea di costa che altro non
<br>
e' che una linea di confine (=Edge) con un lato sulla face
<br>
"penisola italiana" e l'altro lato sulla "face universe".
<br>
Sicilia e Sardegna saranno altre due Faces ancora, e saranno
<br>
semplicemente delimitate dalla linea di costa.
<br>
e cosi' via per tutte le altre isole minori, ciascuna delle
quali
<br>
formera' una Face indipendente; poi avrai le due "isole interne"
<br>
in corrispondenza della Citta' del Vaticno e di San Marino.
<br>
impasta tutto assieme ed ottieni il territorio della Repubblica
<br>
Italiana descritto nei termini "sbriciolati" di tanti Nodes,
Edges
<br>
e Faces.
<br>
fisicamente non avrai *mai* disegnato neppure un poligono: avrai
<br>
invece piazzato dei punti (Nodes) e tracciato delle linee
(Edges,
<br>
ossia tratti di confine); la dove uno o piu' Edges delimitano
<br>
una superficie chiusa avrai automaticamente definito una Face
<br>
e cosi' via.
<br>
<br>
ovviamente e' possibile creare una topologia a partire da un set
<br>
di Points/Linestrings/Polygons, ma per arrivarci serve tutta una
fase
<br>
di validazione (generalmente lunga e pesante).
<br>
altrettanto ovviamente e' possibile ricavare Points, Linestrings e
<br>
Polygons da una topologia: ma ancora una volte serve una
operazione
<br>
di trasformazione non del tutto banale.
<br>
<br>
naturalmente scordati di poter fare operazioni di editing tipo
<br>
"ho modificato l'Umbria"; per arrivare a quel risultato finale
<br>
dovrai sempre lavorare indirettamente sui vari Nodes/Edges che
<br>
delimitano la Face "Umbria", e solo alla fine di una sequenza piu'
<br>
o meno lunga di operazioni indirette sugli oggetti elementari
della
<br>
topologia potrai materialmente "vedere" il frutto dei tuoi sforzi
<br>
a livello della regione nel suo complesso.
<br>
pero' in compenso sarai sempre tassativamente certo che le tue
<br>
modifiche si rifletteranno sempre con rigorosa simmetria anche
<br>
su tutte quante le regioni confinanti (Toscana, Lazio, Marche).
<br>
ed avrai un altro possibile bonus: se disegni le tue faces al
<br>
livello piu' basso possibile (p.es. comuni), qualsiasi modifica
<br>
dei confini si propaghera' automaticmanete anche a tutti i livelli
<br>
gerarchici superiori (usl, comunita' montana, circondario,
<br>
distretto, provincia, regione, stato etc).
<br>
tutto in modo totalmente automatico e del tutto trasparente.
<br>
<br>
un po' di storia: il modello "vera topologia" node-edge-face venne
<br>
inizialmente introdotto da ESRI ArcINFO (oggi non piu'
disponibile);
<br>
continua invece ad essere attivamente supportato da GRASS GIS.
<br>
infine e' alla base del modello standard ISO/IEC 13249-3 (SQL MM),
<br>
ed in quest'ultima forma e' supportato da Oracle Spatial, da
<br>
PostGIS e prossimamente anche da SpatiaLite.
<br>
<br>
in parole spicciole: e' un approccio sicuramente "complicato",
<br>
abbastanza diverso dal classico "modello shapefile" che e' quello
<br>
probabilmente piu' familiare per te e per tantissimi altri.
<br>
altrettanto sicuramente e' un approccio robusto, solido, rigoroso,
<br>
supportato da una ricca teoria matematica alle spalle, ma
soprattutto
<br>
e' qualcosa che e' stato minuziosamente codificato e definito
<br>
formalmente da uno standard di livello internazionale.
<br>
<br>
<br>
"simil topologia" aka "topologia semplificata"
<br>
-----------------------------------------------
<br>
qualcosa di apparentemente simile si puo' ottenere in un modo
<br>
molto piu' semplice e facile da implementare.
<br>
basta introdurre semplicemente una griglia di snap obbligatoria
<br>
basata su celle di dimensioni a tua scelta: i punti ed i vertici
<br>
potranno stare solo *esattamente* la dove di trova un nodo della
<br>
griglia di riferimento.
<br>
se non e' cosi', ci pensera' il sw a spostare il punto sulla
<br>
posizione fissa piu' vicina.
<br>
(se vuoi, pensa al disegno col lapis sulla carta millimetrata:
<br>
devi sempre centrare un punto di incontro tra linea verticale
<br>
e linea orizzontale per potere piazzare un punto/vertice ... se
<br>
lo piazzi appena un po' spostato funzionera' come una magica
<br>
calamita che te lo riporta automaticamente nella posizione
"giusta")
<br>
<br>
bloccare le posizioni disponibili ad una griglia fissa piu' o
<br>
meno densa semplifica notevolmente il compito di stabilire se
<br>
due segmenti presi a caso sono realmente un'unica cosa oppure
<br>
due cose distinte, e quindi in ultima analisi semplifica il
<br>
compito di assicurare che due poligoni adiacenti "si tocchino"
<br>
in modo topologico corretto (cioe' senza sovrapposizioni e
<br>
senza neppure lasciare antipatiche striscioline "terra di
<br>
nessuno").
<br>
<br>
il modello concettuale "simil topologia via griglia" e' stato
<br>
inizialmente introdotto da ESRI ArcGIS sui suoi GeoDatabase.
<br>
ha il vantaggio che e' certamente meno "esoterico" dell'altro
<br>
modello node-edge-face, e sostanzialmente consente di continuare
<br>
ad utilizzare praticamente invariati quei concetti di layer
<br>
point/linestring/polygon cosi' rassicurantemente familiari
<br>
per tantissimi utenti.
<br>
naturalmente nella vita non esistono pasti gratis; qualsiasi
<br>
compromesso richiede inevitabilmente un qualche prezzo da pagare.
<br>
<br>
in questo caso quel che si guadagna in termini di apparente
<br>
semplicita' e facilita' d'uso lo si perde simmetricamente in
<br>
termini di robustezza e rigorosa consistenza.
<br>
e soprattutto lo si perde in termini di interscambio dati;
<br>
finira' inevitabilmente che ciascun utente/ente usera' le
<br>
proprie griglie definite a suo gusto personale, che mal si
<br>
adatteranno alle altre gliglie con passo diverso utilizzate
<br>
da altri utenti/enti.
<br>
<br>
<br>
un abbozzo di conclusione
<br>
-------------------------
<br>
non e' certo per caso se negli ambienti professionali high-end
<br>
si e' sempre preferito utilizzare un ben noto (e costoso)
<br>
Spatial DBMS proprietario basato su ISO 13249-3 per fare
<br>
topologia "seria".
<br>
oggi finalmente anche il sw GFOSS inizia ad essere in grado
<br>
di supportare decentemente bene ISO 13249-3; lo fa gia' oggi
<br>
PostGIS e lo fara' molto presto anche SpatiaLite, e tutto
<br>
sommato lo fa fin dalla notte dei tempi pure GRASS GIS che
<br>
comunque adotta un modello conforme Node-Edge-Face pur essendo
<br>
nato ben prima che vedesse la luce la specifica ISO 13249-3
<br>
tutti e tre assieme possoono utilmente cooperare e fare
<br>
intelligentemente qualche tipo di cross-impollinazione
<br>
spalleggiandosi a vicenda, visto che il modello concettuale
<br>
di riferimento e' sempre il solito.
<br>
<br>
proprio per questo pare decisamente in controtendenza andare
<br>
invece a cercare di recuperare l'altro approccio "via griglia"
<br>
che e' oggettivamente inferiore sotto un profilo puramente
<br>
tecnico e che oltre tutto non e' neppure supportato da uno
<br>
straccio di standard formale.
<br>
<br>
una volta tanto e' il sw FLOSS/GFOSS che guida saldamente la
<br>
corsa ben piazzato nel ristrettissimo plotoncino di testa;
<br>
noi siamo in grado di offrire fin da oggi la soluzione piu'
<br>
robusta e completa, quella che poggia su solide basi matematiche
<br>
e che e' rigorosamente conforme agli standard internazionali.
<br>
il nostro principale competitor proprietario oggi come oggi
<br>
non dispone di nessuna alternativa valida da mettere in campo;
<br>
ce l'aveva in anni passati, ma per sua libera scelta ha
<br>
preferito rottamarla (lasciandosi cosi' alle spalle non pochi
<br>
orfani e vedovi inconsolabili)
<br>
sarebbe veramente un grosso abbaglio cercare di inseguirlo sul
<br>
suo stesso terreno quando invece abbiamo tutto quel che serve
<br>
per sorpassarlo a pieni giri :-D
<br>
<br>
ciao Sandro
<br>
<br>
_______________________________________________
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Gfoss@lists.gfoss.it">Gfoss@lists.gfoss.it</a>
<br>
<a class="moz-txt-link-freetext" href="http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss">http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss</a>
<br>
Questa e' una lista di discussione pubblica aperta a tutti.
<br>
I messaggi di questa lista non hanno relazione diretta con le
posizioni dell'Associazione GFOSS.it.
<br>
786 iscritti al 30.9.2015<br>
</blockquote>
<br>
<div class="moz-signature">
<font face="courier,verdana,arial,sans-serif" size="2"
color="grey"> --
<p>Alessandro Sarretta</p>
<p>
skype/twitter: alesarrett<br>
Web: <a href="http://ilsarrett.wordpress.com">ilsarrett.wordpress.com</a>
</p>
<p>Research information:<br>
</p>
<ul>
<li><a
href="http://scholar.google.it/citations?user=IsyXargAAAAJ&hl=it">Google
scholar profile</a></li>
<li><a href="http://orcid.org/0000-0002-1475-8686">ORCID</a></li>
<li><a
href="https://www.researchgate.net/profile/Alessandro_Sarretta">Research
Gate</a></li>
<!-- <li><a href="https://impactstory.org/AlessandroSarretta">Impactstory</a></li> -->
<li><a href="https://impactstory.org/AlessandroSarretta"><img
src="cid:part5.06090904.09000207@gmail.com" width="80"></a></li>
</ul>
</font>
</div>
</body>
</html>