|
37 | 37 | fi <- .fi_filter_interval(
|
38 | 38 | fi = .fi(tile),
|
39 | 39 | start_date = timeline[[1]],
|
40 |
| - end_date = timeline[[length(timeline)]] |
| 40 | + end_date = timeline[[length(timeline)]] - 1 |
41 | 41 | )
|
42 | 42 | groups <- cut(
|
43 | 43 | x = .fi_timeline(fi),
|
|
93 | 93 | }
|
94 | 94 |
|
95 | 95 | # Create template based on tile metadata
|
| 96 | + if (!.has(roi)) { |
| 97 | + roi <- .bbox_as_sf(.tile_bbox(asset)) |
| 98 | + } |
96 | 99 | roi_bbox <- .bbox(sf::st_intersection(
|
97 | 100 | x = .roi_as_sf(roi, as_crs = .crs(asset)),
|
98 | 101 | y = .bbox_as_sf(.bbox(asset))
|
|
137 | 140 | # create a new cube according to Sentinel-2 MGRS
|
138 | 141 | cube_class <- .cube_s3class(cube)
|
139 | 142 |
|
140 |
| - # prepare a sf object representing the bbox of each image in file_info |
141 |
| - cube_mgrs <- slider::slide_dfr(tiles_mgrs, function(tile){ |
142 |
| - cube_tile <- dplyr::filter(cube, .data[["crs"]] == tile$crs) |
143 |
| - fi_bbox <- .bbox_as_sf(.bbox( |
144 |
| - x = cube_tile$file_info[[1]], |
145 |
| - default_crs = .crs(tile), |
146 |
| - by_feature = TRUE |
147 |
| - )) |
148 |
| - }) |
149 |
| - |
150 | 143 | cube <- tiles_mgrs |>
|
151 | 144 | dplyr::rowwise() |>
|
152 | 145 | dplyr::group_map(~{
|
153 |
| - file_info <- .fi(cube)[.intersects({{fi_bbox}}, .x), ] |
| 146 | + # prepare a sf object representing the bbox of each image in file_info |
| 147 | + cube_crs <- dplyr::filter(cube, .data[["crs"]] == .x$crs) |
| 148 | + fi_bbox <- .bbox_as_sf(.bbox( |
| 149 | + x = .fi(cube_crs), |
| 150 | + default_crs = .crs(cube_crs), |
| 151 | + by_feature = TRUE |
| 152 | + )) |
| 153 | + file_info <- .fi(cube_crs)[.intersects({{fi_bbox}}, .x), ] |
154 | 154 | .cube_create(
|
155 |
| - source = .tile_source(cube), |
156 |
| - collection = .tile_collection(cube), |
157 |
| - satellite = .tile_satellite(cube), |
158 |
| - sensor = .tile_sensor(cube), |
| 155 | + source = .tile_source(cube_crs), |
| 156 | + collection = .tile_collection(cube_crs), |
| 157 | + satellite = .tile_satellite(cube_crs), |
| 158 | + sensor = .tile_sensor(cube_crs), |
159 | 159 | tile = .x[["tile_id"]],
|
160 | 160 | xmin = .xmin(.x),
|
161 | 161 | xmax = .xmax(.x),
|
|
0 commit comments