Come processare un elevato numero di raster con "r.series"?

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

Come processare un elevato numero di raster con "r.series"?

marcogg
Ciao a tutti, 
vi spiego il mio problema. Ho creato uno script in python che faccio eseguire all'interno di QGIS tramite gli strumenti di processing (ambiente Windows). All'interno di questo script utilizzo la funzione "r.series" per eseguire alcune operazioni (conteggio, media, etc.) su un certo numero di raster generati durante l'algoritmo. Il mio script funziona bene se il numero di raster che faccio "leggere" a "r.series" è minore di 400: in caso contrario, lo script smette di funzionare. 
Ho letto sulla guida di "r.series" che ci sono delle limitazioni sul numero massimo di files utilizzabili (che dipende, a quanto ho capito, sia dal pc in uso che dalla RAM). 
Qualcuno di voi conosce un modo per risolvere questo problema con "r.series" o anche servendosi di altre procedure? Spero sia possibile!

_______________________________________________
[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: Come processare un elevato numero di raster con "r.series"?

margherita
Ciao,

2015-06-05 10:26 GMT+02:00 Marco Grisolia <[hidden email]>:
Ciao a tutti, 
vi spiego il mio problema. Ho creato uno script in python che faccio eseguire all'interno di QGIS tramite gli strumenti di processing (ambiente Windows). All'interno di questo script utilizzo la funzione "r.series" per eseguire alcune operazioni (conteggio, media, etc.) su un certo numero di raster generati durante l'algoritmo. Il mio script funziona bene se il numero di raster che faccio "leggere" a "r.series" è minore di 400: in caso contrario, lo script smette di funzionare. 

Con che errore? 

Ho letto sulla guida di "r.series" che ci sono delle limitazioni sul numero massimo di files utilizzabili (che dipende, a quanto ho capito, sia dal pc in uso che dalla RAM). 
Qualcuno di voi conosce un modo per risolvere questo problema con "r.series" o anche servendosi di altre procedure? Spero sia possibile!

Dipende dal problema. Per esempio: https://support.microsoft.com/en-us/kb/87690 



--
Best regards,

Dr. Margherita DI LEO    
Scientific / technical project officer

European Commission - DG JRC 
Institute for Environment and Sustainability (IES)
Via Fermi, 2749
I-21027 Ispra (VA) - Italy - TP 261
       
Tel. +39 0332 78 3600   

Disclaimer: The views expressed are purely those of the writer and may not in any circumstance be regarded as stating an official position of the European Commission.

_______________________________________________
[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: Come processare un elevato numero di raster con "r.series"?

Sieradz
margherita wrote
Dipende dal problema. Per esempio:
https://support.microsoft.com/en-us/kb/87690


Ehm, il link che hai segnalato avrebbe risolto il problema 20 anni fa, come ricorda bene chi lottava con l'edit di config.sys & autoexec.bat...

@ Marco

Che sistema operativo stai usando, 32 o 64 bit?
Reply | Threaded
Open this post in threaded view
|

Re: Come processare un elevato numero di raster con "r.series"?

marcogg
Ho Windows 64 bit (4GB di RAM)

Ho scritto qualcosa in più in questa discussione, se può essere di aiuto..

http://grass-italia.587033.n2.nabble.com/Come-processare-un-elevato-numero-di-raster-con-quot-r-series-quot-td7575422.html

La cosa strana è che, se i raster che genero sono meno di 400, la procedura funziona alla perfezione: ciò significa che non ci sono errori nel codice che ho scritto..
Ribadisco comunque che non sono necessariamente interessato all'utilizzo di r.series, ma sono aperto anche ad altre strade (che al momento non conosco)..
Reply | Threaded
Open this post in threaded view
|

Re: Come processare un elevato numero di raster con "r.series"?

Luca Delucchi
In reply to this post by marcogg
2015-06-05 10:26 GMT+02:00 Marco Grisolia <[hidden email]>:
> Ciao a tutti,

ciao,

> vi spiego il mio problema. Ho creato uno script in python che faccio
> eseguire all'interno di QGIS tramite gli strumenti di processing (ambiente
> Windows). All'interno di questo script utilizzo la funzione "r.series" per
> eseguire alcune operazioni (conteggio, media, etc.) su un certo numero di
> raster generati durante l'algoritmo. Il mio script funziona bene se il
> numero di raster che faccio "leggere" a "r.series" è minore di 400: in caso
> contrario, lo script smette di funzionare.
> Ho letto sulla guida di "r.series" che ci sono delle limitazioni sul numero
> massimo di files utilizzabili (che dipende, a quanto ho capito, sia dal pc
> in uso che dalla RAM).
> Qualcuno di voi conosce un modo per risolvere questo problema con "r.series"
> o anche servendosi di altre procedure? Spero sia possibile!
>

alcuni (tra cui una delle persone più esperte di GRASS) ti hanno già
risposto in un'altra mailing list.
Hai provato a lanciare il tuo comando direttamente in GRASS senza
passare da QGIS?


--
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: Come processare un elevato numero di raster con "r.series"?

marcogg
Ciao,
purtroppo non so usare grass (sono un utente di QGIS non così avanzato da saper usare anche grass)..
Reply | Threaded
Open this post in threaded view
|

Re: Come processare un elevato numero di raster con "r.series"?

Luca Delucchi
2015-06-05 11:56 GMT+02:00 Marco Grisolia <[hidden email]>:
> Ciao,

ciao,

> purtroppo non so usare grass (sono un utente di QGIS non così avanzato da
> saper usare anche grass)..
>

eh se devi fare analisi complesse ti conviene imparare ad usarlo...


--
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: Come processare un elevato numero di raster con "r.series"?

marcogg
Forse con il mio ultimo post posso aver fatto la figura dello scansafatiche, ma non è così: sto creando uno script/plugin da utilizzare all'interno di QGIS, per cui non so se sia utile allo scopo saper utilizzare direttamente grass (prometto comunque che ci proverò).
Mi sembra strano che, tramite QGIS, non sia possibile fare delle operazioni semplici su un certo numero di raster (ogni raster, tra l'altro, non è più grande di 10 kb)..
Reply | Threaded
Open this post in threaded view
|

Re: Come processare un elevato numero di raster con "r.series"?

Luca Delucchi
2015-06-05 12:06 GMT+02:00 Marco Grisolia <[hidden email]>:
> Forse con il mio ultimo post posso aver fatto la figura dello scansafatiche,
> ma non è così: sto creando uno script/plugin da utilizzare all'interno di
> QGIS, per cui non so se sia utile allo scopo saper utilizzare direttamente
> grass (prometto comunque che ci proverò).

se è utile o no dipende, se per il tuo modulo usi solo moduli di GRASS
sarebbe molto utile (ogni volta che QGIS lancia un processo di GRASS
importa ed esporta i dati nel formato di GRASS perciò impiega molto
più tempo)

> Mi sembra strano che, tramite QGIS, non sia possibile fare delle operazioni
> semplici su un certo numero di raster (ogni raster, tra l'altro, non è più
> grande di 10 kb)..
>

guarda sono ormai 10 mesi che sto lavorando su un plugin (abbastanza
inutile) per QGIS e ti posso assicurare che le cose strane che
accadono sono tantissime, e se poi parliamo di Windows l'incremento
delle cose strane è altissimo :-(

--
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: Come processare un elevato numero di raster con "r.series"?

pcav
Il 05/06/2015 12:15, Luca Delucchi ha scritto:

> sarebbe molto utile (ogni volta che QGIS lancia un processo di GRASS
> importa ed esporta i dati nel formato di GRASS perciò impiega molto
> più tempo)

questo e' vero solo per i vettori - per i raster l'overhead e' minimo, e
solo in esportazione.
ovviamente concordo: se usi solo moduli di grass ti conviene sicuramente
usare grass, da una sua qualsiasi interfaccia, grafica o meno.
se usi Processing puoi usare anche i comandi di saga, qgis, ogr, gdal,
che a volte ti salvano.
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: Come processare un elevato numero di raster con "r.series"?

marcogg
Provo a spiegarmi meglio.

Parto da un certo numero di shape (punti), sui quali compio una serie di operazioni utilizzando gli strumenti di processing (salvo i risultati di volta in volta come risultati temporanei nella cartella temporanea di qgis). Arrivato alla fine dei miei calcoli, prendo il vettore finale e uso l'algoritmo "gdalogr:rasterize" per convertire una sua  "colonna" di valori in un raster. Questo raster, che continua ad essere temporaneo, viene aggiunto di volta in volta in una lista: dopo aver analizzato tutti i punti, avrò un certo numero di raster che apparterranno a questa lista.
Quello che faccio è, successivamente, utilizzare "r.series" per eseguire operazioni come conteggio, media, valori minimi, valori massimi.. L'input di r.series è costituito ovviamente dalla mia lista di raster creata precedentemente. L'algoritmo "r.series" lo lancio in questo modo:

list=['my_raster_outputs']
processing.runalg('grass7:r.series',list,False,1,None,extent,0,risultato)

Sottolineo che i raster che appartengono alla lista mi servono solo per fare le operazioni con r.series (una volta che ho fatto la media dei valori di 100 raster, ad esempio, mi serve solo il raster finale e non i 100 raster parziali, tant'è che li salvo nella cartella temporanea di qgis).
La procedura dovrebbe essere corretta perché, se il numero di raster all'interno della lista è inferiore a 400, lo script funziona alla perfezione e genera gli output richiesti.. Intanto grazie a tutti per l'interessamento!
Reply | Threaded
Open this post in threaded view
|

Re: Come processare un elevato numero di raster con "r.series"?

stefano campus
Administrator
In reply to this post by marcogg
ciao marco,
ma non si potrebbe usare una funzione di mosaicatura dei raster?

tutti i raster di input hanno la stessa estensione e dimensione della cella, quindi bisogna trovare una funzione che contempli il caso in cui durante la mosaicatura le celle dei raster di input si sovrappongano e quale operazione fare.

ad esempio, la funzione di saga Mosaick Raster Layers ha come opzioni: ultimo valore, primo, minimo, massimo, media

potrebbe andare bene?

s.