A quick reference guide for GAT v1.0 command-line interface.
gat project init [PATH] [OPTIONS]Common Options:
--name TEXT- Project name--description TEXT- Project description--set-default- Set as default project--no-palettes- Don't copy user palettes
Examples:
gat project init my-project --name "My Analysis"
gat project init . --set-defaultgat project add PATH [OPTIONS]Options:
--id TEXT- Custom project ID--set-default- Set as default
Example:
gat project add ./my-project --set-defaultgat project list [--verbose]gat project show PROJECT_IDgat project set-default PROJECT_IDgat project remove PROJECT_ID [--yes]gat project add-scenario sienna SCENARIO_ID \
--system PATH \
--simulation PATH \
[--metadata PATH] \
[--name TEXT] \
[--description TEXT] \
[--project PROJECT_ID]Multiple Simulations:
gat project add-scenario sienna multi_week \
--system ../data/system.json \
--simulation ../data/week1.h5 \
--simulation ../data/week2.h5 \
--simulation ../data/week3.h5gat project add-scenario reeds SCENARIO_ID \
--path PATH \
[--solve-year YEAR] \
[--name TEXT] \
[--description TEXT] \
[--project PROJECT_ID]Example:
gat project add-scenario reeds reeds_2035 \
--path ../reeds_output \
--solve-year 2035gat project add-scenario plexos SCENARIO_ID \
--solution PATH \
[--name TEXT] \
[--description TEXT] \
[--project PROJECT_ID]Example:
gat project add-scenario plexos summer_peak \
--solution ../plexos/solution.xmlgat project scenario list [PROJECT_ID]Examples:
# List scenarios across all projects
gat project scenario list
# List scenarios in specific project
gat project scenario list my-projectgat project scenario show SCENARIO_ID [--project PROJECT_ID]Example:
# Show scenario in default project
gat project scenario show base_2035
# Show scenario in specific project
gat project scenario show base_2035 --project my-analysisgat project scenario remove SCENARIO_ID [--project PROJECT_ID] [--yes]Example:
# Remove with confirmation
gat project scenario remove old_scenario
# Remove without confirmation
gat project scenario remove old_scenario --yes# 1. Initialize project
gat project init my-analysis --name "My Analysis" --set-default
# 2. Add scenarios
gat project scenario add sienna base \
--system ../data/system.json \
--simulation ../data/base.h5
gat project scenario add sienna high_load \
--system ../data/system.json \
--simulation ../data/high_load.h5
# 3. View project
gat project show my-analysis
# 4. List all scenarios
gat project scenario list# On your machine
cd my-analysis
git init
git add .
git commit -m "Initial project setup"
git remote add origin git@github.com:team/my-analysis.git
git push -u origin main
# Teammate's machine
git clone git@github.com:team/my-analysis.git
cd my-analysis
gat project add . --set-default# Set default once
gat project set-default my-analysis
# Then add scenarios without --project flag
gat project scenario add sienna test \
--system ../data/system.json \
--simulation ../data/test.h5# List scenarios in all projects
gat project scenario list
# Output shows scenarios grouped by projectgat config [--show] [--show-path]Options:
--show- Display configuration--show-path- Show config file path--edit- Open in editor
gat config --edit~/.config/gat/
├── config.yaml # User settings
├── projects/ # Project references
│ └── *.yaml
└── palettes/ # User palettes
└── *.yaml
my-project/
├── gat-project.yaml # Project config
├── scenarios/ # Scenario configs
│ └── *.yaml
├── palettes/ # Project palettes
│ └── *.yaml
├── pipelines/ # Pipeline configs
├── notebooks/ # Jupyter notebooks
├── outputs/ # Generated plots
└── .gat-cache/ # Cached data
All paths in scenario configurations are relative to the project root:
# scenarios/base.yaml
type: sienna
system_path: ../data/systems/2035_base.json
simulation_paths:
- ../data/results/week1.h5
- ../data/results/week2.h5If your shell supports it, tab completion can help with project IDs and file paths.
Save typing by setting a default project:
gat project set-default my-analysisThen omit --project from commands:
gat project add-scenario sienna test --system sys.json --simulation sim.h5Edit project references to add tags:
# ~/.config/gat/projects/my-project.yaml
project_id: my-project
name: My Project
tags:
- transmission
- 2035
- high-priorityAll paths in scenario configurations are stored as absolute paths. When adding scenarios, paths are automatically resolved:
# Relative paths are resolved to absolute paths
cd /home/user/data
gat project scenario add sienna test \
--system ./systems/system.json \
--simulation ./results/results.h5
# Stored as absolute paths in scenario config:
# /home/user/data/systems/system.json
# /home/user/data/results/results.h5When simulations are split across multiple files:
gat project scenario add sienna annual \
--system ../data/system.json \
--simulation ../data/jan_mar.h5 \
--simulation ../data/apr_jun.h5 \
--simulation ../data/jul_sep.h5 \
--simulation ../data/oct_dec.h5Before adding a project, check if it's valid:
# Navigate to project directory
cd /path/to/project
# Check for gat-project.yaml
ls -la gat-project.yaml
# If it exists, add it
gat project add . --id my_projError: Project 'my-project' not foundSolution: Add the project first:
gat project add /path/to/my-projectError: Scenario already exists: baseSolution: Use a different scenario ID or remove the existing one.
⚠ Path not foundSolution: The project directory moved. Update the reference:
gat project remove old-id
gat project add /new/pathError: --system is required for Sienna scenariosSolution: Provide required options:
gat project scenario add sienna test \
--system ../data/system.json \
--simulation ../data/sim.h5No scenarios found across any projects.Solution: Add scenarios to your projects:
gat project scenario add sienna test \
--system ../data/system.json \
--simulation ../data/sim.h5gat --version# General help
gat --help
# Project command help
gat project --help
# Specific command help
gat project scenario add --help
gat project scenario list --help
gat project init --help- Project Management Guide - Comprehensive documentation
- Configuration - GAT configuration
- Scenario Objects - Using scenarios in Python