Skip to content

Commit 9968c3f

Browse files
committed
updates: post hdd fail
1 parent 2aac29b commit 9968c3f

File tree

2 files changed

+507
-10
lines changed

2 files changed

+507
-10
lines changed

R/classifyCohorts.R

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ globalVariables(c(
3232
#'
3333
cohortsToFuelClasses <- function(cohortData, pixelGroupMap, flammableRTM, landcoverDT = NULL,
3434
sppEquiv, sppEquivCol, cutoffForYoungAge, fuelClassCol = "FuelClass") {
35-
cD <- copy(cohortData)
35+
# cD <- copy(cohortData)
3636
joinCol <- c(fuelClassCol, eval(sppEquivCol))
3737
sppEquivSubset <- unique(sppEquiv[, .SD, .SDcols = joinCol])
38-
cD <- cD[sppEquivSubset, on = c("speciesCode" = sppEquivCol)]
38+
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
4141

@@ -50,14 +50,37 @@ cohortsToFuelClasses <- function(cohortData, pixelGroupMap, flammableRTM, landco
5050

5151
# Fix zero age, zero biomass
5252
classes <- sort(unique(cD$FuelClass))
53-
classList <- lapply(classes, makeRastersFromCD,
54-
flammableRTM = flammableRTM,
55-
pixelGroupMap = pixelGroupMap,
56-
cohortData = cD
57-
)
58-
59-
classList <- rast(classList)
60-
53+
54+
# st <- profvis::profvis({
55+
56+
pgmVals <- list(pixelGroup = values(pixelGroupMap, mat = FALSE),
57+
pixelId = seq(ncell(pixelGroupMap))) |>
58+
setDT() |> na.omit()
59+
aa <- pgmVals[cD, on = "pixelGroup", allow.cartesian=TRUE]
60+
bb <- split(aa, by = "FuelClass")
61+
flamVals <- values(flammableRTM, mat = FALSE)
62+
flamValsGood <- !is.na(flamVals)
63+
cc <- Map(r = bb, function(r) {
64+
ras <- rastFromDF(r[, .(pixelId, BperClass)], rasTemplate = pixelGroupMap)
65+
rasVals <- values(ras, mat = FALSE)
66+
rasVals[flamValsGood & is.na(rasVals)] <- 0
67+
ras <- setValues(x = ras, values = rasVals)
68+
ras
69+
})
70+
dd <- rast(cc)
71+
classList <- dd[[order(names(dd))]]
72+
# })
73+
74+
75+
# st2 <- profvis::profvis({
76+
# classList <- lapply(classes, makeRastersFromCD,
77+
# flammableRTM = flammableRTM,
78+
# pixelGroupMap = pixelGroupMap,
79+
# cohortData = cD
80+
# )
81+
#
82+
# classList <- rast(classList)
83+
# })
6184
if (!is.null(landcoverDT)) {
6285
# find rows that aren't empty i.e. have non-forest landcover
6386
landcoverDT[, foo := rowSums(.SD), .SD = setdiff(names(landcoverDT), "pixelID")]

0 commit comments

Comments
 (0)