### Demo Application Usage Source: https://github.com/firelab/nfdrs4/blob/master/extern/config4cpp/demos/simple-encapsulation/README.txt Examples of how to run the demo application with different command-line arguments. ```bash demo -h demo demo -cfg runtime.cfg -scope foo ``` -------------------------------- ### Demo Execution Examples Source: https://github.com/firelab/nfdrs4/blob/master/extern/config4cpp/demos/extended-schema-validator/README.txt Provides command-line examples for running the demo application, including options for help and specifying configuration files and scopes. ```bash demo -h demo -cfg runtime.cfg -scope foo ``` -------------------------------- ### Recipe Configuration Example Source: https://github.com/firelab/nfdrs4/blob/master/extern/config4cpp/demos/recipes/README.txt An example of the 'recipes.cfg' file format, showcasing 'uid-recipe' scopes with 'name', 'ingredients', and multiple 'uid-step' entries. ```config uid-recipe { name = "Tea"; ingredients = ["1 tea bag", "cold water", "milk"]; uid-step = "Pour cold water into the kettle"; uid-step = "Turn on the kettle"; uid-step = "Wait for the kettle to boil"; uid-step = "Pour boiled water into a cup"; uid-step = "Add tea bag to cup & leave for 3 minutes"; uid-step = "Remove tea bag"; uid-step = "Add a splash of milk if you want"; } uid-recipe { name = "Toast"; ingredients = ["Two slices of bread", "butter"]; uid-step = "Place bread in a toaster and turn on"; uid-step = "Wait for toaster to pop out the bread"; uid-step = "Remove bread from toaster and butter it"; } ``` -------------------------------- ### Building and Installing NFDRS4 on Linux Source: https://github.com/firelab/nfdrs4/blob/master/app/NFDRS4_cli/README.md Commands to build and install the NFDRS4 project on Linux after CMake configuration. 'make' builds the project, and 'sudo make install' installs it. ```bash make sudo make install ``` -------------------------------- ### JavaScript Initialization and Search Setup Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/globals_defs.html Initializes the search box and sets up the search functionality for the project. It also handles code folding initialization. ```javascript var searchBox = new SearchBox("searchBox", "search/", ".html"); $(function() { codefold.init(0); }); $(function() { initMenu('',true,false,'search.php','Search',false); $(function() { init_search(); }); }); ``` -------------------------------- ### Demo Command Line Usage Source: https://github.com/firelab/nfdrs4/blob/master/extern/config4cpp/demos/recipes/README.txt Examples of how to run the demo application from the command line, including printing usage and specifying the recipes file. ```bash demo -h demo -recipes recipes.cfg ``` -------------------------------- ### CMake Project Setup and Library Configuration Source: https://github.com/firelab/nfdrs4/blob/master/lib/time64/CMakeLists.txt Configures the CMake project, sets the minimum version, defines the project name and version, handles MSVC specific definitions, sets include directories, creates a static library, and specifies installation rules for headers. ```cmake cmake_minimum_required (VERSION 3.13) project(time64 VERSION 1.0 LANGUAGES CXX C) IF(MSVC) add_compile_definitions(_CRT_SECURE_NO_WARNINGS) ENDIF(MSVC) set(HEADER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) set(HEADERS ${HEADER_DIR}/time64.h ${HEADER_DIR}/time64_config.h ${HEADER_DIR}/time64_limits.h) add_library(${PROJECT_NAME} STATIC ${HEADERS} src/time64.c) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ) set(include_dest "include") install(FILES ${HEADERS} DESTINATION "${include_dest}") ``` -------------------------------- ### Demo Application Usage Source: https://github.com/firelab/nfdrs4/blob/master/extern/config4cpp/demos/encapsulate-lookup-api/README.txt Provides examples of how to run the demo application, including options for displaying usage information, running with default fallback configuration, and specifying a configuration file and scope. ```bash # Display usage statement demo -h # Run with default fallback configuration demo # Run with a specific configuration file and scope demo -cfg runtime.cfg -scope foo ``` -------------------------------- ### CMake Project Setup and Target Properties Source: https://github.com/firelab/nfdrs4/blob/master/app/CMakeLists.txt Configures the CMake build for the NFDRS4 project. It sets the minimum required CMake version, enables folder organization, includes subdirectories for 'FireWxConverter' and 'NFDRS4_cli', and defines output directories for archive, library, and runtime files for both targets. Finally, it specifies the installation destinations for these targets. ```cmake cmake_minimum_required(VERSION 3.13) set_property(GLOBAL PROPERTY USE_FOLDERS ON) add_subdirectory(FireWxConverter) add_subdirectory(NFDRS4_cli) set_target_properties(NFDRS4_cli PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" ) set_target_properties( FireWxConverter PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" ) #install install(TARGETS NFDRS4_cli DESTINATION "${app_dest}") install(TARGETS FireWxConverter DESTINATION "${app_dest}") ``` -------------------------------- ### Doxygen Initialization and Search Setup Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/dir_2826ec08f5a914f71873cfe389ada39f.html Initializes Doxygen's search functionality and code folding. This snippet is typically found in the main page's JavaScript. ```javascript var searchBox = new SearchBox("searchBox", "search/",".html"); $(function() { codefold.init(0); }); $(function() { initMenu('',true,false,'search.php','Search',false); $(function() { init_search(); }); }); ``` -------------------------------- ### JavaScript Initialization and Search Setup Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/functions_vars.html Initializes the search box, code folding, and search functionality. This snippet sets up the user interface for searching and code organization. ```javascript var searchBox = new SearchBox("searchBox", "search/",".html"); $(function() { codefold.init(0); }); $(function() { initMenu('',true,false,'search.php','Search',false); $(function() { init_search(); }); }); $(function(){ initResizable(false); }); ``` -------------------------------- ### Installing Project Targets Source: https://github.com/firelab/nfdrs4/blob/master/lib/CMakeLists.txt Installs the NFDRS4 and fw21 targets to a specified destination directory during the installation phase of the build process. This makes the built libraries available for use in other projects or for deployment. ```cmake #install install(TARGETS NFDRS4 DESTINATION "${lib_dest}") install(TARGETS fw21 DESTINATION "${lib_dest}") ``` -------------------------------- ### CMake Project Setup Source: https://github.com/firelab/nfdrs4/blob/master/CMakeLists.txt Configures the CMake build system for the NFDRS4 project. It sets the minimum required CMake version, enables folder organization in IDEs, defines project name, version, and description, and specifies C++ extensions and subdirectories. ```cmake cmake_minimum_required (VERSION 3.13) set_property(GLOBAL PROPERTY USE_FOLDERS ON) project ( NFDRS4 VERSION 1.0 DESCRIPTION "National Fire Danger Rating System 4" LANGUAGES CXX) # Only do these if this is the main project, and not if it is included through add_subdirectory if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) # Let's ensure -std=c++xx instead of -std=g++xx set(CMAKE_CXX_EXTENSIONS OFF) # Let's nicely support folders in IDEs set_property(GLOBAL PROPERTY USE_FOLDERS ON) endif() add_subdirectory(lib) add_subdirectory(app) #install locations for apps, headers, and libs set(app_dest "bin") set(include_dest "include") set(lib_dest "lib") ``` -------------------------------- ### CMake Project Setup and Subdirectory Inclusion Source: https://github.com/firelab/nfdrs4/blob/master/lib/CMakeLists.txt Initializes the CMake build environment, sets global properties, and includes subdirectories for different modules of the project. This sets up the overall structure of the build. ```cmake cmake_minimum_required (VERSION 3.13) set_property(GLOBAL PROPERTY USE_FOLDERS ON) add_subdirectory(csv_readrow) add_subdirectory(time64) add_subdirectory(utctime) add_subdirectory(NFDRS4) add_subdirectory(fw21) ``` -------------------------------- ### RunNFDRS Configuration Parameters Source: https://github.com/firelab/nfdrs4/blob/master/data/RunNFDRSSample.txt This snippet details the configuration options for the RunNFDRS program. It covers essential settings like initialization files, weather data input, state saving and loading, and various output file configurations. The parameters control how the program processes data and generates results. ```config initFile = "/NFDRSInitSample.txt"; wxFile = "/someWx.fw21"; loadFromStateFile = "/someSavedState.nfdrs"; saveToStateFile = "/newSavedState.nfdrs"; allOutputsFile = "/NFDRSoutput.csv"; indexOutputFile = "/NFDRSIndexes.csv"; fuelMoisturesOutputFile = "/NFDRSMoistures.csv"; outputInterval = "0"; useStoredOutputs = "0"; stationID = "some_stationID"; ``` -------------------------------- ### Doxygen Menu and Search Initialization Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/dir_86d896f802cda5991ebae8024109ee05.html Initializes the main menu and search functionality for the Doxygen documentation. This includes setting up the search interface and event handlers. ```javascript $(function() { initMenu('',true,false,'search.php','Search',false); $(function() { init_search(); }); }); ``` -------------------------------- ### Search Initialization Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/index.html Initializes the search functionality for the documentation site, including event listeners and UI setup. ```JavaScript $(function() { initMenu('',true,false,'search.php','Search',false); $(function() { init_search(); }); }); ``` -------------------------------- ### NFDRS4 Class Constructor Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/functions.html Documentation for the NFDRS4 class constructor. This is the primary entry point for initializing the NFDRS4 system. ```cpp NFDRS4(): NFDRS4 ``` -------------------------------- ### JavaScript Initialization Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/class_n_f_d_r_s4_state-members.html Initializes search functionality and menu options for the page. Includes code folding and search box setup. ```javascript var searchBox = new SearchBox("searchBox", "search/",".html"); $(function() { codefold.init(0); }); $(function() { initMenu('',true,false,'search.php','Search',false); $(function() { init_search(); }); }); $(function(){ initResizable(false); }); ``` -------------------------------- ### FooConfiguration Class Overview Source: https://github.com/firelab/nfdrs4/blob/master/extern/config4cpp/demos/simple-encapsulation/README.txt Provides configuration capabilities for a hypothetical application 'Foo'. It encapsulates calls to Config4*, allowing for easy migration to different configuration technologies. Supports fallback configuration and security policy overrides. ```python class FooConfiguration: """Provides configuration capabilities for a hypothetical application 'Foo'.""" def __init__(self): """Initializes the FooConfiguration. This class encapsulates calls to Config4*. """ pass def parse(self, config_source: str, config_scope: str, security_source: str, security_scope: str): """Parses configuration and security sources. Args: config_source: Path to the configuration file or 'exec#...'. config_scope: Scope within the configuration source. security_source: Path to the security source or 'exec#...'. security_scope: Scope within the security source. """ pass # Other accessor methods for the seven configuration variables would be defined here. ``` -------------------------------- ### LiveFuelMoisture State Management Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/livefuelmoisture_8h_source.html Functions for managing the state of the LiveFuelMoisture calculations, including setting and getting the calculation state and toggling precipitation usage. ```cpp void SetUseVPDAvg(bool set); bool GetUseVPDAvg(); bool GetIsAnnual(); LFMCalcState GetState(); bool SetState(LFMCalcState state); void SetUseRTPrecip(bool set); bool GetUseRTPrecip(); ``` -------------------------------- ### LiveFuelMoisture Class Methods Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/class_live_fuel_moisture-members.html This section details the various methods available for the LiveFuelMoisture class, including constructors, setters, and the main update function. These methods allow for initialization, configuration of parameters, state management, and performing the core fuel moisture calculation. ```APIDOC LiveFuelMoisture: __init__() Initializes a new instance of the LiveFuelMoisture class. LiveFuelMoisture(double Lat, bool IsHerb, bool IsAnnual) Initializes a new instance of the LiveFuelMoisture class with specified latitude and fuel type. Parameters: Lat: Latitude of the location. IsHerb: Boolean indicating if the fuel is herbaceous. IsAnnual: Boolean indicating if the fuel is annual. ResetHerbState() Resets the internal state related to herbaceous fuel moisture calculations. SetLFMParameters(double MaxGSI, double GreenupThreshold, double MinLFMVal, double MaxLFMVal) Sets the parameters for Live Fuel Moisture calculations. Parameters: MaxGSI: Maximum Growing Season Index. GreenupThreshold: Threshold for green-up. MinLFMVal: Minimum Live Fuel Moisture value. MaxLFMVal: Maximum Live Fuel Moisture value. SetLimits(double, double, double, double, double, double, double, double) Sets various limits for the calculation. The specific meaning of each double parameter is not detailed here but likely relates to thresholds or bounds for different environmental factors. SetMAPeriod(unsigned int MAPeriod) Sets the Moving Average Period for precipitation calculations. Parameters: MAPeriod: The number of days for the moving average. SetNumPrecipDays(int numDays) Sets the number of preceding days to consider for precipitation data. Parameters: numDays: The count of preceding days. SetState(LFMCalcState state) Sets the current calculation state for the Live Fuel Moisture model. Parameters: state: The LFMCalcState enum value representing the current state. SetUseRTPrecip(bool set) Enables or disables the use of Real-Time precipitation data. Parameters: set: True to use RT precipitation, False otherwise. SetUseVPDAvg(bool set) Enables or disables the use of average Vapor Pressure Deficit (VPD). Parameters: set: True to use VPD average, False otherwise. Update(double TempF, double MaxTempF, double MinTempF, double RH, double minRH, int Jday, double RTPrcp, time_t thisTime) Updates the Live Fuel Moisture calculation with current weather data. Parameters: TempF: Current temperature in Fahrenheit. MaxTempF: Maximum temperature in Fahrenheit for the day. MinTempF: Minimum temperature in Fahrenheit for the day. RH: Current Relative Humidity (%). minRH: Minimum Relative Humidity (%) for the day. Jday: Current Julian day. RTPrcp: Real-Time precipitation amount. thisTime: The current time as a time_t object. ``` -------------------------------- ### Doxygen Initialization Scripts Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/dir_97aefd0d527b934f1d99a682da8fe6a9.html JavaScript code snippets used for initializing Doxygen-generated documentation, including search box functionality, code folding, and resizable elements. ```javascript var searchBox = new SearchBox("searchBox", "search/",".html"); ``` ```javascript $(function() { codefold.init(0); }); ``` ```javascript $(function() { initMenu('',true,false,'search.php','Search',false); $(function() { init_search(); }); }); ``` ```javascript $(function(){ initResizable(false); }); ``` -------------------------------- ### NFDRS4 State Management Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/class_dead_fuel_moisture.html Provides methods for managing the state of the DFMCalcState. This includes initializing parameters and getting or setting the overall state of the calculation. ```cpp void initializeParameters(double radius, const std::string &name); DFMCalcState GetState(); bool SetState(DFMCalcState state); ``` -------------------------------- ### CMake Build Configuration for FireWxConverter Source: https://github.com/firelab/nfdrs4/blob/master/app/FireWxConverter/CMakeLists.txt This snippet details the CMake build process for the FireWxConverter project. It sets the minimum CMake version, enables folder grouping for targets, defines the project name, adds a secure warning disable for MSVC, creates the executable, and links the necessary library. ```cmake cmake_minimum_required(VERSION 3.13) set_property(GLOBAL PROPERTY USE_FOLDERS ON) project(FireWxConverter) IF(MSVC) add_compile_definitions(_CRT_SECURE_NO_WARNINGS) ENDIF(MSVC) add_executable(${PROJECT_NAME} src/FireWxConverter.cpp) target_link_libraries (${PROJECT_NAME} PUBLIC fw21 ) ``` -------------------------------- ### Building config4cpp on Linux Source: https://github.com/firelab/nfdrs4/blob/master/app/NFDRS4_cli/README.md Instructions to build the config4cpp static library on Linux by navigating to its directory and running 'make'. ```bash make ``` -------------------------------- ### Config4Cpp: Build System Enhancements Source: https://github.com/firelab/nfdrs4/blob/master/extern/config4cpp/CHANGES.txt Details improvements to the UNIX Makefile system for Config4Cpp, enabling the build of both static and dynamic libraries. ```Makefile # Builds static and dynamic libraries (tested on Linux) # Example Makefile snippet (conceptual) all: static_lib dynamic_lib static_lib: dmake -f Makefile.static dynamic_lib: dmake -f Makefile.dynamic ``` -------------------------------- ### Get Stick Temperature and Moisture Content Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/_dead_fuel_moisture.html Retrieves the current stick temperature and moisture content. Temperatures are in Celsius and moisture contents are in g/g. ```APIDOC double meanMoisture(); double meanWtdMoisture(); double meanWtdTemperature(); double surfaceMoisture(); double surfaceTemperature(); ``` -------------------------------- ### JavaScript Initialization Code Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/classes.html Contains JavaScript code for initializing search functionality and code folding. It also includes license information. ```javascript var searchBox = new SearchBox("searchBox", "search/",".html"); $(function() { codefold.init(0); }); $(function() { initMenu('',true,false,'search.php','Search',false); $(function() { init_search(); }); }); $(function(){ initResizable(false); }); ``` -------------------------------- ### FooConfiguration Class Example Source: https://github.com/firelab/nfdrs4/blob/master/extern/config4cpp/demos/encapsulate-lookup-api/README.txt Illustrates the structure and delegation pattern of the FooConfiguration class, which internally uses Config4* for configuration lookups. It emphasizes encapsulation and the handling of application-specific exceptions. ```python class FooConfiguration: """Provides configuration capabilities for the hypothetical "Foo" application.""" def __init__(self, config4_instance): """Initializes FooConfiguration with a Config4* instance.""" self.config4 = config4_instance def get_string_value(self, key): """Retrieves a string configuration value using Config4*.""" try: return self.config4.lookup_string(key) except Exception as e: # Convert Config4* exception to application-specific exception raise ValueError(f"Error retrieving string value for key '{key}': {e}") def get_integer_value(self, key): """Retrieves an integer configuration value using Config4*.""" try: return self.config4.lookup_integer(key) except Exception as e: # Convert Config4* exception to application-specific exception raise ValueError(f"Error retrieving integer value for key '{key}': {e}") # ... other lookup methods for different data types ... ``` -------------------------------- ### Building config4cpp on Windows Source: https://github.com/firelab/nfdrs4/blob/master/app/NFDRS4_cli/README.md Instructions to build the config4cpp static library on Windows using nmake. This library is a dependency for NFDRS4. ```bash nmake -f Makefile.win all ``` -------------------------------- ### reStructuredText Syntax Example Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/sphinx/index.html Demonstrates the basic usage of reStructuredText syntax for content creation within the documentation. It references the official reStructuredText documentation for further details. ```rst Add your content using `reStructuredText` syntax. See the [reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html) documentation for details. ``` -------------------------------- ### JavaScript Resizable Initialization Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/globals_defs.html Initializes the resizable components for the project's interface, likely for layout adjustments. ```javascript $(function(){ initResizable(false); }); ``` -------------------------------- ### LiveFuelMoisture Class Definition Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/livefuelmoisture_8h_source.html Defines the LiveFuelMoisture class, responsible for calculating live fuel moisture content. It includes methods for initialization, updating with environmental data, setting and getting parameters, and calculating various moisture-related indices. ```cpp #ifndef LIVEFUELMOISTURE_H #define LIVEFUELMOISTURE_H #include #include #include #include "lfmcalcstate.h" #define NOVALUE -9999.9 #define RADPERDAY 0.017214 #define RADPERDEG 0.01745329 #define MINDECL -0.4092797 #define SECPERRAD 13750.9871 #define DAYSOFF 10.25 class LiveFuelMoisture { public: LiveFuelMoisture(); LiveFuelMoisture(double Lat,bool IsHerb, bool IsAnnual); void Initialize(double Lat,bool IsHerb, bool IsAnnual); void SetLimits(double, double, double, double, double, double, double, double); void Update(double TempF, double MaxTempF, double MinTempF, double RH, double minRH, int Jday, double RTPrcp, time_t thisTime); void SetMAPeriod(unsigned int MAPeriod); void SetLFMParameters(double MaxGSI,double GreenupThreshold,double MinLFMVal, double MaxLFMVal); void GetLFMParameters(double * MaxGSI,double * GreenupThreshold ,double * MinLFMVal, double * MaxLFMVal); void SetNumPrecipDays(int numDays); int GetNumPrecipDays(); double GetMoisture(bool SnowDay = false); double CalcRunningAvgGSI(); double CalcRunningAvgHerbFM(bool SnowDay = false); void ResetHerbState(); double CalcRunningAvgWoodyFM(bool SnowDay = false); double CalcGSI(double minRH, double maxTempF, double minTempF, double RTPrcp, double lat, int doy); double CalcGSI_VPDAvg(double RH, double TempF, double maxTempF, double minTempF, double RTPrcp, double lat, int doy); double GetTminInd(double Tmin); double GetVPDInd(double VPD); double GetDaylInd(double Dayl); double GetPrcpInd(double RTPrcp); double CalcDayl(double lat,int yday); double CalcVPDavg(double TempDewF, double TempAvgF); double CalcVPD(double RH, double TempF); double CalcDPT(double tempF, double RH); double CalcVP(double tempF); double GetMaxGSI(); double GetGreenupThreshold(); double GetMinLFMVal(); double GetMaxLFMVal(); void SetUseVPDAvg(bool set); bool GetUseVPDAvg(); bool GetIsAnnual(); LFMCalcState GetState(); bool SetState(LFMCalcState state); void SetUseRTPrecip(bool set); bool GetUseRTPrecip(); private: bool m_UseVPDAvg; bool m_IsHerb; bool m_IsAnnual; int m_LFIdaysAvg; double m_Lat; std::deque qGSI; double m_TminMin; double m_TminMax; double m_VPDMin; double m_VPDMax; double m_DaylenMin; double m_DaylenMax; double m_RTPrcpMin; double m_RTPrcpMax; bool m_useRTPrecip; //added for live fuel moistues double m_MaxGSI; double m_GreenupThreshold; double m_MaxLFMVal; double m_MinLFMVal; double m_Slope; double m_Intercept; bool hasGreenedUpThisYear; bool hasExceeded120ThisYear; bool canIncreaseHerb; double lastHerbFM; int m_nDaysPrecip; time_t lastUpdateTime; }; #endif // LIVEFUELMOISTURE_H ``` -------------------------------- ### Build NFDRS4_cli with CMake Source: https://github.com/firelab/nfdrs4/blob/master/README.md Instructions for building the NFDRS4_cli executable using CMake, specifying paths for config4cpp. ```bash cmake -DCMAKE_INSTALL_PREFIX= -DCONFIG4CPP_DIR= -DCONFIG4CPP_LIB= . make sudo make install ``` -------------------------------- ### Example Usage of NFDRS4 Python Module Source: https://github.com/firelab/nfdrs4/blob/master/swig/Readme.md Demonstrates how to import and use the NFDRS4 Python module to interact with NFDRS calculations. It shows creating a DeadFuelMoisture object, updating its state, and calling methods like medianRadialMoisture, setAdsorptionRate, diffusivitySteps, and deriveStickNodes. ```python import nfdrs4 nf= nfdrs4.DeadFuelMoisture.createDeadFuelMoisture1() nf.update(1,1,1,1,1) print(nf.medianRadialMoisture()) nf.setAdsorptionRate(0.4) print(nf.diffusivitySteps()) print(nf.deriveStickNodes(0.3)) ``` -------------------------------- ### NFDRS4 Class Members Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/functions.html Documents the Init method for the NFDRS4 class, including a link to its specific documentation. ```APIDOC Init(): [NFDRS4](class_n_f_d_r_s4.html#a51a0a2f713869fcb29a48e696e5e5c6a) ``` -------------------------------- ### utctime Library Build Configuration Source: https://github.com/firelab/nfdrs4/blob/master/lib/utctime/CMakeLists.txt This snippet details the CMake configuration for building the utctime library. It sets the minimum CMake version, project name, handles MSVC specific definitions, defines header directories and files, adds the library target, specifies include directories, links necessary libraries, and configures installation paths. ```cmake cmake_minimum_required (VERSION 3.13) project(utctime VERSION 1.0 LANGUAGES CXX) IF(MSVC) add_compile_definitions(_CRT_SECURE_NO_WARNINGS) ENDIF(MSVC) set(HEADER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) set(HEADERS ${HEADER_DIR}/utctime.h) add_library(${PROJECT_NAME} STATIC ${HEADERS} src/utctime.cpp) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ) target_link_libraries (${PROJECT_NAME} PUBLIC time64) set(include_dest "include") install(FILES ${HEADERS} DESTINATION "${include_dest}") ``` -------------------------------- ### NFDRS4 CMake Build Configuration Source: https://github.com/firelab/nfdrs4/blob/master/lib/NFDRS4/CMakeLists.txt This snippet details the CMake build configuration for the NFDRS4 project. It sets the minimum CMake version, project name and version, handles MSVC specific compile definitions, defines header directories and files, adds the library, sets include directories, links to external libraries, and configures installation paths for header files. ```cmake cmake_minimum_required (VERSION 3.13) project(NFDRS4 VERSION 1.0 LANGUAGES CXX) IF(MSVC) add_compile_definitions(_CRT_SECURE_NO_WARNINGS) ENDIF(MSVC) set(HEADER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) set(TOP_LEVEL_HEADERS ${HEADER_DIR}/nfdrs4.h ) set(INTERNAL_HEADERS ${HEADER_DIR}/deadfuelmoisture.h ${HEADER_DIR}/dfmcalcstate.h ${HEADER_DIR}/lfmcalcstate.h ${HEADER_DIR}/livefuelmoisture.h ${HEADER_DIR}/nfdrs4calcstate.h ${HEADER_DIR}/nfdrs4statesizes.h ) set(HEADERS ${TOP_LEVEL_HEADERS} ${INTERNAL_HEADERS} ) add_library(${PROJECT_NAME} STATIC ${HEADERS} src/deadfuelmoisture.cpp src/dfmcalcstate.cpp src/lfmcalcstate.cpp src/livefuelmoisture.cpp src/nfdrs4.cpp src/nfdrs4calcstate.cpp ) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ) target_link_libraries (${PROJECT_NAME} PUBLIC utctime) set(include_dest "include") install(FILES ${HEADERS} DESTINATION "${include_dest}") ``` -------------------------------- ### Doxygen Initialization Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/dir_6e89bf1d9f2ec201c9c602639fb32b4d.html JavaScript code for initializing Doxygen-generated documentation, including search box functionality and code folding. ```javascript var searchBox = new SearchBox("searchBox", "search/", ".html"); $(function() { codefold.init(0); }); $(function() { initMenu('',true,false,'search.php','Search',false); $(function() { init_search(); }); }); $(function(){ initResizable(false); }); ``` -------------------------------- ### Doxygen Generated Documentation Link Source: https://github.com/firelab/nfdrs4/blob/master/docs/_build/html/globals_defs.html Provides a link to the Doxygen documentation generator, indicating the tool used for generating the project's documentation. ```html doxygen ``` -------------------------------- ### fw21 Library Build Configuration Source: https://github.com/firelab/nfdrs4/blob/master/lib/fw21/CMakeLists.txt Configures the fw21 library as a static library using CMake. It specifies the minimum required CMake version, project name and version, handles MSVC specific definitions, sets include directories, adds source and header files, links necessary libraries (csv_readrow, time64, utctime), and defines installation rules for headers. ```cmake cmake_minimum_required(VERSION 3.13) project(fw21 VERSION 1.0 LANGUAGES CXX) IF(MSVC) add_compile_definitions(_CRT_SECURE_NO_WARNINGS) ENDIF(MSVC) set(HEADER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) set(HEADERS ${HEADER_DIR}/fw21.h) add_library(${PROJECT_NAME} STATIC ${HEADERS} src/fw21.cpp) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ) target_link_libraries (${PROJECT_NAME} PUBLIC csv_readrow time64 utctime) set(include_dest "include") install(FILES ${HEADERS} DESTINATION "${include_dest}") ```