[Gfoss] compilare QGIS-master su linux

a.furieri a lqt.it a.furieri a lqt.it
Ven 2 Ott 2015 01:33:19 CEST


On Thu, 1 Oct 2015 11:31:20 -0700 (MST), nformica wrote:
> Ciao Roberto,
> capisco che l'argomento è abbastanza complesso !
> Ma proprio nell'ottica di capire un pò tutti qualcosa (... anche chi 
> non
> sviluppa/programma), ti sarebbe possibile spiegarci con parole più 
> semplici
> in cosa consiste la questione ??
> Mi riferisco sopratutto, per chi è un semplice utente finale.
>

Nino,

ci provo io a sintetizzare (si fa per dire ...) i termini della
questione nella forma piu' liscia e semplice di cui sono capace.
(avviso in anticipo: non saro' breve perche' la materia e' di per
se abbastanza complicata).

sostanzialmente dietro ad un unica etichetta "topologia" si
celano due interpretazioni (e due modelli concettuali) che
differiscono tra di se in modo abbastanza radicale.


"vera topologia"
----------------
scordati immediatamente concetti come Point, Linestring e Polygon,
e dimenticati pure il concetto di layer.
quelle sono le rappresentazioni "simple feature" delle geometrie,
e non hanno nulla a che vedere con il modello adottato dalla
"vera topologia".

in una "vera topologia" hai semplicemente un'unica superficie
infinita sulla quale si appoggiano oggetti Node, Edge e Face;
- un Node e' un punto notevole in cui si incontrano due o piu' Edges
- un Edge e' un tratto di confine comune tra due Faces adiacenti
   (pensa p.es. al confine italo-austriaco inteso come un'unica linea
   comune ad entrambi gli Stati).
- una Face e' una superficie delimitata da un certo numero di Edges;
   anche una topologia completamente vuota comprende una Face che
   e' la "faccia universo", cioe' la superficie infinita stessa.
   pensa p.es. alla penisola Italiana come territorio compreso tra
   le linee di confine italo-francese, italo-svizzera, italo-austriaca,
   italo-slovena e la linea di costa; linea di costa che altro non
   e' che una linea di confine (=Edge) con un lato sulla face
   "penisola italiana" e l'altro lato sulla "face universe".
   Sicilia e Sardegna saranno altre due Faces ancora, e saranno
   semplicemente delimitate dalla linea di costa.
   e cosi' via per tutte le altre isole minori, ciascuna delle quali
   formera' una Face indipendente; poi avrai le due "isole interne"
   in corrispondenza della Citta' del Vaticno e di San Marino.
   impasta tutto assieme ed ottieni il territorio della Repubblica
   Italiana descritto nei termini "sbriciolati" di tanti Nodes, Edges
   e Faces.
   fisicamente non avrai *mai* disegnato neppure un poligono: avrai
   invece piazzato dei punti (Nodes) e tracciato delle linee (Edges,
   ossia tratti di confine); la dove uno o piu' Edges delimitano
   una superficie chiusa avrai automaticamente definito una Face
   e cosi' via.

ovviamente e' possibile creare una topologia a partire da un set
di Points/Linestrings/Polygons, ma per arrivarci serve tutta una fase
di validazione (generalmente lunga e pesante).
altrettanto ovviamente e' possibile ricavare Points, Linestrings e
Polygons da una topologia: ma ancora una volte serve una operazione
di trasformazione non del tutto banale.

naturalmente scordati di poter fare operazioni di editing tipo
"ho modificato l'Umbria"; per arrivare a quel risultato finale
dovrai sempre lavorare indirettamente sui vari Nodes/Edges che
delimitano la Face "Umbria", e solo alla fine di una sequenza piu'
o meno lunga di operazioni indirette sugli oggetti elementari della
topologia potrai materialmente "vedere" il frutto dei tuoi sforzi
a livello della regione nel suo complesso.
pero' in compenso sarai sempre tassativamente certo che le tue
modifiche si rifletteranno sempre con rigorosa simmetria anche
su tutte quante le regioni confinanti (Toscana, Lazio, Marche).
ed avrai un altro possibile bonus: se disegni le tue faces al
livello piu' basso possibile (p.es. comuni), qualsiasi modifica
dei confini si propaghera' automaticmanete anche a tutti i livelli
gerarchici superiori (usl, comunita' montana, circondario,
distretto, provincia, regione, stato etc).
tutto in modo totalmente automatico e del tutto trasparente.

un po' di storia: il modello "vera topologia" node-edge-face venne
inizialmente introdotto da ESRI ArcINFO (oggi non piu' disponibile);
continua invece ad essere attivamente supportato da GRASS GIS.
infine e' alla base del modello standard ISO/IEC 13249-3 (SQL MM),
ed in quest'ultima forma e' supportato da Oracle Spatial, da
PostGIS e prossimamente anche da SpatiaLite.

in parole spicciole: e' un approccio sicuramente "complicato",
abbastanza diverso dal classico "modello shapefile" che e' quello
probabilmente piu' familiare per te e per tantissimi altri.
altrettanto sicuramente e' un approccio robusto, solido, rigoroso,
supportato da una ricca teoria matematica alle spalle, ma soprattutto
e' qualcosa che e' stato minuziosamente codificato e definito
formalmente da uno standard di livello internazionale.


"simil topologia" aka "topologia semplificata"
-----------------------------------------------
qualcosa di apparentemente simile si puo' ottenere in un modo
molto piu' semplice e facile da implementare.
basta introdurre semplicemente una griglia di snap obbligatoria
basata su celle di dimensioni a tua scelta: i punti ed i vertici
potranno stare solo *esattamente* la dove di trova un nodo della
griglia di riferimento.
se non e' cosi', ci pensera' il sw a spostare il punto sulla
posizione fissa piu' vicina.
(se vuoi, pensa al disegno col lapis sulla carta millimetrata:
devi sempre centrare un punto di incontro tra linea verticale
e linea orizzontale per potere piazzare un punto/vertice ... se
lo piazzi appena un po' spostato funzionera' come una magica
calamita che te lo riporta automaticamente nella posizione "giusta")

bloccare le posizioni disponibili ad una griglia fissa piu' o
meno densa semplifica notevolmente il compito di stabilire se
due segmenti presi a caso sono realmente un'unica cosa oppure
due cose distinte, e quindi in ultima analisi semplifica il
compito di assicurare che due poligoni adiacenti "si tocchino"
in modo topologico corretto (cioe' senza sovrapposizioni e
senza neppure lasciare antipatiche striscioline "terra di
nessuno").

il modello concettuale "simil topologia via griglia" e' stato
inizialmente introdotto da ESRI ArcGIS sui suoi GeoDatabase.
ha il vantaggio che e' certamente meno "esoterico" dell'altro
modello node-edge-face, e sostanzialmente consente di continuare
ad utilizzare praticamente invariati quei concetti di layer
point/linestring/polygon cosi' rassicurantemente familiari
per tantissimi utenti.
naturalmente nella vita non esistono pasti gratis; qualsiasi
compromesso richiede inevitabilmente un qualche prezzo da pagare.

in questo caso quel che si guadagna in termini di apparente
semplicita' e facilita' d'uso lo si perde simmetricamente in
termini di robustezza e rigorosa consistenza.
e soprattutto lo si perde in termini di interscambio dati;
finira' inevitabilmente che ciascun utente/ente usera' le
proprie griglie definite a suo gusto personale, che mal si
adatteranno alle altre gliglie con passo diverso utilizzate
da altri utenti/enti.


un abbozzo di conclusione
-------------------------
non e' certo per caso se negli ambienti professionali high-end
si e' sempre preferito utilizzare un ben noto (e costoso)
Spatial DBMS  proprietario basato su ISO 13249-3 per fare
topologia "seria".
oggi finalmente anche il sw GFOSS inizia ad essere in grado
di supportare decentemente bene ISO 13249-3; lo fa gia' oggi
PostGIS e lo fara' molto presto anche SpatiaLite, e tutto
sommato lo fa fin dalla notte dei tempi pure GRASS GIS che
comunque adotta un modello conforme Node-Edge-Face pur essendo
nato ben prima che vedesse la luce la specifica ISO 13249-3
tutti e tre assieme possoono utilmente cooperare e fare
intelligentemente qualche tipo di cross-impollinazione
spalleggiandosi a vicenda, visto che il modello concettuale
di riferimento e' sempre il solito.

proprio per questo pare decisamente in controtendenza andare
invece a cercare di recuperare l'altro approccio "via griglia"
che e' oggettivamente inferiore sotto un profilo puramente
tecnico e che oltre tutto non e' neppure supportato da uno
straccio di standard formale.

una volta tanto e' il sw FLOSS/GFOSS che guida saldamente la
corsa ben piazzato nel ristrettissimo plotoncino di testa;
noi siamo in grado di offrire fin da oggi la soluzione piu'
robusta e completa, quella che poggia su solide basi matematiche
e che e' rigorosamente conforme agli standard internazionali.
il nostro principale competitor proprietario oggi come oggi
non dispone di nessuna alternativa valida da mettere in campo;
ce l'aveva in anni passati, ma per sua libera scelta ha
preferito rottamarla (lasciandosi cosi' alle spalle non pochi
orfani e vedovi inconsolabili)
sarebbe veramente un grosso abbaglio cercare di inseguirlo sul
suo stesso terreno quando invece abbiamo tutto quel che serve
per sorpassarlo a pieni giri :-D

ciao Sandro



Maggiori informazioni sulla lista Gfoss