[R-sig-Geo] Spatial joins between sf and stars objects

Edzer Pebesma edzer@pebe@m@ @end|ng |rom un|-muen@ter@de
Wed Feb 3 18:28:03 CET 2021


st_join does a spatial join, which comes at a cost; since st_extract 
doesn't change the row order of the sf object, you could as well use

st_extract(st1, sf1) %>% mutate(nums = sf1$nums)

On 03/02/2021 17:10, Julian M. Burgos wrote:
> Dear list,
> 
> What would be the best way to do a spatial join between a sf object (of POINT geometry) and a star object, so the sf object gets the values of the corresponding pixels in the star object?  I have done using a combination of st_join and st_extract, but it feels a bit clunky.  Is there a better way?
> 
> Here is what I have done:
> 
> ## --------------------------------------------------------------
> ## Load a stars object
> st1 <- read_stars(system.file("tif/L7_ETMs.tif", package = "stars")) %>%
>    slice(band, 1)
> 
> ## Create an sf object
> 
> set.seed(100)
> bb <- st_bbox(st1)
> 
> sf1 <- tibble(lon = runif(n = 10, min = bb[1], max = bb[3]),
>                lat = runif(n = 10, min = bb[2], max = bb[4]),
>                nums = 1:10) %>%
>    st_as_sf(coords = c("lon", "lat"), crs = st_crs(st1))
> 
> ## Do the spatial join
> 
> sf1 <- st_extract(st1, sf1) %>%
>      st_join(sf1)
> ## --------------------------------------------------------------
> 
> Thanks,
> 
> Julian
> 
> --
> 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
> 
> _______________________________________________
> R-sig-Geo mailing list
> R-sig-Geo using r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
>



More information about the R-sig-Geo mailing list