diff --git a/Cell2Fire/Cell2Fire.cpp b/Cell2Fire/Cell2Fire.cpp index e5391438..e99a7275 100644 --- a/Cell2Fire/Cell2Fire.cpp +++ b/Cell2Fire/Cell2Fire.cpp @@ -215,6 +215,7 @@ Cell2Fire::Cell2Fire(arguments _args) : CSVForest(_args.InFolder + "fuels", " ") ********************************************************************/ // Create forest structure forestDF frdf; + // DEBUG std::cout << "\n------------------Forest Data ----------------------\n" << std::endl; std::vector> FDF = this->CSVForest.getData(_args.InFolder + "fuels"); @@ -242,27 +243,29 @@ Cell2Fire::Cell2Fire(arguments _args) : CSVForest(_args.InFolder + "fuels", " ") ********************************************************************/ // DEBUGstd::cout << "\n------ Read DataFrames: Forest and Weather ------\n"; + df = new inputs[this->nCells]; + + // Create empty df with size of NCells + df_ptr = &df[0]; + GenDataFile(args.InFolder, args.Simulator, df_ptr, this->args_ptr); /* Forest DataFrame */ std::string filename = this->args.InFolder + "Data.csv"; std::string sep = ","; CSVReader CSVParser(filename, sep); - - // Populate DF - std::vector> DF = CSVParser.getData(filename); - std::cout << "Forest DataFrame from instance " << filename << std::endl; + // TODO: delete csvparser and use dfptr instead + // Populate DF + // std::vector> DF = CSVParser.getData(filename); + // std::cout << "Forest DataFrame from instance " << filename << std::endl; // DEBUGCSVParser.printData(DF); std::cout << "Number of cells: " << this->nCells << std::endl; - df = new inputs[this->nCells]; - - // Create empty df with size of NCells - df_ptr = &df[0]; // access reference for the first element of df // Populate the df [nCells] objects - CSVParser.parseDF(df_ptr, + // + /* CSVParser.parseDF(df_ptr, DF, this->args_ptr, this->nCells); // iterates from the first element of df, using DF, - // args_ptr and the number of cells + // args_ptr and the number of cells*/ // Initialize and populate relevant vectors this->fTypeCells = std::vector(this->nCells, 1); @@ -279,20 +282,13 @@ Cell2Fire::Cell2Fire(arguments _args) : CSVForest(_args.InFolder + "fuels", " ") this->crownFlameLengths = std::vector(this->nCells, 0); this->maxFlameLengths = std::vector(this->nCells, 0); - this->ignProb = std::vector(this->nCells, 1); - CSVParser.parsePROB(this->ignProb, DF, this->nCells); - // Non burnable types: populate relevant fields such as status and ftype - std::string NoFuel = "NF "; - std::string NoData = "ND "; std::string Empty = ""; - const char* NF = NoFuel.c_str(); - const char* ND = NoData.c_str(); const char* EM = Empty.c_str(); for (int l = 0; l < this->nCells; l++) { - if (strcmp(df[l].fueltype, NF) == 0 || strcmp(df[l].fueltype, ND) == 0) + if (df[l].fueltype == "NF" || df[l].fueltype == "ND") { this->fTypeCells[l] = 0; this->fTypeCells2[l] = "NonBurnable"; @@ -740,14 +736,10 @@ Cell2Fire::reset(int rnumber, double rnumber2, int simExt = 1) this->crownMetrics.clear(); // intensity and crown // Non burnable types: populate relevant fields such as status and ftype - std::string NoFuel = "NF "; - std::string NoData = "ND "; - const char* NF = NoFuel.c_str(); - const char* ND = NoData.c_str(); for (i = 0; i < this->nCells; i++) { - if (strcmp(df[i].fueltype, NF) == 0 || strcmp(df[i].fueltype, ND) == 0) + if (df[i].fueltype == "NF" || df[i].fueltype == "ND") { this->fTypeCells[i] = 0; this->fTypeCells2[i] = "NonBurnable"; @@ -853,11 +845,9 @@ Cell2Fire::RunIgnition(boost::random::mt19937 generator, int ep) boost::random::mt19937 generator2 = boost::random::mt19937(args.seed * ep * this->nCells); boost::random::uniform_int_distribution distribution(1, this->nCells); - // std::default_random_engine generator2(args.seed * ep * this->nCells); // * time(NULL)); //creates a different - // generator solving cases when parallel - // running creates simulations at same time + // generator solving cases when parallel + // running creates simulations at same time std::unordered_map::iterator it; - // std::uniform_int_distribution distribution(1, this->nCells); // No Ignitions provided if (this->args.Ignitions == 0) @@ -870,14 +860,13 @@ Cell2Fire::RunIgnition(boost::random::mt19937 generator, int ep) { aux = distribution(generator2); float rd_number = (float)rand() / ((float)(RAND_MAX / 0.999999999)); - if (this->ignProb[aux - 1] > rd_number) + if (df_ptr[aux - 1].ign_probability > rd_number) { break; } microloops++; if (microloops > this->nCells * 100) { - this->noIgnition = true; break; } @@ -900,7 +889,6 @@ Cell2Fire::RunIgnition(boost::random::mt19937 generator, int ep) if (it->second.getStatus() == "Available" && it->second.fType != 0) { IgnitionHistory[sim] = aux; - // std::cout << "Selected (Random) ignition point: " << aux << std::endl; std::vector ignPts = { aux }; if (it->second.ignition(this->fire_period[year - 1], this->year, @@ -1249,7 +1237,6 @@ Cell2Fire::SendMessages() "messages" << std::endl; } - // If message and not a true flag if (aux_list.size() > 0 && aux_list[0] != -100) { @@ -1352,7 +1339,6 @@ Cell2Fire::GetMessages(const std::unordered_map>& sendMess { // Iterator std::unordered_map::iterator it; - // Information of the current step if (this->args.verbose) { @@ -1645,7 +1631,6 @@ Cell2Fire::Results() // Declare an iterator to unordered_map std::unordered_map::iterator it; int i; - for (auto& br : this->burntCells) { if (this->Cells_Obj.find(br) != this->Cells_Obj.end()) @@ -2191,8 +2176,7 @@ Cell2Fire::Step(boost::random::mt19937 generator, int ep) // If more than planning horizon, next sim if (this->year > this->args.TotalYears) { - // printf("\n\nEntra a year mayor al total...\n\n"); - // Print-out results to folder + // Print-out results to folder this->Results(); // Next Sim if max year this->sim += 1; @@ -2315,7 +2299,8 @@ main(int argc, char* argv[]) arguments args; arguments* args_ptr = &args; parseArgs(argc, argv, args_ptr); - GenDataFile(args.InFolder, args.Simulator); + + // TODO: create shared data vectors int ep = 0; // Episodes loop (episode = replication) // CP: Modified to account the case when no ignition occurs and no grids are diff --git a/Cell2Fire/Cells.cpp b/Cell2Fire/Cells.cpp index 003b8f28..896f9647 100644 --- a/Cell2Fire/Cells.cpp +++ b/Cell2Fire/Cells.cpp @@ -436,7 +436,6 @@ Cells::manageFire(int period, { // Special flag for repetition (False = -99 for the record) int repeat = -99; - // msg lists contains integers (True = -100) std::vector msg_list_aux; msg_list_aux.push_back(0); @@ -455,8 +454,8 @@ Cells::manageFire(int period, main_outs metrics = {}; snd_outs sndstruct; fire_struc headstruct, backstruct, flankstruct, metrics2; - - // Calculate parameters + // cout << "$" << df_ptr[this->realId - 1].fueltype << "$" << endl; + // Calculate parameters if (args->Simulator == "K") { calculate_k(&df_ptr[this->realId - 1], diff --git a/Cell2Fire/Cells.h b/Cell2Fire/Cells.h index 2ecb4723..8360ae81 100644 --- a/Cell2Fire/Cells.h +++ b/Cell2Fire/Cells.h @@ -25,16 +25,16 @@ typedef struct typedef struct { - char fueltype[5]; - float ws, saz, cur, ps, cbh, ccf, cbd, elev, tmp, rh, lat, lon, ffmc, bui, gfl, - tree_height; // David: some variables only used on C2FK and not on C2FSB and - // viceversa + std::string fueltype; + float ws, saz, cur, ps, cbh, ccf, cbd, elev, tmp, rh, lat, lon, ffmc, bui, gfl, tree_height, + ign_probability; // David: some variables only used on C2FK and not on C2FSB and + // viceversa int waz, nftype, FMC, time, pattern, mon, jd, jd_min, pc, pdf; } inputs; // David: Moved here to simplify inclusion typedef struct { - char fueltype[4]; + std::string fueltype; float p1, p2, p3; // hros coef float q1, q2, q3; // flame length coef float q, bui0, cfl; // fbp params diff --git a/Cell2Fire/DataGenerator.cpp b/Cell2Fire/DataGenerator.cpp index f9831c35..d84601bf 100644 --- a/Cell2Fire/DataGenerator.cpp +++ b/Cell2Fire/DataGenerator.cpp @@ -5,6 +5,7 @@ #include "DataGenerator.h" +#include "Cells.h" #include "tiffio.h" #include #include @@ -15,8 +16,7 @@ #include #include #include -#include -#include +#include #include #include @@ -30,6 +30,13 @@ separator() #endif } +inline std::string& +rtrim(std::string& s, const char* t = " \t\n\r\f\v") +{ + s.erase(s.find_last_not_of(t) + 1); + return s; +} + /** * @brief Reads the model lookup table and creates dictionaries for the fuel types and cell's ColorsDict. * @@ -105,17 +112,13 @@ Dictionary(const std::string& filename) tokens.push_back(token); } - if (tokens[3].substr(0, 3) == "FM1") - { - FBPDict[tokens[0]] = tokens[3].substr(0, 4); - } - else if (tokens[3].substr(0, 3) == "Non" || tokens[3].substr(0, 3) == "NFn") + if (tokens[3].substr(0, 3) == "Non" || tokens[3].substr(0, 3) == "NFn") { FBPDict[tokens[0]] = "NF"; } else { - FBPDict[tokens[0]] = tokens[3].substr(0, 3); + FBPDict[tokens[0]] = tokens[3]; } ColorsDict[tokens[0]] = std::make_tuple( @@ -594,7 +597,9 @@ GenerateDat(const std::vector& GFuelType, const std::vector& ProbMap, const std::vector& FMC, const std::vector& TreeHeight, - const std::string& InFolder) + const std::string& InFolder, + inputs* df_ptr, + arguments* args_ptr) { // DF columns std::vector Columns @@ -677,190 +682,166 @@ GenerateDat(const std::vector& GFuelType, // Dataframe // std::vector> DF(GFuelType.size(), // std::vector(Columns.size())); - + const char* faux; // Populate DF for (size_t i = 0; i < GFuelType.size(); ++i) { - - std::vector> rowData; - // Fuel Type 0 - rowData.emplace_back(std::make_unique(GFuelType[i])); - + df_ptr->fueltype = GFuelType[i]; // lat 1 - rowData.emplace_back(std::make_unique("51.621244")); - + df_ptr->lat = 51.621244; // lon 2 - rowData.emplace_back(std::make_unique("-115.608378")); + df_ptr->lon = -115.608378; // Elevation 3 if (std::isnan(Elevation[i])) { - rowData.emplace_back(std::make_unique("")); + df_ptr->elev = 0; } else { - rowData.emplace_back(std::make_unique(std::to_string(Elevation[i]))); + df_ptr->elev = Elevation[i]; } - // Blank space (task: check why) 4,5 - rowData.emplace_back(std::make_unique("")); - rowData.emplace_back(std::make_unique("")); - // PS 6 if (std::isnan(PS[i])) { - rowData.emplace_back(std::make_unique("")); + df_ptr->ps = 0; } else { - rowData.emplace_back(std::make_unique(std::to_string(PS[i]))); + df_ptr->ps = PS[i]; } // SAZ 7 if (std::isnan(SAZ[i])) { - rowData.emplace_back(std::make_unique("")); + df_ptr->saz = 0; } else { - rowData.emplace_back(std::make_unique(std::to_string(SAZ[i]))); + df_ptr->saz = SAZ[i]; } // Handle special cases 8 if (std::isnan(Curing[i]) && (GFuelType[i] == "O1a" || GFuelType[i] == "O1b")) { - rowData.emplace_back(std::make_unique("60")); // "cur" + df_ptr->cur = 60; // "cur" } else { - rowData.emplace_back(std::make_unique("")); + df_ptr->cur = 0; } // CBD 9 if (std::isnan(CBD[i])) { - rowData.emplace_back(std::make_unique("")); + df_ptr->cbd = -9999; } else { - rowData.emplace_back(std::make_unique(std::to_string(CBD[i]))); + df_ptr->cbd = CBD[i]; } // CBH 10 if (std::isnan(CBH[i])) { - rowData.emplace_back(std::make_unique("")); + df_ptr->cbh = -9999; } else { - rowData.emplace_back(std::make_unique(std::to_string(CBH[i]))); + df_ptr->cbh = CBH[i]; } // CCF 11 if (std::isnan(CCF[i])) { - rowData.emplace_back(std::make_unique("")); + df_ptr->ccf = 0; } else { - rowData.emplace_back(std::make_unique(std::to_string(CCF[i]))); + df_ptr->ccf = CCF[i]; } // Fuel Type N 12 // if (std::isnan(GFuelTypeN[i])) if (std::isnan(static_cast(GFuelTypeN[i]))) { - rowData.emplace_back(std::make_unique("")); + df_ptr->nftype = 0; } else { - rowData.emplace_back(std::make_unique(std::to_string(GFuelTypeN[i]))); + df_ptr->nftype = GFuelTypeN[i]; } // FMC 13 if (std::isnan(FMC[i])) { - rowData.emplace_back(std::make_unique("")); + df_ptr->FMC = args_ptr->FMC; } else { - rowData.emplace_back(std::make_unique(std::to_string(FMC[i]))); + df_ptr->FMC = FMC[i]; } // ProbMap 14 + // TODO:change probability parser + if (std::isnan(ProbMap[i])) { - rowData.emplace_back(std::make_unique("")); + df_ptr->ign_probability = 1.0; } else { - rowData.emplace_back(std::make_unique(std::to_string(ProbMap[i]))); + df_ptr->ign_probability = ProbMap[i]; } - // Blank space (jd,jd_min) 15,16 - rowData.emplace_back(std::make_unique("")); - rowData.emplace_back(std::make_unique("")); - // Populate PC 17 if (PCD.find(GFuelType[i]) != PCD.end()) { - rowData.emplace_back(std::make_unique(std::to_string(PCD[GFuelType[i]]))); // "pc" + df_ptr->pc = PCD[GFuelType[i]]; // "pc" } else { - rowData.emplace_back(std::make_unique("")); + df_ptr->pc = 0; } // Populate PDF 18 if (PDFD.find(GFuelType[i]) != PDFD.end()) { - rowData.emplace_back(std::make_unique(std::to_string(PDFD[GFuelType[i]]))); // "pdf" + df_ptr->pdf = PDFD[GFuelType[i]]; // "pdf" } else { - rowData.emplace_back(std::make_unique("")); + df_ptr->pdf = 0; } - // time 19 - rowData.emplace_back(std::make_unique("20")); - - // Blank space (ffmc,bui) 20,21 - rowData.emplace_back(std::make_unique("")); - rowData.emplace_back(std::make_unique("")); - // GFL 22 if (GFLD.find(GFuelType[i]) != GFLD.end()) { - rowData.emplace_back(std::make_unique(std::to_string(GFLD[GFuelType[i]]))); // "gfl" + df_ptr->gfl = GFLD[GFuelType[i]]; // "gfl" } else { - rowData.emplace_back(std::make_unique("")); + df_ptr->gfl = 0; } - rowData.emplace_back(std::make_unique("")); - // TreeHeight 24 if (std::isnan(TreeHeight[i])) { - rowData.emplace_back(std::make_unique("")); + df_ptr->tree_height = -9999; } else { - rowData.emplace_back(std::make_unique(std::to_string(TreeHeight[i]))); + df_ptr->tree_height = TreeHeight[i]; } - // Add the rowData to dataGrids - dataGrids.push_back(std::move(rowData)); - - rowData.clear(); + df_ptr++; } - return dataGrids; } @@ -870,9 +851,8 @@ GenerateDat(const std::vector& GFuelType, * @param InFolder Directory where the CSV file will be created. */ void -writeDataToFile(const std::vector>>& dataGrids, const std::string& InFolder) +writeDataToFile(inputs* df_ptr, int NCells, const std::string& InFolder) { - std::ofstream dataFile(InFolder + separator() + "Data.csv"); std::vector Columns = { "fueltype", "lat", "lon", "elev", "ws", "waz", "ps", "saz", "cur", @@ -882,21 +862,41 @@ writeDataToFile(const std::vector>>& da { // Write header for (const auto& col : Columns) - { dataFile << col << ","; - } dataFile << "\n"; - // Write data - for (const auto& rowData : dataGrids) + // Write data rows + for (int i = 0; i < NCells; ++i) { - for (const auto& item : rowData) - { - dataFile << *item << ","; // Dereference the unique_ptr before writing - } - dataFile << "\n"; + dataFile << df_ptr[i].fueltype << ","; + dataFile << df_ptr[i].lat << ","; + dataFile << df_ptr[i].lon << ","; + dataFile << df_ptr[i].elev << ","; + dataFile << ","; // ws (blank) + dataFile << ","; // waz (blank) + dataFile << df_ptr[i].ps << ","; + dataFile << df_ptr[i].saz << ","; + dataFile << df_ptr[i].cur << ","; + dataFile << df_ptr[i].cbd << ","; + dataFile << df_ptr[i].cbh << ","; + dataFile << df_ptr[i].ccf << ","; + dataFile << df_ptr[i].nftype << ","; + dataFile << df_ptr[i].FMC << ","; + dataFile << df_ptr[i].ign_probability << ","; + dataFile << ","; // jd (blank) + dataFile << ","; // jd_min (blank) + dataFile << df_ptr[i].pc << ","; + dataFile << df_ptr[i].pdf << ","; + dataFile << ","; // time (blank) + dataFile << ","; // ffmc (blank) + dataFile << ","; // bui (blank) + dataFile << df_ptr[i].gfl << ","; + dataFile << ","; // pattern (blank) + dataFile << df_ptr[i].tree_height << "\n"; } dataFile.close(); + std: + cout << "\nData file 'Data.csv' created successfully in " << InFolder << std::endl; } else { @@ -930,7 +930,7 @@ writeDataToFile(const std::vector>>& da * @param Simulator Simulation model code */ void -GenDataFile(const std::string& InFolder, const std::string& Simulator) +GenDataFile(const std::string& InFolder, const std::string& Simulator, inputs* df_ptr, arguments* args_ptr) { std::cout << "\n------ Reading input data ------\n\n"; std::unordered_map FBPDict; @@ -1114,9 +1114,22 @@ GenDataFile(const std::string& InFolder, const std::string& Simulator) } // Call GenerateDat function - std::vector>> result = GenerateDat( - GFuelType, GFuelTypeN, Elevation, PS, SAZ, Curing, CBD, CBH, CCF, ProbMap, FMC, TreeHeight, InFolder); - - writeDataToFile(result, InFolder); - std::cout << "Generated data file" << std::endl; + std::vector>> result = GenerateDat(GFuelType, + GFuelTypeN, + Elevation, + PS, + SAZ, + Curing, + CBD, + CBH, + CCF, + ProbMap, + FMC, + TreeHeight, + InFolder, + df_ptr, + args_ptr); + + if (args_ptr->WriteData) + writeDataToFile(df_ptr, NCells, InFolder); } diff --git a/Cell2Fire/DataGenerator.h b/Cell2Fire/DataGenerator.h index 8755f023..c8229b6d 100644 --- a/Cell2Fire/DataGenerator.h +++ b/Cell2Fire/DataGenerator.h @@ -1,6 +1,7 @@ #ifndef DATAGENERATOR_H #define DATAGENERATOR_H +#include "Cells.h" #include "tiffio.h" #include #include @@ -12,6 +13,7 @@ #include #include #include +#include #include #include #include @@ -39,12 +41,12 @@ std::vector>> GenerateDat(const std::ve const std::vector& ProbMap, const std::vector& FMC, const std::vector& TreeHeight, + const std::string& InFolder, + inputs* df_ptr, + arguments* args_ptr); - const std::string& InFolder); +void writeDataToFile(inputs* df_ptr, int NCells, const std::string& InFolder); -void writeDataToFile(const std::vector>>& dataGrids, - const std::string& InFolder); - -void GenDataFile(const std::string& InFolder, const std::string& Simulator); +void GenDataFile(const std::string& InFolder, const std::string& Simulator, inputs* df_ptr, arguments* args_ptr); #endif diff --git a/Cell2Fire/FuelModelFBP.cpp b/Cell2Fire/FuelModelFBP.cpp index 0265abf7..06b9c0b9 100644 --- a/Cell2Fire/FuelModelFBP.cpp +++ b/Cell2Fire/FuelModelFBP.cpp @@ -85,6 +85,7 @@ char version[50] = "Last modified June 2015, by BMW ", ver[17] = "Version 5.000 float slopelimit_isi = 0.01; int numfuels = 18; +int _time = 20; void calculate_fbp(inputs* data, @@ -116,7 +117,7 @@ calculate_fbp(inputs* data, { at->fmc = foliar_moisture(data, at); at->csi = crit_surf_intensity((*ptr), at->fmc); - at->rso = critical_ros(data->fueltype, at->sfc, at->csi); + at->rso = critical_ros(at->sfc, at->csi); firetype = fire_type(at->csi, at->sfi); at->crown = firetype; if (firetype == 1) @@ -199,7 +200,7 @@ determine_destiny_metrics_fbp( { metrics->fmc = foliar_moisture(data, metrics); metrics->csi = crit_surf_intensity((*ptr), metrics->fmc); - metrics->rso = critical_ros(data->fueltype, metrics->sfc, metrics->csi); + metrics->rso = critical_ros(metrics->sfc, metrics->csi); firetype = fire_type(metrics->csi, metrics->sfi); metrics->crown = firetype; if (firetype == 1) @@ -215,7 +216,7 @@ setup_const(fuel_coefs* ptr) { // printf("dlw debug, enter fuel_coefs\n"); /* fuel type 0 */ - strncpy(ptr->fueltype, "M1 ", 3); + ptr->fueltype = "M1"; ptr->p1 = 110.0; ptr->p2 = 0.0282; ptr->p3 = 1.5; @@ -225,7 +226,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.80; /* fuel type 1 */ ptr++; - strncpy(ptr->fueltype, "M2 ", 3); + ptr->fueltype = "M2"; ptr->p1 = 110.0; ptr->p2 = 0.0282; ptr->p3 = 1.5; @@ -235,7 +236,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.80; /* fuel type 2 */ ptr++; - strncpy(ptr->fueltype, "M3 ", 3); + ptr->fueltype = "M3"; ptr->p1 = 120.0; ptr->p2 = 0.0572; ptr->p3 = 1.4; @@ -245,7 +246,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.80; /* fuel type 3 */ ptr++; - strncpy(ptr->fueltype, "M4 ", 3); + ptr->fueltype = "M4"; ptr->p1 = 100.0; ptr->p2 = 0.0404; ptr->p3 = 1.48; @@ -255,7 +256,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.80; /* fuel type 4 */ ptr++; - strncpy(ptr->fueltype, "C1 ", 3); + ptr->fueltype = "C1"; ptr->p1 = 90.0; ptr->p2 = 0.0649; ptr->p3 = 4.5; @@ -265,7 +266,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.75; /* fuel type 5 */ ptr++; - strncpy(ptr->fueltype, "C2 ", 3); + ptr->fueltype = "C2"; ptr->p1 = 110.0; ptr->p2 = 0.0282; ptr->p3 = 1.5; @@ -275,7 +276,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.80; /* fuel type 6 */ ptr++; - strncpy(ptr->fueltype, "C3 ", 3); + ptr->fueltype = "C3"; ptr->p1 = 110.0; ptr->p2 = 0.0444; ptr->p3 = 3.0; @@ -285,7 +286,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 1.15; /* fuel type 7 */ ptr++; - strncpy(ptr->fueltype, "C4 ", 3); + ptr->fueltype = "C4"; ptr->p1 = 110.0; ptr->p2 = 0.0293; ptr->p3 = 1.5; @@ -295,7 +296,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 1.20; /* fuel type 8 */ ptr++; - strncpy(ptr->fueltype, "C5 ", 3); + ptr->fueltype = "C5"; ptr->p1 = 30.0; ptr->p2 = 0.0697; ptr->p3 = 4.0; @@ -305,7 +306,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 1.20; /* fuel type 9 */ ptr++; - strncpy(ptr->fueltype, "C6 ", 3); + ptr->fueltype = "C6"; ptr->p1 = 30.0; ptr->p2 = 0.0800; ptr->p3 = 3.0; @@ -315,7 +316,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 1.80; /* fuel type 10 */ ptr++; - strncpy(ptr->fueltype, "C7 ", 3); + ptr->fueltype = "C7"; ptr->p1 = 45.0; ptr->p2 = 0.0305; ptr->p3 = 2.0; @@ -325,7 +326,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.50; /* fuel type 11 */ ptr++; - strncpy(ptr->fueltype, "D1 ", 3); + ptr->fueltype = "D1"; ptr->p1 = 30.0; ptr->p2 = 0.0232; ptr->p3 = 1.6; @@ -335,7 +336,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.0; /* fuel type 12 */ ptr++; - strncpy(ptr->fueltype, "S1 ", 3); + ptr->fueltype = "S1"; ptr->p1 = 75.0; ptr->p2 = 0.0297; ptr->p3 = 1.3; @@ -345,7 +346,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.0; /* fuel type 13 */ ptr++; - strncpy(ptr->fueltype, "S2 ", 3); + ptr->fueltype = "S2"; ptr->p1 = 40.0; ptr->p2 = 0.0438; ptr->p3 = 1.7; @@ -355,7 +356,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.0; /* fuel type 14 */ ptr++; - strncpy(ptr->fueltype, "S3 ", 3); + ptr->fueltype = "S3"; ptr->p1 = 55.0; ptr->p2 = 0.0829; ptr->p3 = 3.2; @@ -365,7 +366,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.0; /* fuel type 15 */ ptr++; - strncpy(ptr->fueltype, "O1a", 3); + ptr->fueltype = "O1a"; ptr->p1 = 190.0; ptr->p2 = 0.0310; ptr->p3 = 1.40; @@ -375,7 +376,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.0; /* fuel type 16 */ ptr++; - strncpy(ptr->fueltype, "O1b", 3); + ptr->fueltype = "O1b"; ptr->p1 = 250.0; ptr->p2 = 0.0350; ptr->p3 = 1.7; @@ -385,7 +386,7 @@ setup_const(fuel_coefs* ptr) ptr->cfl = 0.0; /* fuel type 17 */ ptr++; - strncpy(ptr->fueltype, "D2 ", 3); + ptr->fueltype = "D2"; ptr->p1 = 6.0; ptr->p2 = 0.0232; ptr->p3 = 1.6; @@ -396,7 +397,7 @@ setup_const(fuel_coefs* ptr) } char -get_fueltype_number(fuel_coefs** ptr, char fuel[4]) +get_fueltype_number(fuel_coefs** ptr, std::string fuel) { int i; char cover; @@ -404,11 +405,13 @@ get_fueltype_number(fuel_coefs** ptr, char fuel[4]) fuel[0] += 'A' - 'a'; if (fuel[2] >= 'A' && fuel[2] <= 'Z') fuel[2] += 'a' - 'A'; - for (i = 0; i < numfuels && (strncmp((*ptr)->fueltype, fuel, 3) != 0); i++) + for (i = 0; i < numfuels && ((*ptr)->fueltype != fuel); i++) + { (*ptr)++; + } if (i >= numfuels) { - printf(" %s not a recognizable fuel type\n ", fuel); + cout << fuel << " %s not a recognizable fuel type\n "; // exit(9); cover = 'f'; return (cover); @@ -469,13 +472,15 @@ float ros_calc(inputs* inp, fuel_coefs* ptr, float isi, float* mult, weatherDF* wdf_ptr) { float ros; - if (strncmp(inp->fueltype, "O1", 2) == 0) + if (inp->fueltype.substr(0, 2) == "O1") return (grass(ptr, inp->cur, isi, mult)); - if (strncmp(inp->fueltype, "M1", 2) == 0 || strncmp(inp->fueltype, "M2", 2) == 0) + if (inp->fueltype == "M1" || inp->fueltype == "M2") + { return (mixed_wood(ptr, isi, mult, inp->pc)); - if (strncmp(inp->fueltype, "M3", 2) == 0 || strncmp(inp->fueltype, "M4", 2) == 0) + } + if (inp->fueltype == "M3" || inp->fueltype == "M4") return (dead_fir(ptr, inp->pdf, isi, mult)); - if (strncmp(inp->fueltype, "D2", 2) == 0) + if (inp->fueltype == "D2") return (D2_ROS(ptr, isi, wdf_ptr->bui, mult)); /* if all else has fail its a conifer */ return (conifer(ptr, isi, mult)); @@ -505,11 +510,11 @@ mixed_wood(fuel_coefs* ptr, float isi, float* mu, int pc) int i; *mu = pc / 100.0; ros_c2 = ptr->p1 * pow((1.0 - exp(-1.0 * ptr->p2 * isi)), ptr->p3); - if (strncmp(ptr->fueltype, "M2", 2) == 0) + if (ptr->fueltype == "M2") mult = 0.2; else mult = 1.0; - for (i = 0; strncmp(ptr->fueltype, "D1", 2) != 0 && i < numfuels; ptr++, i++) + for (i = 0; ptr->fueltype != "D1" && i < numfuels; ptr++, i++) ; if (i >= numfuels) { @@ -517,7 +522,6 @@ mixed_wood(fuel_coefs* ptr, float isi, float* mu, int pc) exit(9); } ros_d1 = ptr->p1 * pow((1.0 - exp(-1.0 * ptr->p2 * isi)), ptr->p3); - ros = (pc / 100.0) * ros_c2 + mult * (100 - pc) / 100.0 * ros_d1; return (ros); } @@ -529,12 +533,12 @@ dead_fir(fuel_coefs* ptr, int pdf, float isi, float* mu) double a, b, c; int i; float ros, rosm3or4_max, ros_d1, greenness = 1.0; - if (strncmp(ptr->fueltype, "M4", 2) == 0) + if (ptr->fueltype == "M4") greenness = 0.2; rosm3or4_max = ptr->p1 * pow((1.0 - exp(-1.0 * ptr->p2 * isi)), ptr->p3); - for (i = 0; strncmp(ptr->fueltype, "D1", 2) != 0 && i < numfuels; ptr++, i++) + for (i = 0; ptr->fueltype != "D1" && i < numfuels; ptr++, i++) ; if (i >= numfuels) { @@ -596,9 +600,11 @@ slope_effect(inputs* inp, fuel_coefs* ptr, main_outs* at, float isi, weatherDF* if (at->sf > 10.0) at->sf = 10.00; /* added to ensure maximum is correct in version 4.6 */ - if (strncmp(ptr->fueltype, "M1", 2) == 0 || strncmp(ptr->fueltype, "M2", 2) == 0) + if (ptr->fueltype == "M1" || ptr->fueltype == "M2") + { isf = ISF_mixedwood(ptr, isi, inp->pc, at->sf); - else if (strncmp(ptr->fueltype, "M3", 2) == 0 || strncmp(ptr->fueltype, "M4", 2) == 0) + } + else if (ptr->fueltype == "M3" || ptr->fueltype == "M4") isf = ISF_deadfir(ptr, isi, inp->pdf, at->sf); else { @@ -659,11 +665,11 @@ ISF_mixedwood(fuel_coefs* ptr, float isz, int pc, float sf) check = slopelimit_isi; isf_c2 = (1.0 / (-1.0 * ptr->p2)) * log(check); - if (strncmp(ptr->fueltype, "M2", 2) == 0) + if (ptr->fueltype == "M2") mult = 0.2; else mult = 1.0; - for (i = 0; strncmp(ptr->fueltype, "D1", 2) != 0 && i < numfuels; ptr++, i++) + for (i = 0; ptr->fueltype != "D1" && i < numfuels; ptr++, i++) ; rsf_d1 = sf * (mult * ptr->p1) * pow((1.0 - exp(-1.0 * ptr->p2 * isz)), ptr->p3); @@ -693,12 +699,12 @@ ISF_deadfir(fuel_coefs* ptr, float isz, int pdf, float sf) check = slopelimit_isi; isf_max = (1.0 / (-1.0 * ptr->p2)) * log(check); - if (strncmp(ptr->fueltype, "M4", 2) == 0) + if (ptr->fueltype == "M4") mult = 0.2; else mult = 1.0; - for (i = 0; strncmp(ptr->fueltype, "D1", 2) != 0 && i < numfuels; ptr++, i++) + for (i = 0; ptr->fueltype != "D1" && i < numfuels; ptr++, i++) ; rsf_d1 = sf * (mult * ptr->p1) * pow((1.0 - exp(-1.0 * ptr->p2 * isz)), ptr->p3); @@ -726,22 +732,20 @@ foliar_moisture(inputs* inp, main_outs* at) { float latn; int nd; - at->jd = inp->jd; - at->jd_min = inp->jd_min; - if (inp->jd_min <= 0) + at->jd = 0; + at->jd_min = 0; + + if (inp->elev < 0) { - if (inp->elev < 0) - { - latn = 23.4 * exp(-0.0360 * (150 - inp->lon)) + 46.0; - at->jd_min = (int)(0.5 + 151.0 * inp->lat / latn); - } - else - { - latn = 33.7 * exp(-0.0351 * (150 - inp->lon)) + 43.0; - at->jd_min = (int)(0.5 + 142.1 * inp->lat / latn + (0.0172 * inp->elev)); - } + latn = 23.4 * exp(-0.0360 * (150 - inp->lon)) + 46.0; + at->jd_min = (int)(0.5 + 151.0 * inp->lat / latn); + } + else + { + latn = 33.7 * exp(-0.0351 * (150 - inp->lon)) + 43.0; + at->jd_min = (int)(0.5 + 142.1 * inp->lat / latn + (0.0172 * inp->elev)); } - nd = abs(inp->jd - at->jd_min); + nd = abs(at->jd_min); if (nd >= 50) return (120.0); if (nd >= 30 && nd < 50) @@ -754,11 +758,9 @@ float surf_fuel_consump(inputs* inp, weatherDF* wdf_ptr) { float sfc, ffc, wfc, bui, ffmc, sfc_c2, sfc_d1; - char ft[3]; - strncpy(ft, inp->fueltype, 2); bui = wdf_ptr->bui; ffmc = wdf_ptr->ffmc; - if (strncmp(ft, "C1", 2) == 0) + if (inp->fueltype == "C1") { /* sfc=1.5*(1.0-exp(-0.23*(ffmc-81.0)));*/ if (ffmc > 84) @@ -767,13 +769,13 @@ surf_fuel_consump(inputs* inp, weatherDF* wdf_ptr) sfc = 0.75 - 0.75 * sqrt(1 - exp(0.23 * (ffmc - 84))); return (sfc >= 0 ? sfc : 0.0); } - if (strncmp(ft, "C2", 2) == 0 || strncmp(ft, "M3", 2) == 0 || strncmp(ft, "M4", 2) == 0) + if (inp->fueltype == "C2" || inp->fueltype == "M3" || inp->fueltype == "M4") return (5.0 * (1.0 - exp(-0.0115 * bui))); - if (strncmp(ft, "C3", 2) == 0 || strncmp(ft, "C4", 2) == 0) + if (inp->fueltype == "C3" || inp->fueltype == "C4") return (5.0 * pow((1.0 - exp(-0.0164 * bui)), 2.24)); - if (strncmp(ft, "C5", 2) == 0 || strncmp(ft, "C6", 2) == 0) + if (inp->fueltype == "C5" || inp->fueltype == "C6") return (5.0 * pow((1.0 - exp(-0.0149 * bui)), 2.48)); - if (strncmp(ft, "C7", 2) == 0) + if (inp->fueltype == "C7") { ffc = 2.0 * (1.0 - exp(-0.104 * (ffmc - 70.0))); if (ffc < 0) @@ -781,39 +783,39 @@ surf_fuel_consump(inputs* inp, weatherDF* wdf_ptr) wfc = 1.5 * (1.0 - exp(-0.0201 * bui)); return (ffc + wfc); } - if (strncmp(ft, "O1", 2) == 0) + if (inp->fueltype.substr(0, 2) == "O1") return ((inp->gfl) /* change this*/); - if (strncmp(ft, "M1", 2) == 0 || strncmp(ft, "M2", 2) == 0) + if (inp->fueltype == "M1" || inp->fueltype == "M2") { sfc_c2 = 5.0 * (1.0 - exp(-0.0115 * bui)); sfc_d1 = 1.5 * (1.0 - exp(-0.0183 * bui)); sfc = inp->pc / 100.0 * sfc_c2 + (100.0 - inp->pc) / 100.0 * sfc_d1; return (sfc); } - if (strncmp(ft, "S1", 2) == 0) + if (inp->fueltype == "S1") { ffc = 4.0 * (1.0 - exp(-0.025 * bui)); wfc = 4.0 * (1.0 - exp(-0.034 * bui)); return (ffc + wfc); } - if (strncmp(ft, "S2", 2) == 0) + if (inp->fueltype == "S2") { ffc = 10.0 * (1.0 - exp(-0.013 * bui)); wfc = 6.0 * (1.0 - exp(-0.060 * bui)); return (ffc + wfc); } - if (strncmp(ft, "S3", 2) == 0) + if (inp->fueltype == "S3") { ffc = 12.0 * (1.0 - exp(-0.0166 * bui)); wfc = 20.0 * (1.0 - exp(-0.0210 * bui)); return (ffc + wfc); } - if (strncmp(ft, "D1", 2) == 0) + if (inp->fueltype == "D1") return (1.5 * (1.0 - exp(-0.0183 * bui))); - if (strncmp(ft, "D2", 2) == 0) + if (inp->fueltype == "D2") return (bui >= 80 ? 1.5 * (1.0 - exp(-0.0183 * bui)) : 0.0); - printf("prob in sfc func \n"); + cout << inp->fueltype << " prob in sfc func" << endl; exit(9); return (-99); } @@ -835,7 +837,7 @@ crit_surf_intensity(fuel_coefs* ptr, float fmc) // TODO: citation needed float -critical_ros(char ft[3], float sfc, float csi) +critical_ros(float sfc, float csi) { if (sfc > 0) return (csi / (300.0 * sfc)); @@ -874,7 +876,7 @@ float final_ros(inputs* inp, float fmc, float isi, float cfb, float rss) { float rsc, ros; - if (strncmp(inp->fueltype, "C6", 2) == 0) + if (inp->fueltype == "C6") { rsc = foliar_mois_effect(isi, fmc); ros = rss + cfb * (rsc - rss); @@ -900,19 +902,21 @@ crown_consump(inputs* inp, fuel_coefs* ptr, float cfb) { float cfc; cfc = ptr->cfl * cfb; - if (strncmp(inp->fueltype, "M1", 2) == 0 || strncmp(inp->fueltype, "M2", 2) == 0) + if (inp->fueltype == "M1" || inp->fueltype == "M2") cfc = inp->pc / 100.0 * cfc; - if (strncmp(inp->fueltype, "M3", 2) == 0 || strncmp(inp->fueltype, "M4", 2) == 0) + if (inp->fueltype == "M3" || inp->fueltype == "M4") cfc = inp->pdf / 100.0 * cfc; return (cfc); } // TODO: citation needed float -l_to_b(char ft[3], float ws) +l_to_b(string ft, float ws) { - if (strncmp(ft, "O1", 2) == 0) + if (ft.substr(0, 2) == "O1") + { return (ws < 1.0 ? 1.0 : (1.1 * pow(ws, 0.464))); + } else return (1.0 + 8.729 * pow(1.0 - exp(-0.030 * ws), 2.155)); } @@ -969,14 +973,12 @@ perimeter(fire_struc* h, fire_struc* b, snd_outs* sec, float lb) float acceleration(inputs* inp, float cfb) { - int i; - char canopy = 'c', open_list[10][3] = { "O1", "C1", "S1", "S2", "S3", "o1", "c1", "s1", "s2", "s3" }; - for (i = 0; strncmp(inp->fueltype, open_list[i], 2) != 0 && i < 10; i++) - ; - if (i < 10) - canopy = 'o'; - if (canopy == 'o') + std::vector open_list = { "O1a", "O1b", "C1", "S1", "S2", "S3", "o1", "c1", "s1", "s2", "s3" }; + + if (std::find(std::begin(open_list), std::end(open_list), inp->fueltype) != std::end(open_list)) + { return (0.115); + } else return (0.115 - 18.8 * pow(cfb, 2.5) * exp(-8.0 * cfb)); // TODO: citation needed } @@ -992,7 +994,7 @@ float flank_spread_distance( inputs* inp, fire_struc* ptr, snd_outs* sec, float hrost, float brost, float hd, float bd, float lb, float a) { - sec->lbt = (lb - 1.0) * (1.0 - exp(-a * inp->time)) + 1.0; + sec->lbt = (lb - 1.0) * (1.0 - exp(-a * _time)) + 1.0; ptr->rost = (hrost + brost) / (sec->lbt * 2.0); return ((hd + bd) / (2.0 * sec->lbt)); } @@ -1001,8 +1003,8 @@ flank_spread_distance( float spread_distance(inputs* inp, fire_struc* ptr, float a) { - ptr->rost = ptr->ros * (1.0 - exp(-a * inp->time)); - return (ptr->ros * (inp->time + (exp(-a * inp->time) / a) - 1.0 / a)); + ptr->rost = ptr->ros * (1.0 - exp(-a * _time)); + return (ptr->ros * (_time + (exp(-a * _time) / a) - 1.0 / a)); } int diff --git a/Cell2Fire/FuelModelFBP.h b/Cell2Fire/FuelModelFBP.h index 7543cc43..18327a99 100644 --- a/Cell2Fire/FuelModelFBP.h +++ b/Cell2Fire/FuelModelFBP.h @@ -42,13 +42,13 @@ float fire_intensity(float fc, float ros); void setup_const(fuel_coefs* ptr); -char get_fueltype_number(fuel_coefs** ptr, char ft[4]); +char get_fueltype_number(fuel_coefs** ptr, string ft); float foliar_moisture(inputs* inp, main_outs* at); float crit_surf_intensity(fuel_coefs* ptr, float fmc); -float critical_ros(char ft[3], float sfc, float csi); +float critical_ros(float sfc, float csi); int fire_type(float csi, float sfi); @@ -62,7 +62,7 @@ float crown_consump(inputs* inp, fuel_coefs* ptr, float cfb); float foliar_mois_effect(float isi, float fmc); -float l_to_b(char ft[3], float ws); +float l_to_b(string ft, float ws); float ffmc_effect(float ffmc); diff --git a/Cell2Fire/FuelModelKitral.cpp b/Cell2Fire/FuelModelKitral.cpp index 4515fe06..06bb08af 100644 --- a/Cell2Fire/FuelModelKitral.cpp +++ b/Cell2Fire/FuelModelKitral.cpp @@ -52,10 +52,10 @@ setup_const() std::vector h_pch2; std::vector cbd_pch2; fmc_pch2.push_back(0.016027); - cbh_pch2.push_back(0); + cbh_pch2.push_back(0.0); fl_pch2.push_back(0.617); h_pch2.push_back(16434); - cbd_pch2.push_back(0); + cbd_pch2.push_back(0.0); fmcs.insert(std::make_pair(PCH2, fmc_pch2)); cbhs.insert(std::make_pair(PCH2, cbh_pch2)); fls_david.insert(std::make_pair(PCH2, fl_pch2)); @@ -828,8 +828,8 @@ calculate_k(inputs* data, FMC = args->FMC; ptr->nftype = data->nftype; ptr->fmc = fmcs[data->nftype][0]; + setup_crown_const(data); ptr->cbh = data->cbh; - ptr->fl = fls_david[data->nftype][0]; ptr->h = hs[data->nftype][0]; diff --git a/Cell2Fire/FuelModelPortugal.cpp b/Cell2Fire/FuelModelPortugal.cpp index 874ffe98..ae7bc973 100644 --- a/Cell2Fire/FuelModelPortugal.cpp +++ b/Cell2Fire/FuelModelPortugal.cpp @@ -1264,7 +1264,7 @@ calculate_p(inputs* data, at->sfi = byram_intensity_p(at, ptr); // Step 10: Criterion for Crown Fire Initiation (no init if user does not want to include it) - if (args->AllowCROS && data->cbh != 0 && data->cbd != 0) + if (args->AllowCROS && data->cbh > 0 && data->cbd > 0) { if (activeCrown) { @@ -1407,7 +1407,7 @@ determine_destiny_metrics_p(inputs* data, fuel_coefs* ptr, arguments* args, main // Set cfb value for no crown fire scenario metrics->cfb = 0; // Step 10: Criterion for Crown Fire Initiation (no init if user does not want to include it) - if (args->AllowCROS) + if (args->AllowCROS && data->cbh > 0 && data->cbd > 0) { crownFire = fire_type_p(data, metrics); if (crownFire) diff --git a/Cell2Fire/FuelModelSpain.cpp b/Cell2Fire/FuelModelSpain.cpp index ad5a08ac..81f72553 100644 --- a/Cell2Fire/FuelModelSpain.cpp +++ b/Cell2Fire/FuelModelSpain.cpp @@ -2499,7 +2499,7 @@ calculate_s(inputs* data, // Step 10: Criterion for Crown Fire Initiation (no init if user does not // want to include it) - if (args->AllowCROS && data->cbh != 0 && data->cbd != 0) + if (args->AllowCROS && data->cbh > 0 && data->cbd > 0) { if (activeCrown) { @@ -2646,7 +2646,7 @@ determine_destiny_metrics_s(inputs* data, fuel_coefs* ptr, arguments* args, main metrics->cfb = 0; // Step 10: Criterion for Crown Fire Initiation (no init if user does not // want to include it) - if (args->AllowCROS) + if (args->AllowCROS && data->cbh > 0 && data->cbd > 0) { crownFire = fire_type(data, metrics); if (crownFire) diff --git a/Cell2Fire/ReadArgs.cpp b/Cell2Fire/ReadArgs.cpp index 3d641918..bd834c2d 100644 --- a/Cell2Fire/ReadArgs.cpp +++ b/Cell2Fire/ReadArgs.cpp @@ -106,6 +106,7 @@ parseArgs(int argc, char* argv[], arguments* args_ptr) bool out_stats = false; bool bbo_tuning = false; bool allow_cros = false; + bool write_data = false; //--out-messages if (cmdOptionExists(argv, argv + argc, "--output-messages")) @@ -225,6 +226,13 @@ parseArgs(int argc, char* argv[], arguments* args_ptr) printf("CrownROS: %s \n", btoa(allow_cros)); } + //--write-data + if (cmdOptionExists(argv, argv + argc, "--write-data")) + { + write_data = true; + printf("WriteData: %s \n", btoa(write_data)); + } + // Floats and ints // defaults int dsim_years = 1; @@ -597,6 +605,7 @@ parseArgs(int argc, char* argv[], arguments* args_ptr) args_ptr->Stats = out_stats; args_ptr->BBOTuning = bbo_tuning; args_ptr->AllowCROS = allow_cros; + args_ptr->WriteData = write_data; } void diff --git a/Cell2Fire/ReadArgs.h b/Cell2Fire/ReadArgs.h index aa92b410..1eacedef 100644 --- a/Cell2Fire/ReadArgs.h +++ b/Cell2Fire/ReadArgs.h @@ -16,7 +16,8 @@ typedef struct { std::string InFolder, OutFolder, WeatherOpt, HarvestPlan, Simulator; bool OutMessages, OutFl, OutIntensity, OutRos, OutCrown, OutCrownConsumption, OutSurfConsumption, Trajectories, - NoOutput, verbose, IgnitionsLog, Ignitions, OutputGrids, FinalGrid, PromTuned, Stats, BBOTuning, AllowCROS; + NoOutput, verbose, IgnitionsLog, Ignitions, OutputGrids, FinalGrid, PromTuned, Stats, BBOTuning, AllowCROS, + WriteData; float ROSCV, ROSThreshold, CROSThreshold, HFIThreshold, HFactor, FFactor, BFactor, EFactor, FirePeriodLen; float CBDFactor, CCFFactor, ROS10Factor, CROSActThreshold; int MinutesPerWP, MaxFirePeriods, TotalYears, TotalSims, NWeatherFiles, IgnitionRadius, seed, nthreads, FMC, diff --git a/Cell2Fire/ReadCSV.cpp b/Cell2Fire/ReadCSV.cpp index 8ede4cdf..8c716ff8 100644 --- a/Cell2Fire/ReadCSV.cpp +++ b/Cell2Fire/ReadCSV.cpp @@ -241,188 +241,6 @@ CSVReader::printData(std::vector>& DF) } } -/** - * @brief Populates an instance of inputs using information contained in a 2D vector - * - * Populates the inputs object `df_ptr` with the information found in `DF`. If no value is provided for a variable, - * then a default one is used. - * @param df_ptr pointer to inputs object - * @param DF 2D vector with input data - * @param args_ptr array of inputted command line arguments - * @param NCells number of cells - */ -void -CSVReader::parseDF(inputs* df_ptr, std::vector>& DF, arguments* args_ptr, int NCells) -{ - int i; - - // Floats - float cur, elev, ws, waz, saz, cbd, cbh, ccf, ps, lat, lon, ffmc, bui, gfl, tree_height; - - // Integers - int nftype, FMC, jd, jd_min, pc, pdf, time, pattern; - - // CChar - const char* faux; - std::string::size_type sz; // alias of size_t - - // Loop over cells (populating per row) - for (i = 1; i <= NCells; i++) - { - // printf("Populating DF for cell %d\n", i); - - faux = DF[i][0].append(" ").c_str(); - - if (DF[i][3].compare("") == 0) - elev = 0; - else - elev = std::stof(DF[i][3], &sz); - - if (DF[i][4].compare("") == 0) - ws = 0; - else - ws = std::stof(DF[i][4], &sz); - - if (DF[i][5].compare("") == 0) - waz = 0; - else - waz = std::stoi(DF[i][5], &sz) + 180.; // + 2*90; // CHECK!!!! - if (waz >= 360) - waz = waz - 360; - - if (DF[i][6].compare("") == 0) - ps = 0; - else - ps = std::stof(DF[i][6], &sz); - - if (DF[i][7].compare("") == 0) - saz = 0; - else - saz = std::stof(DF[i][7], &sz); - - if (DF[i][8].compare("") == 0) - cur = 0; - else - cur = std::stof(DF[i][8], &sz); - - if (DF[i][9].compare("") == 0) - cbd = -9999; - else - cbd = std::stof(DF[i][9], &sz); - - if (DF[i][10].compare("") == 0) - cbh = -9999; - else - cbh = std::stof(DF[i][10], &sz); - - if (DF[i][11].compare("") == 0) - ccf = 0; - else - ccf = std::stof(DF[i][11], &sz); - - if (DF[i][12].compare("") == 0) - nftype = 0; - else - nftype = std::stoi(DF[i][12], &sz); - - if (DF[i][13].compare("") == 0) - FMC = args_ptr->FMC; - else - FMC = std::stoi(DF[i][13], &sz); - - // DF[i][14] stores probability - - if (DF[i][15].compare("") == 0) - jd = 0; - else - jd = std::stoi(DF[i][15], &sz); - - if (DF[i][16].compare("") == 0) - jd_min = 0; - else - jd_min = std::stoi(DF[i][16], &sz); - - if (DF[i][17].compare("") == 0) - pc = 0; - else - pc = std::stoi(DF[i][17], &sz); - - if (DF[i][18].compare("") == 0) - pdf = 0; - else - pdf = std::stoi(DF[i][18], &sz); - - if (DF[i][19].compare("") == 0) - time = 0; - else - time = std::stoi(DF[i][19], &sz); - - if (DF[i][1].compare("") == 0) - lat = 0; - else - lat = std::stof(DF[i][1], &sz); - - if (DF[i][2].compare("") == 0) - lon = 0; - else - lon = std::stof(DF[i][2], &sz); - - if (DF[i][20].compare("") == 0) - ffmc = 0; - else - ffmc = std::stof(DF[i][20], &sz); - - if (DF[i][21].compare("") == 0) - bui = 0; - else - bui = std::stof(DF[i][21], &sz); - - if (DF[i][22].compare("") == 0) - gfl = 0; - else - gfl = std::stof(DF[i][22], &sz); - - if (DF[i][23].compare("") == 0) - pattern = 0; - else - pattern = 1; // std::stoi (DF[i][18], &sz); - - if (DF[i][24].compare("") == 0) - tree_height = -9999; - else - tree_height = std::stof(DF[i][24], &sz); - - // Set values - strncpy(df_ptr->fueltype, faux, 4); - df_ptr->elev = elev; - df_ptr->ws = ws; - df_ptr->waz = waz; - df_ptr->ps = ps; - df_ptr->saz = saz; - df_ptr->cur = cur; - df_ptr->cbd = cbd; - df_ptr->cbh = cbh; - df_ptr->ccf = ccf; - df_ptr->nftype = nftype; - df_ptr->FMC = FMC; - df_ptr->jd = jd; - df_ptr->jd_min = jd_min; - df_ptr->pc = pc; - df_ptr->pdf = pdf; - df_ptr->time = time; - df_ptr->lat = lat; - df_ptr->lon = lon; - df_ptr->ffmc = ffmc; - df_ptr->bui = bui; - df_ptr->gfl = gfl; - df_ptr->pattern = pattern; - df_ptr->tree_height = tree_height; - - // Next pointer - df_ptr++; - } -} - /** * @brief Populates a vector of size NCells with fuel type number per cell * @param NFTypes vector of fuel type per cell @@ -432,6 +250,7 @@ CSVReader::parseDF(inputs* df_ptr, std::vector>& DF, ar void CSVReader::parseNDF(std::vector& NFTypes, std::vector>& DF, int NCells) { + // TODO: change this to use dfptr, only used in bbo int i; // Ints int FType; @@ -478,6 +297,7 @@ CSVReader::parsePROB(std::vector& probabilities, std::vector>& bbo, std::vector>& DF, int NFTypes) { - // Integers + // TODO: change this to use dfptr + // Integers int i, j, ftype; int ffactors = 4; std::vector bboFactors; diff --git a/Cell2Fire/ReadCSV.h b/Cell2Fire/ReadCSV.h index 7fe5ebe1..dbd1af3a 100644 --- a/Cell2Fire/ReadCSV.h +++ b/Cell2Fire/ReadCSV.h @@ -47,9 +47,6 @@ class CSVReader // Print data to console (Debug) void printData(std::vector>& DF); - // Populate DF (Spanish version) - void parseDF(inputs* df_ptr, std::vector>& DF, arguments* args_ptr, int NCells); - // Populate NFtypes (Spanish version) void parseNDF(std::vector& NFTypes, std::vector>& DF, int NCells); diff --git a/data/CanadianFBP/400cellsC1-asc/fbp_lookup_table.csv b/data/CanadianFBP/400cellsC1-asc/fbp_lookup_table.csv index 078b34fc..f46393f4 100644 --- a/data/CanadianFBP/400cellsC1-asc/fbp_lookup_table.csv +++ b/data/CanadianFBP/400cellsC1-asc/fbp_lookup_table.csv @@ -1,142 +1,142 @@ grid_value, export_value, descriptive_name, fuel_type, r, g, b, h, s, l -1,1,Spruce-Lichen Woodland,C-1,209,255,115,57,255,185 -2,2,Boreal Spruce,C-2,34,102,51,95,128,68 -3,3,Mature Jack or Lodgepole Pine,C-3,131,199,149,96,96,165 -4,4,Immature Jack or Lodgepole Pine,C-4,112,168,0,57,255,84 -5,5,Red and White Pine,C-5,223,184,230,206,122,207 -6,6,Conifer Plantation,C-6,172,102,237,192,201,170 -7,7,Ponderosa Pine - Douglas-Fir,C-7,112,12,242,188,231,127 -11,11,Leafless Aspen,D-1,196,189,151,35,70,174 -12,12,Green Aspen (with BUI Thresholding),D-2,137,112,68,27,86,103 -13,13,Aspen,D-1/D-2,196,189,151,35,70,174 -21,21,Jack or Lodgepole Pine Slash,S-1,251,190,185,3,227,218 -22,22,White Spruce - Balsam Slash,S-2,247,104,161,-272,229,176 -23,23,Coastal Cedar - Hemlock - Douglas-Fir Slash,S-3,174,1,126,-285,252,88 -31,31,Matted Grass,O-1a,255,255,190,42,255,223 -32,32,Standing Grass,O-1b,230,230,0,42,255,115 -40,40,Boreal Mixedwood - Leafless,M-1,255,211,127,28,255,191 -50,50,Boreal Mixedwood - Green,M-2,255,170,0,28,255,128 -60,60,Boreal Mixedwood,M-1/M-2,255,211,127,28,255,191 -70,70,Dead Balsam Fir Mixedwood - Leafless,M-3,99,0,0,0,255,50 -80,80,Dead Balsam Fir Mixedwood - Green,M-4,170,0,0,0,255,85 -90,90,Dead Balsam Fir Mixedwood,M-3/M-4,99,0,0,0,255,50 +1,1,Spruce-Lichen Woodland,C1,209,255,115,57,255,185 +2,2,Boreal Spruce,C2,34,102,51,95,128,68 +3,3,Mature Jack or Lodgepole Pine,C3,131,199,149,96,96,165 +4,4,Immature Jack or Lodgepole Pine,C4,112,168,0,57,255,84 +5,5,Red and White Pine,C5,223,184,230,206,122,207 +6,6,Conifer Plantation,C6,172,102,237,192,201,170 +7,7,Ponderosa Pine - Douglas-Fir,C7,112,12,242,188,231,127 +11,11,Leafless Aspen,D1,196,189,151,35,70,174 +12,12,Green Aspen (with BUI Thresholding),D2,137,112,68,27,86,103 +13,13,Aspen,D1,196,189,151,35,70,174 +21,21,Jack or Lodgepole Pine Slash,S1,251,190,185,3,227,218 +22,22,White Spruce - Balsam Slash,S2,247,104,161,-272,229,176 +23,23,Coastal Cedar - Hemlock - Douglas-Fir Slash,S3,174,1,126,-285,252,88 +31,31,Matted Grass,O1a,255,255,190,42,255,223 +32,32,Standing Grass,O1b,230,230,0,42,255,115 +40,40,Boreal Mixedwood - Leafless,M1,255,211,127,28,255,191 +50,50,Boreal Mixedwood - Green,M2,255,170,0,28,255,128 +60,60,Boreal Mixedwood,M1,255,211,127,28,255,191 +70,70,Dead Balsam Fir Mixedwood - Leafless,M3,99,0,0,0,255,50 +80,80,Dead Balsam Fir Mixedwood - Green,M4,170,0,0,0,255,85 +90,90,Dead Balsam Fir Mixedwood,M3,99,0,0,0,255,50 100,100,Not Available,Non-fuel,255,255,255,170,0,255 101,101,Non-fuel,Non-fuel,130,130,130,170,0,130 102,102,Water,Non-fuel,115,223,255,138,255,185 103,103,Unknown,Non-fuel,0,0,0,170,0,0 104,104,Unclassified,Non-fuel,166,166,166,170,0,166 105,105,Vegetated Non-Fuel,Non-fuel,204,204,204,170,0,204 -405,405,Boreal Mixedwood - Leafless (05% Conifer),M-1 (05 PC),255,211,127,28,255,191 -410,410,Boreal Mixedwood - Leafless (10% Conifer),M-1 (10 PC),255,211,127,28,255,191 -415,415,Boreal Mixedwood - Leafless (15% Conifer),M-1 (15 PC),255,211,127,28,255,191 -420,420,Boreal Mixedwood - Leafless (20% Conifer),M-1 (20 PC),255,211,127,28,255,191 -425,425,Boreal Mixedwood - Leafless (25% Conifer),M-1 (25 PC),255,211,127,28,255,191 -430,430,Boreal Mixedwood - Leafless (30% Conifer),M-1 (30 PC),255,211,127,28,255,191 -435,435,Boreal Mixedwood - Leafless (35% Conifer),M-1 (35 PC),255,211,127,28,255,191 -440,440,Boreal Mixedwood - Leafless (40% Conifer),M-1 (40 PC),255,211,127,28,255,191 -445,445,Boreal Mixedwood - Leafless (45% Conifer),M-1 (45 PC),255,211,127,28,255,191 -450,450,Boreal Mixedwood - Leafless (50% Conifer),M-1 (50 PC),255,211,127,28,255,191 -455,455,Boreal Mixedwood - Leafless (55% Conifer),M-1 (55 PC),255,211,127,28,255,191 -460,460,Boreal Mixedwood - Leafless (60% Conifer),M-1 (60 PC),255,211,127,28,255,191 -465,465,Boreal Mixedwood - Leafless (65% Conifer),M-1 (65 PC),255,211,127,28,255,191 -470,470,Boreal Mixedwood - Leafless (70% Conifer),M-1 (70 PC),255,211,127,28,255,191 -475,475,Boreal Mixedwood - Leafless (75% Conifer),M-1 (75 PC),255,211,127,28,255,191 -480,480,Boreal Mixedwood - Leafless (80% Conifer),M-1 (80 PC),255,211,127,28,255,191 -485,485,Boreal Mixedwood - Leafless (85% Conifer),M-1 (85 PC),255,211,127,28,255,191 -490,490,Boreal Mixedwood - Leafless (90% Conifer),M-1 (90 PC),255,211,127,28,255,191 -495,495,Boreal Mixedwood - Leafless (95% Conifer),M-1 (95 PC),255,211,127,28,255,191 -505,505,Boreal Mixedwood - Green (05% Conifer),M-2 (05 PC),255,170,0,28,255,128 -510,510,Boreal Mixedwood - Green (10% Conifer),M-2 (10 PC),255,170,0,28,255,128 -515,515,Boreal Mixedwood - Green (15% Conifer),M-2 (15 PC),255,170,0,28,255,128 -520,520,Boreal Mixedwood - Green (20% Conifer),M-2 (20 PC),255,170,0,28,255,128 -525,525,Boreal Mixedwood - Green (25% Conifer),M-2 (25 PC),255,170,0,28,255,128 -530,530,Boreal Mixedwood - Green (30% Conifer),M-2 (30 PC),255,170,0,28,255,128 -535,535,Boreal Mixedwood - Green (35% Conifer),M-2 (35 PC),255,170,0,28,255,128 -540,540,Boreal Mixedwood - Green (40% Conifer),M-2 (40 PC),255,170,0,28,255,128 -545,545,Boreal Mixedwood - Green (45% Conifer),M-2 (45 PC),255,170,0,28,255,128 -550,550,Boreal Mixedwood - Green (50% Conifer),M-2 (50 PC),255,170,0,28,255,128 -555,555,Boreal Mixedwood - Green (55% Conifer),M-2 (55 PC),255,170,0,28,255,128 -560,560,Boreal Mixedwood - Green (60% Conifer),M-2 (60 PC),255,170,0,28,255,128 -565,565,Boreal Mixedwood - Green (65% Conifer),M-2 (65 PC),255,170,0,28,255,128 -570,570,Boreal Mixedwood - Green (70% Conifer),M-2 (70 PC),255,170,0,28,255,128 -575,575,Boreal Mixedwood - Green (75% Conifer),M-2 (75 PC),255,170,0,28,255,128 -580,580,Boreal Mixedwood - Green (80% Conifer),M-2 (80 PC),255,170,0,28,255,128 -585,585,Boreal Mixedwood - Green (85% Conifer),M-2 (85 PC),255,170,0,28,255,128 -590,590,Boreal Mixedwood - Green (90% Conifer),M-2 (90 PC),255,170,0,28,255,128 -595,595,Boreal Mixedwood - Green (95% Conifer),M-2 (95 PC),255,170,0,28,255,128 -605,605,Boreal Mixedwood (05% Conifer),M-1/M-2 (05 PC),255,211,127,28,255,191 -610,610,Boreal Mixedwood (10% Conifer),M-1/M-2 (10 PC),255,211,127,28,255,191 -615,615,Boreal Mixedwood (15% Conifer),M-1/M-2 (15 PC),255,211,127,28,255,191 -620,620,Boreal Mixedwood (20% Conifer),M-1/M-2 (20 PC),255,211,127,28,255,191 -625,625,Boreal Mixedwood (25% Conifer),M-1/M-2 (25 PC),255,211,127,28,255,191 -630,630,Boreal Mixedwood (30% Conifer),M-1/M-2 (30 PC),255,211,127,28,255,191 -635,635,Boreal Mixedwood (35% Conifer),M-1/M-2 (35 PC),255,211,127,28,255,191 -640,640,Boreal Mixedwood (40% Conifer),M-1/M-2 (40 PC),255,211,127,28,255,191 -645,645,Boreal Mixedwood (45% Conifer),M-1/M-2 (45 PC),255,211,127,28,255,191 -650,650,Boreal Mixedwood (50% Conifer),M-1/M-2 (50 PC),255,211,127,28,255,191 -655,655,Boreal Mixedwood (55% Conifer),M-1/M-2 (55 PC),255,211,127,28,255,191 -660,660,Boreal Mixedwood (60% Conifer),M-1/M-2 (60 PC),255,211,127,28,255,191 -665,665,Boreal Mixedwood (65% Conifer),M-1/M-2 (65 PC),255,211,127,28,255,191 -670,670,Boreal Mixedwood (70% Conifer),M-1/M-2 (70 PC),255,211,127,28,255,191 -675,675,Boreal Mixedwood (75% Conifer),M-1/M-2 (75 PC),255,211,127,28,255,191 -680,680,Boreal Mixedwood (80% Conifer),M-1/M-2 (80 PC),255,211,127,28,255,191 -685,685,Boreal Mixedwood (85% Conifer),M-1/M-2 (85 PC),255,211,127,28,255,191 -690,690,Boreal Mixedwood (90% Conifer),M-1/M-2 (90 PC),255,211,127,28,255,191 -695,695,Boreal Mixedwood (95% Conifer),M-1/M-2 (95 PC),255,211,127,28,255,191 -705,705,Dead Balsam Fir Mixedwood - Leafless (05% Dead Fir),M-3 (05 PDF),99,0,0,0,255,50 -710,710,Dead Balsam Fir Mixedwood - Leafless (10% Dead Fir),M-3 (10 PDF),99,0,0,0,255,50 -715,715,Dead Balsam Fir Mixedwood - Leafless (15% Dead Fir),M-3 (15 PDF),99,0,0,0,255,50 -720,720,Dead Balsam Fir Mixedwood - Leafless (20% Dead Fir),M-3 (20 PDF),99,0,0,0,255,50 -725,725,Dead Balsam Fir Mixedwood - Leafless (25% Dead Fir),M-3 (25 PDF),99,0,0,0,255,50 -730,730,Dead Balsam Fir Mixedwood - Leafless (30% Dead Fir),M-3 (30 PDF),99,0,0,0,255,50 -735,735,Dead Balsam Fir Mixedwood - Leafless (35% Dead Fir),M-3 (35 PDF),99,0,0,0,255,50 -740,740,Dead Balsam Fir Mixedwood - Leafless (40% Dead Fir),M-3 (40 PDF),99,0,0,0,255,50 -745,745,Dead Balsam Fir Mixedwood - Leafless (45% Dead Fir),M-3 (45 PDF),99,0,0,0,255,50 -750,750,Dead Balsam Fir Mixedwood - Leafless (50% Dead Fir),M-3 (50 PDF),99,0,0,0,255,50 -755,755,Dead Balsam Fir Mixedwood - Leafless (55% Dead Fir),M-3 (55 PDF),99,0,0,0,255,50 -760,760,Dead Balsam Fir Mixedwood - Leafless (60% Dead Fir),M-3 (60 PDF),99,0,0,0,255,50 -765,765,Dead Balsam Fir Mixedwood - Leafless (65% Dead Fir),M-3 (65 PDF),99,0,0,0,255,50 -770,770,Dead Balsam Fir Mixedwood - Leafless (70% Dead Fir),M-3 (70 PDF),99,0,0,0,255,50 -775,775,Dead Balsam Fir Mixedwood - Leafless (75% Dead Fir),M-3 (75 PDF),99,0,0,0,255,50 -780,780,Dead Balsam Fir Mixedwood - Leafless (80% Dead Fir),M-3 (80 PDF),99,0,0,0,255,50 -785,785,Dead Balsam Fir Mixedwood - Leafless (85% Dead Fir),M-3 (85 PDF),99,0,0,0,255,50 -790,790,Dead Balsam Fir Mixedwood - Leafless (90% Dead Fir),M-3 (90 PDF),99,0,0,0,255,50 -795,795,Dead Balsam Fir Mixedwood - Leafless (95% Dead Fir),M-3 (95 PDF),99,0,0,0,255,50 -805,805,Dead Balsam Fir Mixedwood - Green (05% Dead Fir),M-4 (05 PDF),170,0,0,0,255,85 -810,810,Dead Balsam Fir Mixedwood - Green (10% Dead Fir),M-4 (10 PDF),170,0,0,0,255,85 -815,815,Dead Balsam Fir Mixedwood - Green (15% Dead Fir),M-4 (15 PDF),170,0,0,0,255,85 -820,820,Dead Balsam Fir Mixedwood - Green (20% Dead Fir),M-4 (20 PDF),170,0,0,0,255,85 -825,825,Dead Balsam Fir Mixedwood - Green (25% Dead Fir),M-4 (25 PDF),170,0,0,0,255,85 -830,830,Dead Balsam Fir Mixedwood - Green (30% Dead Fir),M-4 (30 PDF),170,0,0,0,255,85 -835,835,Dead Balsam Fir Mixedwood - Green (35% Dead Fir),M-4 (35 PDF),170,0,0,0,255,85 -840,840,Dead Balsam Fir Mixedwood - Green (40% Dead Fir),M-4 (40 PDF),170,0,0,0,255,85 -845,845,Dead Balsam Fir Mixedwood - Green (45% Dead Fir),M-4 (45 PDF),170,0,0,0,255,85 -850,850,Dead Balsam Fir Mixedwood - Green (50% Dead Fir),M-4 (50 PDF),170,0,0,0,255,85 -855,855,Dead Balsam Fir Mixedwood - Green (55% Dead Fir),M-4 (55 PDF),170,0,0,0,255,85 -860,860,Dead Balsam Fir Mixedwood - Green (60% Dead Fir),M-4 (60 PDF),170,0,0,0,255,85 -865,865,Dead Balsam Fir Mixedwood - Green (65% Dead Fir),M-4 (65 PDF),170,0,0,0,255,85 -870,870,Dead Balsam Fir Mixedwood - Green (70% Dead Fir),M-4 (70 PDF),170,0,0,0,255,85 -875,875,Dead Balsam Fir Mixedwood - Green (75% Dead Fir),M-4 (75 PDF),170,0,0,0,255,85 -880,880,Dead Balsam Fir Mixedwood - Green (80% Dead Fir),M-4 (80 PDF),170,0,0,0,255,85 -885,885,Dead Balsam Fir Mixedwood - Green (85% Dead Fir),M-4 (85 PDF),170,0,0,0,255,85 -890,890,Dead Balsam Fir Mixedwood - Green (90% Dead Fir),M-4 (90 PDF),170,0,0,0,255,85 -895,895,Dead Balsam Fir Mixedwood - Green (95% Dead Fir),M-4 (95 PDF),170,0,0,0,255,85 -905,905,Dead Balsam Fir Mixedwood (05% Dead Fir),M-3/M-4 (05 PDF),99,0,0,0,255,50 -910,910,Dead Balsam Fir Mixedwood (10% Dead Fir),M-3/M-4 (10 PDF),99,0,0,0,255,50 -915,915,Dead Balsam Fir Mixedwood (15% Dead Fir),M-3/M-4 (15 PDF),99,0,0,0,255,50 -920,920,Dead Balsam Fir Mixedwood (20% Dead Fir),M-3/M-4 (20 PDF),99,0,0,0,255,50 -925,925,Dead Balsam Fir Mixedwood (25% Dead Fir),M-3/M-4 (25 PDF),99,0,0,0,255,50 -930,930,Dead Balsam Fir Mixedwood (30% Dead Fir),M-3/M-4 (30 PDF),99,0,0,0,255,50 -935,935,Dead Balsam Fir Mixedwood (35% Dead Fir),M-3/M-4 (35 PDF),99,0,0,0,255,50 -940,940,Dead Balsam Fir Mixedwood (40% Dead Fir),M-3/M-4 (40 PDF),99,0,0,0,255,50 -945,945,Dead Balsam Fir Mixedwood (45% Dead Fir),M-3/M-4 (45 PDF),99,0,0,0,255,50 -950,950,Dead Balsam Fir Mixedwood (50% Dead Fir),M-3/M-4 (50 PDF),99,0,0,0,255,50 -955,955,Dead Balsam Fir Mixedwood (55% Dead Fir),M-3/M-4 (55 PDF),99,0,0,0,255,50 -960,960,Dead Balsam Fir Mixedwood (60% Dead Fir),M-3/M-4 (60 PDF),99,0,0,0,255,50 -965,965,Dead Balsam Fir Mixedwood (65% Dead Fir),M-3/M-4 (65 PDF),99,0,0,0,255,50 -970,970,Dead Balsam Fir Mixedwood (70% Dead Fir),M-3/M-4 (70 PDF),99,0,0,0,255,50 -975,975,Dead Balsam Fir Mixedwood (75% Dead Fir),M-3/M-4 (75 PDF),99,0,0,0,255,50 -980,980,Dead Balsam Fir Mixedwood (80% Dead Fir),M-3/M-4 (80 PDF),99,0,0,0,255,50 -985,985,Dead Balsam Fir Mixedwood (85% Dead Fir),M-3/M-4 (85 PDF),99,0,0,0,255,50 -990,990,Dead Balsam Fir Mixedwood (90% Dead Fir),M-3/M-4 (90 PDF),99,0,0,0,255,50 -995,995,Dead Balsam Fir Mixedwood (95% Dead Fir),M-3/M-4 (95 PDF),99,0,0,0,255,50 +405,405,Boreal Mixedwood - Leafless (05% Conifer),M1,255,211,127,28,255,191 +410,410,Boreal Mixedwood - Leafless (10% Conifer),M1,255,211,127,28,255,191 +415,415,Boreal Mixedwood - Leafless (15% Conifer),M1,255,211,127,28,255,191 +420,420,Boreal Mixedwood - Leafless (20% Conifer),M1,255,211,127,28,255,191 +425,425,Boreal Mixedwood - Leafless (25% Conifer),M1,255,211,127,28,255,191 +430,430,Boreal Mixedwood - Leafless (30% Conifer),M1,255,211,127,28,255,191 +435,435,Boreal Mixedwood - Leafless (35% Conifer),M1,255,211,127,28,255,191 +440,440,Boreal Mixedwood - Leafless (40% Conifer),M1,255,211,127,28,255,191 +445,445,Boreal Mixedwood - Leafless (45% Conifer),M1,255,211,127,28,255,191 +450,450,Boreal Mixedwood - Leafless (50% Conifer),M1,255,211,127,28,255,191 +455,455,Boreal Mixedwood - Leafless (55% Conifer),M1,255,211,127,28,255,191 +460,460,Boreal Mixedwood - Leafless (60% Conifer),M1,255,211,127,28,255,191 +465,465,Boreal Mixedwood - Leafless (65% Conifer),M1,255,211,127,28,255,191 +470,470,Boreal Mixedwood - Leafless (70% Conifer),M1,255,211,127,28,255,191 +475,475,Boreal Mixedwood - Leafless (75% Conifer),M1,255,211,127,28,255,191 +480,480,Boreal Mixedwood - Leafless (80% Conifer),M1,255,211,127,28,255,191 +485,485,Boreal Mixedwood - Leafless (85% Conifer),M1,255,211,127,28,255,191 +490,490,Boreal Mixedwood - Leafless (90% Conifer),M1,255,211,127,28,255,191 +495,495,Boreal Mixedwood - Leafless (95% Conifer),M1,255,211,127,28,255,191 +505,505,Boreal Mixedwood - Green (05% Conifer),M2,255,170,0,28,255,128 +510,510,Boreal Mixedwood - Green (10% Conifer),M2,255,170,0,28,255,128 +515,515,Boreal Mixedwood - Green (15% Conifer),M2,255,170,0,28,255,128 +520,520,Boreal Mixedwood - Green (20% Conifer),M2,255,170,0,28,255,128 +525,525,Boreal Mixedwood - Green (25% Conifer),M2,255,170,0,28,255,128 +530,530,Boreal Mixedwood - Green (30% Conifer),M2,255,170,0,28,255,128 +535,535,Boreal Mixedwood - Green (35% Conifer),M2,255,170,0,28,255,128 +540,540,Boreal Mixedwood - Green (40% Conifer),M2,255,170,0,28,255,128 +545,545,Boreal Mixedwood - Green (45% Conifer),M2,255,170,0,28,255,128 +550,550,Boreal Mixedwood - Green (50% Conifer),M2,255,170,0,28,255,128 +555,555,Boreal Mixedwood - Green (55% Conifer),M2,255,170,0,28,255,128 +560,560,Boreal Mixedwood - Green (60% Conifer),M2,255,170,0,28,255,128 +565,565,Boreal Mixedwood - Green (65% Conifer),M2,255,170,0,28,255,128 +570,570,Boreal Mixedwood - Green (70% Conifer),M2,255,170,0,28,255,128 +575,575,Boreal Mixedwood - Green (75% Conifer),M2,255,170,0,28,255,128 +580,580,Boreal Mixedwood - Green (80% Conifer),M2,255,170,0,28,255,128 +585,585,Boreal Mixedwood - Green (85% Conifer),M2,255,170,0,28,255,128 +590,590,Boreal Mixedwood - Green (90% Conifer),M2,255,170,0,28,255,128 +595,595,Boreal Mixedwood - Green (95% Conifer),M2,255,170,0,28,255,128 +605,605,Boreal Mixedwood (05% Conifer),M1,255,211,127,28,255,191 +610,610,Boreal Mixedwood (10% Conifer),M1,255,211,127,28,255,191 +615,615,Boreal Mixedwood (15% Conifer),M1,255,211,127,28,255,191 +620,620,Boreal Mixedwood (20% Conifer),M1,255,211,127,28,255,191 +625,625,Boreal Mixedwood (25% Conifer),M1,255,211,127,28,255,191 +630,630,Boreal Mixedwood (30% Conifer),M1,255,211,127,28,255,191 +635,635,Boreal Mixedwood (35% Conifer),M1,255,211,127,28,255,191 +640,640,Boreal Mixedwood (40% Conifer),M1,255,211,127,28,255,191 +645,645,Boreal Mixedwood (45% Conifer),M1,255,211,127,28,255,191 +650,650,Boreal Mixedwood (50% Conifer),M1,255,211,127,28,255,191 +655,655,Boreal Mixedwood (55% Conifer),M1,255,211,127,28,255,191 +660,660,Boreal Mixedwood (60% Conifer),M1,255,211,127,28,255,191 +665,665,Boreal Mixedwood (65% Conifer),M1,255,211,127,28,255,191 +670,670,Boreal Mixedwood (70% Conifer),M1,255,211,127,28,255,191 +675,675,Boreal Mixedwood (75% Conifer),M1,255,211,127,28,255,191 +680,680,Boreal Mixedwood (80% Conifer),M1,255,211,127,28,255,191 +685,685,Boreal Mixedwood (85% Conifer),M1,255,211,127,28,255,191 +690,690,Boreal Mixedwood (90% Conifer),M1,255,211,127,28,255,191 +695,695,Boreal Mixedwood (95% Conifer),M1,255,211,127,28,255,191 +705,705,Dead Balsam Fir Mixedwood - Leafless (05% Dead Fir),M3,99,0,0,0,255,50 +710,710,Dead Balsam Fir Mixedwood - Leafless (10% Dead Fir),M3,99,0,0,0,255,50 +715,715,Dead Balsam Fir Mixedwood - Leafless (15% Dead Fir),M3,99,0,0,0,255,50 +720,720,Dead Balsam Fir Mixedwood - Leafless (20% Dead Fir),M3,99,0,0,0,255,50 +725,725,Dead Balsam Fir Mixedwood - Leafless (25% Dead Fir),M3,99,0,0,0,255,50 +730,730,Dead Balsam Fir Mixedwood - Leafless (30% Dead Fir),M3,99,0,0,0,255,50 +735,735,Dead Balsam Fir Mixedwood - Leafless (35% Dead Fir),M3,99,0,0,0,255,50 +740,740,Dead Balsam Fir Mixedwood - Leafless (40% Dead Fir),M3,99,0,0,0,255,50 +745,745,Dead Balsam Fir Mixedwood - Leafless (45% Dead Fir),M3,99,0,0,0,255,50 +750,750,Dead Balsam Fir Mixedwood - Leafless (50% Dead Fir),M3,99,0,0,0,255,50 +755,755,Dead Balsam Fir Mixedwood - Leafless (55% Dead Fir),M3,99,0,0,0,255,50 +760,760,Dead Balsam Fir Mixedwood - Leafless (60% Dead Fir),M3,99,0,0,0,255,50 +765,765,Dead Balsam Fir Mixedwood - Leafless (65% Dead Fir),M3,99,0,0,0,255,50 +770,770,Dead Balsam Fir Mixedwood - Leafless (70% Dead Fir),M3,99,0,0,0,255,50 +775,775,Dead Balsam Fir Mixedwood - Leafless (75% Dead Fir),M3,99,0,0,0,255,50 +780,780,Dead Balsam Fir Mixedwood - Leafless (80% Dead Fir),M3,99,0,0,0,255,50 +785,785,Dead Balsam Fir Mixedwood - Leafless (85% Dead Fir),M3,99,0,0,0,255,50 +790,790,Dead Balsam Fir Mixedwood - Leafless (90% Dead Fir),M3,99,0,0,0,255,50 +795,795,Dead Balsam Fir Mixedwood - Leafless (95% Dead Fir),M3,99,0,0,0,255,50 +805,805,Dead Balsam Fir Mixedwood - Green (05% Dead Fir),M4,170,0,0,0,255,85 +810,810,Dead Balsam Fir Mixedwood - Green (10% Dead Fir),M4,170,0,0,0,255,85 +815,815,Dead Balsam Fir Mixedwood - Green (15% Dead Fir),M4,170,0,0,0,255,85 +820,820,Dead Balsam Fir Mixedwood - Green (20% Dead Fir),M4,170,0,0,0,255,85 +825,825,Dead Balsam Fir Mixedwood - Green (25% Dead Fir),M4,170,0,0,0,255,85 +830,830,Dead Balsam Fir Mixedwood - Green (30% Dead Fir),M4,170,0,0,0,255,85 +835,835,Dead Balsam Fir Mixedwood - Green (35% Dead Fir),M4,170,0,0,0,255,85 +840,840,Dead Balsam Fir Mixedwood - Green (40% Dead Fir),M4,170,0,0,0,255,85 +845,845,Dead Balsam Fir Mixedwood - Green (45% Dead Fir),M4,170,0,0,0,255,85 +850,850,Dead Balsam Fir Mixedwood - Green (50% Dead Fir),M4,170,0,0,0,255,85 +855,855,Dead Balsam Fir Mixedwood - Green (55% Dead Fir),M4,170,0,0,0,255,85 +860,860,Dead Balsam Fir Mixedwood - Green (60% Dead Fir),M4,170,0,0,0,255,85 +865,865,Dead Balsam Fir Mixedwood - Green (65% Dead Fir),M4,170,0,0,0,255,85 +870,870,Dead Balsam Fir Mixedwood - Green (70% Dead Fir),M4,170,0,0,0,255,85 +875,875,Dead Balsam Fir Mixedwood - Green (75% Dead Fir),M4,170,0,0,0,255,85 +880,880,Dead Balsam Fir Mixedwood - Green (80% Dead Fir),M4,170,0,0,0,255,85 +885,885,Dead Balsam Fir Mixedwood - Green (85% Dead Fir),M4,170,0,0,0,255,85 +890,890,Dead Balsam Fir Mixedwood - Green (90% Dead Fir),M4,170,0,0,0,255,85 +895,895,Dead Balsam Fir Mixedwood - Green (95% Dead Fir),M4,170,0,0,0,255,85 +905,905,Dead Balsam Fir Mixedwood (05% Dead Fir),M3,99,0,0,0,255,50 +910,910,Dead Balsam Fir Mixedwood (10% Dead Fir),M3,99,0,0,0,255,50 +915,915,Dead Balsam Fir Mixedwood (15% Dead Fir),M3,99,0,0,0,255,50 +920,920,Dead Balsam Fir Mixedwood (20% Dead Fir),M3,99,0,0,0,255,50 +925,925,Dead Balsam Fir Mixedwood (25% Dead Fir),M3,99,0,0,0,255,50 +930,930,Dead Balsam Fir Mixedwood (30% Dead Fir),M3,99,0,0,0,255,50 +935,935,Dead Balsam Fir Mixedwood (35% Dead Fir),M3,99,0,0,0,255,50 +940,940,Dead Balsam Fir Mixedwood (40% Dead Fir),M3,99,0,0,0,255,50 +945,945,Dead Balsam Fir Mixedwood (45% Dead Fir),M3,99,0,0,0,255,50 +950,950,Dead Balsam Fir Mixedwood (50% Dead Fir),M3,99,0,0,0,255,50 +955,955,Dead Balsam Fir Mixedwood (55% Dead Fir),M3,99,0,0,0,255,50 +960,960,Dead Balsam Fir Mixedwood (60% Dead Fir),M3,99,0,0,0,255,50 +965,965,Dead Balsam Fir Mixedwood (65% Dead Fir),M3,99,0,0,0,255,50 +970,970,Dead Balsam Fir Mixedwood (70% Dead Fir),M3,99,0,0,0,255,50 +975,975,Dead Balsam Fir Mixedwood (75% Dead Fir),M3,99,0,0,0,255,50 +980,980,Dead Balsam Fir Mixedwood (80% Dead Fir),M3,99,0,0,0,255,50 +985,985,Dead Balsam Fir Mixedwood (85% Dead Fir),M3,99,0,0,0,255,50 +990,990,Dead Balsam Fir Mixedwood (90% Dead Fir),M3,99,0,0,0,255,50 +995,995,Dead Balsam Fir Mixedwood (95% Dead Fir),M3,99,0,0,0,255,50 diff --git a/data/CanadianFBP/dogrib-asc/fbp_lookup_table.csv b/data/CanadianFBP/dogrib-asc/fbp_lookup_table.csv index 078b34fc..f46393f4 100644 --- a/data/CanadianFBP/dogrib-asc/fbp_lookup_table.csv +++ b/data/CanadianFBP/dogrib-asc/fbp_lookup_table.csv @@ -1,142 +1,142 @@ grid_value, export_value, descriptive_name, fuel_type, r, g, b, h, s, l -1,1,Spruce-Lichen Woodland,C-1,209,255,115,57,255,185 -2,2,Boreal Spruce,C-2,34,102,51,95,128,68 -3,3,Mature Jack or Lodgepole Pine,C-3,131,199,149,96,96,165 -4,4,Immature Jack or Lodgepole Pine,C-4,112,168,0,57,255,84 -5,5,Red and White Pine,C-5,223,184,230,206,122,207 -6,6,Conifer Plantation,C-6,172,102,237,192,201,170 -7,7,Ponderosa Pine - Douglas-Fir,C-7,112,12,242,188,231,127 -11,11,Leafless Aspen,D-1,196,189,151,35,70,174 -12,12,Green Aspen (with BUI Thresholding),D-2,137,112,68,27,86,103 -13,13,Aspen,D-1/D-2,196,189,151,35,70,174 -21,21,Jack or Lodgepole Pine Slash,S-1,251,190,185,3,227,218 -22,22,White Spruce - Balsam Slash,S-2,247,104,161,-272,229,176 -23,23,Coastal Cedar - Hemlock - Douglas-Fir Slash,S-3,174,1,126,-285,252,88 -31,31,Matted Grass,O-1a,255,255,190,42,255,223 -32,32,Standing Grass,O-1b,230,230,0,42,255,115 -40,40,Boreal Mixedwood - Leafless,M-1,255,211,127,28,255,191 -50,50,Boreal Mixedwood - Green,M-2,255,170,0,28,255,128 -60,60,Boreal Mixedwood,M-1/M-2,255,211,127,28,255,191 -70,70,Dead Balsam Fir Mixedwood - Leafless,M-3,99,0,0,0,255,50 -80,80,Dead Balsam Fir Mixedwood - Green,M-4,170,0,0,0,255,85 -90,90,Dead Balsam Fir Mixedwood,M-3/M-4,99,0,0,0,255,50 +1,1,Spruce-Lichen Woodland,C1,209,255,115,57,255,185 +2,2,Boreal Spruce,C2,34,102,51,95,128,68 +3,3,Mature Jack or Lodgepole Pine,C3,131,199,149,96,96,165 +4,4,Immature Jack or Lodgepole Pine,C4,112,168,0,57,255,84 +5,5,Red and White Pine,C5,223,184,230,206,122,207 +6,6,Conifer Plantation,C6,172,102,237,192,201,170 +7,7,Ponderosa Pine - Douglas-Fir,C7,112,12,242,188,231,127 +11,11,Leafless Aspen,D1,196,189,151,35,70,174 +12,12,Green Aspen (with BUI Thresholding),D2,137,112,68,27,86,103 +13,13,Aspen,D1,196,189,151,35,70,174 +21,21,Jack or Lodgepole Pine Slash,S1,251,190,185,3,227,218 +22,22,White Spruce - Balsam Slash,S2,247,104,161,-272,229,176 +23,23,Coastal Cedar - Hemlock - Douglas-Fir Slash,S3,174,1,126,-285,252,88 +31,31,Matted Grass,O1a,255,255,190,42,255,223 +32,32,Standing Grass,O1b,230,230,0,42,255,115 +40,40,Boreal Mixedwood - Leafless,M1,255,211,127,28,255,191 +50,50,Boreal Mixedwood - Green,M2,255,170,0,28,255,128 +60,60,Boreal Mixedwood,M1,255,211,127,28,255,191 +70,70,Dead Balsam Fir Mixedwood - Leafless,M3,99,0,0,0,255,50 +80,80,Dead Balsam Fir Mixedwood - Green,M4,170,0,0,0,255,85 +90,90,Dead Balsam Fir Mixedwood,M3,99,0,0,0,255,50 100,100,Not Available,Non-fuel,255,255,255,170,0,255 101,101,Non-fuel,Non-fuel,130,130,130,170,0,130 102,102,Water,Non-fuel,115,223,255,138,255,185 103,103,Unknown,Non-fuel,0,0,0,170,0,0 104,104,Unclassified,Non-fuel,166,166,166,170,0,166 105,105,Vegetated Non-Fuel,Non-fuel,204,204,204,170,0,204 -405,405,Boreal Mixedwood - Leafless (05% Conifer),M-1 (05 PC),255,211,127,28,255,191 -410,410,Boreal Mixedwood - Leafless (10% Conifer),M-1 (10 PC),255,211,127,28,255,191 -415,415,Boreal Mixedwood - Leafless (15% Conifer),M-1 (15 PC),255,211,127,28,255,191 -420,420,Boreal Mixedwood - Leafless (20% Conifer),M-1 (20 PC),255,211,127,28,255,191 -425,425,Boreal Mixedwood - Leafless (25% Conifer),M-1 (25 PC),255,211,127,28,255,191 -430,430,Boreal Mixedwood - Leafless (30% Conifer),M-1 (30 PC),255,211,127,28,255,191 -435,435,Boreal Mixedwood - Leafless (35% Conifer),M-1 (35 PC),255,211,127,28,255,191 -440,440,Boreal Mixedwood - Leafless (40% Conifer),M-1 (40 PC),255,211,127,28,255,191 -445,445,Boreal Mixedwood - Leafless (45% Conifer),M-1 (45 PC),255,211,127,28,255,191 -450,450,Boreal Mixedwood - Leafless (50% Conifer),M-1 (50 PC),255,211,127,28,255,191 -455,455,Boreal Mixedwood - Leafless (55% Conifer),M-1 (55 PC),255,211,127,28,255,191 -460,460,Boreal Mixedwood - Leafless (60% Conifer),M-1 (60 PC),255,211,127,28,255,191 -465,465,Boreal Mixedwood - Leafless (65% Conifer),M-1 (65 PC),255,211,127,28,255,191 -470,470,Boreal Mixedwood - Leafless (70% Conifer),M-1 (70 PC),255,211,127,28,255,191 -475,475,Boreal Mixedwood - Leafless (75% Conifer),M-1 (75 PC),255,211,127,28,255,191 -480,480,Boreal Mixedwood - Leafless (80% Conifer),M-1 (80 PC),255,211,127,28,255,191 -485,485,Boreal Mixedwood - Leafless (85% Conifer),M-1 (85 PC),255,211,127,28,255,191 -490,490,Boreal Mixedwood - Leafless (90% Conifer),M-1 (90 PC),255,211,127,28,255,191 -495,495,Boreal Mixedwood - Leafless (95% Conifer),M-1 (95 PC),255,211,127,28,255,191 -505,505,Boreal Mixedwood - Green (05% Conifer),M-2 (05 PC),255,170,0,28,255,128 -510,510,Boreal Mixedwood - Green (10% Conifer),M-2 (10 PC),255,170,0,28,255,128 -515,515,Boreal Mixedwood - Green (15% Conifer),M-2 (15 PC),255,170,0,28,255,128 -520,520,Boreal Mixedwood - Green (20% Conifer),M-2 (20 PC),255,170,0,28,255,128 -525,525,Boreal Mixedwood - Green (25% Conifer),M-2 (25 PC),255,170,0,28,255,128 -530,530,Boreal Mixedwood - Green (30% Conifer),M-2 (30 PC),255,170,0,28,255,128 -535,535,Boreal Mixedwood - Green (35% Conifer),M-2 (35 PC),255,170,0,28,255,128 -540,540,Boreal Mixedwood - Green (40% Conifer),M-2 (40 PC),255,170,0,28,255,128 -545,545,Boreal Mixedwood - Green (45% Conifer),M-2 (45 PC),255,170,0,28,255,128 -550,550,Boreal Mixedwood - Green (50% Conifer),M-2 (50 PC),255,170,0,28,255,128 -555,555,Boreal Mixedwood - Green (55% Conifer),M-2 (55 PC),255,170,0,28,255,128 -560,560,Boreal Mixedwood - Green (60% Conifer),M-2 (60 PC),255,170,0,28,255,128 -565,565,Boreal Mixedwood - Green (65% Conifer),M-2 (65 PC),255,170,0,28,255,128 -570,570,Boreal Mixedwood - Green (70% Conifer),M-2 (70 PC),255,170,0,28,255,128 -575,575,Boreal Mixedwood - Green (75% Conifer),M-2 (75 PC),255,170,0,28,255,128 -580,580,Boreal Mixedwood - Green (80% Conifer),M-2 (80 PC),255,170,0,28,255,128 -585,585,Boreal Mixedwood - Green (85% Conifer),M-2 (85 PC),255,170,0,28,255,128 -590,590,Boreal Mixedwood - Green (90% Conifer),M-2 (90 PC),255,170,0,28,255,128 -595,595,Boreal Mixedwood - Green (95% Conifer),M-2 (95 PC),255,170,0,28,255,128 -605,605,Boreal Mixedwood (05% Conifer),M-1/M-2 (05 PC),255,211,127,28,255,191 -610,610,Boreal Mixedwood (10% Conifer),M-1/M-2 (10 PC),255,211,127,28,255,191 -615,615,Boreal Mixedwood (15% Conifer),M-1/M-2 (15 PC),255,211,127,28,255,191 -620,620,Boreal Mixedwood (20% Conifer),M-1/M-2 (20 PC),255,211,127,28,255,191 -625,625,Boreal Mixedwood (25% Conifer),M-1/M-2 (25 PC),255,211,127,28,255,191 -630,630,Boreal Mixedwood (30% Conifer),M-1/M-2 (30 PC),255,211,127,28,255,191 -635,635,Boreal Mixedwood (35% Conifer),M-1/M-2 (35 PC),255,211,127,28,255,191 -640,640,Boreal Mixedwood (40% Conifer),M-1/M-2 (40 PC),255,211,127,28,255,191 -645,645,Boreal Mixedwood (45% Conifer),M-1/M-2 (45 PC),255,211,127,28,255,191 -650,650,Boreal Mixedwood (50% Conifer),M-1/M-2 (50 PC),255,211,127,28,255,191 -655,655,Boreal Mixedwood (55% Conifer),M-1/M-2 (55 PC),255,211,127,28,255,191 -660,660,Boreal Mixedwood (60% Conifer),M-1/M-2 (60 PC),255,211,127,28,255,191 -665,665,Boreal Mixedwood (65% Conifer),M-1/M-2 (65 PC),255,211,127,28,255,191 -670,670,Boreal Mixedwood (70% Conifer),M-1/M-2 (70 PC),255,211,127,28,255,191 -675,675,Boreal Mixedwood (75% Conifer),M-1/M-2 (75 PC),255,211,127,28,255,191 -680,680,Boreal Mixedwood (80% Conifer),M-1/M-2 (80 PC),255,211,127,28,255,191 -685,685,Boreal Mixedwood (85% Conifer),M-1/M-2 (85 PC),255,211,127,28,255,191 -690,690,Boreal Mixedwood (90% Conifer),M-1/M-2 (90 PC),255,211,127,28,255,191 -695,695,Boreal Mixedwood (95% Conifer),M-1/M-2 (95 PC),255,211,127,28,255,191 -705,705,Dead Balsam Fir Mixedwood - Leafless (05% Dead Fir),M-3 (05 PDF),99,0,0,0,255,50 -710,710,Dead Balsam Fir Mixedwood - Leafless (10% Dead Fir),M-3 (10 PDF),99,0,0,0,255,50 -715,715,Dead Balsam Fir Mixedwood - Leafless (15% Dead Fir),M-3 (15 PDF),99,0,0,0,255,50 -720,720,Dead Balsam Fir Mixedwood - Leafless (20% Dead Fir),M-3 (20 PDF),99,0,0,0,255,50 -725,725,Dead Balsam Fir Mixedwood - Leafless (25% Dead Fir),M-3 (25 PDF),99,0,0,0,255,50 -730,730,Dead Balsam Fir Mixedwood - Leafless (30% Dead Fir),M-3 (30 PDF),99,0,0,0,255,50 -735,735,Dead Balsam Fir Mixedwood - Leafless (35% Dead Fir),M-3 (35 PDF),99,0,0,0,255,50 -740,740,Dead Balsam Fir Mixedwood - Leafless (40% Dead Fir),M-3 (40 PDF),99,0,0,0,255,50 -745,745,Dead Balsam Fir Mixedwood - Leafless (45% Dead Fir),M-3 (45 PDF),99,0,0,0,255,50 -750,750,Dead Balsam Fir Mixedwood - Leafless (50% Dead Fir),M-3 (50 PDF),99,0,0,0,255,50 -755,755,Dead Balsam Fir Mixedwood - Leafless (55% Dead Fir),M-3 (55 PDF),99,0,0,0,255,50 -760,760,Dead Balsam Fir Mixedwood - Leafless (60% Dead Fir),M-3 (60 PDF),99,0,0,0,255,50 -765,765,Dead Balsam Fir Mixedwood - Leafless (65% Dead Fir),M-3 (65 PDF),99,0,0,0,255,50 -770,770,Dead Balsam Fir Mixedwood - Leafless (70% Dead Fir),M-3 (70 PDF),99,0,0,0,255,50 -775,775,Dead Balsam Fir Mixedwood - Leafless (75% Dead Fir),M-3 (75 PDF),99,0,0,0,255,50 -780,780,Dead Balsam Fir Mixedwood - Leafless (80% Dead Fir),M-3 (80 PDF),99,0,0,0,255,50 -785,785,Dead Balsam Fir Mixedwood - Leafless (85% Dead Fir),M-3 (85 PDF),99,0,0,0,255,50 -790,790,Dead Balsam Fir Mixedwood - Leafless (90% Dead Fir),M-3 (90 PDF),99,0,0,0,255,50 -795,795,Dead Balsam Fir Mixedwood - Leafless (95% Dead Fir),M-3 (95 PDF),99,0,0,0,255,50 -805,805,Dead Balsam Fir Mixedwood - Green (05% Dead Fir),M-4 (05 PDF),170,0,0,0,255,85 -810,810,Dead Balsam Fir Mixedwood - Green (10% Dead Fir),M-4 (10 PDF),170,0,0,0,255,85 -815,815,Dead Balsam Fir Mixedwood - Green (15% Dead Fir),M-4 (15 PDF),170,0,0,0,255,85 -820,820,Dead Balsam Fir Mixedwood - Green (20% Dead Fir),M-4 (20 PDF),170,0,0,0,255,85 -825,825,Dead Balsam Fir Mixedwood - Green (25% Dead Fir),M-4 (25 PDF),170,0,0,0,255,85 -830,830,Dead Balsam Fir Mixedwood - Green (30% Dead Fir),M-4 (30 PDF),170,0,0,0,255,85 -835,835,Dead Balsam Fir Mixedwood - Green (35% Dead Fir),M-4 (35 PDF),170,0,0,0,255,85 -840,840,Dead Balsam Fir Mixedwood - Green (40% Dead Fir),M-4 (40 PDF),170,0,0,0,255,85 -845,845,Dead Balsam Fir Mixedwood - Green (45% Dead Fir),M-4 (45 PDF),170,0,0,0,255,85 -850,850,Dead Balsam Fir Mixedwood - Green (50% Dead Fir),M-4 (50 PDF),170,0,0,0,255,85 -855,855,Dead Balsam Fir Mixedwood - Green (55% Dead Fir),M-4 (55 PDF),170,0,0,0,255,85 -860,860,Dead Balsam Fir Mixedwood - Green (60% Dead Fir),M-4 (60 PDF),170,0,0,0,255,85 -865,865,Dead Balsam Fir Mixedwood - Green (65% Dead Fir),M-4 (65 PDF),170,0,0,0,255,85 -870,870,Dead Balsam Fir Mixedwood - Green (70% Dead Fir),M-4 (70 PDF),170,0,0,0,255,85 -875,875,Dead Balsam Fir Mixedwood - Green (75% Dead Fir),M-4 (75 PDF),170,0,0,0,255,85 -880,880,Dead Balsam Fir Mixedwood - Green (80% Dead Fir),M-4 (80 PDF),170,0,0,0,255,85 -885,885,Dead Balsam Fir Mixedwood - Green (85% Dead Fir),M-4 (85 PDF),170,0,0,0,255,85 -890,890,Dead Balsam Fir Mixedwood - Green (90% Dead Fir),M-4 (90 PDF),170,0,0,0,255,85 -895,895,Dead Balsam Fir Mixedwood - Green (95% Dead Fir),M-4 (95 PDF),170,0,0,0,255,85 -905,905,Dead Balsam Fir Mixedwood (05% Dead Fir),M-3/M-4 (05 PDF),99,0,0,0,255,50 -910,910,Dead Balsam Fir Mixedwood (10% Dead Fir),M-3/M-4 (10 PDF),99,0,0,0,255,50 -915,915,Dead Balsam Fir Mixedwood (15% Dead Fir),M-3/M-4 (15 PDF),99,0,0,0,255,50 -920,920,Dead Balsam Fir Mixedwood (20% Dead Fir),M-3/M-4 (20 PDF),99,0,0,0,255,50 -925,925,Dead Balsam Fir Mixedwood (25% Dead Fir),M-3/M-4 (25 PDF),99,0,0,0,255,50 -930,930,Dead Balsam Fir Mixedwood (30% Dead Fir),M-3/M-4 (30 PDF),99,0,0,0,255,50 -935,935,Dead Balsam Fir Mixedwood (35% Dead Fir),M-3/M-4 (35 PDF),99,0,0,0,255,50 -940,940,Dead Balsam Fir Mixedwood (40% Dead Fir),M-3/M-4 (40 PDF),99,0,0,0,255,50 -945,945,Dead Balsam Fir Mixedwood (45% Dead Fir),M-3/M-4 (45 PDF),99,0,0,0,255,50 -950,950,Dead Balsam Fir Mixedwood (50% Dead Fir),M-3/M-4 (50 PDF),99,0,0,0,255,50 -955,955,Dead Balsam Fir Mixedwood (55% Dead Fir),M-3/M-4 (55 PDF),99,0,0,0,255,50 -960,960,Dead Balsam Fir Mixedwood (60% Dead Fir),M-3/M-4 (60 PDF),99,0,0,0,255,50 -965,965,Dead Balsam Fir Mixedwood (65% Dead Fir),M-3/M-4 (65 PDF),99,0,0,0,255,50 -970,970,Dead Balsam Fir Mixedwood (70% Dead Fir),M-3/M-4 (70 PDF),99,0,0,0,255,50 -975,975,Dead Balsam Fir Mixedwood (75% Dead Fir),M-3/M-4 (75 PDF),99,0,0,0,255,50 -980,980,Dead Balsam Fir Mixedwood (80% Dead Fir),M-3/M-4 (80 PDF),99,0,0,0,255,50 -985,985,Dead Balsam Fir Mixedwood (85% Dead Fir),M-3/M-4 (85 PDF),99,0,0,0,255,50 -990,990,Dead Balsam Fir Mixedwood (90% Dead Fir),M-3/M-4 (90 PDF),99,0,0,0,255,50 -995,995,Dead Balsam Fir Mixedwood (95% Dead Fir),M-3/M-4 (95 PDF),99,0,0,0,255,50 +405,405,Boreal Mixedwood - Leafless (05% Conifer),M1,255,211,127,28,255,191 +410,410,Boreal Mixedwood - Leafless (10% Conifer),M1,255,211,127,28,255,191 +415,415,Boreal Mixedwood - Leafless (15% Conifer),M1,255,211,127,28,255,191 +420,420,Boreal Mixedwood - Leafless (20% Conifer),M1,255,211,127,28,255,191 +425,425,Boreal Mixedwood - Leafless (25% Conifer),M1,255,211,127,28,255,191 +430,430,Boreal Mixedwood - Leafless (30% Conifer),M1,255,211,127,28,255,191 +435,435,Boreal Mixedwood - Leafless (35% Conifer),M1,255,211,127,28,255,191 +440,440,Boreal Mixedwood - Leafless (40% Conifer),M1,255,211,127,28,255,191 +445,445,Boreal Mixedwood - Leafless (45% Conifer),M1,255,211,127,28,255,191 +450,450,Boreal Mixedwood - Leafless (50% Conifer),M1,255,211,127,28,255,191 +455,455,Boreal Mixedwood - Leafless (55% Conifer),M1,255,211,127,28,255,191 +460,460,Boreal Mixedwood - Leafless (60% Conifer),M1,255,211,127,28,255,191 +465,465,Boreal Mixedwood - Leafless (65% Conifer),M1,255,211,127,28,255,191 +470,470,Boreal Mixedwood - Leafless (70% Conifer),M1,255,211,127,28,255,191 +475,475,Boreal Mixedwood - Leafless (75% Conifer),M1,255,211,127,28,255,191 +480,480,Boreal Mixedwood - Leafless (80% Conifer),M1,255,211,127,28,255,191 +485,485,Boreal Mixedwood - Leafless (85% Conifer),M1,255,211,127,28,255,191 +490,490,Boreal Mixedwood - Leafless (90% Conifer),M1,255,211,127,28,255,191 +495,495,Boreal Mixedwood - Leafless (95% Conifer),M1,255,211,127,28,255,191 +505,505,Boreal Mixedwood - Green (05% Conifer),M2,255,170,0,28,255,128 +510,510,Boreal Mixedwood - Green (10% Conifer),M2,255,170,0,28,255,128 +515,515,Boreal Mixedwood - Green (15% Conifer),M2,255,170,0,28,255,128 +520,520,Boreal Mixedwood - Green (20% Conifer),M2,255,170,0,28,255,128 +525,525,Boreal Mixedwood - Green (25% Conifer),M2,255,170,0,28,255,128 +530,530,Boreal Mixedwood - Green (30% Conifer),M2,255,170,0,28,255,128 +535,535,Boreal Mixedwood - Green (35% Conifer),M2,255,170,0,28,255,128 +540,540,Boreal Mixedwood - Green (40% Conifer),M2,255,170,0,28,255,128 +545,545,Boreal Mixedwood - Green (45% Conifer),M2,255,170,0,28,255,128 +550,550,Boreal Mixedwood - Green (50% Conifer),M2,255,170,0,28,255,128 +555,555,Boreal Mixedwood - Green (55% Conifer),M2,255,170,0,28,255,128 +560,560,Boreal Mixedwood - Green (60% Conifer),M2,255,170,0,28,255,128 +565,565,Boreal Mixedwood - Green (65% Conifer),M2,255,170,0,28,255,128 +570,570,Boreal Mixedwood - Green (70% Conifer),M2,255,170,0,28,255,128 +575,575,Boreal Mixedwood - Green (75% Conifer),M2,255,170,0,28,255,128 +580,580,Boreal Mixedwood - Green (80% Conifer),M2,255,170,0,28,255,128 +585,585,Boreal Mixedwood - Green (85% Conifer),M2,255,170,0,28,255,128 +590,590,Boreal Mixedwood - Green (90% Conifer),M2,255,170,0,28,255,128 +595,595,Boreal Mixedwood - Green (95% Conifer),M2,255,170,0,28,255,128 +605,605,Boreal Mixedwood (05% Conifer),M1,255,211,127,28,255,191 +610,610,Boreal Mixedwood (10% Conifer),M1,255,211,127,28,255,191 +615,615,Boreal Mixedwood (15% Conifer),M1,255,211,127,28,255,191 +620,620,Boreal Mixedwood (20% Conifer),M1,255,211,127,28,255,191 +625,625,Boreal Mixedwood (25% Conifer),M1,255,211,127,28,255,191 +630,630,Boreal Mixedwood (30% Conifer),M1,255,211,127,28,255,191 +635,635,Boreal Mixedwood (35% Conifer),M1,255,211,127,28,255,191 +640,640,Boreal Mixedwood (40% Conifer),M1,255,211,127,28,255,191 +645,645,Boreal Mixedwood (45% Conifer),M1,255,211,127,28,255,191 +650,650,Boreal Mixedwood (50% Conifer),M1,255,211,127,28,255,191 +655,655,Boreal Mixedwood (55% Conifer),M1,255,211,127,28,255,191 +660,660,Boreal Mixedwood (60% Conifer),M1,255,211,127,28,255,191 +665,665,Boreal Mixedwood (65% Conifer),M1,255,211,127,28,255,191 +670,670,Boreal Mixedwood (70% Conifer),M1,255,211,127,28,255,191 +675,675,Boreal Mixedwood (75% Conifer),M1,255,211,127,28,255,191 +680,680,Boreal Mixedwood (80% Conifer),M1,255,211,127,28,255,191 +685,685,Boreal Mixedwood (85% Conifer),M1,255,211,127,28,255,191 +690,690,Boreal Mixedwood (90% Conifer),M1,255,211,127,28,255,191 +695,695,Boreal Mixedwood (95% Conifer),M1,255,211,127,28,255,191 +705,705,Dead Balsam Fir Mixedwood - Leafless (05% Dead Fir),M3,99,0,0,0,255,50 +710,710,Dead Balsam Fir Mixedwood - Leafless (10% Dead Fir),M3,99,0,0,0,255,50 +715,715,Dead Balsam Fir Mixedwood - Leafless (15% Dead Fir),M3,99,0,0,0,255,50 +720,720,Dead Balsam Fir Mixedwood - Leafless (20% Dead Fir),M3,99,0,0,0,255,50 +725,725,Dead Balsam Fir Mixedwood - Leafless (25% Dead Fir),M3,99,0,0,0,255,50 +730,730,Dead Balsam Fir Mixedwood - Leafless (30% Dead Fir),M3,99,0,0,0,255,50 +735,735,Dead Balsam Fir Mixedwood - Leafless (35% Dead Fir),M3,99,0,0,0,255,50 +740,740,Dead Balsam Fir Mixedwood - Leafless (40% Dead Fir),M3,99,0,0,0,255,50 +745,745,Dead Balsam Fir Mixedwood - Leafless (45% Dead Fir),M3,99,0,0,0,255,50 +750,750,Dead Balsam Fir Mixedwood - Leafless (50% Dead Fir),M3,99,0,0,0,255,50 +755,755,Dead Balsam Fir Mixedwood - Leafless (55% Dead Fir),M3,99,0,0,0,255,50 +760,760,Dead Balsam Fir Mixedwood - Leafless (60% Dead Fir),M3,99,0,0,0,255,50 +765,765,Dead Balsam Fir Mixedwood - Leafless (65% Dead Fir),M3,99,0,0,0,255,50 +770,770,Dead Balsam Fir Mixedwood - Leafless (70% Dead Fir),M3,99,0,0,0,255,50 +775,775,Dead Balsam Fir Mixedwood - Leafless (75% Dead Fir),M3,99,0,0,0,255,50 +780,780,Dead Balsam Fir Mixedwood - Leafless (80% Dead Fir),M3,99,0,0,0,255,50 +785,785,Dead Balsam Fir Mixedwood - Leafless (85% Dead Fir),M3,99,0,0,0,255,50 +790,790,Dead Balsam Fir Mixedwood - Leafless (90% Dead Fir),M3,99,0,0,0,255,50 +795,795,Dead Balsam Fir Mixedwood - Leafless (95% Dead Fir),M3,99,0,0,0,255,50 +805,805,Dead Balsam Fir Mixedwood - Green (05% Dead Fir),M4,170,0,0,0,255,85 +810,810,Dead Balsam Fir Mixedwood - Green (10% Dead Fir),M4,170,0,0,0,255,85 +815,815,Dead Balsam Fir Mixedwood - Green (15% Dead Fir),M4,170,0,0,0,255,85 +820,820,Dead Balsam Fir Mixedwood - Green (20% Dead Fir),M4,170,0,0,0,255,85 +825,825,Dead Balsam Fir Mixedwood - Green (25% Dead Fir),M4,170,0,0,0,255,85 +830,830,Dead Balsam Fir Mixedwood - Green (30% Dead Fir),M4,170,0,0,0,255,85 +835,835,Dead Balsam Fir Mixedwood - Green (35% Dead Fir),M4,170,0,0,0,255,85 +840,840,Dead Balsam Fir Mixedwood - Green (40% Dead Fir),M4,170,0,0,0,255,85 +845,845,Dead Balsam Fir Mixedwood - Green (45% Dead Fir),M4,170,0,0,0,255,85 +850,850,Dead Balsam Fir Mixedwood - Green (50% Dead Fir),M4,170,0,0,0,255,85 +855,855,Dead Balsam Fir Mixedwood - Green (55% Dead Fir),M4,170,0,0,0,255,85 +860,860,Dead Balsam Fir Mixedwood - Green (60% Dead Fir),M4,170,0,0,0,255,85 +865,865,Dead Balsam Fir Mixedwood - Green (65% Dead Fir),M4,170,0,0,0,255,85 +870,870,Dead Balsam Fir Mixedwood - Green (70% Dead Fir),M4,170,0,0,0,255,85 +875,875,Dead Balsam Fir Mixedwood - Green (75% Dead Fir),M4,170,0,0,0,255,85 +880,880,Dead Balsam Fir Mixedwood - Green (80% Dead Fir),M4,170,0,0,0,255,85 +885,885,Dead Balsam Fir Mixedwood - Green (85% Dead Fir),M4,170,0,0,0,255,85 +890,890,Dead Balsam Fir Mixedwood - Green (90% Dead Fir),M4,170,0,0,0,255,85 +895,895,Dead Balsam Fir Mixedwood - Green (95% Dead Fir),M4,170,0,0,0,255,85 +905,905,Dead Balsam Fir Mixedwood (05% Dead Fir),M3,99,0,0,0,255,50 +910,910,Dead Balsam Fir Mixedwood (10% Dead Fir),M3,99,0,0,0,255,50 +915,915,Dead Balsam Fir Mixedwood (15% Dead Fir),M3,99,0,0,0,255,50 +920,920,Dead Balsam Fir Mixedwood (20% Dead Fir),M3,99,0,0,0,255,50 +925,925,Dead Balsam Fir Mixedwood (25% Dead Fir),M3,99,0,0,0,255,50 +930,930,Dead Balsam Fir Mixedwood (30% Dead Fir),M3,99,0,0,0,255,50 +935,935,Dead Balsam Fir Mixedwood (35% Dead Fir),M3,99,0,0,0,255,50 +940,940,Dead Balsam Fir Mixedwood (40% Dead Fir),M3,99,0,0,0,255,50 +945,945,Dead Balsam Fir Mixedwood (45% Dead Fir),M3,99,0,0,0,255,50 +950,950,Dead Balsam Fir Mixedwood (50% Dead Fir),M3,99,0,0,0,255,50 +955,955,Dead Balsam Fir Mixedwood (55% Dead Fir),M3,99,0,0,0,255,50 +960,960,Dead Balsam Fir Mixedwood (60% Dead Fir),M3,99,0,0,0,255,50 +965,965,Dead Balsam Fir Mixedwood (65% Dead Fir),M3,99,0,0,0,255,50 +970,970,Dead Balsam Fir Mixedwood (70% Dead Fir),M3,99,0,0,0,255,50 +975,975,Dead Balsam Fir Mixedwood (75% Dead Fir),M3,99,0,0,0,255,50 +980,980,Dead Balsam Fir Mixedwood (80% Dead Fir),M3,99,0,0,0,255,50 +985,985,Dead Balsam Fir Mixedwood (85% Dead Fir),M3,99,0,0,0,255,50 +990,990,Dead Balsam Fir Mixedwood (90% Dead Fir),M3,99,0,0,0,255,50 +995,995,Dead Balsam Fir Mixedwood (95% Dead Fir),M3,99,0,0,0,255,50 diff --git a/data/ScottAndBurgan/Zona_60-asc/hm.asc b/data/ScottAndBurgan/Zona_60-asc/hm.asc deleted file mode 100644 index e69de29b..00000000 diff --git a/data/ScottAndBurgan/Zona_60-asc/spain_lookup_table.csv b/data/ScottAndBurgan/Zona_60-asc/spain_lookup_table.csv index 706fa0c8..9579e11a 100644 --- a/data/ScottAndBurgan/Zona_60-asc/spain_lookup_table.csv +++ b/data/ScottAndBurgan/Zona_60-asc/spain_lookup_table.csv @@ -36,4 +36,4 @@ grid_value,export_value,descriptive_name,fuel_type, r, g, b, h, s, l 92,92,Land covered by permanent snow or ice is included in NB2,Non-fuel,115,223,255,138,255,185 93,93,Fuel model NB3 is agricultural land maintained in a nonburnable condition,Non-fuel,0,0,0,170,0,0 98,98,Land covered by open bodies of water such as lakes rivers and oceans comprises NB8,Non-fuel,166,166,166,170,0,166 -99,99,Land devoid of enough fuel to support wildland fire spread is covered by fuel model NB9,Non-fuel,204,204,204,170,0,204 +99,99,Land devoid of enough fuel to support wildland fire spread is covered by fuel model NB9,Non-fuel,204,204,204,170,0,204 \ No newline at end of file diff --git a/test/model/fbp-asc/fbp_lookup_table.csv b/test/model/fbp-asc/fbp_lookup_table.csv index 9e4a063e..f46393f4 100644 --- a/test/model/fbp-asc/fbp_lookup_table.csv +++ b/test/model/fbp-asc/fbp_lookup_table.csv @@ -1,142 +1,142 @@ grid_value, export_value, descriptive_name, fuel_type, r, g, b, h, s, l -1,1,Spruce-Lichen Woodland,C-1,209,255,115,57,255,185 -2,2,Boreal Spruce,C-2,34,102,51,95,128,68 -3,3,Mature Jack or Lodgepole Pine,C-3,131,199,149,96,96,165 -4,4,Immature Jack or Lodgepole Pine,C-4,112,168,0,57,255,84 -5,5,Red and White Pine,C-5,223,184,230,206,122,207 -6,6,Conifer Plantation,C-6,172,102,237,192,201,170 -7,7,Ponderosa Pine - Douglas-Fir,C-7,112,12,242,188,231,127 -11,11,Leafless Aspen,D-1,196,189,151,35,70,174 -12,12,Green Aspen (with BUI Thresholding),D-2,137,112,68,27,86,103 -13,13,Aspen,D-1,196,189,151,35,70,174 -21,21,Jack or Lodgepole Pine Slash,S-1,251,190,185,3,227,218 -22,22,White Spruce - Balsam Slash,S-2,247,104,161,-272,229,176 -23,23,Coastal Cedar - Hemlock - Douglas-Fir Slash,S-3,174,1,126,-285,252,88 -31,31,Matted Grass,O-1a,255,255,190,42,255,223 -32,32,Standing Grass,O-1b,230,230,0,42,255,115 -40,40,Boreal Mixedwood - Leafless,M-1,255,211,127,28,255,191 -50,50,Boreal Mixedwood - Green,M-2,255,170,0,28,255,128 -60,60,Boreal Mixedwood,M-1,255,211,127,28,255,191 -70,70,Dead Balsam Fir Mixedwood - Leafless,M-3,99,0,0,0,255,50 -80,80,Dead Balsam Fir Mixedwood - Green,M-4,170,0,0,0,255,85 -90,90,Dead Balsam Fir Mixedwood,M-3,99,0,0,0,255,50 +1,1,Spruce-Lichen Woodland,C1,209,255,115,57,255,185 +2,2,Boreal Spruce,C2,34,102,51,95,128,68 +3,3,Mature Jack or Lodgepole Pine,C3,131,199,149,96,96,165 +4,4,Immature Jack or Lodgepole Pine,C4,112,168,0,57,255,84 +5,5,Red and White Pine,C5,223,184,230,206,122,207 +6,6,Conifer Plantation,C6,172,102,237,192,201,170 +7,7,Ponderosa Pine - Douglas-Fir,C7,112,12,242,188,231,127 +11,11,Leafless Aspen,D1,196,189,151,35,70,174 +12,12,Green Aspen (with BUI Thresholding),D2,137,112,68,27,86,103 +13,13,Aspen,D1,196,189,151,35,70,174 +21,21,Jack or Lodgepole Pine Slash,S1,251,190,185,3,227,218 +22,22,White Spruce - Balsam Slash,S2,247,104,161,-272,229,176 +23,23,Coastal Cedar - Hemlock - Douglas-Fir Slash,S3,174,1,126,-285,252,88 +31,31,Matted Grass,O1a,255,255,190,42,255,223 +32,32,Standing Grass,O1b,230,230,0,42,255,115 +40,40,Boreal Mixedwood - Leafless,M1,255,211,127,28,255,191 +50,50,Boreal Mixedwood - Green,M2,255,170,0,28,255,128 +60,60,Boreal Mixedwood,M1,255,211,127,28,255,191 +70,70,Dead Balsam Fir Mixedwood - Leafless,M3,99,0,0,0,255,50 +80,80,Dead Balsam Fir Mixedwood - Green,M4,170,0,0,0,255,85 +90,90,Dead Balsam Fir Mixedwood,M3,99,0,0,0,255,50 100,100,Not Available,Non-fuel,255,255,255,170,0,255 101,101,Non-fuel,Non-fuel,130,130,130,170,0,130 102,102,Water,Non-fuel,115,223,255,138,255,185 103,103,Unknown,Non-fuel,0,0,0,170,0,0 104,104,Unclassified,Non-fuel,166,166,166,170,0,166 105,105,Vegetated Non-Fuel,Non-fuel,204,204,204,170,0,204 -405,405,Boreal Mixedwood - Leafless (05% Conifer),M-1 (05 PC),255,211,127,28,255,191 -410,410,Boreal Mixedwood - Leafless (10% Conifer),M-1 (10 PC),255,211,127,28,255,191 -415,415,Boreal Mixedwood - Leafless (15% Conifer),M-1 (15 PC),255,211,127,28,255,191 -420,420,Boreal Mixedwood - Leafless (20% Conifer),M-1 (20 PC),255,211,127,28,255,191 -425,425,Boreal Mixedwood - Leafless (25% Conifer),M-1 (25 PC),255,211,127,28,255,191 -430,430,Boreal Mixedwood - Leafless (30% Conifer),M-1 (30 PC),255,211,127,28,255,191 -435,435,Boreal Mixedwood - Leafless (35% Conifer),M-1 (35 PC),255,211,127,28,255,191 -440,440,Boreal Mixedwood - Leafless (40% Conifer),M-1 (40 PC),255,211,127,28,255,191 -445,445,Boreal Mixedwood - Leafless (45% Conifer),M-1 (45 PC),255,211,127,28,255,191 -450,450,Boreal Mixedwood - Leafless (50% Conifer),M-1 (50 PC),255,211,127,28,255,191 -455,455,Boreal Mixedwood - Leafless (55% Conifer),M-1 (55 PC),255,211,127,28,255,191 -460,460,Boreal Mixedwood - Leafless (60% Conifer),M-1 (60 PC),255,211,127,28,255,191 -465,465,Boreal Mixedwood - Leafless (65% Conifer),M-1 (65 PC),255,211,127,28,255,191 -470,470,Boreal Mixedwood - Leafless (70% Conifer),M-1 (70 PC),255,211,127,28,255,191 -475,475,Boreal Mixedwood - Leafless (75% Conifer),M-1 (75 PC),255,211,127,28,255,191 -480,480,Boreal Mixedwood - Leafless (80% Conifer),M-1 (80 PC),255,211,127,28,255,191 -485,485,Boreal Mixedwood - Leafless (85% Conifer),M-1 (85 PC),255,211,127,28,255,191 -490,490,Boreal Mixedwood - Leafless (90% Conifer),M-1 (90 PC),255,211,127,28,255,191 -495,495,Boreal Mixedwood - Leafless (95% Conifer),M-1 (95 PC),255,211,127,28,255,191 -505,505,Boreal Mixedwood - Green (05% Conifer),M-2 (05 PC),255,170,0,28,255,128 -510,510,Boreal Mixedwood - Green (10% Conifer),M-2 (10 PC),255,170,0,28,255,128 -515,515,Boreal Mixedwood - Green (15% Conifer),M-2 (15 PC),255,170,0,28,255,128 -520,520,Boreal Mixedwood - Green (20% Conifer),M-2 (20 PC),255,170,0,28,255,128 -525,525,Boreal Mixedwood - Green (25% Conifer),M-2 (25 PC),255,170,0,28,255,128 -530,530,Boreal Mixedwood - Green (30% Conifer),M-2 (30 PC),255,170,0,28,255,128 -535,535,Boreal Mixedwood - Green (35% Conifer),M-2 (35 PC),255,170,0,28,255,128 -540,540,Boreal Mixedwood - Green (40% Conifer),M-2 (40 PC),255,170,0,28,255,128 -545,545,Boreal Mixedwood - Green (45% Conifer),M-2 (45 PC),255,170,0,28,255,128 -550,550,Boreal Mixedwood - Green (50% Conifer),M-2 (50 PC),255,170,0,28,255,128 -555,555,Boreal Mixedwood - Green (55% Conifer),M-2 (55 PC),255,170,0,28,255,128 -560,560,Boreal Mixedwood - Green (60% Conifer),M-2 (60 PC),255,170,0,28,255,128 -565,565,Boreal Mixedwood - Green (65% Conifer),M-2 (65 PC),255,170,0,28,255,128 -570,570,Boreal Mixedwood - Green (70% Conifer),M-2 (70 PC),255,170,0,28,255,128 -575,575,Boreal Mixedwood - Green (75% Conifer),M-2 (75 PC),255,170,0,28,255,128 -580,580,Boreal Mixedwood - Green (80% Conifer),M-2 (80 PC),255,170,0,28,255,128 -585,585,Boreal Mixedwood - Green (85% Conifer),M-2 (85 PC),255,170,0,28,255,128 -590,590,Boreal Mixedwood - Green (90% Conifer),M-2 (90 PC),255,170,0,28,255,128 -595,595,Boreal Mixedwood - Green (95% Conifer),M-2 (95 PC),255,170,0,28,255,128 -605,605,Boreal Mixedwood (05% Conifer),M-1 (05 PC),255,211,127,28,255,191 -610,610,Boreal Mixedwood (10% Conifer),M-1 (10 PC),255,211,127,28,255,191 -615,615,Boreal Mixedwood (15% Conifer),M-1 (15 PC),255,211,127,28,255,191 -620,620,Boreal Mixedwood (20% Conifer),M-1 (20 PC),255,211,127,28,255,191 -625,625,Boreal Mixedwood (25% Conifer),M-1 (25 PC),255,211,127,28,255,191 -630,630,Boreal Mixedwood (30% Conifer),M-1 (30 PC),255,211,127,28,255,191 -635,635,Boreal Mixedwood (35% Conifer),M-1 (35 PC),255,211,127,28,255,191 -640,640,Boreal Mixedwood (40% Conifer),M-1 (40 PC),255,211,127,28,255,191 -645,645,Boreal Mixedwood (45% Conifer),M-1 (45 PC),255,211,127,28,255,191 -650,650,Boreal Mixedwood (50% Conifer),M-1 (50 PC),255,211,127,28,255,191 -655,655,Boreal Mixedwood (55% Conifer),M-1 (55 PC),255,211,127,28,255,191 -660,660,Boreal Mixedwood (60% Conifer),M-1 (60 PC),255,211,127,28,255,191 -665,665,Boreal Mixedwood (65% Conifer),M-1 (65 PC),255,211,127,28,255,191 -670,670,Boreal Mixedwood (70% Conifer),M-1 (70 PC),255,211,127,28,255,191 -675,675,Boreal Mixedwood (75% Conifer),M-1 (75 PC),255,211,127,28,255,191 -680,680,Boreal Mixedwood (80% Conifer),M-1 (80 PC),255,211,127,28,255,191 -685,685,Boreal Mixedwood (85% Conifer),M-1 (85 PC),255,211,127,28,255,191 -690,690,Boreal Mixedwood (90% Conifer),M-1 (90 PC),255,211,127,28,255,191 -695,695,Boreal Mixedwood (95% Conifer),M-1 (95 PC),255,211,127,28,255,191 -705,705,Dead Balsam Fir Mixedwood - Leafless (05% Dead Fir),M-3 (05 PDF),99,0,0,0,255,50 -710,710,Dead Balsam Fir Mixedwood - Leafless (10% Dead Fir),M-3 (10 PDF),99,0,0,0,255,50 -715,715,Dead Balsam Fir Mixedwood - Leafless (15% Dead Fir),M-3 (15 PDF),99,0,0,0,255,50 -720,720,Dead Balsam Fir Mixedwood - Leafless (20% Dead Fir),M-3 (20 PDF),99,0,0,0,255,50 -725,725,Dead Balsam Fir Mixedwood - Leafless (25% Dead Fir),M-3 (25 PDF),99,0,0,0,255,50 -730,730,Dead Balsam Fir Mixedwood - Leafless (30% Dead Fir),M-3 (30 PDF),99,0,0,0,255,50 -735,735,Dead Balsam Fir Mixedwood - Leafless (35% Dead Fir),M-3 (35 PDF),99,0,0,0,255,50 -740,740,Dead Balsam Fir Mixedwood - Leafless (40% Dead Fir),M-3 (40 PDF),99,0,0,0,255,50 -745,745,Dead Balsam Fir Mixedwood - Leafless (45% Dead Fir),M-3 (45 PDF),99,0,0,0,255,50 -750,750,Dead Balsam Fir Mixedwood - Leafless (50% Dead Fir),M-3 (50 PDF),99,0,0,0,255,50 -755,755,Dead Balsam Fir Mixedwood - Leafless (55% Dead Fir),M-3 (55 PDF),99,0,0,0,255,50 -760,760,Dead Balsam Fir Mixedwood - Leafless (60% Dead Fir),M-3 (60 PDF),99,0,0,0,255,50 -765,765,Dead Balsam Fir Mixedwood - Leafless (65% Dead Fir),M-3 (65 PDF),99,0,0,0,255,50 -770,770,Dead Balsam Fir Mixedwood - Leafless (70% Dead Fir),M-3 (70 PDF),99,0,0,0,255,50 -775,775,Dead Balsam Fir Mixedwood - Leafless (75% Dead Fir),M-3 (75 PDF),99,0,0,0,255,50 -780,780,Dead Balsam Fir Mixedwood - Leafless (80% Dead Fir),M-3 (80 PDF),99,0,0,0,255,50 -785,785,Dead Balsam Fir Mixedwood - Leafless (85% Dead Fir),M-3 (85 PDF),99,0,0,0,255,50 -790,790,Dead Balsam Fir Mixedwood - Leafless (90% Dead Fir),M-3 (90 PDF),99,0,0,0,255,50 -795,795,Dead Balsam Fir Mixedwood - Leafless (95% Dead Fir),M-3 (95 PDF),99,0,0,0,255,50 -805,805,Dead Balsam Fir Mixedwood - Green (05% Dead Fir),M-4 (05 PDF),170,0,0,0,255,85 -810,810,Dead Balsam Fir Mixedwood - Green (10% Dead Fir),M-4 (10 PDF),170,0,0,0,255,85 -815,815,Dead Balsam Fir Mixedwood - Green (15% Dead Fir),M-4 (15 PDF),170,0,0,0,255,85 -820,820,Dead Balsam Fir Mixedwood - Green (20% Dead Fir),M-4 (20 PDF),170,0,0,0,255,85 -825,825,Dead Balsam Fir Mixedwood - Green (25% Dead Fir),M-4 (25 PDF),170,0,0,0,255,85 -830,830,Dead Balsam Fir Mixedwood - Green (30% Dead Fir),M-4 (30 PDF),170,0,0,0,255,85 -835,835,Dead Balsam Fir Mixedwood - Green (35% Dead Fir),M-4 (35 PDF),170,0,0,0,255,85 -840,840,Dead Balsam Fir Mixedwood - Green (40% Dead Fir),M-4 (40 PDF),170,0,0,0,255,85 -845,845,Dead Balsam Fir Mixedwood - Green (45% Dead Fir),M-4 (45 PDF),170,0,0,0,255,85 -850,850,Dead Balsam Fir Mixedwood - Green (50% Dead Fir),M-4 (50 PDF),170,0,0,0,255,85 -855,855,Dead Balsam Fir Mixedwood - Green (55% Dead Fir),M-4 (55 PDF),170,0,0,0,255,85 -860,860,Dead Balsam Fir Mixedwood - Green (60% Dead Fir),M-4 (60 PDF),170,0,0,0,255,85 -865,865,Dead Balsam Fir Mixedwood - Green (65% Dead Fir),M-4 (65 PDF),170,0,0,0,255,85 -870,870,Dead Balsam Fir Mixedwood - Green (70% Dead Fir),M-4 (70 PDF),170,0,0,0,255,85 -875,875,Dead Balsam Fir Mixedwood - Green (75% Dead Fir),M-4 (75 PDF),170,0,0,0,255,85 -880,880,Dead Balsam Fir Mixedwood - Green (80% Dead Fir),M-4 (80 PDF),170,0,0,0,255,85 -885,885,Dead Balsam Fir Mixedwood - Green (85% Dead Fir),M-4 (85 PDF),170,0,0,0,255,85 -890,890,Dead Balsam Fir Mixedwood - Green (90% Dead Fir),M-4 (90 PDF),170,0,0,0,255,85 -895,895,Dead Balsam Fir Mixedwood - Green (95% Dead Fir),M-4 (95 PDF),170,0,0,0,255,85 -905,905,Dead Balsam Fir Mixedwood (05% Dead Fir),M-3 (05 PDF),99,0,0,0,255,50 -910,910,Dead Balsam Fir Mixedwood (10% Dead Fir),M-3 (10 PDF),99,0,0,0,255,50 -915,915,Dead Balsam Fir Mixedwood (15% Dead Fir),M-3 (15 PDF),99,0,0,0,255,50 -920,920,Dead Balsam Fir Mixedwood (20% Dead Fir),M-3 (20 PDF),99,0,0,0,255,50 -925,925,Dead Balsam Fir Mixedwood (25% Dead Fir),M-3 (25 PDF),99,0,0,0,255,50 -930,930,Dead Balsam Fir Mixedwood (30% Dead Fir),M-3 (30 PDF),99,0,0,0,255,50 -935,935,Dead Balsam Fir Mixedwood (35% Dead Fir),M-3 (35 PDF),99,0,0,0,255,50 -940,940,Dead Balsam Fir Mixedwood (40% Dead Fir),M-3 (40 PDF),99,0,0,0,255,50 -945,945,Dead Balsam Fir Mixedwood (45% Dead Fir),M-3 (45 PDF),99,0,0,0,255,50 -950,950,Dead Balsam Fir Mixedwood (50% Dead Fir),M-3 (50 PDF),99,0,0,0,255,50 -955,955,Dead Balsam Fir Mixedwood (55% Dead Fir),M-3 (55 PDF),99,0,0,0,255,50 -960,960,Dead Balsam Fir Mixedwood (60% Dead Fir),M-3 (60 PDF),99,0,0,0,255,50 -965,965,Dead Balsam Fir Mixedwood (65% Dead Fir),M-3 (65 PDF),99,0,0,0,255,50 -970,970,Dead Balsam Fir Mixedwood (70% Dead Fir),M-3 (70 PDF),99,0,0,0,255,50 -975,975,Dead Balsam Fir Mixedwood (75% Dead Fir),M-3 (75 PDF),99,0,0,0,255,50 -980,980,Dead Balsam Fir Mixedwood (80% Dead Fir),M-3 (80 PDF),99,0,0,0,255,50 -985,985,Dead Balsam Fir Mixedwood (85% Dead Fir),M-3 (85 PDF),99,0,0,0,255,50 -990,990,Dead Balsam Fir Mixedwood (90% Dead Fir),M-3 (90 PDF),99,0,0,0,255,50 -995,995,Dead Balsam Fir Mixedwood (95% Dead Fir),M-3 (95 PDF),99,0,0,0,255,50 +405,405,Boreal Mixedwood - Leafless (05% Conifer),M1,255,211,127,28,255,191 +410,410,Boreal Mixedwood - Leafless (10% Conifer),M1,255,211,127,28,255,191 +415,415,Boreal Mixedwood - Leafless (15% Conifer),M1,255,211,127,28,255,191 +420,420,Boreal Mixedwood - Leafless (20% Conifer),M1,255,211,127,28,255,191 +425,425,Boreal Mixedwood - Leafless (25% Conifer),M1,255,211,127,28,255,191 +430,430,Boreal Mixedwood - Leafless (30% Conifer),M1,255,211,127,28,255,191 +435,435,Boreal Mixedwood - Leafless (35% Conifer),M1,255,211,127,28,255,191 +440,440,Boreal Mixedwood - Leafless (40% Conifer),M1,255,211,127,28,255,191 +445,445,Boreal Mixedwood - Leafless (45% Conifer),M1,255,211,127,28,255,191 +450,450,Boreal Mixedwood - Leafless (50% Conifer),M1,255,211,127,28,255,191 +455,455,Boreal Mixedwood - Leafless (55% Conifer),M1,255,211,127,28,255,191 +460,460,Boreal Mixedwood - Leafless (60% Conifer),M1,255,211,127,28,255,191 +465,465,Boreal Mixedwood - Leafless (65% Conifer),M1,255,211,127,28,255,191 +470,470,Boreal Mixedwood - Leafless (70% Conifer),M1,255,211,127,28,255,191 +475,475,Boreal Mixedwood - Leafless (75% Conifer),M1,255,211,127,28,255,191 +480,480,Boreal Mixedwood - Leafless (80% Conifer),M1,255,211,127,28,255,191 +485,485,Boreal Mixedwood - Leafless (85% Conifer),M1,255,211,127,28,255,191 +490,490,Boreal Mixedwood - Leafless (90% Conifer),M1,255,211,127,28,255,191 +495,495,Boreal Mixedwood - Leafless (95% Conifer),M1,255,211,127,28,255,191 +505,505,Boreal Mixedwood - Green (05% Conifer),M2,255,170,0,28,255,128 +510,510,Boreal Mixedwood - Green (10% Conifer),M2,255,170,0,28,255,128 +515,515,Boreal Mixedwood - Green (15% Conifer),M2,255,170,0,28,255,128 +520,520,Boreal Mixedwood - Green (20% Conifer),M2,255,170,0,28,255,128 +525,525,Boreal Mixedwood - Green (25% Conifer),M2,255,170,0,28,255,128 +530,530,Boreal Mixedwood - Green (30% Conifer),M2,255,170,0,28,255,128 +535,535,Boreal Mixedwood - Green (35% Conifer),M2,255,170,0,28,255,128 +540,540,Boreal Mixedwood - Green (40% Conifer),M2,255,170,0,28,255,128 +545,545,Boreal Mixedwood - Green (45% Conifer),M2,255,170,0,28,255,128 +550,550,Boreal Mixedwood - Green (50% Conifer),M2,255,170,0,28,255,128 +555,555,Boreal Mixedwood - Green (55% Conifer),M2,255,170,0,28,255,128 +560,560,Boreal Mixedwood - Green (60% Conifer),M2,255,170,0,28,255,128 +565,565,Boreal Mixedwood - Green (65% Conifer),M2,255,170,0,28,255,128 +570,570,Boreal Mixedwood - Green (70% Conifer),M2,255,170,0,28,255,128 +575,575,Boreal Mixedwood - Green (75% Conifer),M2,255,170,0,28,255,128 +580,580,Boreal Mixedwood - Green (80% Conifer),M2,255,170,0,28,255,128 +585,585,Boreal Mixedwood - Green (85% Conifer),M2,255,170,0,28,255,128 +590,590,Boreal Mixedwood - Green (90% Conifer),M2,255,170,0,28,255,128 +595,595,Boreal Mixedwood - Green (95% Conifer),M2,255,170,0,28,255,128 +605,605,Boreal Mixedwood (05% Conifer),M1,255,211,127,28,255,191 +610,610,Boreal Mixedwood (10% Conifer),M1,255,211,127,28,255,191 +615,615,Boreal Mixedwood (15% Conifer),M1,255,211,127,28,255,191 +620,620,Boreal Mixedwood (20% Conifer),M1,255,211,127,28,255,191 +625,625,Boreal Mixedwood (25% Conifer),M1,255,211,127,28,255,191 +630,630,Boreal Mixedwood (30% Conifer),M1,255,211,127,28,255,191 +635,635,Boreal Mixedwood (35% Conifer),M1,255,211,127,28,255,191 +640,640,Boreal Mixedwood (40% Conifer),M1,255,211,127,28,255,191 +645,645,Boreal Mixedwood (45% Conifer),M1,255,211,127,28,255,191 +650,650,Boreal Mixedwood (50% Conifer),M1,255,211,127,28,255,191 +655,655,Boreal Mixedwood (55% Conifer),M1,255,211,127,28,255,191 +660,660,Boreal Mixedwood (60% Conifer),M1,255,211,127,28,255,191 +665,665,Boreal Mixedwood (65% Conifer),M1,255,211,127,28,255,191 +670,670,Boreal Mixedwood (70% Conifer),M1,255,211,127,28,255,191 +675,675,Boreal Mixedwood (75% Conifer),M1,255,211,127,28,255,191 +680,680,Boreal Mixedwood (80% Conifer),M1,255,211,127,28,255,191 +685,685,Boreal Mixedwood (85% Conifer),M1,255,211,127,28,255,191 +690,690,Boreal Mixedwood (90% Conifer),M1,255,211,127,28,255,191 +695,695,Boreal Mixedwood (95% Conifer),M1,255,211,127,28,255,191 +705,705,Dead Balsam Fir Mixedwood - Leafless (05% Dead Fir),M3,99,0,0,0,255,50 +710,710,Dead Balsam Fir Mixedwood - Leafless (10% Dead Fir),M3,99,0,0,0,255,50 +715,715,Dead Balsam Fir Mixedwood - Leafless (15% Dead Fir),M3,99,0,0,0,255,50 +720,720,Dead Balsam Fir Mixedwood - Leafless (20% Dead Fir),M3,99,0,0,0,255,50 +725,725,Dead Balsam Fir Mixedwood - Leafless (25% Dead Fir),M3,99,0,0,0,255,50 +730,730,Dead Balsam Fir Mixedwood - Leafless (30% Dead Fir),M3,99,0,0,0,255,50 +735,735,Dead Balsam Fir Mixedwood - Leafless (35% Dead Fir),M3,99,0,0,0,255,50 +740,740,Dead Balsam Fir Mixedwood - Leafless (40% Dead Fir),M3,99,0,0,0,255,50 +745,745,Dead Balsam Fir Mixedwood - Leafless (45% Dead Fir),M3,99,0,0,0,255,50 +750,750,Dead Balsam Fir Mixedwood - Leafless (50% Dead Fir),M3,99,0,0,0,255,50 +755,755,Dead Balsam Fir Mixedwood - Leafless (55% Dead Fir),M3,99,0,0,0,255,50 +760,760,Dead Balsam Fir Mixedwood - Leafless (60% Dead Fir),M3,99,0,0,0,255,50 +765,765,Dead Balsam Fir Mixedwood - Leafless (65% Dead Fir),M3,99,0,0,0,255,50 +770,770,Dead Balsam Fir Mixedwood - Leafless (70% Dead Fir),M3,99,0,0,0,255,50 +775,775,Dead Balsam Fir Mixedwood - Leafless (75% Dead Fir),M3,99,0,0,0,255,50 +780,780,Dead Balsam Fir Mixedwood - Leafless (80% Dead Fir),M3,99,0,0,0,255,50 +785,785,Dead Balsam Fir Mixedwood - Leafless (85% Dead Fir),M3,99,0,0,0,255,50 +790,790,Dead Balsam Fir Mixedwood - Leafless (90% Dead Fir),M3,99,0,0,0,255,50 +795,795,Dead Balsam Fir Mixedwood - Leafless (95% Dead Fir),M3,99,0,0,0,255,50 +805,805,Dead Balsam Fir Mixedwood - Green (05% Dead Fir),M4,170,0,0,0,255,85 +810,810,Dead Balsam Fir Mixedwood - Green (10% Dead Fir),M4,170,0,0,0,255,85 +815,815,Dead Balsam Fir Mixedwood - Green (15% Dead Fir),M4,170,0,0,0,255,85 +820,820,Dead Balsam Fir Mixedwood - Green (20% Dead Fir),M4,170,0,0,0,255,85 +825,825,Dead Balsam Fir Mixedwood - Green (25% Dead Fir),M4,170,0,0,0,255,85 +830,830,Dead Balsam Fir Mixedwood - Green (30% Dead Fir),M4,170,0,0,0,255,85 +835,835,Dead Balsam Fir Mixedwood - Green (35% Dead Fir),M4,170,0,0,0,255,85 +840,840,Dead Balsam Fir Mixedwood - Green (40% Dead Fir),M4,170,0,0,0,255,85 +845,845,Dead Balsam Fir Mixedwood - Green (45% Dead Fir),M4,170,0,0,0,255,85 +850,850,Dead Balsam Fir Mixedwood - Green (50% Dead Fir),M4,170,0,0,0,255,85 +855,855,Dead Balsam Fir Mixedwood - Green (55% Dead Fir),M4,170,0,0,0,255,85 +860,860,Dead Balsam Fir Mixedwood - Green (60% Dead Fir),M4,170,0,0,0,255,85 +865,865,Dead Balsam Fir Mixedwood - Green (65% Dead Fir),M4,170,0,0,0,255,85 +870,870,Dead Balsam Fir Mixedwood - Green (70% Dead Fir),M4,170,0,0,0,255,85 +875,875,Dead Balsam Fir Mixedwood - Green (75% Dead Fir),M4,170,0,0,0,255,85 +880,880,Dead Balsam Fir Mixedwood - Green (80% Dead Fir),M4,170,0,0,0,255,85 +885,885,Dead Balsam Fir Mixedwood - Green (85% Dead Fir),M4,170,0,0,0,255,85 +890,890,Dead Balsam Fir Mixedwood - Green (90% Dead Fir),M4,170,0,0,0,255,85 +895,895,Dead Balsam Fir Mixedwood - Green (95% Dead Fir),M4,170,0,0,0,255,85 +905,905,Dead Balsam Fir Mixedwood (05% Dead Fir),M3,99,0,0,0,255,50 +910,910,Dead Balsam Fir Mixedwood (10% Dead Fir),M3,99,0,0,0,255,50 +915,915,Dead Balsam Fir Mixedwood (15% Dead Fir),M3,99,0,0,0,255,50 +920,920,Dead Balsam Fir Mixedwood (20% Dead Fir),M3,99,0,0,0,255,50 +925,925,Dead Balsam Fir Mixedwood (25% Dead Fir),M3,99,0,0,0,255,50 +930,930,Dead Balsam Fir Mixedwood (30% Dead Fir),M3,99,0,0,0,255,50 +935,935,Dead Balsam Fir Mixedwood (35% Dead Fir),M3,99,0,0,0,255,50 +940,940,Dead Balsam Fir Mixedwood (40% Dead Fir),M3,99,0,0,0,255,50 +945,945,Dead Balsam Fir Mixedwood (45% Dead Fir),M3,99,0,0,0,255,50 +950,950,Dead Balsam Fir Mixedwood (50% Dead Fir),M3,99,0,0,0,255,50 +955,955,Dead Balsam Fir Mixedwood (55% Dead Fir),M3,99,0,0,0,255,50 +960,960,Dead Balsam Fir Mixedwood (60% Dead Fir),M3,99,0,0,0,255,50 +965,965,Dead Balsam Fir Mixedwood (65% Dead Fir),M3,99,0,0,0,255,50 +970,970,Dead Balsam Fir Mixedwood (70% Dead Fir),M3,99,0,0,0,255,50 +975,975,Dead Balsam Fir Mixedwood (75% Dead Fir),M3,99,0,0,0,255,50 +980,980,Dead Balsam Fir Mixedwood (80% Dead Fir),M3,99,0,0,0,255,50 +985,985,Dead Balsam Fir Mixedwood (85% Dead Fir),M3,99,0,0,0,255,50 +990,990,Dead Balsam Fir Mixedwood (90% Dead Fir),M3,99,0,0,0,255,50 +995,995,Dead Balsam Fir Mixedwood (95% Dead Fir),M3,99,0,0,0,255,50 diff --git a/test/model/fbp-tif/fbp_lookup_table.csv b/test/model/fbp-tif/fbp_lookup_table.csv index 9e4a063e..f46393f4 100644 --- a/test/model/fbp-tif/fbp_lookup_table.csv +++ b/test/model/fbp-tif/fbp_lookup_table.csv @@ -1,142 +1,142 @@ grid_value, export_value, descriptive_name, fuel_type, r, g, b, h, s, l -1,1,Spruce-Lichen Woodland,C-1,209,255,115,57,255,185 -2,2,Boreal Spruce,C-2,34,102,51,95,128,68 -3,3,Mature Jack or Lodgepole Pine,C-3,131,199,149,96,96,165 -4,4,Immature Jack or Lodgepole Pine,C-4,112,168,0,57,255,84 -5,5,Red and White Pine,C-5,223,184,230,206,122,207 -6,6,Conifer Plantation,C-6,172,102,237,192,201,170 -7,7,Ponderosa Pine - Douglas-Fir,C-7,112,12,242,188,231,127 -11,11,Leafless Aspen,D-1,196,189,151,35,70,174 -12,12,Green Aspen (with BUI Thresholding),D-2,137,112,68,27,86,103 -13,13,Aspen,D-1,196,189,151,35,70,174 -21,21,Jack or Lodgepole Pine Slash,S-1,251,190,185,3,227,218 -22,22,White Spruce - Balsam Slash,S-2,247,104,161,-272,229,176 -23,23,Coastal Cedar - Hemlock - Douglas-Fir Slash,S-3,174,1,126,-285,252,88 -31,31,Matted Grass,O-1a,255,255,190,42,255,223 -32,32,Standing Grass,O-1b,230,230,0,42,255,115 -40,40,Boreal Mixedwood - Leafless,M-1,255,211,127,28,255,191 -50,50,Boreal Mixedwood - Green,M-2,255,170,0,28,255,128 -60,60,Boreal Mixedwood,M-1,255,211,127,28,255,191 -70,70,Dead Balsam Fir Mixedwood - Leafless,M-3,99,0,0,0,255,50 -80,80,Dead Balsam Fir Mixedwood - Green,M-4,170,0,0,0,255,85 -90,90,Dead Balsam Fir Mixedwood,M-3,99,0,0,0,255,50 +1,1,Spruce-Lichen Woodland,C1,209,255,115,57,255,185 +2,2,Boreal Spruce,C2,34,102,51,95,128,68 +3,3,Mature Jack or Lodgepole Pine,C3,131,199,149,96,96,165 +4,4,Immature Jack or Lodgepole Pine,C4,112,168,0,57,255,84 +5,5,Red and White Pine,C5,223,184,230,206,122,207 +6,6,Conifer Plantation,C6,172,102,237,192,201,170 +7,7,Ponderosa Pine - Douglas-Fir,C7,112,12,242,188,231,127 +11,11,Leafless Aspen,D1,196,189,151,35,70,174 +12,12,Green Aspen (with BUI Thresholding),D2,137,112,68,27,86,103 +13,13,Aspen,D1,196,189,151,35,70,174 +21,21,Jack or Lodgepole Pine Slash,S1,251,190,185,3,227,218 +22,22,White Spruce - Balsam Slash,S2,247,104,161,-272,229,176 +23,23,Coastal Cedar - Hemlock - Douglas-Fir Slash,S3,174,1,126,-285,252,88 +31,31,Matted Grass,O1a,255,255,190,42,255,223 +32,32,Standing Grass,O1b,230,230,0,42,255,115 +40,40,Boreal Mixedwood - Leafless,M1,255,211,127,28,255,191 +50,50,Boreal Mixedwood - Green,M2,255,170,0,28,255,128 +60,60,Boreal Mixedwood,M1,255,211,127,28,255,191 +70,70,Dead Balsam Fir Mixedwood - Leafless,M3,99,0,0,0,255,50 +80,80,Dead Balsam Fir Mixedwood - Green,M4,170,0,0,0,255,85 +90,90,Dead Balsam Fir Mixedwood,M3,99,0,0,0,255,50 100,100,Not Available,Non-fuel,255,255,255,170,0,255 101,101,Non-fuel,Non-fuel,130,130,130,170,0,130 102,102,Water,Non-fuel,115,223,255,138,255,185 103,103,Unknown,Non-fuel,0,0,0,170,0,0 104,104,Unclassified,Non-fuel,166,166,166,170,0,166 105,105,Vegetated Non-Fuel,Non-fuel,204,204,204,170,0,204 -405,405,Boreal Mixedwood - Leafless (05% Conifer),M-1 (05 PC),255,211,127,28,255,191 -410,410,Boreal Mixedwood - Leafless (10% Conifer),M-1 (10 PC),255,211,127,28,255,191 -415,415,Boreal Mixedwood - Leafless (15% Conifer),M-1 (15 PC),255,211,127,28,255,191 -420,420,Boreal Mixedwood - Leafless (20% Conifer),M-1 (20 PC),255,211,127,28,255,191 -425,425,Boreal Mixedwood - Leafless (25% Conifer),M-1 (25 PC),255,211,127,28,255,191 -430,430,Boreal Mixedwood - Leafless (30% Conifer),M-1 (30 PC),255,211,127,28,255,191 -435,435,Boreal Mixedwood - Leafless (35% Conifer),M-1 (35 PC),255,211,127,28,255,191 -440,440,Boreal Mixedwood - Leafless (40% Conifer),M-1 (40 PC),255,211,127,28,255,191 -445,445,Boreal Mixedwood - Leafless (45% Conifer),M-1 (45 PC),255,211,127,28,255,191 -450,450,Boreal Mixedwood - Leafless (50% Conifer),M-1 (50 PC),255,211,127,28,255,191 -455,455,Boreal Mixedwood - Leafless (55% Conifer),M-1 (55 PC),255,211,127,28,255,191 -460,460,Boreal Mixedwood - Leafless (60% Conifer),M-1 (60 PC),255,211,127,28,255,191 -465,465,Boreal Mixedwood - Leafless (65% Conifer),M-1 (65 PC),255,211,127,28,255,191 -470,470,Boreal Mixedwood - Leafless (70% Conifer),M-1 (70 PC),255,211,127,28,255,191 -475,475,Boreal Mixedwood - Leafless (75% Conifer),M-1 (75 PC),255,211,127,28,255,191 -480,480,Boreal Mixedwood - Leafless (80% Conifer),M-1 (80 PC),255,211,127,28,255,191 -485,485,Boreal Mixedwood - Leafless (85% Conifer),M-1 (85 PC),255,211,127,28,255,191 -490,490,Boreal Mixedwood - Leafless (90% Conifer),M-1 (90 PC),255,211,127,28,255,191 -495,495,Boreal Mixedwood - Leafless (95% Conifer),M-1 (95 PC),255,211,127,28,255,191 -505,505,Boreal Mixedwood - Green (05% Conifer),M-2 (05 PC),255,170,0,28,255,128 -510,510,Boreal Mixedwood - Green (10% Conifer),M-2 (10 PC),255,170,0,28,255,128 -515,515,Boreal Mixedwood - Green (15% Conifer),M-2 (15 PC),255,170,0,28,255,128 -520,520,Boreal Mixedwood - Green (20% Conifer),M-2 (20 PC),255,170,0,28,255,128 -525,525,Boreal Mixedwood - Green (25% Conifer),M-2 (25 PC),255,170,0,28,255,128 -530,530,Boreal Mixedwood - Green (30% Conifer),M-2 (30 PC),255,170,0,28,255,128 -535,535,Boreal Mixedwood - Green (35% Conifer),M-2 (35 PC),255,170,0,28,255,128 -540,540,Boreal Mixedwood - Green (40% Conifer),M-2 (40 PC),255,170,0,28,255,128 -545,545,Boreal Mixedwood - Green (45% Conifer),M-2 (45 PC),255,170,0,28,255,128 -550,550,Boreal Mixedwood - Green (50% Conifer),M-2 (50 PC),255,170,0,28,255,128 -555,555,Boreal Mixedwood - Green (55% Conifer),M-2 (55 PC),255,170,0,28,255,128 -560,560,Boreal Mixedwood - Green (60% Conifer),M-2 (60 PC),255,170,0,28,255,128 -565,565,Boreal Mixedwood - Green (65% Conifer),M-2 (65 PC),255,170,0,28,255,128 -570,570,Boreal Mixedwood - Green (70% Conifer),M-2 (70 PC),255,170,0,28,255,128 -575,575,Boreal Mixedwood - Green (75% Conifer),M-2 (75 PC),255,170,0,28,255,128 -580,580,Boreal Mixedwood - Green (80% Conifer),M-2 (80 PC),255,170,0,28,255,128 -585,585,Boreal Mixedwood - Green (85% Conifer),M-2 (85 PC),255,170,0,28,255,128 -590,590,Boreal Mixedwood - Green (90% Conifer),M-2 (90 PC),255,170,0,28,255,128 -595,595,Boreal Mixedwood - Green (95% Conifer),M-2 (95 PC),255,170,0,28,255,128 -605,605,Boreal Mixedwood (05% Conifer),M-1 (05 PC),255,211,127,28,255,191 -610,610,Boreal Mixedwood (10% Conifer),M-1 (10 PC),255,211,127,28,255,191 -615,615,Boreal Mixedwood (15% Conifer),M-1 (15 PC),255,211,127,28,255,191 -620,620,Boreal Mixedwood (20% Conifer),M-1 (20 PC),255,211,127,28,255,191 -625,625,Boreal Mixedwood (25% Conifer),M-1 (25 PC),255,211,127,28,255,191 -630,630,Boreal Mixedwood (30% Conifer),M-1 (30 PC),255,211,127,28,255,191 -635,635,Boreal Mixedwood (35% Conifer),M-1 (35 PC),255,211,127,28,255,191 -640,640,Boreal Mixedwood (40% Conifer),M-1 (40 PC),255,211,127,28,255,191 -645,645,Boreal Mixedwood (45% Conifer),M-1 (45 PC),255,211,127,28,255,191 -650,650,Boreal Mixedwood (50% Conifer),M-1 (50 PC),255,211,127,28,255,191 -655,655,Boreal Mixedwood (55% Conifer),M-1 (55 PC),255,211,127,28,255,191 -660,660,Boreal Mixedwood (60% Conifer),M-1 (60 PC),255,211,127,28,255,191 -665,665,Boreal Mixedwood (65% Conifer),M-1 (65 PC),255,211,127,28,255,191 -670,670,Boreal Mixedwood (70% Conifer),M-1 (70 PC),255,211,127,28,255,191 -675,675,Boreal Mixedwood (75% Conifer),M-1 (75 PC),255,211,127,28,255,191 -680,680,Boreal Mixedwood (80% Conifer),M-1 (80 PC),255,211,127,28,255,191 -685,685,Boreal Mixedwood (85% Conifer),M-1 (85 PC),255,211,127,28,255,191 -690,690,Boreal Mixedwood (90% Conifer),M-1 (90 PC),255,211,127,28,255,191 -695,695,Boreal Mixedwood (95% Conifer),M-1 (95 PC),255,211,127,28,255,191 -705,705,Dead Balsam Fir Mixedwood - Leafless (05% Dead Fir),M-3 (05 PDF),99,0,0,0,255,50 -710,710,Dead Balsam Fir Mixedwood - Leafless (10% Dead Fir),M-3 (10 PDF),99,0,0,0,255,50 -715,715,Dead Balsam Fir Mixedwood - Leafless (15% Dead Fir),M-3 (15 PDF),99,0,0,0,255,50 -720,720,Dead Balsam Fir Mixedwood - Leafless (20% Dead Fir),M-3 (20 PDF),99,0,0,0,255,50 -725,725,Dead Balsam Fir Mixedwood - Leafless (25% Dead Fir),M-3 (25 PDF),99,0,0,0,255,50 -730,730,Dead Balsam Fir Mixedwood - Leafless (30% Dead Fir),M-3 (30 PDF),99,0,0,0,255,50 -735,735,Dead Balsam Fir Mixedwood - Leafless (35% Dead Fir),M-3 (35 PDF),99,0,0,0,255,50 -740,740,Dead Balsam Fir Mixedwood - Leafless (40% Dead Fir),M-3 (40 PDF),99,0,0,0,255,50 -745,745,Dead Balsam Fir Mixedwood - Leafless (45% Dead Fir),M-3 (45 PDF),99,0,0,0,255,50 -750,750,Dead Balsam Fir Mixedwood - Leafless (50% Dead Fir),M-3 (50 PDF),99,0,0,0,255,50 -755,755,Dead Balsam Fir Mixedwood - Leafless (55% Dead Fir),M-3 (55 PDF),99,0,0,0,255,50 -760,760,Dead Balsam Fir Mixedwood - Leafless (60% Dead Fir),M-3 (60 PDF),99,0,0,0,255,50 -765,765,Dead Balsam Fir Mixedwood - Leafless (65% Dead Fir),M-3 (65 PDF),99,0,0,0,255,50 -770,770,Dead Balsam Fir Mixedwood - Leafless (70% Dead Fir),M-3 (70 PDF),99,0,0,0,255,50 -775,775,Dead Balsam Fir Mixedwood - Leafless (75% Dead Fir),M-3 (75 PDF),99,0,0,0,255,50 -780,780,Dead Balsam Fir Mixedwood - Leafless (80% Dead Fir),M-3 (80 PDF),99,0,0,0,255,50 -785,785,Dead Balsam Fir Mixedwood - Leafless (85% Dead Fir),M-3 (85 PDF),99,0,0,0,255,50 -790,790,Dead Balsam Fir Mixedwood - Leafless (90% Dead Fir),M-3 (90 PDF),99,0,0,0,255,50 -795,795,Dead Balsam Fir Mixedwood - Leafless (95% Dead Fir),M-3 (95 PDF),99,0,0,0,255,50 -805,805,Dead Balsam Fir Mixedwood - Green (05% Dead Fir),M-4 (05 PDF),170,0,0,0,255,85 -810,810,Dead Balsam Fir Mixedwood - Green (10% Dead Fir),M-4 (10 PDF),170,0,0,0,255,85 -815,815,Dead Balsam Fir Mixedwood - Green (15% Dead Fir),M-4 (15 PDF),170,0,0,0,255,85 -820,820,Dead Balsam Fir Mixedwood - Green (20% Dead Fir),M-4 (20 PDF),170,0,0,0,255,85 -825,825,Dead Balsam Fir Mixedwood - Green (25% Dead Fir),M-4 (25 PDF),170,0,0,0,255,85 -830,830,Dead Balsam Fir Mixedwood - Green (30% Dead Fir),M-4 (30 PDF),170,0,0,0,255,85 -835,835,Dead Balsam Fir Mixedwood - Green (35% Dead Fir),M-4 (35 PDF),170,0,0,0,255,85 -840,840,Dead Balsam Fir Mixedwood - Green (40% Dead Fir),M-4 (40 PDF),170,0,0,0,255,85 -845,845,Dead Balsam Fir Mixedwood - Green (45% Dead Fir),M-4 (45 PDF),170,0,0,0,255,85 -850,850,Dead Balsam Fir Mixedwood - Green (50% Dead Fir),M-4 (50 PDF),170,0,0,0,255,85 -855,855,Dead Balsam Fir Mixedwood - Green (55% Dead Fir),M-4 (55 PDF),170,0,0,0,255,85 -860,860,Dead Balsam Fir Mixedwood - Green (60% Dead Fir),M-4 (60 PDF),170,0,0,0,255,85 -865,865,Dead Balsam Fir Mixedwood - Green (65% Dead Fir),M-4 (65 PDF),170,0,0,0,255,85 -870,870,Dead Balsam Fir Mixedwood - Green (70% Dead Fir),M-4 (70 PDF),170,0,0,0,255,85 -875,875,Dead Balsam Fir Mixedwood - Green (75% Dead Fir),M-4 (75 PDF),170,0,0,0,255,85 -880,880,Dead Balsam Fir Mixedwood - Green (80% Dead Fir),M-4 (80 PDF),170,0,0,0,255,85 -885,885,Dead Balsam Fir Mixedwood - Green (85% Dead Fir),M-4 (85 PDF),170,0,0,0,255,85 -890,890,Dead Balsam Fir Mixedwood - Green (90% Dead Fir),M-4 (90 PDF),170,0,0,0,255,85 -895,895,Dead Balsam Fir Mixedwood - Green (95% Dead Fir),M-4 (95 PDF),170,0,0,0,255,85 -905,905,Dead Balsam Fir Mixedwood (05% Dead Fir),M-3 (05 PDF),99,0,0,0,255,50 -910,910,Dead Balsam Fir Mixedwood (10% Dead Fir),M-3 (10 PDF),99,0,0,0,255,50 -915,915,Dead Balsam Fir Mixedwood (15% Dead Fir),M-3 (15 PDF),99,0,0,0,255,50 -920,920,Dead Balsam Fir Mixedwood (20% Dead Fir),M-3 (20 PDF),99,0,0,0,255,50 -925,925,Dead Balsam Fir Mixedwood (25% Dead Fir),M-3 (25 PDF),99,0,0,0,255,50 -930,930,Dead Balsam Fir Mixedwood (30% Dead Fir),M-3 (30 PDF),99,0,0,0,255,50 -935,935,Dead Balsam Fir Mixedwood (35% Dead Fir),M-3 (35 PDF),99,0,0,0,255,50 -940,940,Dead Balsam Fir Mixedwood (40% Dead Fir),M-3 (40 PDF),99,0,0,0,255,50 -945,945,Dead Balsam Fir Mixedwood (45% Dead Fir),M-3 (45 PDF),99,0,0,0,255,50 -950,950,Dead Balsam Fir Mixedwood (50% Dead Fir),M-3 (50 PDF),99,0,0,0,255,50 -955,955,Dead Balsam Fir Mixedwood (55% Dead Fir),M-3 (55 PDF),99,0,0,0,255,50 -960,960,Dead Balsam Fir Mixedwood (60% Dead Fir),M-3 (60 PDF),99,0,0,0,255,50 -965,965,Dead Balsam Fir Mixedwood (65% Dead Fir),M-3 (65 PDF),99,0,0,0,255,50 -970,970,Dead Balsam Fir Mixedwood (70% Dead Fir),M-3 (70 PDF),99,0,0,0,255,50 -975,975,Dead Balsam Fir Mixedwood (75% Dead Fir),M-3 (75 PDF),99,0,0,0,255,50 -980,980,Dead Balsam Fir Mixedwood (80% Dead Fir),M-3 (80 PDF),99,0,0,0,255,50 -985,985,Dead Balsam Fir Mixedwood (85% Dead Fir),M-3 (85 PDF),99,0,0,0,255,50 -990,990,Dead Balsam Fir Mixedwood (90% Dead Fir),M-3 (90 PDF),99,0,0,0,255,50 -995,995,Dead Balsam Fir Mixedwood (95% Dead Fir),M-3 (95 PDF),99,0,0,0,255,50 +405,405,Boreal Mixedwood - Leafless (05% Conifer),M1,255,211,127,28,255,191 +410,410,Boreal Mixedwood - Leafless (10% Conifer),M1,255,211,127,28,255,191 +415,415,Boreal Mixedwood - Leafless (15% Conifer),M1,255,211,127,28,255,191 +420,420,Boreal Mixedwood - Leafless (20% Conifer),M1,255,211,127,28,255,191 +425,425,Boreal Mixedwood - Leafless (25% Conifer),M1,255,211,127,28,255,191 +430,430,Boreal Mixedwood - Leafless (30% Conifer),M1,255,211,127,28,255,191 +435,435,Boreal Mixedwood - Leafless (35% Conifer),M1,255,211,127,28,255,191 +440,440,Boreal Mixedwood - Leafless (40% Conifer),M1,255,211,127,28,255,191 +445,445,Boreal Mixedwood - Leafless (45% Conifer),M1,255,211,127,28,255,191 +450,450,Boreal Mixedwood - Leafless (50% Conifer),M1,255,211,127,28,255,191 +455,455,Boreal Mixedwood - Leafless (55% Conifer),M1,255,211,127,28,255,191 +460,460,Boreal Mixedwood - Leafless (60% Conifer),M1,255,211,127,28,255,191 +465,465,Boreal Mixedwood - Leafless (65% Conifer),M1,255,211,127,28,255,191 +470,470,Boreal Mixedwood - Leafless (70% Conifer),M1,255,211,127,28,255,191 +475,475,Boreal Mixedwood - Leafless (75% Conifer),M1,255,211,127,28,255,191 +480,480,Boreal Mixedwood - Leafless (80% Conifer),M1,255,211,127,28,255,191 +485,485,Boreal Mixedwood - Leafless (85% Conifer),M1,255,211,127,28,255,191 +490,490,Boreal Mixedwood - Leafless (90% Conifer),M1,255,211,127,28,255,191 +495,495,Boreal Mixedwood - Leafless (95% Conifer),M1,255,211,127,28,255,191 +505,505,Boreal Mixedwood - Green (05% Conifer),M2,255,170,0,28,255,128 +510,510,Boreal Mixedwood - Green (10% Conifer),M2,255,170,0,28,255,128 +515,515,Boreal Mixedwood - Green (15% Conifer),M2,255,170,0,28,255,128 +520,520,Boreal Mixedwood - Green (20% Conifer),M2,255,170,0,28,255,128 +525,525,Boreal Mixedwood - Green (25% Conifer),M2,255,170,0,28,255,128 +530,530,Boreal Mixedwood - Green (30% Conifer),M2,255,170,0,28,255,128 +535,535,Boreal Mixedwood - Green (35% Conifer),M2,255,170,0,28,255,128 +540,540,Boreal Mixedwood - Green (40% Conifer),M2,255,170,0,28,255,128 +545,545,Boreal Mixedwood - Green (45% Conifer),M2,255,170,0,28,255,128 +550,550,Boreal Mixedwood - Green (50% Conifer),M2,255,170,0,28,255,128 +555,555,Boreal Mixedwood - Green (55% Conifer),M2,255,170,0,28,255,128 +560,560,Boreal Mixedwood - Green (60% Conifer),M2,255,170,0,28,255,128 +565,565,Boreal Mixedwood - Green (65% Conifer),M2,255,170,0,28,255,128 +570,570,Boreal Mixedwood - Green (70% Conifer),M2,255,170,0,28,255,128 +575,575,Boreal Mixedwood - Green (75% Conifer),M2,255,170,0,28,255,128 +580,580,Boreal Mixedwood - Green (80% Conifer),M2,255,170,0,28,255,128 +585,585,Boreal Mixedwood - Green (85% Conifer),M2,255,170,0,28,255,128 +590,590,Boreal Mixedwood - Green (90% Conifer),M2,255,170,0,28,255,128 +595,595,Boreal Mixedwood - Green (95% Conifer),M2,255,170,0,28,255,128 +605,605,Boreal Mixedwood (05% Conifer),M1,255,211,127,28,255,191 +610,610,Boreal Mixedwood (10% Conifer),M1,255,211,127,28,255,191 +615,615,Boreal Mixedwood (15% Conifer),M1,255,211,127,28,255,191 +620,620,Boreal Mixedwood (20% Conifer),M1,255,211,127,28,255,191 +625,625,Boreal Mixedwood (25% Conifer),M1,255,211,127,28,255,191 +630,630,Boreal Mixedwood (30% Conifer),M1,255,211,127,28,255,191 +635,635,Boreal Mixedwood (35% Conifer),M1,255,211,127,28,255,191 +640,640,Boreal Mixedwood (40% Conifer),M1,255,211,127,28,255,191 +645,645,Boreal Mixedwood (45% Conifer),M1,255,211,127,28,255,191 +650,650,Boreal Mixedwood (50% Conifer),M1,255,211,127,28,255,191 +655,655,Boreal Mixedwood (55% Conifer),M1,255,211,127,28,255,191 +660,660,Boreal Mixedwood (60% Conifer),M1,255,211,127,28,255,191 +665,665,Boreal Mixedwood (65% Conifer),M1,255,211,127,28,255,191 +670,670,Boreal Mixedwood (70% Conifer),M1,255,211,127,28,255,191 +675,675,Boreal Mixedwood (75% Conifer),M1,255,211,127,28,255,191 +680,680,Boreal Mixedwood (80% Conifer),M1,255,211,127,28,255,191 +685,685,Boreal Mixedwood (85% Conifer),M1,255,211,127,28,255,191 +690,690,Boreal Mixedwood (90% Conifer),M1,255,211,127,28,255,191 +695,695,Boreal Mixedwood (95% Conifer),M1,255,211,127,28,255,191 +705,705,Dead Balsam Fir Mixedwood - Leafless (05% Dead Fir),M3,99,0,0,0,255,50 +710,710,Dead Balsam Fir Mixedwood - Leafless (10% Dead Fir),M3,99,0,0,0,255,50 +715,715,Dead Balsam Fir Mixedwood - Leafless (15% Dead Fir),M3,99,0,0,0,255,50 +720,720,Dead Balsam Fir Mixedwood - Leafless (20% Dead Fir),M3,99,0,0,0,255,50 +725,725,Dead Balsam Fir Mixedwood - Leafless (25% Dead Fir),M3,99,0,0,0,255,50 +730,730,Dead Balsam Fir Mixedwood - Leafless (30% Dead Fir),M3,99,0,0,0,255,50 +735,735,Dead Balsam Fir Mixedwood - Leafless (35% Dead Fir),M3,99,0,0,0,255,50 +740,740,Dead Balsam Fir Mixedwood - Leafless (40% Dead Fir),M3,99,0,0,0,255,50 +745,745,Dead Balsam Fir Mixedwood - Leafless (45% Dead Fir),M3,99,0,0,0,255,50 +750,750,Dead Balsam Fir Mixedwood - Leafless (50% Dead Fir),M3,99,0,0,0,255,50 +755,755,Dead Balsam Fir Mixedwood - Leafless (55% Dead Fir),M3,99,0,0,0,255,50 +760,760,Dead Balsam Fir Mixedwood - Leafless (60% Dead Fir),M3,99,0,0,0,255,50 +765,765,Dead Balsam Fir Mixedwood - Leafless (65% Dead Fir),M3,99,0,0,0,255,50 +770,770,Dead Balsam Fir Mixedwood - Leafless (70% Dead Fir),M3,99,0,0,0,255,50 +775,775,Dead Balsam Fir Mixedwood - Leafless (75% Dead Fir),M3,99,0,0,0,255,50 +780,780,Dead Balsam Fir Mixedwood - Leafless (80% Dead Fir),M3,99,0,0,0,255,50 +785,785,Dead Balsam Fir Mixedwood - Leafless (85% Dead Fir),M3,99,0,0,0,255,50 +790,790,Dead Balsam Fir Mixedwood - Leafless (90% Dead Fir),M3,99,0,0,0,255,50 +795,795,Dead Balsam Fir Mixedwood - Leafless (95% Dead Fir),M3,99,0,0,0,255,50 +805,805,Dead Balsam Fir Mixedwood - Green (05% Dead Fir),M4,170,0,0,0,255,85 +810,810,Dead Balsam Fir Mixedwood - Green (10% Dead Fir),M4,170,0,0,0,255,85 +815,815,Dead Balsam Fir Mixedwood - Green (15% Dead Fir),M4,170,0,0,0,255,85 +820,820,Dead Balsam Fir Mixedwood - Green (20% Dead Fir),M4,170,0,0,0,255,85 +825,825,Dead Balsam Fir Mixedwood - Green (25% Dead Fir),M4,170,0,0,0,255,85 +830,830,Dead Balsam Fir Mixedwood - Green (30% Dead Fir),M4,170,0,0,0,255,85 +835,835,Dead Balsam Fir Mixedwood - Green (35% Dead Fir),M4,170,0,0,0,255,85 +840,840,Dead Balsam Fir Mixedwood - Green (40% Dead Fir),M4,170,0,0,0,255,85 +845,845,Dead Balsam Fir Mixedwood - Green (45% Dead Fir),M4,170,0,0,0,255,85 +850,850,Dead Balsam Fir Mixedwood - Green (50% Dead Fir),M4,170,0,0,0,255,85 +855,855,Dead Balsam Fir Mixedwood - Green (55% Dead Fir),M4,170,0,0,0,255,85 +860,860,Dead Balsam Fir Mixedwood - Green (60% Dead Fir),M4,170,0,0,0,255,85 +865,865,Dead Balsam Fir Mixedwood - Green (65% Dead Fir),M4,170,0,0,0,255,85 +870,870,Dead Balsam Fir Mixedwood - Green (70% Dead Fir),M4,170,0,0,0,255,85 +875,875,Dead Balsam Fir Mixedwood - Green (75% Dead Fir),M4,170,0,0,0,255,85 +880,880,Dead Balsam Fir Mixedwood - Green (80% Dead Fir),M4,170,0,0,0,255,85 +885,885,Dead Balsam Fir Mixedwood - Green (85% Dead Fir),M4,170,0,0,0,255,85 +890,890,Dead Balsam Fir Mixedwood - Green (90% Dead Fir),M4,170,0,0,0,255,85 +895,895,Dead Balsam Fir Mixedwood - Green (95% Dead Fir),M4,170,0,0,0,255,85 +905,905,Dead Balsam Fir Mixedwood (05% Dead Fir),M3,99,0,0,0,255,50 +910,910,Dead Balsam Fir Mixedwood (10% Dead Fir),M3,99,0,0,0,255,50 +915,915,Dead Balsam Fir Mixedwood (15% Dead Fir),M3,99,0,0,0,255,50 +920,920,Dead Balsam Fir Mixedwood (20% Dead Fir),M3,99,0,0,0,255,50 +925,925,Dead Balsam Fir Mixedwood (25% Dead Fir),M3,99,0,0,0,255,50 +930,930,Dead Balsam Fir Mixedwood (30% Dead Fir),M3,99,0,0,0,255,50 +935,935,Dead Balsam Fir Mixedwood (35% Dead Fir),M3,99,0,0,0,255,50 +940,940,Dead Balsam Fir Mixedwood (40% Dead Fir),M3,99,0,0,0,255,50 +945,945,Dead Balsam Fir Mixedwood (45% Dead Fir),M3,99,0,0,0,255,50 +950,950,Dead Balsam Fir Mixedwood (50% Dead Fir),M3,99,0,0,0,255,50 +955,955,Dead Balsam Fir Mixedwood (55% Dead Fir),M3,99,0,0,0,255,50 +960,960,Dead Balsam Fir Mixedwood (60% Dead Fir),M3,99,0,0,0,255,50 +965,965,Dead Balsam Fir Mixedwood (65% Dead Fir),M3,99,0,0,0,255,50 +970,970,Dead Balsam Fir Mixedwood (70% Dead Fir),M3,99,0,0,0,255,50 +975,975,Dead Balsam Fir Mixedwood (75% Dead Fir),M3,99,0,0,0,255,50 +980,980,Dead Balsam Fir Mixedwood (80% Dead Fir),M3,99,0,0,0,255,50 +985,985,Dead Balsam Fir Mixedwood (85% Dead Fir),M3,99,0,0,0,255,50 +990,990,Dead Balsam Fir Mixedwood (90% Dead Fir),M3,99,0,0,0,255,50 +995,995,Dead Balsam Fir Mixedwood (95% Dead Fir),M3,99,0,0,0,255,50 diff --git a/test/target_results.zip b/test/target_results.zip index c48d428d..bbab8b24 100644 Binary files a/test/target_results.zip and b/test/target_results.zip differ diff --git a/test/unit_tests/test_kitral.cpp b/test/unit_tests/test_kitral.cpp index 70ba8adb..1c0a9df9 100644 --- a/test/unit_tests/test_kitral.cpp +++ b/test/unit_tests/test_kitral.cpp @@ -12,11 +12,8 @@ using Catch::Matchers::WithinAbs; void set_fueltype(inputs* test_data, string ftype) { -#if defined _WIN32 || defined __CYGWIN__ - strcpy_s(test_data->fueltype, ftype.c_str()); -#else - strcpy(test_data->fueltype, ftype.c_str()); -#endif + + test_data->fueltype = ftype; } class NativeFuelFixture