[Python] Rasterizzare un layer vettoriale usando la libreria GDAL

Riccardo Lemmi riccardo a reflab.com
Mar 15 Gen 2013 18:55:11 CET


Maurizio Minissale wrote:

> Grazie innanzitutto per la risposta Riccardo,
> 
> effettivamente mi sto basando su quanto riportato nel link che mi hai
> postato
> .
> Praticamente ho eseguito le operazioni riportate nella risposta di
> stackoverflow con le modifiche del mio caso specifico (aggiungendo il
> campo 'Index' allo shp).
> Il tuo <quoto: "you have to make the source and destination extents
> match or everything is clipped out."> potrebbe essere la
> risposta...infatti il risultato da me ottenuto non coincide con il DEM
> target, ma piuttosto con gli extents del layer vettoriale, che passo
> come nell'esempio da te citato.
> 
> Come suggerisci di procedere?
> 
> Maurizio
> 
> 

Su stackoverflow c'è un esempio funzionante. Se non fa al caso tuo 
l'opzione migliore rimane il canale #gdal.

> Il giorno 15 gennaio 2013 15:05, <python-request a lists.python.it> ha
> scritto:
> ...
>> Maurizio Minissale wrote:
>>
>> > Ciao a tutti,
>> >
>> > quello che sto cercando di fare è ottenere un layer raster partendo
>> > da un vettoriale.
>> > Più precisamente ho un vettoriale contenente poligoni e vorrei
>> > rasterizzare l'informazione di uno specifico campo, ovvero il campo
>> > 'Index' (che ho aggiunto al layer vettoriale originale) contenente
>> > valori interi compresi tra 0 e 9.
>> >
>> > Ho utilizzato l'istruzione:
>> >
>> > err = gdal.RasterizeLayer(target_ds, (3,2,1), source_layer,
>> > burn_values=(0,0,0), options=["ATTRIBUTE= Index"])
>> >
>> > che effettua la rasterizzazione partendo da un DEM (target_ds)
>> > target, ma mi ritrovo una matrice piena di 0 e non i valori del
>> > campo.
>> >
>> > Qualcuno ha qualche suggerimento in merito?
>> > Purtroppo la documentazione a riguardo non è molto chiara...
>> >
>> > Grazie in anticipo,
>> > Maurizio.
>>
>> Questo potrebbe rispondere in parte alla tua domanda:
>>
>>   http://stackoverflow.com/questions/2220749/rasterizing-a-gdal-layer
>>
>> quoto: "you have to make the source and destination extents match or
>> everything is clipped out."
>>
>> Sul canale irc #gdal ti possono dare una indicazione migliore sulle
>> cose da controllare.
>> --
>>                                        Riccardo Lemmi
>>
>>
>>
>> ------------------------------
>>
>> Message: 2
>> Date: Tue, 15 Jan 2013 12:23:29 +0100
>> From: Giovanni Porcari <giovanni.porcari a softwell.it>
>> To: python a lists.python.it
>> Subject: [Python] [OT] Trello
>> Message-ID: <1FAFD885-EC07-4D44-BAF8-A35FC896D267 a softwell.it>
>> Content-Type: text/plain; charset=iso-8859-1
>>
>> Ho da poco conosciuto Trello (www.trello.com) e me ne sono
>> innamorato. Per gestire progetti complessi o anche solo per
>> organizzarsi la vita è una meraviglia. Il fatto che sia gratuito lo
>> rende perfetto.
>>
>>
>> Un grazie a Giovanni Bajo che me lo ha fatto conoscere.
>>
>>
>> G
>>
>> ------------------------------
>>
>> Message: 3
>> Date: Tue, 15 Jan 2013 14:23:37 +0100
>> From: Andrea Ambu <andreambu a gmail.com>
>> To: Discussioni generali sul linguaggio Python
>>         <python a lists.python.it>
>> Subject: [Python] [django] max_age cache control dinamico
>> Message-ID:
>>         <
>> CAFCbtovRKo+X2-Ry2vrwjr_CzVznP9cCCLqY8TxkCCL5j8SqAg a mail.gmail.com>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> Ciao!
>>
>> Dunque si puo` facilmente controllare la max_age per una view cosi`:
>>
>> """""""""""
>> from django.views.decorators.cache import cache_control
>>
>> @cache_control(max_age=3600)
>> def my_view(request):
>>     # ...
>>
>> """""""""""
>>
>> Ma se volessi che il valore di max_age venga deciso _dentro_ my_view
>> come posso fare?
>>
>> Per esempio:
>> """""""""""
>> def my_view(request):
>>     if is_good_to_keep_in_cache_for_a_bit(request):
>>         # set max_age to 36000
>>     else:
>>         # set max_age to 42
>>     # ...
>> """""""""""
>>
>> Cheers,
>> Andrea
>> -------------- parte successiva --------------
>> Un allegato HTML è stato rimosso...
>> URL: <
>> 
http://lists.python.it/pipermail/python/attachments/20130115/3dc0a2ed/attachment-0001.html
>> >
>>
>> ------------------------------
>>
>> Message: 4
>> Date: Tue, 15 Jan 2013 14:40:50 +0100
>> From: Marco Beri <marcoberi a gmail.com>
>> To: Andrea Ambu <andreambu a gmail.com>,  Discussioni generali sul
>>         linguaggio Python <python a lists.python.it>
>> Subject: Re: [Python] [django] max_age cache control dinamico
>> Message-ID:
>>         <CAN1J36jHAW4x-kB=
>> Lu2FR_9yAemyCNiOzzu33iY41UcaFvPNng a mail.gmail.com>
>> Content-Type: text/plain; charset="utf-8"
>>
>> On Tue, Jan 15, 2013 at 2:23 PM, Andrea Ambu <andreambu a gmail.com>
>> wrote:
>>
>> > Ciao!
>> > Dunque si puo` facilmente controllare la max_age per una view
>> > cosi`:
>> >
>> > """""""""""
>> > from django.views.decorators.cache import cache_control
>> >
>> > @cache_control(max_age=3600)
>> > def my_view(request):
>> >     # ...
>> >
>> > """""""""""
>> >
>> > Ma se volessi che il valore di max_age venga deciso _dentro_
>> > my_view come posso fare?
>> >
>> > Per esempio:
>> > """""""""""
>> > def my_view(request):
>> >     if is_good_to_keep_in_cache_for_a_bit(request):
>> >         # set max_age to 36000
>> >     else:
>> >         # set max_age to 42
>> >     # ...
>> > """""""""""
>> >
>>
>> Boh, potresti importare patch_cache_control da django.utils.cache.py
>> e fare:
>>
>>     response = patch_cache_control(response, max_age=<quello che
>>     vuoi>)
>>
>> Oppure provare a passare una property come valore di max_age.
>>
>> Entrambe idee non provate: lascio al lettore l'onere della prova :-)
>>
>> Ciao.
>> Marco.
>>
>> --
>> http://beri.it/ - Un blog
>> http://beri.it/i-miei-libri/ - Qualche libro
>> -------------- parte successiva --------------
>> Un allegato HTML è stato rimosso...
>> URL: <
>> 
http://lists.python.it/pipermail/python/attachments/20130115/94c55c0b/attachment-0001.html
>> >
>>
>> ------------------------------
>>
>> Message: 5
>> Date: Tue, 15 Jan 2013 14:46:14 +0100
>> From: Manlio Perillo <manlio.perillo a gmail.com>
>> To: python a lists.python.it
>> Subject: Re: [Python] [django] max_age cache control dinamico
>> Message-ID: <50F55DA6.6090806 a gmail.com>
>> Content-Type: text/plain; charset=ISO-8859-1
>>
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Il 15/01/2013 14:23, Andrea Ambu ha scritto:
>> > Ciao!
>> >
>> > Dunque si puo` facilmente controllare la max_age per una view
>> > cosi`:
>> >
>> > """""""""""
>> > from django.views.decorators.cache import cache_control
>> >
>> > @cache_control(max_age=3600)
>> > def my_view(request):
>> >     # ...
>> >
>> > """""""""""
>> >
>> > Ma se volessi che il valore di max_age venga deciso _dentro_
>> > my_view come posso fare?
>> >
>>
>> Dovresti leggere la specifica del protocollo HTTP, se vuoi sviluppare
>> applicazioni web:
>> http://tools.ietf.org/html/rfc2616#section-14.9
>>
>> Mi aspetto (ed è così) che il middleware di Django onori l'header
>> Cache-Control, magari (ma non è così) con una estensione per limitare
>> il caching internamente (e non inviare l'header al client).
>>
>> Nel dubbio basta leggere il codice sorgente:
>> django/views/decorators/cache.py
>> e
>> django/utils/cache.py
>>
>> > Per esempio:
>> > """""""""""
>> > def my_view(request):
>> >     if is_good_to_keep_in_cache_for_a_bit(request):
>>           request['Cache-Control'] = 'max-age=3600'
>> >         # set max_age to 36000
>> >     else:
>> >         # set max_age to 42
>>           request['Cache-Control'] = 'max-age=42'
>> >     # ...
>> > """""""""""
>> >
>>
>> Ciao  Manlio
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.10 (GNU/Linux)
>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>>
>> iEYEARECAAYFAlD1XaYACgkQscQJ24LbaUSkBgCdGpfyolXjBbyVcQsoK4lpG1MU
>> x0oAn0kWgfUSCjNyrCSltZf9oeYAWtZl
>> =PQeC
>> -----END PGP SIGNATURE-----
>>
>>
>> ------------------------------
>>
>> Message: 6
>> Date: Tue, 15 Jan 2013 15:00:42 +0100
>> From: Lorenzo Macchiavelli <lmacchiavelli a gmail.com>
>> To: Discussioni generali sul linguaggio Python
>>         <python a lists.python.it>
>> Subject: [Python] Problema avvio python
>> Message-ID:
>>         <CAC+hpxWN04hbahQcPX=
>> RU2oTurOWaX6pN-vtJcn+p_Gmh2mqUw a mail.gmail.com>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> Ciao a tutti,
>> sul mio pc utilizzo py 2.7 Ho installato la versione 3.3.0,
>> ora quando cerco di avviare o la linea di comando o idle
>> su entrambe le versioni parte per un'istante e si chiude senza dare
>> nessun messaggio di errore..
>>
>> qualcuno ha avuto il mio stesso problema??
>>
>>
>> Lorenzo Macchiavelli
>>
>> web designer
>> -------------- parte successiva --------------
>> Un allegato HTML è stato rimosso...
>> URL: <
>> 
http://lists.python.it/pipermail/python/attachments/20130115/d07ce734/attachment-0001.html
>> >
>>
>> ------------------------------
>>
>> Message: 7
>> Date: Tue, 15 Jan 2013 15:05:10 +0100
>> From: Michele Gatti <mgsoluzioni a gmail.com>
>> To: Discussioni generali sul linguaggio Python
>>         <Python a lists.python.it>
>> Subject: [Python] Documentazione
>> Message-ID:
>>         <
>> CAOvJdBvB7_CNHPmFWPUzqfVfJzZQbm+6kc_x1nVbuCbO27N3Ng a mail.gmail.com>
>> Content-Type: text/plain; charset="iso-8859-1"
>>
>> Ciao a tutti, avrei bisogno di recuperare la documentazione dei
>> moduli della libreria standard di python a runtime
>> Come posso fare?
>>
>>
>>   [image: logo]
>> *Michele Gatti*
>> *"Per imparare un nuovo linguaggio di programmazione ci vuole un
>> sacco di lavoro, e le persone non imparano Python perché questo
>> permetterà loro di avere un lavoro, ma perché amano genuinamente
>> programmare e non sono soddisfatte con i linguaggi che già
>> conoscono."*
>>   [image: Flickr] <http://www.flickr.com/photos/gmikele/> [image:
>> LinkedIn]<http://it.linkedin.com/in/michelegatti> [image:
>> Tumblr] <http://tryexcept.tumblr.com/> [image:
>> pinterest]<http://pinterest.com/gmikele/>
>>  Get a signature like this:
>> <
>> 
http://r1.wisestamp.com/r/landing?promo=29&dest=http%3A%2F%2Fwww.wisestamp.com%2Femail-
install%3Futm_source%3Dextension%26utm_medium%3Demail%26utm_campaign%3Dpromo_29
>> >
>> Click
>> here!<
>> 
http://r1.wisestamp.com/r/landing?promo=29&dest=http%3A%2F%2Fwww.wisestamp.com%2Femail-
install%3Futm_source%3Dextension%26utm_medium%3Demail%26utm_campaign%3Dpromo_29
>> >
>> -------------- parte successiva --------------
>> Un allegato HTML è stato rimosso...
>> URL: <
>> 
http://lists.python.it/pipermail/python/attachments/20130115/8fe96223/attachment.html
>> >
>>
>> ------------------------------
>>
>> _______________________________________________
>> Python mailing list
>> Python a lists.python.it
>> http://lists.python.it/mailman/listinfo/python
>>
>>
>> Fine di Digest di Python, Volume 83, Numero 14
>> **********************************************
>>

-- 
                                       Riccardo Lemmi



Maggiori informazioni sulla lista Python