Dear Carsten, Tom, Robert and Edzer,
thank you very much for your answers! And yes Robert, you are right, I 
like to calculate the mean of raster cells across the layers. I just 
tried the EtRR.sum<- calc(EtRR, mean)  on the layer stack. Unfortunately 
the computation of only one month is taking now longer than the 
computation of all 12 months using my old script. I will now have a look 
on Edzers proposal.

Again, thank you all!

Best,

Swen


Am 31.10.2011 09:58, schrieb Edzer Pebesma:
> So, raster::aggregate does spatial aggregation, and calc does temporal 
> aggregation when the stack reflect time. Do you see possibilities to 
> extend the behaviour of raster::aggregate to generalize 
> stats::aggregate, and e.g. in the temporal domain to extend/reuse 
> zoo::aggregate? Besides a grouping predicate ("by"), zoo::aggregate 
> allows a grouping function that works on time, giving you e.g. 
> aggregations to monthly, quarterly and yearly values without effort.
>
> I tried this approach for the classes in package spacetime, some of 
> which generalize the raster time-stack but lack its powerful disk 
> caching. For spatio-temporal objects this was documented here:
> http://cran.r-project.org/web/packages/spacetime/vignettes/sto.pdf
> and for spatial (sp) objects here:
> http://cran.r-project.org/web/packages/sp/vignettes/over.pdf
>
> Any comments welcome. Best regards,
> -- 
> Edzer
>
> On 10/31/2011 04:31 AM, Robert J. Hijmans wrote:
>> Thanks Tom,
>>
>> "aggregate" does spatial aggregation of cell values, whereas I think 
>> Swen
>> asked for means of cell values across layers (temporal aggregation, 
>> in this
>> case). I would do:
>>
>> library(raster)
>> asc_files<- list.files(pattern = glob2rx('EVAPTR_dem30m_*01.sum'))
>>
>> # with multiple files, use stack rather than brick
>> EtRR<- stack(asc_files)
>>
>> # mean values
>> # EtRR.sum<- mean(EtRR)
>> # or (currently faster)
>> EtRR.sum<- calc(EtRR, mean)
>>
>> #plot(EtRR.sum)
>>
>> # write to geotiff (?). For speed's sake, avoid ascii files if possible
>> EtRR.sum<- writeRaster(EtRR.sum, "EtRR_sum.tif")
>>
>> Robert
>>
>>
>> On Sun, Oct 30, 2011 at 3:21 AM, Tomislav Hengl
>> <hengl@spatial-analyst.net>wrote:
>>
>>>
>>> Carsten,
>>>
>>> I highly recommend using the Robert Hijmans' raster package [
>>> http://CRAN.R-project.org/**package=raster<http://CRAN.R-project.org/package=raster>] 
>>>
>>> to run such operation on a stack of grids (raster package is really a
>>> brilliant implementation of raster processing as your final code looks
>>> fairly short, and it does not uses so much RAM; for more info see [
>>> http://cran.r-project.org/**web/packages/raster/vignettes/**Raster.pdf]<http://cran.r-project.org/web/packages/raster/vignettes/Raster.pdf%5D> 
>>>
>>> ).
>>>
>>> This is an example of how to run your stats on grid nodes in 4 lines:
>>>
>>>> library(raster); library(rgdal)
>>> # list all files of interest:
>>>> asc_files<- list.files(pattern = glob2rx('EVAPTR_dem30m_*01.**sum'))
>>> # Read to R:
>>>> EtRR<- brick(lapply(asc_files, raster))
>>> # derive a sum:
>>>> EtRR.sum<- aggregate(EtRR, fun=mean)
>>>> image(EtRR.sum)
>>> # write back to ASCII format:
>>>> writeRaster(EtRR.sum, "EtRR_sum.asc")
>>>
>>>
>>> Otherwise, SAGA GIS is also efficient in processing large grids:
>>>
>>>> library(RSAGA)
>>>> rsaga.get.usage("**geostatistics_grid", 4)
>>> library path:   C:/PROGRA~1/R/R-212~1.2/**library/RSAGA/saga_vc/modules
>>> library name:   geostatistics_grid
>>> module name :   Statistics for Grids
>>> Usage: 4 -GRIDS<str>  [-MEAN<str>] [-MIN<str>] [-MAX<str>] [-VAR<str>]
>>> [-STDDEV<str>] [-STDDEVLO<str>] [-STDDEVHI<str>]
>>>   -GRIDS:<str>           Grids
>>>         Grid list (input)
>>>   -MEAN:<str>            Arithmetic Mean
>>>         Grid (optional output)
>>>   -MIN:<str>             Minimum
>>>         Grid (optional output)
>>>   -MAX:<str>             Maximum
>>>         Grid (optional output)
>>>   -VAR:<str>             Variance
>>>         Grid (optional output)
>>>   -STDDEV:<str>          Standard Deviation
>>>         Grid (optional output)
>>>   -STDDEVLO:<str>        Mean less Standard Deviation
>>>         Grid (optional output)
>>>   -STDDEVHI:<str>        Mean plus Standard Deviation
>>>         Grid (optional output)
>>>
>>>
>>> see also: http://spatial-analyst.net/**wiki/index.php?title=List_of_**
>>> SAGA_modules<http://spatial-analyst.net/wiki/index.php?title=List_of_SAGA_modules> 
>>>
>>>
>>> cheers,
>>>
>>> T. Hengl
>>> http://www.wewur.wur.nl/**popups/vcard.aspx?id=HENGL001<http://www.wewur.wur.nl/popups/vcard.aspx?id=HENGL001> 
>>>
>>>
>>>
>>>
>>> On 28-10-2011 14:49, Carsten Neumann wrote:
>>>
>>>>    Am 27.10.2011 17:12, schrieb Swen Meyer:
>>>>
>>>>> Dear All,
>>>>> I like to import a series of asci grids into R. It is a time 
>>>>> series of
>>>>> 30 years and I like to calculate the mean monthly sum value for each
>>>>> grid node for every month of the year. This is way I´m doing this 
>>>>> at the
>>>>> moment.
>>>>>
>>>>> #read asci files
>>>>> ####Month01
>>>>> EtRR.asci01<-  read.asciigrid("EVAPTR_dem30m_**7101.sum",
>>>>> as.image=FALSE,
>>>>> plot.image=TRUE)
>>>>> EtRR.asci01@data$EVAPTR7101<- 
>>>>> EtRR.asci01@data$EVAPTR_**dem30m_7101.sum
>>>>> #1
>>>>> EVAPTR7201<- read.asciigrid("EVAPTR_dem30m_**7201.sum", 
>>>>> as.image=FALSE,
>>>>> plot.image=TRUE)
>>>>> EtRR.asci01@data$EVAPTR7201<- 
>>>>> EVAPTR7201@data$EVAPTR_dem30m_**7201.sum
>>>>> #2
>>>>> EVAPTR7301<- read.asciigrid("EVAPTR_dem30m_**7301.sum", 
>>>>> as.image=FALSE,
>>>>> plot.image=TRUE)
>>>>> EtRR.asci01@data$EVAPTR7301<- 
>>>>> EVAPTR7301@data$EVAPTR_dem30m_**7301.sum
>>>>> #3
>>>>> .
>>>>> .
>>>>> .
>>>>> #29
>>>>> EVAPTR0001<- read.asciigrid("EVAPTR_dem30m_**0001.sum", 
>>>>> as.image=FALSE,
>>>>> plot.image=TRUE)
>>>>> EtRR.asci01@data$EVAPTR0001<- 
>>>>> EVAPTR0001@data$EVAPTR_dem30m_**0001.sum
>>>>> #30
>>>>>
>>>>> # claculating the mean sum ofer 30 years
>>>>> EtRR.asci01@data$sum<- ((EtRR.asci01[[1]] + EtRR.asci01[[2]] +......+
>>>>> EtRR.asci01[[30]]) /30)
>>>>>
>>>>> My script is working well, but it is pretty time and workspace
>>>>> consuming. I tried to use wildcards like this:
>>>>>
>>>>> txt_files = list.files(pattern = 'EVAPTR_dem30m_*01.sum')
>>>>>
>>>>> But the result is then:
>>>>>
>>>>> character(0)
>>>>>
>>>>> Does anyone maybe have an idea how to import multiple asci-grids in a
>>>>> faster a more elegant way?
>>>>>
>>>>> Thank you in advance,
>>>>>
>>>>> Swen
>>>>>
>>>>>
>>>>>         [[alternative HTML version deleted]]
>>>>>
>>>>>
>>>>>
>>>>> ______________________________**_________________
>>>>> R-sig-Geo mailing list
>>>>> R-sig-Geo@r-project.org
>>>>> https://stat.ethz.ch/mailman/**listinfo/r-sig-geo<https://stat.ethz.ch/mailman/listinfo/r-sig-geo> 
>>>>>
>>>>>
>>>> Dear Sven,
>>>>
>>>> First: wildcards with * do not work. Just use pattern = 
>>>> 'EVAPTR_dem30m'
>>>> to get all files in a folder within a list.
>>>> Second: use raster package and then function stack() to read all ascii
>>>> grids without accessing memory.
>>>>
>>>> So you can simply do a layer stack with your list within two r command
>>>> lines and without memory handling problems ;-)
>>>>
>>>> With Best regards
>>>>
>>>> Carsten
>>>>
>>>>
>>>>
>>>>
>>>> ______________________________**_________________
>>>> R-sig-Geo mailing list
>>>> R-sig-Geo@r-project.org
>>>> https://stat.ethz.ch/mailman/**listinfo/r-sig-geo<https://stat.ethz.ch/mailman/listinfo/r-sig-geo> 
>>>>
>>>>
>>>
>>> ______________________________**_________________
>>> R-sig-Geo mailing list
>>> R-sig-Geo@r-project.org
>>> https://stat.ethz.ch/mailman/**listinfo/r-sig-geo<https://stat.ethz.ch/mailman/listinfo/r-sig-geo> 
>>>
>>>
>>
>>     [[alternative HTML version deleted]]
>>
>>
>>
>>
>> _______________________________________________
>> R-sig-Geo mailing list
>> R-sig-Geo@r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
>
> -- 
> --------------------------------------------------------------
> Dipl. - Geogr. Swen Meyer
> Department of Geography
> Physical Geography and Environmental Modeling Ludwig-Maximilian University of Munich
>
> Luisenstrasse 37
> 80333 Munich/Germany
> fon: +49 (0)89 2180-6648
> fax: +49 (0)89 2180-6675
> email: s.meyer@lmu.de
> web: www.geographie.uni-muenchen.de
>

	[[alternative HTML version deleted]]

