Salve a Tutti,
sto provando per la prima volta a usare una funzione scritta in SQL su DB Manager (plugin di QGIS 1.8). Ho importato il database interessato, contenente lo shp (denominato'glcrs_2001') su cui voglio applicare la funzione PointOnSurface. Quando vado nella finestra SQL scrivo questo: select pointonsurface ('glcrs_2001') Quandoeseguo il comando il risultat è una tabella con una sola riga con valore "NULL". Ciò che mi serve invece sarebbe uno shp di punti (come se facessi la funzione "Random Points" di QGIS), con un punto per ognuno dei 712 poligoni che ho, che stia sempre all'interno di essi e mai fuori (come invece può capitare coi centroidi). Domanda: PointOnSurface mi dà sempre gli stessi punti o ogni volta che lo applico agli stessi poligoni, i punti vengono generati in posizioni casuali? Spero la prima, altrimenti è come Random Point e non è quello che mi serve. Grazie in anticipo per l'eventuale aiuto!
_______________________________________________ [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. 630 iscritti al 1.12.2012 |
ciao
2013/2/6 Umberto Filippo Minora <[hidden email]>: > Salve a Tutti, > sto provando per la prima volta a usare una funzione scritta in SQL su DB > Manager (plugin di QGIS 1.8). > Ho importato il database interessato, contenente lo shp > (denominato'glcrs_2001') su cui voglio applicare la funzione PointOnSurface. > Quando vado nella finestra SQL scrivo questo: > > select pointonsurface ('glcrs_2001') come scritto anche da Giuseppe: supponendo che il tuo layer si chiami miolayer, e che la geometria sia contenuta sul campo geometry e che abbia una chiave primaria id, l'istruzione SQL da usare e' la seguente: SELECT id, ST_PointOnSurface(geometry) AS geometry FROM miolayer > > . Domanda: PointOnSurface mi dà sempre gli > stessi punti o ogni volta che lo applico agli stessi poligoni, i punti > vengono generati in posizioni casuali? Spero la prima, altrimenti è come > Random Point e non è quello che mi serve. > Grazie in anticipo per l'eventuale aiuto! Qui dipende dall'algoritmo che viene utilizzato, non ci metterei le mani sul fuoco. E anche se l'algoritmo non usa funzioni randomiche, le coordinate non coincideranno mai perfettamente (stiamo parlando comunque di discrepanze millesimali) da un output all'altro per problemi di approssimazione numerica. Curiosita': quale e' la finalita' della tua operazione? ciao p -- Paolo Corti Geospatial software developer web: http://www.paolocorti.net twitter: @capooti skype: capooti _______________________________________________ [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. 630 iscritti al 1.12.2012 |
2013/2/7 Umberto Filippo Minora <[hidden email]>:
> Buongiorno a Tutti, > dunque premetto che non capisco dove vedere la chiave primaria del campo > "Geometry" (presente nella mia tabella, immagino creato in automatico dal DB > Manager o quando go creato il database perché non c'era mai stata prima). > Spero di non fare una cattiva mossa allegandovi uno screenshot per meglio > spiegare la mia situazione. > Nella colonna "Geometry" le celle hanno tutte lo stesso valore > (MULTIPOLYGON). > Ho provato a usare la funzione suggerita modificandola un po'(perché pare > che usando come prefisso "ST_" prima di chiamare "PointOnSurface" sia > considerato dal programma un errore di sintassi. La funzione viene così: > > select PK_UID, pointonsurface (Geometry) as Geometry from '2001_glcrs' > > Ovviamente "2001_glcrs" il nome del mio shp. "PK_UID" è la prima colonna > della mia tabella (anch'essa creata credo in automatico perché non l'avevo > mai vista prima). Ho provato anche con gli altri campi, tutti. Il risultato > è sempre stata una tabella a 2 colonne, la prima contenente il nome del > campo specificato nella funzione dopo "select", la seconda con un campo > "Geometry" con celle tutte vuote. Ho provato anche a specificare altri campi > nella parentesi dopo "PointOnSurface" e il risultato cambia solo per il > fatto che al posto di avere celle vuote sotto il campo Geometry, tutte le > celle hanno invece valore "NULL". > Any suggestion? > Ciao stavi mandano solo a me e non in lista. Comunque il fatto che le celle siano vuote non vuol dire che non siano popolate, il campo geometrico e' binario e non viene visualizzato per quello probabilmente. Per verificare se e' effettivamente popolato, prova a convertirlo in WKT (testo), lanciando la query in questo modo: select PK_UID, ST_AsText(pointonsurface (Geometry)) as Geometry from '2001_glcrs' per quanto riguarda il nome della funziona il fatto e' strano: che si tratti di una vecchia versione di Spatialite e magari nelle versioni successive e' stato adeguato al nome definito nelle specifice SQL di OGC? A me con il prefisso ST_ funziona. Aspettiamo il parere di Alessandro Furieri :) ciao p -- Paolo Corti Geospatial software developer web: http://www.paolocorti.net twitter: @capooti skype: capooti _______________________________________________ [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. 630 iscritti al 1.12.2012 |
Confermo l'apparizione dei punti desiderati nelle celle della colonna Geometry se visualizzato il risultato come testo. Confermo anche l'univocità del risultato ogniqualvolta si ripete il PoinOnSurface (ovvero, i punti sono sempre nelle stesse posizioni!). Ho un ulteriore problemino però... Carico tutto nella view di QGIS come layer, mi vengono rappresentati i punti correttamente, ma la tabella degli attributi contiene valori "ERROR" su tutte le righe. Ho provato anche a evitare di specificare un campo nella funzione scritta in SQL ( quindi avendo questo "select pointonsurface (Geometry) as Geometry from '2001_glcrs'"), e cambia il fatto che ora al posto di "ERROR" ho tutti "0" (zero). Inoltre, se provo a cliccare su un punto nella tabella e a zoommare per vedere dove si trova col tasto "zoom mappa alle righe selezionate" mi compare questo errore: trasformazione inversa di (75.166088, 90.071966) PROJ.4: +proj=utm +zone=43 +datum=WGS84 +units=m +no_defs +to +proj=longlat +datum=WGS84 +no_defs Errore: latitude or longitude exceeded limits Sapete che significa??? Penso proprio che sia l'ultimo ostacolo di questa mia odissea (spero). P.S. sul fatto del nome della funzione non saprei proprio che dire, ho provato più volte con "ST_" ma nada de nada... Il 07/02/13, Paolo Corti <[hidden email]> ha scritto:
_______________________________________________ [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. 630 iscritti al 1.12.2012 |
In reply to this post by Paolo Corti
2013/2/7 Paolo Corti <[hidden email]>:
> 2013/2/7 Umberto Filippo Minora <[hidden email]>: >> Ho provato a usare la funzione suggerita modificandola un po'(perché pare >> che usando come prefisso "ST_" prima di chiamare "PointOnSurface" sia >> considerato dal programma un errore di sintassi. > > per quanto riguarda il nome della funziona il fatto e' strano: che si > tratti di una vecchia versione di Spatialite si, mi pare sia stata rinominata in ST_PointOnSurface da SL v3.0.0. Purtroppo la standalone continuava ad usare una pyspatialite vecchia, linkata a SL 2.3 se non erro. Non appena ce ne siamo resi conto (meno di 2 settimane fa) si è chiesto a Jef di aggiornare lo standalone della 1.8.0, che adesso è allineato con osgeo4w per quanto riguarda la pyspatialite. Per cui, in parole povere, è consigliabile che chi usi una standalone la aggiorni scaricando il nuovo installer (v1.8.0-2) dal sito di QGIS [1]. Saluti. [1] http://download.qgis.org > ciao > p > > -- > Paolo Corti > Geospatial software developer > web: http://www.paolocorti.net > twitter: @capooti > skype: capooti > _______________________________________________ > [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. > 630 iscritti al 1.12.2012 -- Giuseppe Sucameli _______________________________________________ [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. 630 iscritti al 1.12.2012 |
Ciao a Tutti Scusate, aggiungo che anche la selezione del singolo punto è fallace, risultando nella selezione di tutti i punti in contemporanea.Il 07/02/13, Giuseppe Sucameli <[hidden email]> ha scritto:
_______________________________________________ [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. 630 iscritti al 1.12.2012 |
In reply to this post by Giuseppe Sucameli
Credo di aver risolto.
Ho salvato lo shp di punti (caricato da DB Manager dalla finestra SQL su QGIS) con estensione ".sqlite" e ora la tabella degli attributi è a posto, e posso anche selezionare un solo punto e zoommare su questo senza più problemi. Qualcuno sa percaso spiegarmi come mai questo è accaduto? Il tutto sta nella differenza fra i file ".shp" e quelli ".sqlite"? Comunque grazie di cuore per avermi aiutato così tanto nel raggiungere questo risultato e avermi seguito fin qui con pazienza, sono davvero molto grato! umberto
Il 07/02/13, Giuseppe Sucameli <[hidden email]> ha scritto:
_______________________________________________ [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. 630 iscritti al 1.12.2012 |
In reply to this post by Giuseppe Sucameli
Buongiorno a Tutti.
Mi chiedevo se ci fosse qualcuno che gentilmente potesse chiarirmi dei dubbi. Sono passato da poco all'uso dell'OpenSource QGIS 1.8 Lisboa, prima ero abituato con ArcGIS. Oltre al da me già conosciuto formato vettoriale shpaefile della ESRI, vedo che ce ne sono altri, come "SQlite". Qual è la differenza fra i due? In che casi è utile usare uno piuttosto che l'altro? Vedo inoltre che è possibile organizzare i SQlite in database, ma la loro creazione e come inserire tali SQlite al loro interno mi è abbastanza oscura. Provo con QSpatiaLite e non so come importarli, provo facendo in QGIS "Layer->Aggiungi un vettore SpatiaLite...", ma quando faccio click su nuovo in realtà mi fa scegliere di aprirne uno già esistente (ma non c'è ancora!...). Le mie perplessità aumentano quando vedo che esistono sia l'estensione "SQLite", sia "SpatiaLite". Qualcuno può spiegarmi un po' per favore perché tante estensioni? grazie in anticipo umberto
_______________________________________________ [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. 638 iscritti al 28.2.2013 |
On Mon, 22 Apr 2013 12:07:58 +0200, Umberto Filippo Minora wrote:
> Oltre al da me già conosciuto formato vettoriale shpaefile della > ESRI, vedo che ce ne sono altri, come "SQlite". > Qual è la differenza fra i due? In che casi è utile usare uno > piuttosto che l'altro? > riassuntino in pillole: - il formato shapefile e' decisamente vecchiotto (ha circa 30 anni) e si basa su tecnologie informatiche superate ed obsolete. - gli Spatial Database sono il naturale sostituto, decisamente piu' raffinato e piu' efficiente. - natualmente non esiste un unico Spatial Database; ne esistono svariati, tutti concettualmente analoghi ma assai differenti nella pratica. giusto per fare una listina veloce: * PostGIS, MySQL e SpatiaLite tra i prodotti open source * Oracle, MS SQL Server, IBM DB2, Informix, ArcSDE ed ESRI GeoDatabase tra i prodotti proprietari. ciascuno di loro ha caratteristiche sue proprie, anche se tutti quanti si basano su un unico modello concettuale. scegliere quello piu' appropriato dipende essenzialmente da cosa ci vuoi fare, da come e' strutturato il tuo ambiente di lavoro etc. rimanendo sui soli prodotti opens source: - PostGIS e' sicuramente la soluzione giusta se devi lavorare in un ambiente dipartimentale (p.es. un server comune per qualche decina o centinaia di workstations) - SpatiaLite e' molto piu' semplice (ma non per questo meno potente) ed e' decisamente consigliabile se lavori in autonomia su un unico PC e lo scambio di informazioni con altri colleghi avviene solo sporadicamente. il vantaggio principale di usare uno Spatial Database consiste nel fatto che sono molto efficienti e veloci, sono robusti ed affidabili e soprattutto possono contenere centinaia di layers in un unico repository centralizzato razionalmente organizzato. l'altro vantaggio e' che tutti gli Spatial Database hanno una capacita' autonoma di supportare complesse elaborazioni spaziali tramite linguaggio SQL (insomma, non serve usare necessariamente un client specializzato come QGIS o ArcView: puoi fare tantissime cose, anche complicatissime, usando il solo DB e niente altro) > Vedo inoltre che è possibile organizzare i SQlite in database > no: funziona esattamente all'opposto. SQLite di per se e' proprio un database; una volta che hai creato un DB poi puoi caricare al suo interno tutti i layers che ti occorrono. n.b. per SQLite un database e' semplicemente un unico file; che quando serve puo' "gonfiarsi" sino a raggiungere dimensioni enormi: non e' poi eccezionale trovare dei files SQLite di svariati GB. SpatiaLite e' semplicemente un'estensione Spatial che consente di aggiungere a SQLite delle vere e proprie capacita' di elaborazione geografiche che altrimenti non sarebbero disponibili nella "versione base" nuda e cruda. puoi utilmente usare "spatialite_gui" per creare ed alimentare i tuoi DB SpatiaLite; poi una volta che sono pronti all'uso li puoi connettere a QGIS. [1] https://www.gaia-gis.it/fossil/libspatialite/home [2] http://www.gaia-gis.it/gaia-sins/windows-bin-x86/ immagino che piu' o meno le medesime funzionalita' siano presenti anche su QSpatialite etc ma suppongo che altri che conoscono QGIS meglio di me ti sapranno dare consigli piu' mirati > Le mie perplessità aumentano quando vedo che esistono sia > l'estensione "SQLite", sia "SpatiaLite". > Qualcuno può spiegarmi un po' per favore perché tante estensioni? > essenzialmente e' un vecchio motivo storico: i sistemi Unix (e quindi anche Linux) non si sono mai basati sulle estensioni tanto quanto e' tipico su Windows. il tipo reale del file si basa sempre su una "firma interna", non sull'estensione che e' puramente convenzionale e solo indicativa. insomma, conta in contenuto mentre il nome non conta affatto: puoi chiamare indifferenemten un DB "pippo", "pippo.sql", "pippo.db", "pippo.sqlite" oppure "pippo.spatialite" e funzionera' comunque egualmente bene in tutti i casi. di per se SQLite non ha mai deciso di adottare un proprio suffisso standard "ufficiale", e quindi ciascun utente e/o sviluppatore e' assolutamente libero di comportarsi a proprio piacere :-) ciao Sandro -- Il messaggio e' stato analizzato alla ricerca di virus o contenuti pericolosi da MailScanner, ed e' risultato non infetto. _______________________________________________ [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. 638 iscritti al 28.2.2013 |
grazie infinite della esauriente panoramica, sei stato gentilissimo Sandro!
Non padroneggio ancora benissimo l'utilizzo dei database ma prima o poi riuscirò a vederne anche gli aspetti positivi. umberto
Il 22/04/13, [hidden email] ha scritto:
_______________________________________________ [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. 638 iscritti al 28.2.2013 |
In reply to this post by a.furieri
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1 Salve. Il 22/04/2013 13:26, [hidden email] ha scritto: > immagino che piu' o meno le medesime funzionalita' siano presenti > anche su QSpatialite etc ma suppongo che altri che conoscono QGIS > meglio di me ti sapranno dare consigli piu' mirati Se vuoi usare SpatiaLite tramite QGIS, DB Manager e' il comando che fa per te. Saluti. - -- Paolo Cavallini - Faunalia www.faunalia.eu Full contact details at www.faunalia.eu/pc Nuovi corsi QGIS e PostGIS: http://www.faunalia.it/calendario -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAlF1VekACgkQ/NedwLUzIr5KOACgn7pie6I272VVfYIGsIjl8hRM Sq0AnjvyqO71MLgqKkKISdGwAu7LP1Sd =t2jA -----END PGP SIGNATURE----- _______________________________________________ [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. 638 iscritti al 28.2.2013 |
Free forum by Nabble | Edit this page |