Ciao a tutti.
Sto riscontrando numerosi problemi per quanto riguarda la costruzione di uno strato poligonale partendo da uno strato lineare. Le linee che utilizzo sono di tipo Linestring ZM (st_geometrytype(geometry)) e dove si intersecano, o sono spezzate o sono perfettamente "snappate" ad un vertice (eseguiti tutti i controlli di GRASS v.clean); partendo da queste linee vorrei produrre uno strato poligonale 3D. Le linee sono caricate all'interno di un db SpatiaLite. Vi chiedo consiglio perché attraverso tutti gli strumenti che ho provato non sono riuscito ad avere un risultato accettabile. Ho provato con la funzione "lines to polygons" di QGIS e il risultato è stato pessimo, ho provato con la funzione "polygonize" contenuta all'interno del tool box ed il risultato a livello di copertura dei poligoni è stato molto buono peccato che partendo da linee 3D mi ha restituito poligoni 2D, ho provato con delle funzioni geometriche tipo st_buildarea, st_poligonize o st_makepolygon ma anche in questo caso i risultati sono stati molto poco soddisfacenti (sospetto per mia incapacità nello scrivere la query correttamente). Comunque da tutte queste prove la funzione che più si avvicina al risultato da me sperato è il tool poligonize peccato che mi restituisce poligoni 2D. Ho provato con ArcGis che ha generato dei perfetti poligoni 3D coerenti con le linee di partenza. Avete qualche consiglio da darmi? Grazie a tutti in anticipo. -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 801 iscritti al 19/07/2017 |
On Wed, 29 Nov 2017 08:08:44 -0700 (MST), titino2 wrote:
> Ciao a tutti. > Sto riscontrando numerosi problemi per quanto riguarda la costruzione > di uno > strato poligonale partendo da uno strato lineare. > Le linee che utilizzo sono di tipo Linestring ZM > (st_geometrytype(geometry)) > e dove si intersecano, o sono spezzate o sono perfettamente > "snappate" ad un > vertice (eseguiti tutti i controlli di GRASS v.clean); partendo da > queste > linee vorrei produrre uno strato poligonale 3D. > ciao Titino2, (visto che non ti firmi ti chiamero' con il nome della tua mailbox), c'e' un punto che non mi e' del tutto chiaro. quando tu dici "dove si intersecano o sono spezzate o sono perfettamente snappate ad un vertice" intendi dire che ti stai aspettando che vengano applicati automaticamente tutta una serie di "tagli" la dove ci sono intersezioni tra i tuoi Linestrings ? sarebbe importante chiarire meglio, perche' come vedremo tra poco non si tratta affatto di un dettaglio irrilevante. > Le linee sono caricate all'interno di un db SpatiaLite. > questo dettaglio e' praticamente irrilevante; quello che e' invece assolutamente critico e' identificare con chiarezza quale sw stai usando per le tue elaborazioni: - quando parli di strumenti e tool box di QGIS ovviamente stai usando QGIS; il fatto che poi alla fine i dati vadano a finire dentro ad un DB spatialite oppure dentro ad uno shapefile o che altro non puo' avere nessuna influenza. - quando invece parli di funzioni SQL e di query allora stai realmente usando SpatiaLite, ed in questo caso usare o meno QGIS e' del tutto irrilevante. io ti rispondero' solo ed esclusivamente per quanto riguarda SpatiaLite. > ho provato con delle funzioni geometriche tipo st_buildarea, > st_poligonize o > st_makepolygon ma anche in questo caso i risultati sono stati molto > poco > soddisfacenti (sospetto per mia incapacità nello scrivere la query > correttamente). > ok, queste sono effettivamente funzione SQL di SpatiaLite. occhio pero' che sono molto diverse l'una dall'altra, non le puoi certo usare a capocchia come se fossero la stessa cosa. ti confermo comunque che tutte loro rispettano fedelmente le dimensioni che ricevono in input, ragion per cui se i tuoi Linestrings sono XYZM anche i Polygons in output saranno altrettanto XYZM. dettagli fortemente critici (specie nel tuo caso): - la ST MakePolygon() si limita semplicemente a trasformare i Linestrings "chiusi" (con il primo vertice esattamente sovrapposto all'ultimo) in Rings e quindi in Polygons. ma se i tuoi Linestrings non sono gia' di per se "chiusi" la ST_MakePolygon() ti tornera' semplicemente dei NULL. quindi in base alle scarne notizie che ci hai dato, direi proprio che la ST_MakePolygon() non puo' essere la soluzione giusta per il tuo problema. - la ST_BuildArea() e' un po' piu' sofisticata; se gli passi tanti "pezzettini stagliuzzati" prova a riassemblarli in modo tale da formare dei Rings, e quindi dei Polygons. Attenzione pero': i "pezzettini" devono essere gia' tagliati a monte, perche' la ST_BuildArea() di per se non taglia mai nulla (per definizione), si limita semplicemente a riassemblare i Linestrings esattamente per come li ha ricevuti. Se non ci riesce (per esempio perche' ancora ci sono delle intersezioni non tagliate, oppure perche' "avanzano pezzi inutilizzati") ovviamente fallisce. - infine c'e' la ST_Polygonize() che e' molto simile alla ST_BuildArea() eccetto che e' una funzione _AGGREGATA_, cioe' non lavora riga per riga ma elabora tutte le righe del dataset di input in un sol colpo. detto in soldoni: alla fine ti ritornera' un _SINGOLO_ MultiPolygon, che tu dovrai pazientemente risolvere in tanti Poligoni elementari (ma lo puoi fare abbastanza facilmente chiamando la ElementaryGeometries). se ho capito correttamente il tuo problema e' questa la funzione che fa al caaso tuo (previo "stagliuzzamento" preventivo) insomma, queste funzioni fanno esattamente quello che ti aspetti da un classico approccio coerente di tipo SQL: - evitano accuratamente di fare "magie nere" full-auto in cui non si capisce mai come siamo arrivati al risultato finale in un unico passaggio. - fanno invece tanti piccoli passettini elementari, molto piu' facili da tenere sotto rigoroso controllo uno alla volta. ovviamente e' un approccio piu' flessibile, ma richiede uno sforzo piu' grande da parte dell'utente per produrre i risultati sperati. > Comunque da tutte queste prove la funzione che più si > avvicina al risultato da me sperato è il tool poligonize peccato che > mi > restituisce poligoni 2D. Ho provato con ArcGis che ha generato dei > perfetti > poligoni 3D coerenti con le linee di partenza. > Avete qualche consiglio da darmi? > consiglio #1 ============ prova a tagliare preventivamente tutti i tuoi Linestrings la dove ci sono delle intersezioni; prova a dare un'occhiata alla ST_LinesCutAtNodes(), potrebbe semplificarti il lavoro. dopo di che darai tutto in pasto alla ST_Polygonize() che provedera' a ricostruire tutti i Polygons (che naturalmente saranno XYZM se i Linestrings di partenza erano XYZM). consiglio #2 ============ l'approccio di cui sopra non e' per nulla rigoroso, e ti sconsiglio di usarlo a meno che il tuo dataset non sia particolarmente semplice, liscio, pulito e ben strutturato. il modo giusto e rigoroso per affrontare il tuo problema e' quello di alimentare una Topologia; in questo modo sarai assolutamente sicuro di potere risolvere anche le casistiche piu' complesse ed intricate. naturalmente usare una Topologia fa salire (e di molto) l'asticella della complessita'. se te la senti puoi dare un'occhiata alla nuovissima Topologia di SpatiaLite: https://www.gaia-gis.it/fossil/libspatialite/wiki?name=ISO+Topology controindicazioni: la Topologia ISO supporta solo il 2D (XY) ed il 3D (XYZ), ma non il 4D (XYZM, come nel tuo caso). ciao Sandro _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 801 iscritti al 19/07/2017 |
Gentilissimo Sandro,
mi chiamo Luca e ho abbastanza dimestichezza con gli strumenti di ArcGis e visto il fascino e la diffusione degli Opensource sto cercando di prendere confidenza con QGIS e tutto cio che gli ruota intorno. Sandro, ti ringrazio per le dritte, le spiegazioni e non meno per i preziosi consigli. Per cercare di descrivere meglio le linee di partenza posso dire che le linee che do in "pasto" alle varie funzioni sono linee che possono avere dei dangle ma che la dove si "toccano" sono spezzate. Le funzioni "automatiche" di QGIS restituiscono tutte geometrie 2D e l'unica che "funziona bene" è la poligonizza(toolbox) che forse esegue una sorta di "ripulitura" delle linee (se qualcuno mi toglie questa curiosità ne sarei contento). Per il discorso delle funzioni "automatiche" che non si sa cosa nascondano, concordo con te Sandro che è facile perdere il controllo di quello che fanno (calza a pennello con la funzione poligonizza), però l'altra faccia della medaglia è che le funzioni "automatiche", se ben calibrate, non fanno perdere 2 ore per fare del tuning o per trovare la strada da seguire. Comunque in attesa della tua risposta avevo "arginato il problema" utilizzando lo strumento per la creazione dei poligoni di OpenJump (Uno "smacco" per il più blasonato QGIS ;) ). Solo oggi ho avuto modo di seguire il tuo consiglio e provare le funzioni topologiche di Spatialite: 1] CreateTopology() 2] ST_CreateTopoGeo() 3] TopoGeo_FromGeoTable() 4] ST_GetFaceGeometry() RISULTATO: Felicissimo di dire che ho creato il tanto desiderato strato poligonale 3D. Ora controllero se (visto che ho inserito un valore di tolleranza di 0.015) lo strato lineare di partenza è ancora perfettamente coerente con il nuovo strato poligonale (temo che in alcuni punti non lo sia). Sfrutto l'occasione e chiedo: - selezionando (manualmente a vista) in QGIS una serie di oggetti da un layer contenuto all'interno di un DB di spatialite, c'è un modo per salvarli direttamente all'interno del DB Spatialite (lo stesso o un altro)? - la funzione "ElementaryGeometry" va obbligatoriamente scitta da GUI o DB Manager? Ancora non è stata integrata nei menu di QGIS (es. vettore-strumenti di geometria-Da parti multiple a parti singole) o in qualche "pulsante". Vero? - avendo un layer poligonale singlepart posso assegnare a tutti i vertici di un oggetto un valore di "Z" letto dal relativo record della tabella? Grazie ancora a tutti per la disponibilità e per i preziosi aiuti Ciao Luca -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 801 iscritti al 19/07/2017 |
non entro nel merito visto che molti strumenti di qgis della 2.x sono
rimasti forzatamente 2d... ti chiederei, se ne hai voglia e interesse di "rischiare" la attuale 2.99 (prossima 3.0) e in particolare la nightly visto che molto e' stato fatto per trattare anche geometri 3d. Luigi Pirelli ************************************************************************************************** * LinkedIn: https://www.linkedin.com/in/luigipirelli * Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli * GitHub: https://github.com/luipir * Mastering QGIS 2nd Edition: * https://www.packtpub.com/big-data-and-business-intelligence/mastering-qgis-second-edition * Hire me: http://goo.gl/BYRQKg ************************************************************************************************** 2017-12-12 15:00 GMT+01:00 titino2 <[hidden email]>: > Gentilissimo Sandro, > mi chiamo Luca e ho abbastanza dimestichezza con gli strumenti di ArcGis e > visto il fascino e la diffusione degli Opensource sto cercando di prendere > confidenza con QGIS e tutto cio che gli ruota intorno. > Sandro, ti ringrazio per le dritte, le spiegazioni e non meno per i preziosi > consigli. > > Per cercare di descrivere meglio le linee di partenza posso dire che le > linee che do in "pasto" alle varie funzioni sono linee che possono avere dei > dangle ma che la dove si "toccano" sono spezzate. > Le funzioni "automatiche" di QGIS restituiscono tutte geometrie 2D e l'unica > che "funziona bene" è la poligonizza(toolbox) che forse esegue una sorta di > "ripulitura" delle linee (se qualcuno mi toglie questa curiosità ne sarei > contento). > Per il discorso delle funzioni "automatiche" che non si sa cosa nascondano, > concordo con te Sandro che è facile perdere il controllo di quello che fanno > (calza a pennello con la funzione poligonizza), però l'altra faccia della > medaglia è che le funzioni "automatiche", se ben calibrate, non fanno > perdere 2 ore per fare del tuning o per trovare la strada da seguire. > Comunque in attesa della tua risposta avevo "arginato il problema" > utilizzando lo strumento per la creazione dei poligoni di OpenJump (Uno > "smacco" per il più blasonato QGIS ;) ). > > Solo oggi ho avuto modo di seguire il tuo consiglio e provare le funzioni > topologiche di Spatialite: > 1] CreateTopology() > 2] ST_CreateTopoGeo() > 3] TopoGeo_FromGeoTable() > 4] ST_GetFaceGeometry() > > RISULTATO: > Felicissimo di dire che ho creato il tanto desiderato strato poligonale 3D. > > Ora controllero se (visto che ho inserito un valore di tolleranza di 0.015) > lo strato lineare di partenza è ancora perfettamente coerente con il nuovo > strato poligonale (temo che in alcuni punti non lo sia). > > Sfrutto l'occasione e chiedo: > - selezionando (manualmente a vista) in QGIS una serie di oggetti da un > layer contenuto all'interno di un DB di spatialite, c'è un modo per salvarli > direttamente all'interno del DB Spatialite (lo stesso o un altro)? > - la funzione "ElementaryGeometry" va obbligatoriamente scitta da GUI o DB > Manager? Ancora non è stata integrata nei menu di QGIS (es. > vettore-strumenti di geometria-Da parti multiple a parti singole) o in > qualche "pulsante". Vero? > - avendo un layer poligonale singlepart posso assegnare a tutti i vertici di > un oggetto un valore di "Z" letto dal relativo record della tabella? > > Grazie ancora a tutti per la disponibilità e per i preziosi aiuti > > Ciao Luca > > -- > Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ > _______________________________________________ > [hidden email] > http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss > Questa e' una lista di discussione pubblica aperta a tutti. > I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. > 801 iscritti al 19/07/2017 [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 801 iscritti al 19/07/2017 |
Ciao Luigi,
seguendo il tuo consiglio ho creato una macchina virtuale con Ubunto ed ho provato la versione dev. 2.99 di QGIS. Premettendo che ho scarsa o nulla conoscenza di Linux dico che inizialmente avevo scelto di installare la versione 16.04LTS e devo dire che anche seguendo la guida per listallazione di QGIS ho trovato molti problemi specie nell'autenticazione della chiave, ho fatto mille prove che alla fine mi hanno portato a cancellare la VM con la 16.04 ed installare l'ultima versione di Ubuntu(17.10) con il quale sono riuscito ad installare QGIS 2.99. Ho fatto poche prove ed ho visto che è stata implementata la parte 3D nell'algoritmo "da linee a poligoni" mentre il mio preferito "Poligonizza" è rimasto 2D. Mi sai dire se con la v. ufficiale(3.xx?) verra implementata anche nella "Poligonizza" la parte 3D? A grandi linee quando verra rilasciata la v. ufficiale?(se si puo dire ;) ) Qualche "Buon Anima" sa rispondere alle mie precedenti domande? /[...] Sfrutto l'occasione e chiedo: - selezionando (manualmente a vista) in QGIS una serie di oggetti da un layer contenuto all'interno di un DB di spatialite, c'è un modo per salvarli direttamente all'interno del DB Spatialite (lo stesso o un altro)? - la funzione "ElementaryGeometry" va obbligatoriamente scitta da GUI o DB Manager? Ancora non è stata integrata nei menu di QGIS (es. vettore-strumenti di geometria-Da parti multiple a parti singole) o in qualche "pulsante". Vero? - avendo un layer poligonale singlepart posso assegnare a tutti i vertici di un oggetto un valore di "Z" letto dal relativo record della tabella? [...]/ Grazie a tutti, Luca -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 801 iscritti al 19/07/2017 |
1) visto che non hai dimestichezza con linux, perche' non ti sei
installato la versione winzozz? 2) immagino ti riferisci a Plygonize dei QGIS geoalgorithm... direi strano, a meno che c'e' l'alternativa... hai provato "line to plygon"? 3) per la data ufficiale ci sono post in merito (credo di matteo) che spiega il soft-release... se ci sono algoritmi non coperti, ti prego di aprire un tiket Luigi Pirelli ************************************************************************************************** * LinkedIn: https://www.linkedin.com/in/luigipirelli * Stackexchange: http://gis.stackexchange.com/users/19667/luigi-pirelli * GitHub: https://github.com/luipir * Mastering QGIS 2nd Edition: * https://www.packtpub.com/big-data-and-business-intelligence/mastering-qgis-second-edition * Hire me: http://goo.gl/BYRQKg ************************************************************************************************** 2017-12-14 12:28 GMT+01:00 titino2 <[hidden email]>: > Ciao Luigi, > seguendo il tuo consiglio ho creato una macchina virtuale con Ubunto ed ho > provato la versione dev. 2.99 di QGIS. > > Premettendo che ho scarsa o nulla conoscenza di Linux dico che inizialmente > avevo scelto di installare la versione 16.04LTS e devo dire che anche > seguendo la guida per listallazione di QGIS ho trovato molti problemi specie > nell'autenticazione della chiave, ho fatto mille prove che alla fine mi > hanno portato a cancellare la VM con la 16.04 ed installare l'ultima > versione di Ubuntu(17.10) con il quale sono riuscito ad installare QGIS > 2.99. > Ho fatto poche prove ed ho visto che è stata implementata la parte 3D > nell'algoritmo "da linee a poligoni" mentre il mio preferito "Poligonizza" è > rimasto 2D. > Mi sai dire se con la v. ufficiale(3.xx?) verra implementata anche nella > "Poligonizza" la parte 3D? A grandi linee quando verra rilasciata la v. > ufficiale?(se si puo dire ;) ) > > Qualche "Buon Anima" sa rispondere alle mie precedenti domande? > /[...] > Sfrutto l'occasione e chiedo: > - selezionando (manualmente a vista) in QGIS una serie di oggetti da un > layer contenuto all'interno di un DB di spatialite, c'è un modo per salvarli > direttamente all'interno del DB Spatialite (lo stesso o un altro)? > - la funzione "ElementaryGeometry" va obbligatoriamente scitta da GUI o DB > Manager? Ancora non è stata integrata nei menu di QGIS (es. > vettore-strumenti di geometria-Da parti multiple a parti singole) o in > qualche "pulsante". Vero? > - avendo un layer poligonale singlepart posso assegnare a tutti i vertici di > un oggetto un valore di "Z" letto dal relativo record della tabella? > [...]/ > > Grazie a tutti, > Luca > > -- > Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ > _______________________________________________ > [hidden email] > http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss > Questa e' una lista di discussione pubblica aperta a tutti. > I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. > 801 iscritti al 19/07/2017 [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 801 iscritti al 19/07/2017 |
Ciao Luigi,
cerco di rispondere alle tue domande dicendoti che: 1. Non ho scaricato la v. 2.99 per Windows perchè seguendo il percorso dell'area download non l'ho trovata(https://www.qgis.org/it/site/forusers/download.html#) poi perché fare un istallazione su Linux non mi sembrava fuori portata o comunque perché non provare? Immagino che se avessi fatto l'installazione tramite osgeo4w avrei trovato la v.2.99. Magari la 2.99 installata, su Ubunto 16.04 da mani esperte, non da il minimo problema... io ho riscontrato molti problemi non riscontrati con Ubuntu 17.10. 2. chiedo scusa perché forse mi sono espresso male... quando dico che ho provato con il tool "da linee a poligoni" mi riferisco al tool presente sotto il menu Vettore-Strumenti di geometria-da linee a poligoni che se non erro è proprio il tool "line to plygon" che mi consigli tu. L'output di "line to plygon" è ben diverso del tool Poligonizza (Processing-toolbox-Poligonize) che se non ho sbagliato mi genera ancora un file 2D(prima di aprire un nuovo tiket verifico meglio). C'è modo di capire dove differiscono le due procedure (poligonize - da linee a poligoni)? Se interpreto bene i risultati, la funzione poligonize fa una sorta di "ripulitura" delle linee di partenza che non sono riuscito a replicare con nessun tools di Grass. Un risultato analogo sono riuscito a replicarlo solamente tramite le funzioni Topologiche di Spatialite consigliate da Sandro. Grazie della pazienza, Luca -- Sent from: http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/ _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 801 iscritti al 19/07/2017 |
Il giorno 14 dicembre 2017 14:29, titino2 <[hidden email]> ha scritto:
> Ciao Luigi, > cerco di rispondere alle tue domande dicendoti che: > 1. > Non ho scaricato la v. 2.99 per Windows perchè seguendo il percorso > dell'area download non l'ho > trovata(https://www.qgis.org/it/site/forusers/download.html#) Nessun problema, ti è sfuggita la frase in fondo alla pagina: "Informazioni più dettagliate sull'installazione della versione stabile di QGIS e su quella di sviluppo possono essere trovate su Tutti i download." poi perché > fare un istallazione su Linux non mi sembrava fuori portata o comunque > perché non provare? Immagino che se avessi fatto l'installazione tramite > osgeo4w avrei trovato la v.2.99. Magari la 2.99 installata, su Ubunto 16.04 > da mani esperte, non da il minimo problema... io ho riscontrato molti > problemi non riscontrati con Ubuntu 17.10. > Concordo, non è mai il momento sbagliato per conoscere un sistema veramente operativo... Ho avuto anch'io qualche problmenio con le chiavi ma con i comandi da terminale dovrebbe essere semplice amefad _______________________________________________ [hidden email] http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss Questa e' una lista di discussione pubblica aperta a tutti. I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it. 801 iscritti al 19/07/2017 |
Free forum by Nabble | Edit this page |