Marmot v0.10.0
Marmot Open-Source Release v0.10.0
This release has been tested against many different PLEXOS and ReEDS databases to limit the possibility of bugs; however, some may still exist.
To report a bug, please open an Issue on the Marmot GitHub repo so that we can address it in a following release.
-
To clone this release, use the following command:
git clone --recurse-submodules git@github.com:NREL/Marmot.git --branch v0.10.0
-
If you have already cloned Marmot, you can checkout this release using the following two commands:
git fetch --all --tags
git checkout tags/v0.10.0
What's Changed
- ReEDS formatter addition by @daniellevie in #32
- HOT FIX: missing "else" by @MartySchwarz in #35
Full Changelog: v0.9.0...v0.10.0
Features
Release 0.10.0 adds in the ability to format ReEDS results and expands the plotting capabilities of the software. It also includes a new and improved documentation website found here https://nrel.github.io/Marmot/index.html
The following are the main new features that have been added in this release:
-
ReEDS formatter added: It is not possible to format a limited number of ReEDS properties using Marmot. The full list of properties that can be formatted can be seen here.
Properties to format are selected with the reeds_properties.csv and works in the same way as the plexos_properties.csv. For information see the docs here -
New code entry part to run formatter and plotter: To start the formatter and plotter the user should now run either run_marmot_formatter.py or run_marmot_plotter.py from the Marmot/bin directory
-
New ExtraProperties class will now create custom properties for Marmot, these include generator_Curtailment, region_Demand and any annualized property. These properties are created automatically and are not selected in the *_properties.csv files.
-
Load and Demand legend names can now be adjusted through config.yml 35c99ed
-
New Plotting settings
- Timeseries Plot Resolution: The resolution to plot timeseries figures at. Current available options are Interval and Annual. If the value is left blank and the plot creates a timeseries, Marmot will default to plotting interval data.
- Group by Scenario or Year-Scenario: Effect data that has been grouped into bar plots or diurnal line plots. If grouping by Year-Scenario the year will be identified from the input data timestamp and appended to the Scenarios name. This is useful when plotting data which covers multiple years such as ReEDS.
Notable Changes
- All mapping file names have been moved from the config.yml to Marmot_user_defined_inputs.csv 3ef42ab
- input_files folder now holds all input files and mapping_files folder, located in Marmot/marmot ff11aa0
- Plot annotations are now set with their own plotting method 9834918
- Formatters and Process class moved to model specific modules, each formatter now has its own module 21f0426
- meta_data.py renamed to read_metadata.py and moved to metamanagers package fdee302
- Created utils package. Moved mconfig.py here. 774fbfc
- logging class moved to its own module in utils
- Created definitions.py to handle file paths and constants
- PlotDataHelper renamed to MPlotDataHelper c92d038
- Each plotting module now has a unique class, e.g GenerationStack, these replace the MPlot classes 1387272
Potential Issues
Due to ReEDS results outputs not having versions associated with them, older versions of the tool may fail to format several properties with Marmot initially. This will likely be caused by differing column arrangements or missing column data for certain properties including some storage and emissions results. If you run into this problem, please open an issue and we can help you fix it.