[Gfoss] Raster batch clipping

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

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

2011/10/20 Michele Beneventi <mbeneventi@gmail.com>

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

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 <neteler@osgeo.org> ha scritto:

2011/10/20 Michele Beneventi <mbeneventi@gmail.com>

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
Gfoss@lists.gfoss.it
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

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 <m.stelluti@gmail.com>

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 <neteler@osgeo.org> ha scritto:

2011/10/20 Michele Beneventi <mbeneventi@gmail.com>

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
Gfoss@lists.gfoss.it
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

2011/10/20 Michele Beneventi <mbeneventi@gmail.com>:

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

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 <mbeneventi@gmail.com>:
> 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
Gfoss@lists.gfoss.it
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

Grazie,
aspettando postgis 2.0 proverò anche questa soluzione…

vi farò sapere.

Michele

2011/10/20 Sandro Santilli <strk@keybit.net>

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 <mbeneventi@gmail.com>:

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
Gfoss@lists.gfoss.it
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

Il giorno 20 ottobre 2011 15:56, Sandro Santilli <strk@keybit.net> 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 <mbeneventi@gmail.com>:

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
Gfoss@lists.gfoss.it
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
Gfoss@lists.gfoss.it
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

On Thu, Oct 20, 2011 at 04:06:11PM +0200, G. Allegri wrote:

Il giorno 20 ottobre 2011 15:56, Sandro Santilli <strk@keybit.net> 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

Il giorno 20 ottobre 2011 16:18, Sandro Santilli <strk@keybit.net> ha scritto:

On Thu, Oct 20, 2011 at 04:06:11PM +0200, G. Allegri wrote:

Il giorno 20 ottobre 2011 15:56, Sandro Santilli <strk@keybit.net> 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 :wink:

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

–strk;

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