BUG FIX: add needed imports to utils
[notebooks.git] / fmda / README.md
blob8198e4eb9afd307e45ead27cfabaacfb378380b6
1 # FMDA Readme
3 Code repository for project to build RNN models to predict dead fuel moisture content
5 ## Setup
7 Clone repository:
8         git clone https://github.com/openwfm/notebooks
10 Build and activate environment
11         cd ./fmda/install
12         conda env create -f fmda_ml.yml
13         conda activate fmda_ml
14 python
15 ## Notebooks
17 * version_control/rnn_train_versions.ipynb
18     - Runs model in testing type mode where exact initial and fitted hashes are checked against known history
19         - Shows reproducibility changes and major code restructuring
20 * rnn_class.ipynb
21         - Demonstrates RNN class functionality, different params and configurations
22 * fmda_rnn_serial.ipynb
23         - Trains and predicts the model at multiple locations in serial fashion
24          1. Train separate models at multiple locations and compare predictions on that location itself
25          2. Train single model with data from multiple locations. Take same model object and call .fit multiple times. Compare predictions for new locations
27 ## Data
29 The data structure used for this project is nested dictionaries. A "case" of data consists of FMC observations and atmospheric data at a particular location. The FMC data always comes from RAWS ground-level observations, and the atmospheric data can be from a variety of sources. The data acquisition for this project is built off a branch of `wrfxpy`, branch "develop-72-jh", which merges RAWS and HRRR data
31 - Saved within the repository is a dataset used to ensure reproducibility. As of 20-6-2024, that file is: `data\reproducibility_dict2.pickle`
32 - Other formatted FMDA dictionaries are staged at the OpenWFM demo page and retrieved via wget:
33 https://demo.openwfm.org/web/data/fmda/dicts/
35 ## RNN Code
37 The source code lives in the module "moisture_rnn.py". The module has:
39 * Superclass RNNModel 
40         - Child class for SimpleRNN
41         - Child class for LSTM
42 * Helper code to format data for RNN
43         - staircase_2 used to batch/sequence timeseries data