Skip to content

Commit 53eb1c2

Browse files
Merge pull request #1143 from M3nin0/fix/period-handling
fix sits_merge
2 parents 691a70d + 7e8bb49 commit 53eb1c2

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

R/sits_merge.R

+16-8
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ sits_merge.sar_cube <- function(data1, data2, ...) {
105105
dplyr::filter(data2, .data[["tile"]] %in% common_tiles),
106106
.data[["tile"]]
107107
)
108+
if (length(.cube_timeline(data2)[[1]]) == 1){
109+
return(.merge_single_timeline(data1, data2))
110+
}
108111
if (inherits(data2, "sar_cube")) {
109112
return(.merge_equal_cube(data1, data2))
110113
} else {
@@ -131,10 +134,9 @@ sits_merge.raster_cube <- function(data1, data2, ...) {
131134
dplyr::filter(data2, .data[["tile"]] %in% common_tiles),
132135
.data[["tile"]]
133136
)
134-
if (length(.cube_timeline(data2)) == 1){
137+
if (length(.cube_timeline(data2)[[1]]) == 1){
135138
return(.merge_single_timeline(data1, data2))
136139
}
137-
138140
if (inherits(data2, "sar_cube")) {
139141
return(.merge_distinct_cube(data1, data2))
140142
} else {
@@ -200,17 +202,23 @@ sits_merge.raster_cube <- function(data1, data2, ...) {
200202
# Return cubes merged
201203
return(data1)
202204
}
205+
203206
.merge_single_timeline <- function(data1, data2){
204-
# Get data1 timeline
207+
# Get data1 timeline.
205208
d1_tl <- unique(as.Date(.cube_timeline(data1)[[1]]))
206-
fi_new <- purrr::map_chr(sits_timeline(data1), function(d){
207-
fi <- .fi(data2)
208-
fi[["date"]] <- as.Date(d)
209+
# Create new `file_info` using dates from `data1` timeline.
210+
fi_new <- purrr::map(seq_len(nrow(data2)), function(row) {
211+
data_row <- data2[row,]
212+
213+
fi <- .fi(data_row)
214+
fi[["date"]] <- as.Date(d1_tl[1:nrow(data_row)])
215+
209216
return(fi)
210217
})
218+
# Assign the new `file_into` into `data2`
211219
data2[["file_info"]] <- fi_new
212-
data1 <- .cube_merge(data1, data2)
213-
return(data1)
220+
# Merge cubes and return
221+
.cube_merge(data1, data2)
214222
}
215223

216224
#' @rdname sits_merge

0 commit comments

Comments
 (0)