Aggregare operazioni con SQL

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Aggregare operazioni con SQL

Massimiliano Moraca
Buondì!
Immaginate di avere tre vettori in un geodatabase:
A. Comuni italiani;
B. Carta geologica d'Italia;
C. Stradario italiano.

E' possibile secondo voi ottenere in un unico passaggio il clip, secondo un
buffer di X metri dal confine comunale del comune Y selezionato, di B e C
generando come output B e C clippati secondo il buffer di prima e A come
comune selezionato, usando solo SQL e senza scomodare script in Python?

E, magari ancora, avere come output un geodatabase in SpatiaLite che
contiene tutti e tre i vettori elaborati.

Il tutto potrebbe essere effettuato in QGIS direttamente?
____________

Massimiliano Moraca <http://massimilianomoraca.it/>
_______________________________________________
[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
Consulente GIS, Formatore, Blogger e Ciclista Urbano email: info@massimilianomoraca.it cell: 333 5949583 (lun-ven, 9.00-18.00) website: massimilianomoraca.it
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

pigreco
Ciao Massimiliano,
sarebbe utile un db iniziale di esempio.
se puoi allega qui il link alla risorsa.

saluti

Il giorno 24 ottobre 2017 08:55, Massimiliano Moraca <
[hidden email]> ha scritto:

> Buondì!
> Immaginate di avere tre vettori in un geodatabase:
> A. Comuni italiani;
> B. Carta geologica d'Italia;
> C. Stradario italiano.
>
> E' possibile secondo voi ottenere in un unico passaggio il clip, secondo un
> buffer di X metri dal confine comunale del comune Y selezionato, di B e C
> generando come output B e C clippati secondo il buffer di prima e A come
> comune selezionato, usando solo SQL e senza scomodare script in Python?
>
> E, magari ancora, avere come output un geodatabase in SpatiaLite che
> contiene tutti e tre i vettori elaborati.
>
> Il tutto potrebbe essere effettuato in QGIS direttamente?
> ____________
>
> Massimiliano Moraca <http://massimilianomoraca.it/>
> _______________________________________________
> [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




--
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *[hidden email] <[hidden email]>*
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*blog:*
* https://pigrecoinfinito.wordpress.com/
<https://pigrecoinfinito.wordpress.com/> FB: Co-admin
- https://www.facebook.com/qgis.it/ <https://www.facebook.com/qgis.it/>**
<https://www.facebook.com/qgis.it/> *
*FB: moderatore - **https://www.facebook.com/groups/GisItalia/
<https://www.facebook.com/groups/GisItalia/>**
<https://www.facebook.com/groups/GisItalia/> *
*TW:  <http://goog_95411464>**https://twitter.com/totofiandaca
<https://twitter.com/totofiandaca>*

43°51'0.54"N  10°34'27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di
FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
in relazione alle finalità per le quali è stato ricevuto. E' vietata
qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di
informare tempestivamente il mittente e distruggere la copia in proprio
possesso.
_______________________________________________
[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
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

nformica
In reply to this post by Massimiliano Moraca
Se intendi con un'unica query SQL, la vedo difficile.
Ma passo la parola agli esperti SQL.

Saluti
Nino

Il 24 ott 2017 8:55 AM, "Massimiliano Moraca" <[hidden email]>
ha scritto:

> Buondì!
> Immaginate di avere tre vettori in un geodatabase:
> A. Comuni italiani;
> B. Carta geologica d'Italia;
> C. Stradario italiano.
>
> E' possibile secondo voi ottenere in un unico passaggio il clip, secondo
> un
> buffer di X metri dal confine comunale del comune Y selezionato, di B e C
> generando come output B e C clippati secondo il buffer di prima e A come
> comune selezionato, usando solo SQL e senza scomodare script in Python?
>
> E, magari ancora, avere come output un geodatabase in SpatiaLite che
> contiene tutti e tre i vettori elaborati.
>
> Il tutto potrebbe essere effettuato in QGIS direttamente?
> ____________
>
> Massimiliano Moraca <http://massimilianomoraca.it/>
> _______________________________________________
> [hidden email] <http:///user/SendEmail.jtp?type=node&node=7597304&i=0>
> 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
> Ingegnere, Gis Analyst, Mobility Manager e ciclista urbano. Mi piace
> mettere insieme le mie competenze in ambito GIS con quelle acquisite
> nell'ambito della mobilità sostenibile.
>
>
> ------------------------------
> If you reply to this email, your message will be added to the discussion
> below:
> http://gfoss-geographic-free-and-open-source-software-
> italian-mailing.3056002.n2.nabble.com/Aggregare-
> operazioni-con-SQL-tp7597304.html
> To unsubscribe from Gfoss -- Geographic Free and Open Source Software -
> Italian mailing list, click here
> <
> .
> NAML
> <
http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>
_______________________________________________
[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
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

Massimiliano Moraca
Di seguito potete scaricare un piccolo geodb di prova in sqlite
https://drive.google.com/file/d/0B_xF8YN-9DwJVDFLbGdNN1hVWnM/view?usp=sharing

____________

Massimiliano Moraca <http://massimilianomoraca.it/>

Il giorno 24 ottobre 2017 10:56, nino formica <[hidden email]> ha
scritto:

> Se intendi con un'unica query SQL, la vedo difficile.
> Ma passo la parola agli esperti SQL.
>
> Saluti
> Nino
>
> Il 24 ott 2017 8:55 AM, "Massimiliano Moraca" <
> [hidden email]> ha scritto:
>
>> Buondì!
>> Immaginate di avere tre vettori in un geodatabase:
>> A. Comuni italiani;
>> B. Carta geologica d'Italia;
>> C. Stradario italiano.
>>
>> E' possibile secondo voi ottenere in un unico passaggio il clip, secondo
>> un
>> buffer di X metri dal confine comunale del comune Y selezionato, di B e C
>> generando come output B e C clippati secondo il buffer di prima e A come
>> comune selezionato, usando solo SQL e senza scomodare script in Python?
>>
>> E, magari ancora, avere come output un geodatabase in SpatiaLite che
>> contiene tutti e tre i vettori elaborati.
>>
>> Il tutto potrebbe essere effettuato in QGIS direttamente?
>> ____________
>>
>> Massimiliano Moraca <http://massimilianomoraca.it/>
>> _______________________________________________
>> [hidden email] <http:///user/SendEmail.jtp?type=node&node=7597304&i=0>
>> 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
>> Ingegnere, Gis Analyst, Mobility Manager e ciclista urbano. Mi piace
>> mettere insieme le mie competenze in ambito GIS con quelle acquisite
>> nell'ambito della mobilità sostenibile.
>>
>>
>> ------------------------------
>> If you reply to this email, your message will be added to the discussion
>> below:
>> http://gfoss-geographic-free-and-open-source-software-italia
>> n-mailing.3056002.n2.nabble.com/Aggregare-operazioni-con-
>> SQL-tp7597304.html
>> To unsubscribe from Gfoss -- Geographic Free and Open Source Software -
>> Italian mailing list, click here
>> <
>> .
>> NAML
>> <
http://gfoss-geographic-free-and-open-source-software-italian-mailing.3056002.n2.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
>>
>
_______________________________________________
[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
Consulente GIS, Formatore, Blogger e Ciclista Urbano email: info@massimilianomoraca.it cell: 333 5949583 (lun-ven, 9.00-18.00) website: massimilianomoraca.it
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

Salvatore Larosa
In reply to this post by Massimiliano Moraca
2017-10-24 8:55 GMT+02:00 Massimiliano Moraca <[hidden email]>
:

> Buondì!
> Immaginate di avere tre vettori in un geodatabase:
> A. Comuni italiani;
> B. Carta geologica d'Italia;
> C. Stradario italiano.
>
> E' possibile secondo voi ottenere in un unico passaggio il clip, secondo un
> buffer di X metri dal confine comunale del comune Y selezionato, di B e C
> generando come output B e C clippati secondo il buffer di prima e A come
> comune selezionato, usando solo SQL e senza scomodare script in Python?
>
> E, magari ancora, avere come output un geodatabase in SpatiaLite che
> contiene tutti e tre i vettori elaborati.
>
> Il tutto potrebbe essere effettuato in QGIS direttamente?
>

Potrebbe funzionare qualcosa di questo tipo:
https://gist.github.com/slarosa/18d67175befd341176e92cfc9b54c518

Cosa intendi per unico passaggio? Unica query?

Saluti!

--
Salvatore Larosa
linkedIn: http://linkedin.com/in/larosasalvatore
twitter: @lrssvt
skype: s.larosa
IRC: lrssvt on freenode
_______________________________________________
[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
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

pigreco
Rileggendo il quesito sembrerebbe che tu volessi realizzare delle stampe
con QGIS, un atlas in particolare, VERO?

Se cosi fosse, non occorre creare tante tabelle quante sono i comuni.

Basterebbe utilizzare le potenzialità del geometry_generation unito ad una
tematizzazione tramite regole.

saluti

Il giorno 24 ottobre 2017 12:08, Salvatore Larosa <[hidden email]> ha
scritto:

> 2017-10-24 8:55 GMT+02:00 Massimiliano Moraca <
> [hidden email]>
> :
>
> > Buondì!
> > Immaginate di avere tre vettori in un geodatabase:
> > A. Comuni italiani;
> > B. Carta geologica d'Italia;
> > C. Stradario italiano.
> >
> > E' possibile secondo voi ottenere in un unico passaggio il clip, secondo
> un
> > buffer di X metri dal confine comunale del comune Y selezionato, di B e C
> > generando come output B e C clippati secondo il buffer di prima e A come
> > comune selezionato, usando solo SQL e senza scomodare script in Python?
> >
> > E, magari ancora, avere come output un geodatabase in SpatiaLite che
> > contiene tutti e tre i vettori elaborati.
> >
> > Il tutto potrebbe essere effettuato in QGIS direttamente?
> >
>
> Potrebbe funzionare qualcosa di questo tipo:
> https://gist.github.com/slarosa/18d67175befd341176e92cfc9b54c518
>
> Cosa intendi per unico passaggio? Unica query?
>
> Saluti!
>
> --
> Salvatore Larosa
> linkedIn: http://linkedin.com/in/larosasalvatore
> twitter: @lrssvt
> skype: s.larosa
> IRC: lrssvt on freenode
> _______________________________________________
> [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
>



--
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *[hidden email] <[hidden email]>*
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*blog:*
* https://pigrecoinfinito.wordpress.com/
<https://pigrecoinfinito.wordpress.com/> FB: Co-admin
- https://www.facebook.com/qgis.it/ <https://www.facebook.com/qgis.it/>**
<https://www.facebook.com/qgis.it/> *
*FB: moderatore - **https://www.facebook.com/groups/GisItalia/
<https://www.facebook.com/groups/GisItalia/>**
<https://www.facebook.com/groups/GisItalia/> *
*TW:  <http://goog_95411464>**https://twitter.com/totofiandaca
<https://twitter.com/totofiandaca>*

43°51'0.54"N  10°34'27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di
FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
in relazione alle finalità per le quali è stato ricevuto. E' vietata
qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di
informare tempestivamente il mittente e distruggere la copia in proprio
possesso.
_______________________________________________
[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
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

Massimiliano Moraca
No Totò avevo scritto che come output volevo un geodatabase in SpatiaLite
non le stampe.
Credo che Salvatore Larosa abbia colpito nel segno. Più tardi provo e
faccio sapere.

____________

Massimiliano Moraca <http://massimilianomoraca.it/>

Il giorno 24 ottobre 2017 12:54, Totò Fiandaca <[hidden email]>
ha scritto:

> Rileggendo il quesito sembrerebbe che tu volessi realizzare delle stampe
> con QGIS, un atlas in particolare, VERO?
>
> Se cosi fosse, non occorre creare tante tabelle quante sono i comuni.
>
> Basterebbe utilizzare le potenzialità del geometry_generation unito ad una
> tematizzazione tramite regole.
>
> saluti
>
> Il giorno 24 ottobre 2017 12:08, Salvatore Larosa <[hidden email]> ha
> scritto:
>
>> 2017-10-24 8:55 GMT+02:00 Massimiliano Moraca <
>> [hidden email]>
>> :
>>
>> > Buondì!
>> > Immaginate di avere tre vettori in un geodatabase:
>> > A. Comuni italiani;
>> > B. Carta geologica d'Italia;
>> > C. Stradario italiano.
>> >
>> > E' possibile secondo voi ottenere in un unico passaggio il clip,
>> secondo un
>> > buffer di X metri dal confine comunale del comune Y selezionato, di B e
>> C
>> > generando come output B e C clippati secondo il buffer di prima e A come
>> > comune selezionato, usando solo SQL e senza scomodare script in Python?
>> >
>> > E, magari ancora, avere come output un geodatabase in SpatiaLite che
>> > contiene tutti e tre i vettori elaborati.
>> >
>> > Il tutto potrebbe essere effettuato in QGIS direttamente?
>> >
>>
>> Potrebbe funzionare qualcosa di questo tipo:
>> https://gist.github.com/slarosa/18d67175befd341176e92cfc9b54c518
>>
>> Cosa intendi per unico passaggio? Unica query?
>>
>> Saluti!
>>
>> --
>> Salvatore Larosa
>> linkedIn: http://linkedin.com/in/larosasalvatore
>> twitter: @lrssvt
>> skype: s.larosa
>> IRC: lrssvt on freenode
>> _______________________________________________
>> [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
>>
>
>
>
> --
> *Ing. Salvatore Fiandaca*
> *mobile*.:+39 327.493.8955 <+39%20327%20493%208955>
> *m*: *[hidden email] <[hidden email]>*
> *C.F*.: FNDSVT71E29Z103G
> *P.IVA*: 06597870820
> *blog:*
> * https://pigrecoinfinito.wordpress.com/
> <https://pigrecoinfinito.wordpress.com/> FB: Co-admin
> - https://www.facebook.com/qgis.it/ <https://www.facebook.com/qgis.it/>**
> <https://www.facebook.com/qgis.it/> *
> *FB: moderatore - **https://www.facebook.com/groups/GisItalia/
> <https://www.facebook.com/groups/GisItalia/>**
> <https://www.facebook.com/groups/GisItalia/> *
> *TW:  <http://goog_95411464>**https://twitter.com/totofiandaca
> <https://twitter.com/totofiandaca>*
>
> 43°51'0.54"N  10°34'27.62"E - EPSG:4326
>
> “Se la conoscenza deve essere aperta a tutti,
> perchè mai limitarne l’accesso?”
> R. Stallman
>
> Questo documento, allegati inclusi, contiene informazioni di proprietà di
> FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
> in relazione alle finalità per le quali è stato ricevuto. E' vietata
> qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
> di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega
> di informare tempestivamente il mittente e distruggere la copia in proprio
> possesso.
>
>
>
_______________________________________________
[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
Consulente GIS, Formatore, Blogger e Ciclista Urbano email: info@massimilianomoraca.it cell: 333 5949583 (lun-ven, 9.00-18.00) website: massimilianomoraca.it
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

Massimiliano Moraca
Si confermo che Salvatore Larosa ha centrato il problema.

Per l'automatizzazione in QGIS si potrebbe usare il Processing Modeler ma
non credo che lì si possa usare codice SQL. Testo e vi dico ;)



____________

Massimiliano Moraca <http://massimilianomoraca.it/>

Il giorno 24 ottobre 2017 13:15, Massimiliano Moraca <
[hidden email]> ha scritto:

> No Totò avevo scritto che come output volevo un geodatabase in SpatiaLite
> non le stampe.
> Credo che Salvatore Larosa abbia colpito nel segno. Più tardi provo e
> faccio sapere.
>
> ____________
>
> Massimiliano Moraca <http://massimilianomoraca.it/>
>
> Il giorno 24 ottobre 2017 12:54, Totò Fiandaca <[hidden email]>
> ha scritto:
>
>> Rileggendo il quesito sembrerebbe che tu volessi realizzare delle stampe
>> con QGIS, un atlas in particolare, VERO?
>>
>> Se cosi fosse, non occorre creare tante tabelle quante sono i comuni.
>>
>> Basterebbe utilizzare le potenzialità del geometry_generation unito ad
>> una tematizzazione tramite regole.
>>
>> saluti
>>
>> Il giorno 24 ottobre 2017 12:08, Salvatore Larosa <[hidden email]>
>> ha scritto:
>>
>>> 2017-10-24 8:55 GMT+02:00 Massimiliano Moraca <
>>> [hidden email]>
>>> :
>>>
>>> > Buondì!
>>> > Immaginate di avere tre vettori in un geodatabase:
>>> > A. Comuni italiani;
>>> > B. Carta geologica d'Italia;
>>> > C. Stradario italiano.
>>> >
>>> > E' possibile secondo voi ottenere in un unico passaggio il clip,
>>> secondo un
>>> > buffer di X metri dal confine comunale del comune Y selezionato, di B
>>> e C
>>> > generando come output B e C clippati secondo il buffer di prima e A
>>> come
>>> > comune selezionato, usando solo SQL e senza scomodare script in Python?
>>> >
>>> > E, magari ancora, avere come output un geodatabase in SpatiaLite che
>>> > contiene tutti e tre i vettori elaborati.
>>> >
>>> > Il tutto potrebbe essere effettuato in QGIS direttamente?
>>> >
>>>
>>> Potrebbe funzionare qualcosa di questo tipo:
>>> https://gist.github.com/slarosa/18d67175befd341176e92cfc9b54c518
>>>
>>> Cosa intendi per unico passaggio? Unica query?
>>>
>>> Saluti!
>>>
>>> --
>>> Salvatore Larosa
>>> linkedIn: http://linkedin.com/in/larosasalvatore
>>> twitter: @lrssvt
>>> skype: s.larosa
>>> IRC: lrssvt on freenode
>>> _______________________________________________
>>> [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
>>>
>>
>>
>>
>> --
>> *Ing. Salvatore Fiandaca*
>> *mobile*.:+39 327.493.8955 <+39%20327%20493%208955>
>> *m*: *[hidden email] <[hidden email]>*
>> *C.F*.: FNDSVT71E29Z103G
>> *P.IVA*: 06597870820
>> *blog:*
>> * https://pigrecoinfinito.wordpress.com/
>> <https://pigrecoinfinito.wordpress.com/> FB: Co-admin
>> - https://www.facebook.com/qgis.it/ <https://www.facebook.com/qgis.it/>**
>> <https://www.facebook.com/qgis.it/> *
>> *FB: moderatore - **https://www.facebook.com/groups/GisItalia/
>> <https://www.facebook.com/groups/GisItalia/>**
>> <https://www.facebook.com/groups/GisItalia/> *
>> *TW:  <http://goog_95411464>**https://twitter.com/totofiandaca
>> <https://twitter.com/totofiandaca>*
>>
>> 43°51'0.54"N  10°34'27.62"E - EPSG:4326
>>
>> “Se la conoscenza deve essere aperta a tutti,
>> perchè mai limitarne l’accesso?”
>> R. Stallman
>>
>> Questo documento, allegati inclusi, contiene informazioni di proprietà di
>> FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
>> in relazione alle finalità per le quali è stato ricevuto. E' vietata
>> qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
>> di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega
>> di informare tempestivamente il mittente e distruggere la copia in proprio
>> possesso.
>>
>>
>>
>
_______________________________________________
[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
Consulente GIS, Formatore, Blogger e Ciclista Urbano email: info@massimilianomoraca.it cell: 333 5949583 (lun-ven, 9.00-18.00) website: massimilianomoraca.it
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

a.furieri
In reply to this post by Massimiliano Moraca
On Tue, 24 Oct 2017 08:55:02 +0200, Massimiliano Moraca wrote:

> Buondì!
> Immaginate di avere tre vettori in un geodatabase:
> A. Comuni italiani;
> B. Carta geologica d'Italia;
> C. Stradario italiano.
>
> E' possibile secondo voi ottenere in un unico passaggio il clip,
> secondo un
> buffer di X metri dal confine comunale del comune Y selezionato, di B
> e C
> generando come output B e C clippati secondo il buffer di prima e A
> come
> comune selezionato, usando solo SQL e senza scomodare script in
> Python?
>
> E, magari ancora, avere come output un geodatabase in SpatiaLite che
> contiene tutti e tre i vettori elaborati.
>

ciao Massimiliano,

vedi l'esempio allegato (che si basa sul tuo DB campione).

per eseguire lo SQL script devi semplicemente:
- aprire una shell dei comandi (finestra nera)
- posizionarti sulla cartella dove hai messo il tuo DB
   "campania_test.sqlite"
- ed infine eseguire questo comando:

spatialite napoli.sqlite <moraca.sql

vedrai che alla fine ti troverai con un nuovo DB di
nome "napoli.sqlite" che contiene esclusivamente
gli elementi di pertinenza del Comune di Napoli.

--------

ti lascio come "compito a casa" la lettura meditata
dello SQL script allegato, in cui ho inserito quanti
piu' commenti possible per rendere piu' chiari i
passaggi meno ovvi e meno banali.

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
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

a.furieri
On Tue, 24 Oct 2017 14:53:44 +0200, [hidden email] wrote:
> vedi l'esempio allegato (che si basa sul tuo DB campione).
>

sorry, pare che la mailing lista non accetta neppure 3KB
di allegato.

copio lo SQL script a seguire nel corpo della mail
S

--------------------------------------------------------
--
-- abbiamo appena creato un nuovo DB "MAIN", che e' ancora
completamente vuoto.
-- ora "attacchiamo" al "MAIN" il DB "vecchio" che contiene i dati da
importare
--
ATTACH DATABASE './campania_test.sqlite' AS vecchio;

--
-- ora utilizziamo la funzione CreateClonedTable per creare le tavole
-- nel "MAIN" ricopiando tal quali le definizioni corrispondenti
-- dichiarate nel DB "vecchio".
-- NOTA: cosi' siamo sicuri che verrano riprodotte fedelmente le
-- definizione dalla Primary Key, degli Spatial Index etc
--
SELECT CreateClonedTable('vecchio', 'comuni', 'comuni', 1);
SELECT CreateClonedTable('vecchio', '2_rete_ferroviaria',
'2_rete_ferroviaria', 1);
SELECT CreateClonedTable('vecchio', 'complessi_idrogeologici',
'complessi_idrogeologici', 1);

--
-- ora andiamo a copiare il solo Comune di Napoli dal "vecchio" al
"MAIN"
--
INSERT INTO main.comuni (id, pk2_28, campan2_id, comune, pr, geom)
SELECT id, pk2_28, campan2_id, comune, pr, geom
FROM vecchio.comuni
WHERE comune = 'Napoli';

--
-- ora copiamo gli elementi ferroviari
-- in questo caso dovremo calcolare l'intersezione tra le
-- geometrie da importare ed il Buffer basato sul Comune.
-- in questo caso NON utilizzeremo lo Spatial Index.
--
-- nota: occorre un cast esplicitio al tipo MultiLinestring,
-- perche' le intersezioni saranno facilmente Linestring
-- elementari.
--
-- nota #2: battezzare una tavola con un nome che inizia con
-- una cifra e' assolutamente indecente :-PACKAGE
-- vedi tutta la marea di double quoting che implica per
-- rendere legale il nome secondo la sintassi SQL
--
INSERT INTO main."2_rete_ferroviaria" (id, pk2_72, tipo, opzioni,
descrizion, geom)
SELECT v.id, v.pk2_72, v.tipo, v.opzioni, v.descrizion,
       CastToMultiLinestring(ST_Intersection(v.geom, n.geom))
FROM vecchio."2_rete_ferroviaria" AS v,
(SELECT ST_Buffer(geom, 1000.0) AS geom FROM main.comuni) AS n
WHERE ST_Intersects(v.geom, n.geom) = 1;

--
-- ora infine copiamo i complessi idrogeologici
-- piu' o meno e' come il caso precedente, ma questa volta
-- utilizziamo anche lo Spatial Index.
--
-- note: dobbiamo fare un cast al tipo MultiPolygon perche'
-- spesso le intertsezioni saranno Poligoni semplici.
--
INSERT INTO main.complessi_idrogeologici (id, pk2_26, stringa, area,
perimeter,
     id_tipo_co, tipo_compl, id_tipo_fo, id_tipo_pe, id_grado_p, note,
geom)
SELECT v.id, v.pk2_26, v.stringa, v.area, v.perimeter, v.id_tipo_co,
v.tipo_compl,
     v.id_tipo_fo, v.id_tipo_pe, v.id_grado_p, v.note,
        CastToMultiPolygon(ST_Intersection(v.geom, n.geom))
FROM vecchio.complessi_idrogeologici AS v,
(SELECT ST_Buffer(geom, 1000.0) AS geom FROM main.comuni) AS n
WHERE ST_Intersects(v.geom, n.geom) = 1 AND v.ROWID IN (
     SELECT rowid FROM SpatialIndex
     WHERE f_table_name = 'DB=vecchio.complessi_idrogeologici'
           AND search_frame = n.geom);
_______________________________________________
[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
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

Massimiliano Moraca
Grazie mille Sandro, ho dato una attenta lettura ad entrambe le mail ma mi
servirà un po' per assimilare gli script della seconda :D
Per il "battesimo" della tabella hai ragione ma volevo cercare di mantenere
inalterati i nomi degli shp presi dal PTR della Campania da cui provengono
i vettori del geodatabase di prova.

____________

Massimiliano Moraca <http://massimilianomoraca.it/>

Il giorno 24 ottobre 2017 14:56, <[hidden email]> ha scritto:

> On Tue, 24 Oct 2017 14:53:44 +0200, [hidden email] wrote:
>
>> vedi l'esempio allegato (che si basa sul tuo DB campione).
>>
>>
> sorry, pare che la mailing lista non accetta neppure 3KB
> di allegato.
>
> copio lo SQL script a seguire nel corpo della mail
> S
>
> --------------------------------------------------------
> --
> -- abbiamo appena creato un nuovo DB "MAIN", che e' ancora completamente
> vuoto.
> -- ora "attacchiamo" al "MAIN" il DB "vecchio" che contiene i dati da
> importare
> --
> ATTACH DATABASE './campania_test.sqlite' AS vecchio;
>
> --
> -- ora utilizziamo la funzione CreateClonedTable per creare le tavole
> -- nel "MAIN" ricopiando tal quali le definizioni corrispondenti
> -- dichiarate nel DB "vecchio".
> -- NOTA: cosi' siamo sicuri che verrano riprodotte fedelmente le
> -- definizione dalla Primary Key, degli Spatial Index etc
> --
> SELECT CreateClonedTable('vecchio', 'comuni', 'comuni', 1);
> SELECT CreateClonedTable('vecchio', '2_rete_ferroviaria',
> '2_rete_ferroviaria', 1);
> SELECT CreateClonedTable('vecchio', 'complessi_idrogeologici',
> 'complessi_idrogeologici', 1);
>
> --
> -- ora andiamo a copiare il solo Comune di Napoli dal "vecchio" al "MAIN"
> --
> INSERT INTO main.comuni (id, pk2_28, campan2_id, comune, pr, geom)
> SELECT id, pk2_28, campan2_id, comune, pr, geom
> FROM vecchio.comuni
> WHERE comune = 'Napoli';
>
> --
> -- ora copiamo gli elementi ferroviari
> -- in questo caso dovremo calcolare l'intersezione tra le
> -- geometrie da importare ed il Buffer basato sul Comune.
> -- in questo caso NON utilizzeremo lo Spatial Index.
> --
> -- nota: occorre un cast esplicitio al tipo MultiLinestring,
> -- perche' le intersezioni saranno facilmente Linestring
> -- elementari.
> --
> -- nota #2: battezzare una tavola con un nome che inizia con
> -- una cifra e' assolutamente indecente :-PACKAGE
> -- vedi tutta la marea di double quoting che implica per
> -- rendere legale il nome secondo la sintassi SQL
> --
> INSERT INTO main."2_rete_ferroviaria" (id, pk2_72, tipo, opzioni,
> descrizion, geom)
> SELECT v.id, v.pk2_72, v.tipo, v.opzioni, v.descrizion,
>       CastToMultiLinestring(ST_Intersection(v.geom, n.geom))
> FROM vecchio."2_rete_ferroviaria" AS v,
> (SELECT ST_Buffer(geom, 1000.0) AS geom FROM main.comuni) AS n
> WHERE ST_Intersects(v.geom, n.geom) = 1;
>
> --
> -- ora infine copiamo i complessi idrogeologici
> -- piu' o meno e' come il caso precedente, ma questa volta
> -- utilizziamo anche lo Spatial Index.
> --
> -- note: dobbiamo fare un cast al tipo MultiPolygon perche'
> -- spesso le intertsezioni saranno Poligoni semplici.
> --
> INSERT INTO main.complessi_idrogeologici (id, pk2_26, stringa, area,
> perimeter,
>     id_tipo_co, tipo_compl, id_tipo_fo, id_tipo_pe, id_grado_p, note, geom)
> SELECT v.id, v.pk2_26, v.stringa, v.area, v.perimeter, v.id_tipo_co,
> v.tipo_compl,
>     v.id_tipo_fo, v.id_tipo_pe, v.id_grado_p, v.note,
>         CastToMultiPolygon(ST_Intersection(v.geom, n.geom))
> FROM vecchio.complessi_idrogeologici AS v,
> (SELECT ST_Buffer(geom, 1000.0) AS geom FROM main.comuni) AS n
> WHERE ST_Intersects(v.geom, n.geom) = 1 AND v.ROWID IN (
>     SELECT rowid FROM SpatialIndex
>     WHERE f_table_name = 'DB=vecchio.complessi_idrogeologici'
>           AND search_frame = n.geom);
>
> _______________________________________________
> [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
Consulente GIS, Formatore, Blogger e Ciclista Urbano email: info@massimilianomoraca.it cell: 333 5949583 (lun-ven, 9.00-18.00) website: massimilianomoraca.it
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

pigreco
Ciao a tutti,
volevo ringraziare Furieri per la condivisione dello script.

Mi sono permesso di creare un gist [0], perchè la condivisione è alla base
di tutto!!!

Ho testato lo script su spatialite_gui, funziona benissimo; basta copiarlo
ed incollarlo!!!

saluti

[0] https://gist.github.com/pigreco/30eaba334b8b20f23cd9d64e049c6926

Il giorno 24 ottobre 2017 15:29, Massimiliano Moraca <
[hidden email]> ha scritto:

> Grazie mille Sandro, ho dato una attenta lettura ad entrambe le mail ma mi
> servirà un po' per assimilare gli script della seconda :D
> Per il "battesimo" della tabella hai ragione ma volevo cercare di mantenere
> inalterati i nomi degli shp presi dal PTR della Campania da cui provengono
> i vettori del geodatabase di prova.
>
> ____________
>
> Massimiliano Moraca <http://massimilianomoraca.it/>
>
> Il giorno 24 ottobre 2017 14:56, <[hidden email]> ha scritto:
>
> > On Tue, 24 Oct 2017 14:53:44 +0200, [hidden email] wrote:
> >
> >> vedi l'esempio allegato (che si basa sul tuo DB campione).
> >>
> >>
> > sorry, pare che la mailing lista non accetta neppure 3KB
> > di allegato.
> >
> > copio lo SQL script a seguire nel corpo della mail
> > S
> >
> > --------------------------------------------------------
> > --
> > -- abbiamo appena creato un nuovo DB "MAIN", che e' ancora completamente
> > vuoto.
> > -- ora "attacchiamo" al "MAIN" il DB "vecchio" che contiene i dati da
> > importare
> > --
> > ATTACH DATABASE './campania_test.sqlite' AS vecchio;
> >
> > --
> > -- ora utilizziamo la funzione CreateClonedTable per creare le tavole
> > -- nel "MAIN" ricopiando tal quali le definizioni corrispondenti
> > -- dichiarate nel DB "vecchio".
> > -- NOTA: cosi' siamo sicuri che verrano riprodotte fedelmente le
> > -- definizione dalla Primary Key, degli Spatial Index etc
> > --
> > SELECT CreateClonedTable('vecchio', 'comuni', 'comuni', 1);
> > SELECT CreateClonedTable('vecchio', '2_rete_ferroviaria',
> > '2_rete_ferroviaria', 1);
> > SELECT CreateClonedTable('vecchio', 'complessi_idrogeologici',
> > 'complessi_idrogeologici', 1);
> >
> > --
> > -- ora andiamo a copiare il solo Comune di Napoli dal "vecchio" al "MAIN"
> > --
> > INSERT INTO main.comuni (id, pk2_28, campan2_id, comune, pr, geom)
> > SELECT id, pk2_28, campan2_id, comune, pr, geom
> > FROM vecchio.comuni
> > WHERE comune = 'Napoli';
> >
> > --
> > -- ora copiamo gli elementi ferroviari
> > -- in questo caso dovremo calcolare l'intersezione tra le
> > -- geometrie da importare ed il Buffer basato sul Comune.
> > -- in questo caso NON utilizzeremo lo Spatial Index.
> > --
> > -- nota: occorre un cast esplicitio al tipo MultiLinestring,
> > -- perche' le intersezioni saranno facilmente Linestring
> > -- elementari.
> > --
> > -- nota #2: battezzare una tavola con un nome che inizia con
> > -- una cifra e' assolutamente indecente :-PACKAGE
> > -- vedi tutta la marea di double quoting che implica per
> > -- rendere legale il nome secondo la sintassi SQL
> > --
> > INSERT INTO main."2_rete_ferroviaria" (id, pk2_72, tipo, opzioni,
> > descrizion, geom)
> > SELECT v.id, v.pk2_72, v.tipo, v.opzioni, v.descrizion,
> >       CastToMultiLinestring(ST_Intersection(v.geom, n.geom))
> > FROM vecchio."2_rete_ferroviaria" AS v,
> > (SELECT ST_Buffer(geom, 1000.0) AS geom FROM main.comuni) AS n
> > WHERE ST_Intersects(v.geom, n.geom) = 1;
> >
> > --
> > -- ora infine copiamo i complessi idrogeologici
> > -- piu' o meno e' come il caso precedente, ma questa volta
> > -- utilizziamo anche lo Spatial Index.
> > --
> > -- note: dobbiamo fare un cast al tipo MultiPolygon perche'
> > -- spesso le intertsezioni saranno Poligoni semplici.
> > --
> > INSERT INTO main.complessi_idrogeologici (id, pk2_26, stringa, area,
> > perimeter,
> >     id_tipo_co, tipo_compl, id_tipo_fo, id_tipo_pe, id_grado_p, note,
> geom)
> > SELECT v.id, v.pk2_26, v.stringa, v.area, v.perimeter, v.id_tipo_co,
> > v.tipo_compl,
> >     v.id_tipo_fo, v.id_tipo_pe, v.id_grado_p, v.note,
> >         CastToMultiPolygon(ST_Intersection(v.geom, n.geom))
> > FROM vecchio.complessi_idrogeologici AS v,
> > (SELECT ST_Buffer(geom, 1000.0) AS geom FROM main.comuni) AS n
> > WHERE ST_Intersects(v.geom, n.geom) = 1 AND v.ROWID IN (
> >     SELECT rowid FROM SpatialIndex
> >     WHERE f_table_name = 'DB=vecchio.complessi_idrogeologici'
> >           AND search_frame = n.geom);
> >
> > _______________________________________________
> > [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
>



--
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *[hidden email] <[hidden email]>*
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*blog:*
* https://pigrecoinfinito.wordpress.com/
<https://pigrecoinfinito.wordpress.com/> FB: Co-admin
- https://www.facebook.com/qgis.it/ <https://www.facebook.com/qgis.it/>**
<https://www.facebook.com/qgis.it/> *
*FB: moderatore - **https://www.facebook.com/groups/GisItalia/
<https://www.facebook.com/groups/GisItalia/>**
<https://www.facebook.com/groups/GisItalia/> *
*TW:  <http://goog_95411464>**https://twitter.com/totofiandaca
<https://twitter.com/totofiandaca>*

43°51'0.54"N  10°34'27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di
FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
in relazione alle finalità per le quali è stato ricevuto. E' vietata
qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di
informare tempestivamente il mittente e distruggere la copia in proprio
possesso.
_______________________________________________
[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
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

aborruso
Administrator
In reply to this post by a.furieri
Grazie mille Alessandro Furieri, leggerti è sempre come prendere un
antidepressivo efficace e al contempo leggero


-----
Andrea Borruso

----------------------------------------------------
twitter: https://twitter.com/aborruso
website: https://medium.com/tantotanto
38° 7' 48" N, 13° 21' 9" E
----------------------------------------------------
--
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
Andrea Borruso

----------------------------------------------------
twitter: https://twitter.com/aborruso
website: https://medium.com/tantotanto
38° 7' 48" N, 13° 21' 9" E
----------------------------------------------------
Reply | Threaded
Open this post in threaded view
|

Re: Aggregare operazioni con SQL

Massimiliano Moraca
Salvatore ora ho letto, grazie :)

____________

Massimiliano Moraca <http://massimilianomoraca.it/>

Il giorno 25 ottobre 2017 19:45, aborruso <[hidden email]> ha scritto:

> Grazie mille Alessandro Furieri, leggerti è sempre come prendere un
> antidepressivo efficace e al contempo leggero
>
>
> -----
> Andrea Borruso
>
> ----------------------------------------------------
> twitter: https://twitter.com/aborruso
> website: https://medium.com/tantotanto
> 38° 7' 48" N, 13° 21' 9" E
> ----------------------------------------------------
> --
> 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
Consulente GIS, Formatore, Blogger e Ciclista Urbano email: info@massimilianomoraca.it cell: 333 5949583 (lun-ven, 9.00-18.00) website: massimilianomoraca.it