Skip to content

Extrapolation and Calibration Modes

rarutter edited this page Jul 7, 2017 · 4 revisions

dmvdostem has two primary "modes":

  • Extrapolation Mode
  • Calibration Mode

Using calibration mode, you can view the program's progress in real time, you can pause and resume the program, and edit some program options and parameters.

Extrapolation mode does not provide these capabilities, and should be slightly more efficient. Extrapolation mode should be used for any large scale runs or productions runs.

Extrapolation Mode (interface)

Running the model without --cal-mode will result in an extrapolation run. During an extrapolation run, there are no .json files produced by the model, and you cannot pause the simulation. The model should run faster in extrapolation mode and consume fewer resources because the json files do not have to be written to the file system at the end of each timestep.

Calibration Mode (interface)

The calibration interface to dvmdostem provides a way to dynamically view the progress of a dvmdostem simulation in the eq run stage as well as pause the simulation and modify certain run-time variables before resuming the simulation.

The calibration interface relies on two primary components:

  • Control of the simulation is handled on the "C++ side".
  • Visualization of the simulation is handled on the "Python side".

The linkage between these two components is done with json files that are stored in your /tmp/ directory. Provided in the project's' calibration/ directory are a set of scripts for visualizing the progress of the simulation. The progress of the simulation is being recorded in the json files in your /tmp/ directory.

Why write files to /tmp/ and not some location within the project directory? The volume of files produced is not insignificant. Writing to /tmp/ means that the operating system will eventually clean up the files if we forget to delete them.

The arrangement is depicted in the image below.

Calibration Viewer

Right now our calibration viewer consists of the calibration-viewer.py python script in the calibration/ directory. This is an "Expanding Window" plot which refers to the fact that the x-axis of the plot will adjust its range to accommodate the .json that the script finds in the /tmp/ directory. There is much more info about the script available with the --help flag:

$ ./calibration/calibration-viewer.py
usage: calibration-viewer.py [-h] [--pft {0,1,2,3,4,5,6,7,8,9}]
                             [--suite {VegSoil,Fire,Soil,NCycle,Environment,Vegetation}]
                             [--list-suites] [--tar-cmtname  | --tar-cmtnum ]
                             [--list-caltargets] [-l LOGLEVEL] [--static]
                             [--save-name SAVE_NAME]
                             [--save-format SAVE_FORMAT] [--no-show]
                             [--from-archive FROM_ARCHIVE] [--monthly]