Esportazione da dbms in shapefile tramite qgis con solo una selezione di campi.

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

Esportazione da dbms in shapefile tramite qgis con solo una selezione di campi.

Andrea Peri
Salve,
in un progetto qgis ho un layer che proviene da un collegamento a dbms.

Devo esportarlo in shapefile, pero' tale layer nel dataset di origine
su dbms ha troppi campi e l'esportazione in shapefile supera i 4Gbyte
perla compoenente dbf rendendolo illeggibile da utenti con
arcgis/arcview.

Pero' quesa enorme mole della parte dbf e' dovut al fatto che nella
tabella su dbms sono stati messi tutte le decodifiche esplicite su
campi a 255 caratteri.
In realta' a me basterebbe esportarmi la geometria e 3-4 campi con le
informazioni essenziali.

Ce' modo in qgis di esportare da un layer solo una selezione di campi ?

Grazie.

--
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------
_______________________________________________
[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.
750 iscritti al 18.3.2015
Reply | Threaded
Open this post in threaded view
|

Re: Esportazione da dbms in shapefile tramite qgis con solo una selezione di campi.

Alessandro Pasotti-2
Il giorno 9 luglio 2015 10:56, Andrea Peri <[hidden email]> ha scritto:
Salve,
in un progetto qgis ho un layer che proviene da un collegamento a dbms.

Devo esportarlo in shapefile, pero' tale layer nel dataset di origine
su dbms ha troppi campi e l'esportazione in shapefile supera i 4Gbyte
perla compoenente dbf rendendolo illeggibile da utenti con
arcgis/arcview.

Pero' quesa enorme mole della parte dbf e' dovut al fatto che nella
tabella su dbms sono stati messi tutte le decodifiche esplicite su
campi a 255 caratteri.
In realta' a me basterebbe esportarmi la geometria e 3-4 campi con le
informazioni essenziali.

Ce' modo in qgis di esportare da un layer solo una selezione di campi ?
 

Dalla GUI non so, ma in Python puoi estrarre da un layer le features con gli attributi che vuoi, creare un nuovo layer (anche in memory) e poi salvarlo come shapefile.


--
Alessandro Pasotti
w3:   www.itopen.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.
750 iscritti al 18.3.2015
Reply | Threaded
Open this post in threaded view
|

Re: Esportazione da dbms in shapefile tramite qgis con solo una selezione di campi.

Andrea Peri
grazie,
sai se posso trovare gia' del codice scritto per questa operazione ?

thx.


Il 9 luglio 2015 11:03, Alessandro Pasotti <[hidden email]> ha scritto:

> Il giorno 9 luglio 2015 10:56, Andrea Peri <[hidden email]> ha scritto:
>>
>> Salve,
>> in un progetto qgis ho un layer che proviene da un collegamento a dbms.
>>
>> Devo esportarlo in shapefile, pero' tale layer nel dataset di origine
>> su dbms ha troppi campi e l'esportazione in shapefile supera i 4Gbyte
>> perla compoenente dbf rendendolo illeggibile da utenti con
>> arcgis/arcview.
>>
>> Pero' quesa enorme mole della parte dbf e' dovut al fatto che nella
>> tabella su dbms sono stati messi tutte le decodifiche esplicite su
>> campi a 255 caratteri.
>> In realta' a me basterebbe esportarmi la geometria e 3-4 campi con le
>> informazioni essenziali.
>>
>> Ce' modo in qgis di esportare da un layer solo una selezione di campi ?
>
>
>
> Dalla GUI non so, ma in Python puoi estrarre da un layer le features con gli
> attributi che vuoi, creare un nuovo layer (anche in memory) e poi salvarlo
> come shapefile.
>
> Vedi:
> http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/vector.html#iterating-over-a-subset-of-features
> e poi:
> http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/vector.html#writing-vector-layers
>
> --
> Alessandro Pasotti
> w3:   www.itopen.it



--
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------
_______________________________________________
[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.
750 iscritti al 18.3.2015
Reply | Threaded
Open this post in threaded view
|

Re: Esportazione da dbms in shapefile tramite qgis con solo una selezione di campi.

Alessandro Pasotti-2
Il giorno 9 luglio 2015 11:05, Andrea Peri <[hidden email]> ha scritto:
grazie,
sai se posso trovare gia' del codice scritto per questa operazione ?

Non so, ma quello nei link del cookbook non va bene?

Ci sono gli esempi, devi solo adattarli alle tue esigenze, selezionare il layer che vuoi (per es. iface.activeLayer() o in altro modo) e definire quali sono i campi che vuoi esportare e su quale nuovo file salvarli.

 

thx.


Il 9 luglio 2015 11:03, Alessandro Pasotti <[hidden email]> ha scritto:
> Il giorno 9 luglio 2015 10:56, Andrea Peri <[hidden email]> ha scritto:
>>
>> Salve,
>> in un progetto qgis ho un layer che proviene da un collegamento a dbms.
>>
>> Devo esportarlo in shapefile, pero' tale layer nel dataset di origine
>> su dbms ha troppi campi e l'esportazione in shapefile supera i 4Gbyte
>> perla compoenente dbf rendendolo illeggibile da utenti con
>> arcgis/arcview.
>>
>> Pero' quesa enorme mole della parte dbf e' dovut al fatto che nella
>> tabella su dbms sono stati messi tutte le decodifiche esplicite su
>> campi a 255 caratteri.
>> In realta' a me basterebbe esportarmi la geometria e 3-4 campi con le
>> informazioni essenziali.
>>
>> Ce' modo in qgis di esportare da un layer solo una selezione di campi ?
>
>
>
> Dalla GUI non so, ma in Python puoi estrarre da un layer le features con gli
> attributi che vuoi, creare un nuovo layer (anche in memory) e poi salvarlo
> come shapefile.
>
> Vedi:
> http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/vector.html#iterating-over-a-subset-of-features
> e poi:
> http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/vector.html#writing-vector-layers
>
> --
> Alessandro Pasotti
> w3:   www.itopen.it



--
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------



--
Alessandro Pasotti
w3:   www.itopen.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.
750 iscritti al 18.3.2015
Reply | Threaded
Open this post in threaded view
|

Re: Esportazione da dbms in shapefile tramite qgis con solo una selezione di campi.

Andrea Peri
Ho l'impressione che i codici del cookbook siano un po' invecchiati.
Un annetto fa' volendo provare a imparare le api di qgis, provai a
usare il cookbok, ma quasi tutti i sorgenti, che provai mi davano
qualche errore , dovuto a cambiamenti nelle API.
Un po' provai a chiedere in lista qgis, ma poila cosa era stressante ,
per ogni riga di codice dava errore.
Troppo differenti i sorgenti del cookbook dalla versione attuale (di
allora) di qgis.
Non si poteva chiedere ogni riga passo passo.

Per cui a un certo punto rinunciai.

Da allora non ho piu' guardato il cookbook.

Anche perche' capisco che tenerlo allineato alle evoluzioni di qgis
sarebbe assurdo e costosissimo.

Quindi conviene che lo rimettano a posto solo quando le api di qgis
saranno veramente stabili,, non prima.

Nel frattempo, per questo caso specifico, risolvero' usando gdal da
linea di comando.


Grazie.


Il 9 luglio 2015 11:07, Alessandro Pasotti <[hidden email]> ha scritto:

> Il giorno 9 luglio 2015 11:05, Andrea Peri <[hidden email]> ha scritto:
>>
>> grazie,
>> sai se posso trovare gia' del codice scritto per questa operazione ?
>
>
> Non so, ma quello nei link del cookbook non va bene?
>
> Ci sono gli esempi, devi solo adattarli alle tue esigenze, selezionare il
> layer che vuoi (per es. iface.activeLayer() o in altro modo) e definire
> quali sono i campi che vuoi esportare e su quale nuovo file salvarli.
>
>
>>
>>
>> thx.
>>
>>
>> Il 9 luglio 2015 11:03, Alessandro Pasotti <[hidden email]> ha
>> scritto:
>> > Il giorno 9 luglio 2015 10:56, Andrea Peri <[hidden email]> ha
>> > scritto:
>> >>
>> >> Salve,
>> >> in un progetto qgis ho un layer che proviene da un collegamento a dbms.
>> >>
>> >> Devo esportarlo in shapefile, pero' tale layer nel dataset di origine
>> >> su dbms ha troppi campi e l'esportazione in shapefile supera i 4Gbyte
>> >> perla compoenente dbf rendendolo illeggibile da utenti con
>> >> arcgis/arcview.
>> >>
>> >> Pero' quesa enorme mole della parte dbf e' dovut al fatto che nella
>> >> tabella su dbms sono stati messi tutte le decodifiche esplicite su
>> >> campi a 255 caratteri.
>> >> In realta' a me basterebbe esportarmi la geometria e 3-4 campi con le
>> >> informazioni essenziali.
>> >>
>> >> Ce' modo in qgis di esportare da un layer solo una selezione di campi ?
>> >
>> >
>> >
>> > Dalla GUI non so, ma in Python puoi estrarre da un layer le features con
>> > gli
>> > attributi che vuoi, creare un nuovo layer (anche in memory) e poi
>> > salvarlo
>> > come shapefile.
>> >
>> > Vedi:
>> >
>> > http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/vector.html#iterating-over-a-subset-of-features
>> > e poi:
>> >
>> > http://docs.qgis.org/testing/en/docs/pyqgis_developer_cookbook/vector.html#writing-vector-layers
>> >
>> > --
>> > Alessandro Pasotti
>> > w3:   www.itopen.it
>>
>>
>>
>> --
>> -----------------
>> Andrea Peri
>> . . . . . . . . .
>> qwerty àèìòù
>> -----------------
>
>
>
>
> --
> Alessandro Pasotti
> w3:   www.itopen.it



--
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------
_______________________________________________
[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.
750 iscritti al 18.3.2015
Reply | Threaded
Open this post in threaded view
|

Re: Esportazione da dbms in shapefile tramite qgis con solo una selezione di campi.

Alessandro Pasotti-2
Il giorno 9 luglio 2015 11:20, Andrea Peri <[hidden email]> ha scritto:
Ho l'impressione che i codici del cookbook siano un po' invecchiati.
Un annetto fa' volendo provare a imparare le api di qgis, provai a
usare il cookbok, ma quasi tutti i sorgenti, che provai mi davano
qualche errore , dovuto a cambiamenti nelle API.
Un po' provai a chiedere in lista qgis, ma poila cosa era stressante ,
per ogni riga di codice dava errore.
Troppo differenti i sorgenti del cookbook dalla versione attuale (di
allora) di qgis.
Non si poteva chiedere ogni riga passo passo.

Per cui a un certo punto rinunciai.

Da allora non ho piu' guardato il cookbook.

Peccato, credo che il cookbook debba tornare ad essere il manuale di riferimento per PyQGIS, come lo è stato per molti che si sono avvicinati alla scrittura di plugin, e se ciascuno collabora nel suo piccolo a segnalare e correggere gli errori non è impossibile.
 

Anche perche' capisco che tenerlo allineato alle evoluzioni di qgis
sarebbe assurdo e costosissimo.

Non garantisco che sia al 100% corretto, ma recentemente ho controllato e  aggiornato buona parte degli esempi (allineati al "master" del momento):

https://github.com/qgis/QGIS-Documentation/commits/master/source/docs/pyqgis_developer_cookbook/vector.rst

Ti suggerisco di dargli una seconda chance, e aprire un ticket (su gihub che è molto più snello) se trovi dei problemi.


--
Alessandro Pasotti
w3:   www.itopen.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.
750 iscritti al 18.3.2015
Reply | Threaded
Open this post in threaded view
|

Re: Esportazione da dbms in shapefile tramite qgis con solo una selezione di campi.

Luca Delucchi
2015-07-09 11:26 GMT+02:00 Alessandro Pasotti <[hidden email]>:

>
> Peccato, credo che il cookbook debba tornare ad essere il manuale di
> riferimento per PyQGIS, come lo è stato per molti che si sono avvicinati
> alla scrittura di plugin, e se ciascuno collabora nel suo piccolo a
> segnalare e correggere gli errori non è impossibile.
>

+1, concordo che è fondamentale tenere la documentazione aggiornata
con il software.

>
> --
> Alessandro Pasotti
> w3:   www.itopen.it
>


--
ciao
Luca

http://gis.cri.fmach.it/delucchi/
www.lucadelu.org
_______________________________________________
[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.
750 iscritti al 18.3.2015
Reply | Threaded
Open this post in threaded view
|

Re: Esportazione da dbms in shapefile tramite qgis con solo una selezione di campi.

pcav
In reply to this post by Alessandro Pasotti-2
Il 09/07/2015 11:26, Alessandro Pasotti ha scritto:

> Peccato, credo che il cookbook debba tornare ad essere il manuale di
> riferimento per PyQGIS, come lo è stato per molti che si sono avvicinati
> alla scrittura di plugin, e se ciascuno collabora nel suo piccolo a
> segnalare e correggere gli errori non è impossibile.

Buone notizie: nel PSC meeting di ieri abbiamo deciso di finanziare
l'aggiornamento della documentazione per sviluppatori.
Grazie a tutti gli sponsor e i donatori (fra cui vari italiani) che
hanno reso possibile questa scelta.
Saluti.
--
Paolo Cavallini - www.faunalia.eu
QGIS & PostGIS courses: http://www.faunalia.eu/training.html
_______________________________________________
[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.
750 iscritti al 18.3.2015
Reply | Threaded
Open this post in threaded view
|

Re: Esportazione da dbms in shapefile tramite qgis con solo una selezione di campi.

Paolo Corti
In reply to this post by Andrea Peri
2015-07-09 10:56 GMT+02:00 Andrea Peri <[hidden email]>:

> Salve,
> in un progetto qgis ho un layer che proviene da un collegamento a dbms.
>
> Devo esportarlo in shapefile, pero' tale layer nel dataset di origine
> su dbms ha troppi campi e l'esportazione in shapefile supera i 4Gbyte
> perla compoenente dbf rendendolo illeggibile da utenti con
> arcgis/arcview.
>
> Pero' quesa enorme mole della parte dbf e' dovut al fatto che nella
> tabella su dbms sono stati messi tutte le decodifiche esplicite su
> campi a 255 caratteri.
> In realta' a me basterebbe esportarmi la geometria e 3-4 campi con le
> informazioni essenziali.
>
> Ce' modo in qgis di esportare da un layer solo una selezione di campi ?
>

due workaround, senza ricorrere a script python (casomai sarebbe utile
aggiornare il dialog QGIS che fa l'export, offrendo la possibilita' di
selezionare i campi da esportare):
1. passare per ogr2ogr e usando l'opzione --sql selezionare solo le
colonne di tuo interesse
2. creare una vista con le sole colonne necessarie al tuo export e poi
da qgis fare l'export

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.
750 iscritti al 18.3.2015
Reply | Threaded
Open this post in threaded view
|

Re: Esportazione da dbms in shapefile tramite qgis con solo una selezione di campi.

Andrea Peri
Ciao,
Grazie per il contributo.
Confermo che alla fine avevo fatto ricorso a gdal (ogr2ogr) applicando
una query sql di estrazione.

Avevo pensato anche a definire una vista visto che il dato originale
era su spatialite, ma vigliaccamente ho fatto un conte da osteria per
cui avrei impiegato qualche minuto di piu' tra costruire la vista e
registrarla sulla tabella di gestione delle viste. Per cui ho optato
per gdal.

:)


Il 13 luglio 2015 11:59, Paolo Corti <[hidden email]> ha scritto:

> 2015-07-09 10:56 GMT+02:00 Andrea Peri <[hidden email]>:
>> Salve,
>> in un progetto qgis ho un layer che proviene da un collegamento a dbms.
>>
>> Devo esportarlo in shapefile, pero' tale layer nel dataset di origine
>> su dbms ha troppi campi e l'esportazione in shapefile supera i 4Gbyte
>> perla compoenente dbf rendendolo illeggibile da utenti con
>> arcgis/arcview.
>>
>> Pero' quesa enorme mole della parte dbf e' dovut al fatto che nella
>> tabella su dbms sono stati messi tutte le decodifiche esplicite su
>> campi a 255 caratteri.
>> In realta' a me basterebbe esportarmi la geometria e 3-4 campi con le
>> informazioni essenziali.
>>
>> Ce' modo in qgis di esportare da un layer solo una selezione di campi ?
>>
>
> due workaround, senza ricorrere a script python (casomai sarebbe utile
> aggiornare il dialog QGIS che fa l'export, offrendo la possibilita' di
> selezionare i campi da esportare):
> 1. passare per ogr2ogr e usando l'opzione --sql selezionare solo le
> colonne di tuo interesse
> 2. creare una vista con le sole colonne necessarie al tuo export e poi
> da qgis fare l'export
>
> ciao
> p
>
> --
> Paolo Corti
> Geospatial software developer
> web: http://www.paolocorti.net
> twitter: @capooti
> skype: capooti



--
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------
_______________________________________________
[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.
750 iscritti al 18.3.2015