Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

improve base info handling #1164

Merged
merged 1 commit into from
Jun 27, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
improve base info handling
  • Loading branch information
M3nin0 committed Jun 26, 2024
commit b4114ead4416bec95e120e57cfdb29302423f424
9 changes: 8 additions & 1 deletion R/api_data.R
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,13 @@
)
}
if (.has(cube[["base_info"]])) {
cube_base <- cube[["base_info"]][[1]]
# get base info
cube_base <- cube[["base_info"]]
# bind all base info
cube_base <- dplyr::bind_rows(cube_base)
# get bands
bands_base <- .cube_bands(cube_base)
# extract data
base_tbl <- .data_get_ts(
cube = cube_base,
samples = samples,
Expand All @@ -90,6 +95,8 @@
multicores = multicores,
progress = progress
)
# save base data
ts_tbl[["base_data"]] <- base_tbl[["time_series"]]
}
return(ts_tbl)
}
Expand Down
29 changes: 23 additions & 6 deletions R/sits_add_base_cube.R
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,28 @@ sits_add_base_cube <- function(cube1, cube2){
.check_that(inherits(cube2, "dem_cube"))
# pre-condition for merge is having the same tiles
.check_that(all(cube1[["tile"]] %in% cube2[["tile"]]))
fi_cube2 <- .fi(cube2)
fi_cube2[["date"]] <- .cube_timeline(cube1)[[1]][[1]]
.fi(cube2) <- fi_cube2
# add a new tibble with base cube information
cube1[["base_info"]] <- list(cube2)
# extract tiles
tiles <- .cube_tiles(cube1)
# add base info by tile
cube1 <- purrr::map_dfr(tiles, function(tile_name) {
tile_cube1 <- .cube_filter_tiles(cube1, tile_name)
tile_cube2 <- .cube_filter_tiles(cube2, tile_name)
# get files from 2nd cube
fi_cube2 <- .fi(tile_cube2)
# align timelines
fi_cube2[["date"]] <- .fi_min_date(.fi(tile_cube1))
# update 2nd cube files
.fi(tile_cube2) <- fi_cube2
# append cube to base info
base_info <- purrr::discard(
list(tile_cube1[["base_info"]], tile_cube2), is.null
)
base_info <- dplyr::bind_rows(base_info)
# save base info
tile_cube1[["base_info"]] <- list(base_info)
tile_cube1
})
# update cube class
class(cube1) <- c("base_raster_cube", class(cube1))
return(cube1)
cube1
}
Loading