[R-sig-Geo] Error in basename(x) : path too long
John Wasige
johnwasige at gmail.com
Mon Jul 31 11:19:27 CEST 2017
Thank you Ben,
I would like to generate annual sums & means for each year from a list
rasters (not stack or brick because of memory issues with R). For 15 years
I have 345 individual rasters and frequency of 23 per year.
I will be very glad for an idea on how to do that.
Thanks
John
On Sat, Jul 29, 2017 at 5:37 PM, Ben Tupper <btupper at bigelow.org> wrote:
> Hi again,
>
> A late thought - I'm still on the first cups of coffee.
>
> It looks to me like you are iterating over a stack to select certain
> layers to sum. You could achieve the same outcome with possibly much less
> work. The following example will create a sum of 24-layer blocks along a
> stack of rasters.
>
> # from https://gist.github.com/btupper/20879e0b46e5ed63d402d7cff424dbb7
> #' Split a vector into groups of MAX (or possibly fewer)
> #'
> #' @param v vector or list to split
> #' @param MAX numeric the maximum size per group
> #' @return a list of the vector split into groups
> split_vector <- function(v, MAX = 200){
> nv <- length(v)
> if (nv <= MAX) return(list('1' = v))
> split(v, findInterval(1:nv, seq(from = 1, to = nv, by = MAX)))
> }
>
>
> library(raster)
>
> N <- 345
> n <- 24
> nc <- 4
> nr <- 3
>
> R <- raster(matrix(runif(nc*nr), ncol = nc, nrow = nr))
>
> RR <- stack(lapply(seq_len(N), function(i) R))
>
> ix <- split_vector(seq_len(N), MAX = n)
>
> SS <- lapply(ix, function(index) sum(RR[[index]]))
>
> So, S[[1]], which looks like this...
>
> $`1`
> class : RasterLayer
> dimensions : 3, 4, 12 (nrow, ncol, ncell)
> resolution : 0.25, 0.3333333 (x, y)
> extent : 0, 1, 0, 1 (xmin, xmax, ymin, ymax)
> coord. ref. : NA
> data source : in memory
> names : layer
> values : 0.9451534, 20.0503 (min, max)
>
> ... is the sum of the first 24 layers of RR. SS[[2]] will be the sum of
> the next 24, and so on.
>
> Is that what you are trying to do?
>
> Cheers,
> Ben
>
>
>
>
> > On Jul 29, 2017, at 7:56 AM, John Wasige <johnwasige at gmail.com> wrote:
> >
> > Dear all,
> >
> > I am running the script below & I get the following error:
> > Error in basename(x) : path too long
> >
> > What could be the problem?
> > Thanks for your help
> > John
> >
> > ### Script
> >
> > setwd("I:/Mauritius2001_2015") # directory of data
> > newlist= read.csv('I:/Mauritius2001_2015/Mauritius.csv',header=F)
> >
> > refr <- raster(paste("I:/Mauritius2001_2015/",newlist[i,1],sep = ""))
> > refr[!is.na(refr)] <- 0
> > for(i in seq(1,345,by=23)){
> > rsum <- refr
> > for(p in 0:22){
> > r <- raster(paste("I:/Mauritius2001_2015/",newlist[i+p],sep = ""))
> > rsum <- rsum + r
> > }
> > # rsum <- rsum
> > writeRaster(rsum,
> > filename=paste("D:/Mauritius2001_2015/Annual/",
> substr(newlist[i],1,6),".tif",sep=''),
> > format="GTiff", overwrite=TRUE)
> > }
> >
> > [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-sig-Geo mailing list
> > R-sig-Geo at r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>
> Ben Tupper
> Bigelow Laboratory for Ocean Sciences
> 60 Bigelow Drive, P.O. Box 380
> East Boothbay, Maine 04544
> http://www.bigelow.org
>
> Ecocast Reports: http://seascapemodeling.org/ecocast.html
> Tick Reports: https://report.bigelow.org/tick/
> Jellyfish Reports: https://jellyfish.bigelow.org/jellyfish/
>
>
>
>
--
John Wasige
"There are no REGRATES in LIFE, just lessons (Jennifer Aniston)”
[[alternative HTML version deleted]]
More information about the R-sig-Geo
mailing list