Skip to content

Commit aa8357d

Browse files
committed
fix legend error in sits_reclassify
1 parent a9e52a5 commit aa8357d

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

R/api_reclassify.R

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,3 +194,19 @@
194194
# Return closure
195195
reclassify_fn
196196
}
197+
198+
.reclassify_new_labels <- function(cube, rules) {
199+
# Get cube labels
200+
cube_labels <- .cube_labels(cube, dissolve = FALSE)[[1]]
201+
# Get rules new labels
202+
new_labels <- setdiff(names(rules), cube_labels)
203+
# Does rules has new labels in the composition?
204+
if (.has(new_labels) > 0) {
205+
# Get the next index
206+
next_idx <- max(as.numeric(names(cube_labels))) + 1
207+
idx_values <- seq.int(
208+
from = next_idx, to = next_idx + length(new_labels) - 1 )
209+
names(new_labels) <- as.character(idx_values)
210+
}
211+
return(c(cube_labels, new_labels))
212+
}

R/sits_reclassify.R

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,8 @@ sits_reclassify.class_cube <- function(cube,
182182
},
183183
.msg_error = "mask roi does not intersect cube"
184184
)
185-
# Get output labels
186-
labels <- unique(c(.cube_labels(cube), names(rules)))
185+
# Get new labels from cube and pre-defined rules from user
186+
labels <- .reclassify_new_labels(cube, rules)
187187
# Classify the data
188188
class_tile <- .reclassify_tile(
189189
tile = tile,

0 commit comments

Comments
 (0)