suppressPackageStartupMessages(library(stars))
tif = system.file("tif/L7_ETMs.tif", package = "stars")
x = read_stars(tif)
xy = structure(list(x = c(293253.999046018, 296400.196497684), y = c(9113801.64775462, 
9111328.49619133)), names = c("x", "y"))
pts = st_as_sf(data.frame(do.call(cbind, xy)), coords = c("x", "y"), crs = st_crs(x))
image(x, axes = TRUE)
plot(st_as_sfc(st_bbox(pts)), col = NA, add = TRUE)

bb = st_bbox(pts)
(xx = x[bb])
image(xx)
plot(st_as_sfc(bb), add = TRUE, col = NA)
st_contains(st_as_sfc(st_bbox(xx)), st_as_sfc(st_bbox(pts)))

image(x)
pt = st_point(c(x = 290462.103109179, y = 9114202.32594085))
buf = st_buffer(st_sfc(pt, crs = st_crs(x)), 1500)
plot(buf, add = TRUE)

buf = st_sfc(st_polygon(list(st_buffer(pt, 1500)[[1]], st_buffer(pt, 1000)[[1]])),
	crs = st_crs(x))
image(x[buf])
plot(buf, add = TRUE, col = NA)
image(x[buf,crop=FALSE])
plot(buf, add = TRUE, col = NA)

plot(x, rgb = 1:3)

# #638:
l = st_as_stars(L7_ETMs)
st_bbox(l) |> st_as_sfc() -> bb
(bb + 1e6) |> st_set_crs(st_crs(l)) -> b
st_crop(l, b)
st_intersects(b, st_as_sfc(st_bbox(l))) |> as.matrix()
(bb - 1e6) |> st_set_crs(st_crs(l)) -> b
st_crop(l, b)
