Raster batch clipping

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

Raster batch clipping

Michele Beneventi
Ciao a tutti,
vorrei clippare un raster rispetto ad una griglia con n celle (formato shp) ottenendo come output n raster. 
Vorrei usare gdal, ma non riesco a trovare un modo per eseguire la procedura in batch.

Esiste qualche strumento  simile al plugin sviluppato dalla Toscana (RT postgres Extractor) che mi
consentirebbe di avere come output tanti raster quante sono le celle della griglia?? e magari con il nomefile derivato da un attributo dello shape??


Vi ringrazio in anticipo
Michele

----------
Michele Beneventi
GIS Technologist
LAT: 39° 18' 25"; LONG: 08 °33' 20"
----------

http://www.michelebeneventi.it/
http://it.linkedin.com/in/michelebeneventi

?ui=2&view=att&th=125787ee7439bd8b&attid=0.1&disp=attd&realattid=ii_125787ee7439bd8b&zw



_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011
Reply | Threaded
Open this post in threaded view
|

Re: Raster batch clipping

pcav
Il 20/10/2011 13:28, Michele Beneventi ha scritto:

> vorrei clippare un raster rispetto ad una griglia con n celle (formato
> shp) ottenendo come output n raster.
> Vorrei usare gdal, ma non riesco a trovare un modo per eseguire la
> procedura in batch.
>
> Esiste qualche strumento  simile al plugin sviluppato dalla Toscana
> (RT postgres Extractor) che mi
> consentirebbe di avere come output tanti raster quante sono le celle
> della griglia?? e magari con il nomefile derivato da un attributo
> dello shape??
Non che mi venga a mente, ma non dovrebbe essere troppo difficile da
sviluppare.
Saluti.

--
Paolo Cavallini
See: http://www.faunalia.it/pc

_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011
Reply | Threaded
Open this post in threaded view
|

Re: Raster batch clipping

Markus Neteler
In reply to this post by Michele Beneventi
2011/10/20 Michele Beneventi <[hidden email]>
>
> Ciao a tutti,
> vorrei clippare un raster rispetto ad una griglia con n celle (formato shp) ottenendo come output n raster.
> Vorrei usare gdal, ma non riesco a trovare un modo per eseguire la procedura in batch.


Magari usando/modificando
http://www.gdal.org/gdal_retile.html
?

ciao
Markus
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011
Reply | Threaded
Open this post in threaded view
|

Re: Raster batch clipping

Marco Stelluti
Ciao mi sono imbattuto nel problema qualche tempo fa prova e per me la procedura ottimale è stata questa che poi ho inserito in un semplice file *.sh:

1_ ho creato tanti shp file di poligoni quante erano le aree di mio interesse (una tantum);
2_ ritaglio il raster utilizzando gdal_translate -projwin
3_ creo il raster contenuto nel poligono shp utilizzando il comando gdalwarp -cutline.

Se hai bisogno di aiuto potrei inviarti lo script.

Il giorno 20 ottobre 2011 14:35, Markus Neteler <[hidden email]> ha scritto:
2011/10/20 Michele Beneventi <[hidden email]>
>
> Ciao a tutti,
> vorrei clippare un raster rispetto ad una griglia con n celle (formato shp) ottenendo come output n raster.
> Vorrei usare gdal, ma non riesco a trovare un modo per eseguire la procedura in batch.


Magari usando/modificando
http://www.gdal.org/gdal_retile.html
?

ciao
Markus
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011
Reply | Threaded
Open this post in threaded view
|

Re: Raster batch clipping

Michele Beneventi
Grazie per le risposte!!!
Per ora ho trovato una soluzione intermedia, considerando che sono un umile " utente finale", che raggiunge il suo scopo:

la sintassi che ho usato è la seguente:

gdalwarp -q -cutline /path/dello/shape 
              -cwhere "AttributoPerSQLClip = 'valoreAttributo'"
              -crop_to_cutline /path/immagine/da clippare
             /path/dell'/output/

il parametro -cwhere è stata una bella sopresa!

grazie ancora
a presto
Michele

2011/10/20 Marco Stelluti <[hidden email]>
Ciao mi sono imbattuto nel problema qualche tempo fa prova e per me la procedura ottimale è stata questa che poi ho inserito in un semplice file *.sh:

1_ ho creato tanti shp file di poligoni quante erano le aree di mio interesse (una tantum);
2_ ritaglio il raster utilizzando gdal_translate -projwin
3_ creo il raster contenuto nel poligono shp utilizzando il comando gdalwarp -cutline.

Se hai bisogno di aiuto potrei inviarti lo script.

Il giorno 20 ottobre 2011 14:35, Markus Neteler <[hidden email]> ha scritto:
2011/10/20 Michele Beneventi <[hidden email]>
>
> Ciao a tutti,
> vorrei clippare un raster rispetto ad una griglia con n celle (formato shp) ottenendo come output n raster.
> Vorrei usare gdal, ma non riesco a trovare un modo per eseguire la procedura in batch.


Magari usando/modificando
http://www.gdal.org/gdal_retile.html
?

ciao
Markus
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011



_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011
Reply | Threaded
Open this post in threaded view
|

Re: Raster batch clipping

Paolo Corti
2011/10/20 Michele Beneventi <[hidden email]>:

> Grazie per le risposte!!!
> Per ora ho trovato una soluzione intermedia, considerando che sono un umile
> " utente finale", che raggiunge il suo scopo:
> la sintassi che ho usato è la seguente:
> gdalwarp -q -cutline /path/dello/shape
>               -cwhere "AttributoPerSQLClip = 'valoreAttributo'"
>               -crop_to_cutline /path/immagine/da clippare
>              /path/dell'/output/
> il parametro -cwhere è stata una bella sopresa!
> grazie ancora
> a presto
> Michele

Ciao Michele
senza dover pre-trattare lo shapefile, potresti farti uno script
Python tipo questo, veramente molto semplice (usando ogr da codice e poi il
comando gdal_translate):

import os
from osgeo import ogr

def ClipRasterWithShape(raster, shapefile):
    driver = ogr.GetDriverByName('ESRI Shapefile')
    dataset = driver.Open(shapefile, 0)
    layer = dataset[0]
    for feature in layer:
        geom = feature.GetGeometryRef()
        envelope = geom.GetEnvelope()
        print 'Clipping feature %s with extent: %s' %
(feature.GetFID(), envelope)
        os.system('gdal_translate -projwin %s %s %s %s  %s out%s' %
(envelope[0], envelope[3], envelope[1], envelope [2], raster,
feature.GetFID()))

ClipRasterWithShape('myraster.tif', 'myshape.shp')

salva tutto come myprog.py e lancia:
$ python myprog.py

se hai il supporto Python per gdal dovrebbe andare senza problemi

ciao
P

--
Paolo Corti
Geospatial software developer
web: http://www.paolocorti.net
twitter: @capooti
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011
Reply | Threaded
Open this post in threaded view
|

Re: Raster batch clipping

Sandro Santilli
Con l'upcoming PostGIS-2.0 potrai fare tutto all'interno
del database, a colpi di SQL.

--strk;

On Thu, Oct 20, 2011 at 03:44:11PM +0200, Paolo Corti wrote:

> 2011/10/20 Michele Beneventi <[hidden email]>:
> > Grazie per le risposte!!!
> > Per ora ho trovato una soluzione intermedia, considerando che sono un umile
> > " utente finale", che raggiunge il suo scopo:
> > la sintassi che ho usato è la seguente:
> > gdalwarp -q -cutline /path/dello/shape
> >               -cwhere "AttributoPerSQLClip = 'valoreAttributo'"
> >               -crop_to_cutline /path/immagine/da clippare
> >              /path/dell'/output/
> > il parametro -cwhere è stata una bella sopresa!
> > grazie ancora
> > a presto
> > Michele
>
> Ciao Michele
> senza dover pre-trattare lo shapefile, potresti farti uno script
> Python tipo questo, veramente molto semplice (usando ogr da codice e poi il
> comando gdal_translate):
>
> import os
> from osgeo import ogr
>
> def ClipRasterWithShape(raster, shapefile):
>     driver = ogr.GetDriverByName('ESRI Shapefile')
>     dataset = driver.Open(shapefile, 0)
>     layer = dataset[0]
>     for feature in layer:
>         geom = feature.GetGeometryRef()
>         envelope = geom.GetEnvelope()
>         print 'Clipping feature %s with extent: %s' %
> (feature.GetFID(), envelope)
>         os.system('gdal_translate -projwin %s %s %s %s  %s out%s' %
> (envelope[0], envelope[3], envelope[1], envelope [2], raster,
> feature.GetFID()))
>
> ClipRasterWithShape('myraster.tif', 'myshape.shp')
>
> salva tutto come myprog.py e lancia:
> $ python myprog.py
>
> se hai il supporto Python per gdal dovrebbe andare senza problemi
>
> ciao
> P
>
> --
> Paolo Corti
> Geospatial software developer
> web: http://www.paolocorti.net
> twitter: @capooti
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> Non inviate messaggi commerciali.
> I messaggi di questa lista non rispecchiano necessariamente
> le posizioni dell'Associazione GFOSS.it.
> 527 iscritti al 7.7.2011

--

  ()   Free GIS & Flash consultant/developer
  /\   http://strk.keybit.net/services.html
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011
Reply | Threaded
Open this post in threaded view
|

Re: Raster batch clipping

Michele Beneventi
Grazie,
aspettando postgis 2.0 proverò anche questa soluzione......

vi farò sapere.

Michele

2011/10/20 Sandro Santilli <[hidden email]>
Con l'upcoming PostGIS-2.0 potrai fare tutto all'interno
del database, a colpi di SQL.

--strk;

On Thu, Oct 20, 2011 at 03:44:11PM +0200, Paolo Corti wrote:
> 2011/10/20 Michele Beneventi <[hidden email]>:
> > Grazie per le risposte!!!
> > Per ora ho trovato una soluzione intermedia, considerando che sono un umile
> > " utente finale", che raggiunge il suo scopo:
> > la sintassi che ho usato è la seguente:
> > gdalwarp -q -cutline /path/dello/shape
> >               -cwhere "AttributoPerSQLClip = 'valoreAttributo'"
> >               -crop_to_cutline /path/immagine/da clippare
> >              /path/dell'/output/
> > il parametro -cwhere è stata una bella sopresa!
> > grazie ancora
> > a presto
> > Michele
>
> Ciao Michele
> senza dover pre-trattare lo shapefile, potresti farti uno script
> Python tipo questo, veramente molto semplice (usando ogr da codice e poi il
> comando gdal_translate):
>
> import os
> from osgeo import ogr
>
> def ClipRasterWithShape(raster, shapefile):
>     driver = ogr.GetDriverByName('ESRI Shapefile')
>     dataset = driver.Open(shapefile, 0)
>     layer = dataset[0]
>     for feature in layer:
>         geom = feature.GetGeometryRef()
>         envelope = geom.GetEnvelope()
>         print 'Clipping feature %s with extent: %s' %
> (feature.GetFID(), envelope)
>         os.system('gdal_translate -projwin %s %s %s %s  %s out%s' %
> (envelope[0], envelope[3], envelope[1], envelope [2], raster,
> feature.GetFID()))
>
> ClipRasterWithShape('myraster.tif', 'myshape.shp')
>
> salva tutto come myprog.py e lancia:
> $ python myprog.py
>
> se hai il supporto Python per gdal dovrebbe andare senza problemi
>
> ciao
> P
>
> --
> Paolo Corti
> Geospatial software developer
> web: http://www.paolocorti.net
> twitter: @capooti
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> Non inviate messaggi commerciali.
> I messaggi di questa lista non rispecchiano necessariamente
> le posizioni dell'Associazione GFOSS.it.
> 527 iscritti al 7.7.2011

--

 ()   Free GIS & Flash consultant/developer
 /\   http://strk.keybit.net/services.html


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011
Reply | Threaded
Open this post in threaded view
|

Re: Raster batch clipping

giohappy
In reply to this post by Sandro Santilli
Il giorno 20 ottobre 2011 15:56, Sandro Santilli <[hidden email]> ha scritto:
Con l'upcoming PostGIS-2.0 potrai fare tutto all'interno
del database, a colpi di SQL.

Non vedo l'ora di provare le novità, prima fra tutte il supporto Raster!
E' già prevista una data di uscita?

giovanni


--strk;

On Thu, Oct 20, 2011 at 03:44:11PM +0200, Paolo Corti wrote:
> 2011/10/20 Michele Beneventi <[hidden email]>:
> > Grazie per le risposte!!!
> > Per ora ho trovato una soluzione intermedia, considerando che sono un umile
> > " utente finale", che raggiunge il suo scopo:
> > la sintassi che ho usato è la seguente:
> > gdalwarp -q -cutline /path/dello/shape
> >               -cwhere "AttributoPerSQLClip = 'valoreAttributo'"
> >               -crop_to_cutline /path/immagine/da clippare
> >              /path/dell'/output/
> > il parametro -cwhere è stata una bella sopresa!
> > grazie ancora
> > a presto
> > Michele
>
> Ciao Michele
> senza dover pre-trattare lo shapefile, potresti farti uno script
> Python tipo questo, veramente molto semplice (usando ogr da codice e poi il
> comando gdal_translate):
>
> import os
> from osgeo import ogr
>
> def ClipRasterWithShape(raster, shapefile):
>     driver = ogr.GetDriverByName('ESRI Shapefile')
>     dataset = driver.Open(shapefile, 0)
>     layer = dataset[0]
>     for feature in layer:
>         geom = feature.GetGeometryRef()
>         envelope = geom.GetEnvelope()
>         print 'Clipping feature %s with extent: %s' %
> (feature.GetFID(), envelope)
>         os.system('gdal_translate -projwin %s %s %s %s  %s out%s' %
> (envelope[0], envelope[3], envelope[1], envelope [2], raster,
> feature.GetFID()))
>
> ClipRasterWithShape('myraster.tif', 'myshape.shp')
>
> salva tutto come myprog.py e lancia:
> $ python myprog.py
>
> se hai il supporto Python per gdal dovrebbe andare senza problemi
>
> ciao
> P
>
> --
> Paolo Corti
> Geospatial software developer
> web: http://www.paolocorti.net
> twitter: @capooti
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> [hidden email]
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> Non inviate messaggi commerciali.
> I messaggi di questa lista non rispecchiano necessariamente
> le posizioni dell'Associazione GFOSS.it.
> 527 iscritti al 7.7.2011

--

 ()   Free GIS & Flash consultant/developer
 /\   http://strk.keybit.net/services.html
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011
Reply | Threaded
Open this post in threaded view
|

Re: Raster batch clipping

Sandro Santilli
On Thu, Oct 20, 2011 at 04:06:11PM +0200, G. Allegri wrote:
> Il giorno 20 ottobre 2011 15:56, Sandro Santilli <[hidden email]> ha
> scritto:
>
> > Con l'upcoming PostGIS-2.0 potrai fare tutto all'interno
> > del database, a colpi di SQL.
> >
>
> Non vedo l'ora di provare le novità, prima fra tutte il supporto Raster!
> E' già prevista una data di uscita?

Per provare le novita' non c'e' bisogno di aspettare l'uscita.
Anzi, ogni test in questo stadio puo' ravvicinare la release.

A grandi linee la release ufficiale e' prevista per febbraio 2012.

Code freeze a fine Novembre.

A questo proposito, se qualcuno fosse interessato al supporto topologico
c'e' una funzione che faciliterebbe di gran lunga la conversione di
layer semplici in layer topologici, e che e' in cerca di cofinanziatori:

  http://strk.keybit.net/projects/postgis/#tasks

--strk;

  ()   Free GIS & Flash consultant/developer
  /\   http://strk.keybit.net/services.html
_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011
Reply | Threaded
Open this post in threaded view
|

Re: Raster batch clipping

giohappy


Il giorno 20 ottobre 2011 16:18, Sandro Santilli <[hidden email]> ha scritto:
On Thu, Oct 20, 2011 at 04:06:11PM +0200, G. Allegri wrote:
> Il giorno 20 ottobre 2011 15:56, Sandro Santilli <[hidden email]> ha
> scritto:
>
> > Con l'upcoming PostGIS-2.0 potrai fare tutto all'interno
> > del database, a colpi di SQL.
> >
>
> Non vedo l'ora di provare le novità, prima fra tutte il supporto Raster!
> E' già prevista una data di uscita?

Per provare le novita' non c'e' bisogno di aspettare l'uscita.
Anzi, ogni test in questo stadio puo' ravvicinare la release.

Farò un giro su una nightly build appena trovo un briciolo di tempo...
 
A questo proposito, se qualcuno fosse interessato al supporto topologico
c'e' una funzione che faciliterebbe di gran lunga la conversione di
layer semplici in layer topologici, e che e' in cerca di cofinanziatori:

Magari, Sandro! Avessi due lire in tasca lo finanzierei al volo... spargerò la voce comunque anche tra i miei canali ;)
 

 http://strk.keybit.net/projects/postgis/#tasks

--strk;

 ()   Free GIS & Flash consultant/developer
 /\   http://strk.keybit.net/services.html


_______________________________________________
Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
[hidden email]
http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
Questa e' una lista di discussione pubblica aperta a tutti.
Non inviate messaggi commerciali.
I messaggi di questa lista non rispecchiano necessariamente
le posizioni dell'Associazione GFOSS.it.
527 iscritti al 7.7.2011