Skip to content

Commit efe2190

Browse files
committed
cohortsToFuelClasses: bugfix when there are no age < cutoofForYoungAge
1 parent 1099862 commit efe2190

File tree

1 file changed

+11
-4
lines changed

1 file changed

+11
-4
lines changed

R/classifyCohorts.R

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,13 @@ cohortsToFuelClasses <- function(cohortData, pixelGroupMap, flammableRTM, landco
3838
cD <- cohortData[sppEquivSubset, on = c("speciesCode" = sppEquivCol)]
3939
setnames(cD, old = fuelClassCol, new = "FuelClass") # so we don't have to use eval, which trips up some dt
4040
# data.table needs an argument for which column names are kept during join
41-
4241
cD[, maxAge := max(age), .(pixelGroup)]
43-
cD[maxAge <= cutoffForYoungAge, FuelClass := "youngAge"]
42+
cD[maxAge <= cutoffForYoungAge, FuelClass := youngAgeName]
4443
cD[, maxAge := NULL]
45-
4644
cD <- cD[, .(BperClass = asInteger(sum(B))), by = c("FuelClass", "pixelGroup")]
4745

4846
# youngAge is better treated as a binary cover variable than continuous measure of biomass
49-
cD[FuelClass == "youngAge", BperClass := 1]
47+
cD[FuelClass == youngAgeName, BperClass := 1]
5048

5149
# Fix zero age, zero biomass
5250
classes <- sort(unique(cD$FuelClass))
@@ -92,6 +90,15 @@ cohortsToFuelClasses <- function(cohortData, pixelGroupMap, flammableRTM, landco
9290
}
9391

9492
names(classList) <- classes
93+
94+
# Need to confirm that there was at least 1 youngAge ... sometime there are none e.g., with 9.2.1 plains
95+
if (!youngAgeName %in% names(classList)) {
96+
ya <- as.int(is.na(cc[[1]]) )
97+
vals <- values(ya, mat = FALSE)
98+
ya[vals == 1L] <- NA
99+
names(ya) <- youngAgeName
100+
classList <- c(classList, ya)
101+
}
95102
return(classList)
96103
}
97104

0 commit comments

Comments
 (0)