Results Modifications

AggregationTemplate(;file, name) <: Modification

This is a mod that outputs aggregated results, given a file representing the template of the things to be aggregated. name is simply the name of the modification, and will be used as the root for the filename that the aggregated information is saved to.

The file should represent a csv table with the following columns:

  • table_name - the name of the table being aggregated. i.e. gen, bus, etc.
  • result_name - the name of the column in the table being aggregated. Note that the column must have a Unit accessible via get_table_col_unit.
  • filter_ - the filtering conditions for the rows of the table. I.e. filter1. See parse_comparisons for information on what types of filters could be provided.
  • filter_years - the filtering conditions for the years to be aggregated. See parse_year_idxs for information on the year filters.
  • filter_hours - the filtering conditions for the hours to be aggregated. See parse_hour_idxs for information on the hour filters.

Note that, for the filter_ or filter_hours columns, if a column name of the data table (or hours table) is given, new rows will be created for each unique value of that column. I.e. if a value of gentype is given, there will be made a new row for gentype=>coal, gentype=>ng, etc.

struct YearlyTable <: Modification

YearlyTable(;name, table_name, groupby=Symbol[], group_hours_by=Symbol[])

This modification creates an agregated table for each year in the simulation. It includes all of the result formulas listed in get_results_formulas(data, table_name), grouped by column names in groupby. The hours are grouped by columns from the group_hours_by field.


  • name - the name of the Modification, (don't need to specify this field in config file). The outputed table will be saved to get_out_path(config, "<name>_<year>.csv")
  • table_name - the name of the table to export. I.e. gen, bus, or branch
  • groupby = Symbol[] - the name(s) of the columns of the table specified by table_name to group by. I.e. state, nation, genfuel, gentype, etc. Leave blank to group the whole table together into a single row. To prevent any grouping and show every row, give a :
  • group_hours_by = Symbol[] - the name(s) of the columns of the hours table to group by. I.e. season. Leave blank to group the whole table together. To prevent any grouping and show every hour, give a :
struct WelfareTable <: Modification

Outputs a table with a breakdown of each of the terms going into welfare, for each year.

Arguments/keyword arguments:

  • name::Symbol
  • groupby - empty by default to not group by anything. Could choose to group by state, county, etc.