I try to compute the proportion of 0 in an area of 30km around a given pixel. The raster has a resolution of 100m and it is the map of France. For this, I use the function `focal()` of the `raster` package (package version: 2.9.23). The analyse works well on a subset of the raster but not on the full raster. The error message is the following: ```{r} > Error in .local(x, row, nrows, ...) : validRow(x, row) is not TRUE ``` ## Looking for the `.local` function: ```{r} getMethod("focal", signature = "RasterLayer") ``` I find `.local()` but did not find its source on [github](https://github.com/rspatial/raster) or in the [source code](https://www.rdocumentation.org/packages/raster/versions/2.9-23/source). ## validRow function The function `validRow()` checks that a number of rows is valid regarding the raster. ```{r} r <- raster() validRow(r, c(-1, 1, 100, 10000)) # -1 is obviously not valid and 10000 neither because the nb of rows of the #raster is 180 ``` I did not succeed to identify what operation in the `focal()` function can lead to this error. The problem could to be related to this [open issue in github](https://github.com/rspatial/raster/issues/56). ## Trying to reproduce the error The most annoying part of the problem is that I do not succeed to reproduce the error with a minimal reproducible example: ```{r} library(raster) p <- getData(name = "GADM", country = "france", level = 0) p <- spTransform(p, CRSobj = CRS("+init=epsg:2154")) r_total <- raster(p, resolution = 100) r <- crop(r_total, extent(98900, 150000, 6100000, 6150000)) nbcell <- ncell(r) # Set values 0 or 1: r <- setValues(r, rbinom(n = nbcell, size = 1, prob = .9)) # Put some NAs: values(r)[sample(1:nbcell, size = .9*nbcell)] <- NA fw <- focalWeight(r, 30000,"circle") test <- focal(r,w = fw, fun = "sum", na.rm = TRUE, pad = TRUE, padValue = NA) ``` If I could reproduce the error, I hope that It will help to identify the problem with the real dataset.