[R-sig-Geo] stars analogous of raster::aggregate

Julian M. Burgos ju||@n@burgo@ @end|ng |rom h@|ogv@tn@|@
Wed Sep 9 13:10:52 CEST 2020


Thanks Edzer and Micha, this was very helpful.  st_warp with use_gdal=TRUE worked like a charm.

My best,

Julian


Edzer Pebesma writes:

> On 9/8/20 8:47 PM, Micha Silver wrote:
>> On 08/09/2020 19:33, Julian M. Burgos wrote:
>>> Dear all,
>>>
>>> The raster package has the raster::aggregate function that can be used to reduce the resolution of a raster by aggregating cells by a specific factor. For example, this reduces the resolution of the L7_ETMs.tif raster by a factor of 10:
>>>
>>> library(raster)
>>>
>>> rst1 <-  raster(system.file("tif/L7_ETMs.tif", package = "stars"))
>>>
>>> rst2 <- aggregate(rst1, fact = 10, fun = mean)
>>>
>>>> res(rst1)
>>> [1] 28.5 28.5
>>>
>>>> res(rst2)
>>> [1] 285 285
>>>
>>> I am trying to do the same thing with a stars object.  The stars package has the stars::aggregate function, but for spatial aggregation it takes an object of class sf or sfc, so it is meant to be used for aggregation over polygons.  I could do something like this:
>> Probably st_warp() is what you want:
>>
>> l7_file = system.file("tif/L7_ETMs.tif", package = "stars")
>> l7 = read_stars(l7_file)
>> l7_lowres = st_warp(src = l7, cellsize = c(90, 90), crs =
>> st_crs(l7))
>>
>> stars::st_dimensions(l7)
>>       from  to  offset delta                       refsys point values
>> x       1 349  288776  28.5 +proj=utm +zone=25 +south... FALSE NULL [x]
>> y       1 352 9120761 -28.5 +proj=utm +zone=25 +south... FALSE NULL [y]
>> band    1   6      NA    NA                           NA    NA NULL
>>
>> stars::st_dimensions(l7_lowres)
>>       from  to  offset delta                       refsys point values
>> x       1 111  288776    90 +proj=utm +zone=25 +south...    NA NULL [x]
>> y       1 112 9120761   -90 +proj=utm +zone=25 +south...    NA NULL [y]
>> band    1   6      NA    NA                           NA    NA NULL
>
> Yes; if you want to get similar behaviour as raster, choose a cell
> size that is an exact multiple of the origin's cell size, use_gdal =
> TRUE, and method = "average"; this currently seems to only work for
> single band rasters; along these lines:
>
> library(stars)
> # Loading required package: abind
> # Loading required package: sf
> # Linking to GEOS 3.8.0, GDAL 3.0.4, PROJ 7.0.0
> l7_file = system.file("tif/L7_ETMs.tif", package = "stars")
> l7 = read_stars(l7_file)
> (dest = st_as_stars(st_bbox(l7), dx = 90, dy = 90))
> # stars object with 2 dimensions and 1 attribute
> # attribute(s):
> #     values
> #  Min.   :0
> #  1st Qu.:0
> #  Median :0
> #  Mean   :0
> #  3rd Qu.:0
> #  Max.   :0
> # dimension(s):
> #   from  to  offset delta                       refsys point values x/y
> # x    1 111  288776    90 UTM Zone 25, Southern Hem...    NA   NULL [x]
> # y    1 112 9120761   -90 UTM Zone 25, Southern Hem...    NA   NULL [y]
> (l7_lowres = st_warp(src = l7[,,,1], dest = dest, use_gdal = TRUE,
> method = "average"))
> # stars object with 2 dimensions and 1 attribute
> # attribute(s):
> #  file14bb5c7321dc.tif
> #  Min.   : 56.81
> #  1st Qu.: 68.75
> #  Median : 79.00
> #  Mean   : 79.25
> #  3rd Qu.: 88.62
> #  Max.   :207.44
> # dimension(s):
> #   from  to  offset delta                       refsys point values x/y
> # x    1 111  288776    90 UTM Zone 25, Southern Hem... FALSE   NULL [x]
> # y    1 112 9120761   -90 UTM Zone 25, Southern Hem... FALSE   NULL [y]
>
>>
>> -- Micha Silver
>> Ben Gurion Univ.
>> Sde Boker, Remote Sensing Lab
>> cell: +972-523-665918
>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Forcid.org%2F0000-0002-1128-1325&data=02%7C01%7C%7Cb8b83838082f41ad457c08d854354350%7C8e105b94435e4303a61063620dbe162b%7C0%7C1%7C637351935026744294&sdata=K5kMOHf6dka1eNJrVRZsgDe0UmxTEhBRU40C%2FPpRXVE%3D&reserved=0
>>
>> _______________________________________________
>> R-sig-Geo mailing list
>> R-sig-Geo using r-project.org
>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-sig-geo&data=02%7C01%7C%7Cb8b83838082f41ad457c08d854354350%7C8e105b94435e4303a61063620dbe162b%7C0%7C1%7C637351935026744294&sdata=KwymhTSAHdcBDVffZHhp2xZ%2BQUzDKh%2B%2BN2DP1yLtGY4%3D&reserved=0
>>


--
Julian Mariano Burgos, PhD
Hafrannsóknastofnun, rannsókna- og ráðgjafarstofnun hafs og vatna/
Marine and Freshwater Research Institute
Botnsjávarsviðs / Demersal Division
  Fornubúðir 5, IS-220 Hafnarfjörður, Iceland
www.hafogvatn.is
Sími/Telephone : +354-5752037
Netfang/Email: julian.burgos using hafogvatn.is



More information about the R-sig-Geo mailing list