Skip to content

Update project and runs

This section describes ways of updating project and project run metadata and adding new project runs. It will also cover any limitations to these workflows. The UpdateProject and CreateProjectRun use sections of the schema for project initialization.

Update project

To update the project and project run metadata, use the UpdateProject workflow by supplying the project name and the updated project toml section of the Project Config. This workflow tears down and recreates the entire project and project run section of the graph (except the project vertex itself). All project, project run and model team validation methods will be ran with the new data before the project is recreated.

Warning

A ProjectRun can only be updated before work has begun. Once a model run has been started, a new ProjectRun will need to be created.

To initiate the update project workflow, use the following CLI method:

$ pipes project update -p test1 -f path/to/updated_project_metadata.toml

The TOML file structure is the same as the Project TOML, see example below:

[project]
  name = "test1"
  full_name = "Updated Project Name"
  description = "Updated Description"
  assumptions = [
    "We can use LA100 as a test project for the C2C data pipeline.",
    "No effects of climate change on power system outside of increased demand for cooling are measured.",
    "LADWP will need to achieve a 100% clean energy by 2030 or 2045 completely on its own (e.g., no other utilities will be trading energy).",
    "Path to 100% is based off today's technology options.",
    "https://maps.nrel.gov/la100/la100-study/topics/renewable-energy-pathways#renewable-energy-pathways-assumptions"
  ]
  scheduled_start = "2022-10-27" # New dates
  scheduled_end = "2024-11-01"
  sensitivities = []

[[project_runs]]
    name = "1"
    description = "Single scenario, single year, simple test"
    assumptions = [
        "The single scenario, single year, simple tests assumes 1 scenario and 1 model year at the project run level which is different than the project level."
        "The project run also has 2 models with one edge. Each model has its own example of a different model requirement for geographic_extent compared to the run-level."
    ]
    scenarios = ["earlynobio_moderate"]
    scheduled_start = "2022-09-27"
    scheduled_end = "2022-10-15"

  [project_runs.requirements] # these become the new requirements for all datasets in this run
    model_years = [2020]

  [[project_runs.models]]
    model = "dsgrid"
    type = "Energy Demand" # This is used in pipeline as header to represent the category of model
    description = "The Demand-Side Grid Model used for LA100 project Run 1"
    assumptions = ["This is a dsgrid assumption"]
    expected_scenarios = ["demand_moderate"] # scenarios we're expecting the model to checkin datasets under
    scheduled_start = "2022-09-28"
    scheduled_end = "2022-10-05"

[[model_teams]]
  name = "dsgrid"

  [[model_teams.members]]
  first_name = "Sam"
  last_name = "Molnar"
  email = "sam.molnar@nrel.gov"
  username = "smolnar"

  ...

Add new project run

At any point during the project, a new ProjectRun can be created. This could be used to capture unique portions of a project, or to iterate on model topology after modeling work has been kicked off. To add a new ProjectRun to an existing project, the CreateProjectRun workflow is used.

$ pipes projectrun create -p test1 -f path/to/new_project_run.toml

The example TOML,

[project_run]
  name = "1"
  description = "Single scenario, single year, simple test"
  assumptions = [
      "The single scenario, single year, simple tests assumes 1 scenario and 1 model year at the project run level which is different than the project level."
      "The project run also has 2 models with one edge. Each model has its own example of a different model requirement for geographic_extent compared to the run-level."
  ]
  scenarios = ["earlynobio_moderate"]
  scheduled_start = "2022-09-27"
  scheduled_end = "2022-10-15"

[project_run.requirements] # these become the new requirements for all datasets in this run
  model_years = [2020]

[project_run.models]
  model = "dsgrid"
  type = "Energy Demand" # This is used in pipeline as header to represent the category of model
  description = "The Demand-Side Grid Model used for LA100 project Run 1"
  assumptions = ["This is a dsgrid assumption"]
  expected_scenarios = ["demand_moderate"] # scenarios we're expecting the model to checkin datasets under
  scheduled_start = "2022-09-28"
  scheduled_end = "2022-10-05"

  ...