On 03/02/2021 20:14, Julian M. Burgos wrote:
Although if I use bind_cols the result is not an sf object....

right, this is because bind_cols is not a generic (its first argument is ... , which you can't dispatch on) so doesn't have an associated sf method.

dplyr offers a mechanism to work around this by providing an sf method for dplyr_reconstruct - something we could try, but then the dplyr authors mention that this is experimental and considered a stop-gap measure, so that might work now but stop working any time.

However,

sf3 <- cbind(st_extract(st1, sf1), st_drop_geometry(sf1))

does return an sf object (note the changed order of arguments)


Julian M. Burgos writes:

Thanks Edzer, I should have checked if st_extract kept the order of the rows. 
In this case, a way to do it more generally is:

sf1 <- bind_cols(st_drop_geometry(sf1),
                  st_extract(st1, sf1))



Edzer Pebesma writes:

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
http://www.hafogvatn.is/
Sími/Telephone : +354-5752037
Netfang/Email: julian.bur...@hafogvatn.is

_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-sig-geo&amp;data=04%7C01%7C%7C7b9230c283dd4883458a08d8c876e7d1%7C8e105b94435e4303a61063620dbe162b%7C0%7C0%7C637479760450605041%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=d%2FY%2FuSVIou5juUoKgSwCZc4EZ5OdEJRCg1YZHH%2FEYGc%3D&amp;reserved=0


_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fstat.ethz.ch%2Fmailman%2Flistinfo%2Fr-sig-geo&amp;data=04%7C01%7C%7C7b9230c283dd4883458a08d8c876e7d1%7C8e105b94435e4303a61063620dbe162b%7C0%7C0%7C637479760450605041%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=d%2FY%2FuSVIou5juUoKgSwCZc4EZ5OdEJRCg1YZHH%2FEYGc%3D&amp;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.bur...@hafogvatn.is


_______________________________________________
R-sig-Geo mailing list
R-sig-Geo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-geo

Reply via email to