Command Line Interface
A comprehensive command-line interface for running hazard simulations on distribution systems using the ERAD framework.
Installation¶
Install ERAD with all dependencies:
pip install -e ".[dev]"The CLI is automatically available as the erad command after installation.
Quick Start¶
# Show version
erad version
# Show environment info
erad info
# List cached models
erad models list
# List supported hazards
erad hazards list
# Start the API server
erad server startCommands Overview¶
| Command | Description |
|---|---|
erad version | Show the ERAD version |
erad info | Show environment information |
erad simulate | Run a hazard simulation |
erad generate | Generate Monte Carlo scenarios |
erad models | Manage distribution system models |
erad hazards | Hazard-related commands |
erad cache | Cache management commands |
erad server | Server management commands |
Simulation Commands¶
Run Simulation¶
Run a hazard simulation using cached distribution and hazard system models:
erad simulate <distribution_model> <hazard_model> [OPTIONS]Arguments:
distribution_model: Name of the cached distribution system modelhazard_model: Name of the cached hazard system model
Options:
--curves, -c: Fragility curve set to use (default: DEFAULT_CURVES)--output, -o: Output SQLite file path for results--verbose, -v: Verbose output
Example:
erad simulate my_system earthquake_scenario --output results.sqlite
erad simulate power_grid flood_hazard --curves DEFAULT_CURVESGenerate Scenarios¶
Generate Monte Carlo scenarios using cached distribution and hazard system models:
erad generate <distribution_model> <hazard_model> [OPTIONS]Arguments:
distribution_model: Name of the cached distribution system modelhazard_model: Name of the cached hazard system model
Options:
--samples, -n: Number of scenarios to generate (default: 10)--seed, -s: Random seed for reproducibility--curves, -c: Fragility curve set to use (default: DEFAULT_CURVES)--output, -o: Output ZIP file path for scenarios (contains tracked_changes.json and time_series/)--verbose, -v: Verbose output
Example:
erad generate my_system flood_scenario --samples 100 --seed 42 --output scenarios.zip
erad generate power_grid earthquake_hazard --samples 50 --output eq_scenarios.zipModel Management¶
List Models¶
List all cached distribution system models:
erad models list [OPTIONS]Options:
--refresh, -r: Refresh from cache directory before listing--json, -j: Output as JSON
Example:
# List models as table
erad models list
# List with JSON output
erad models list --json
# Refresh and list
erad models list --refreshAdd Model¶
Add a distribution system model to the cache:
erad models add <file> [OPTIONS]Options:
--name, -n: Name for the model (default: filename)--description, -d: Description of the model--force, -f: Overwrite if model already exists
Example:
erad models add system.json --name my_system --description "Test distribution system"Show Model¶
Show details of a cached model:
erad models show <name> [OPTIONS]Options:
--full, -f: Show full model content (truncated to 5000 chars)
Example:
erad models show my_system --fullRemove Model¶
Remove a model from the cache:
erad models remove <name> [OPTIONS]Options:
--keep-file: Keep the JSON file in cache (only remove from metadata)
Example:
erad models remove my_systemExport Model¶
Export a cached model to a file:
erad models export <name> <output_path>Example:
erad models export my_system ./exported_system.jsonHazard Commands¶
Manage cached hazard system models.
List Hazard Models¶
List all cached hazard system models:
erad hazards list [OPTIONS]Options:
--refresh, -r: Refresh from cache directory before listing--json, -j: Output as JSON
Example:
# List hazard models
erad hazards list
# Refresh and list
erad hazards list --refresh
# JSON output
erad hazards list --jsonAdd Hazard Model¶
Add a hazard system model to the cache:
erad hazards add <file> [OPTIONS]Options:
--name, -n: Name for the model (default: filename)--description, -d: Description of the model--force, -f: Overwrite if model already exists
Example:
erad hazards add earthquake.json --name eq_scenario --description "Major earthquake scenario"Show Hazard Model¶
Show details of a cached hazard model:
erad hazards show <name> [OPTIONS]Options:
--full, -f: Show full model content (truncated to 5000 chars)
Example:
erad hazards show eq_scenario --fullRemove Hazard Model¶
Remove a hazard model from the cache:
erad hazards remove <name> [OPTIONS]Options:
--keep-file: Keep the JSON file in cache (only remove from metadata)
Example:
erad hazards remove eq_scenarioExport Hazard Model¶
Export a cached hazard model to a file:
erad hazards export <name> <output_path>Example:
erad hazards export eq_scenario ./exported_hazard.jsonList Hazard Types¶
List supported hazard types for creating models:
erad hazards typesOutput shows available hazard types: earthquake, flood, flood_area, wind, fire, fire_area.
Show Hazard Example¶
Show an example hazard system configuration:
erad hazards example <hazard_type> [OPTIONS]Options:
--output, -o: Save example to file
Example:
# Show earthquake example
erad hazards example earthquake
# Save flood example to file
erad hazards example flood --output flood_example.jsonCache Management¶
Cache Info¶
Show cache directory information:
erad cache infoOutput:
Cache Information
┌─────────────────┬────────────────────────────────────────┐
│ Cache Directory │ /home/user/.cache/erad/dist_models │
│ Metadata File │ /home/user/.cache/.../models_meta.json │
│ Total Models │ 5 │
│ Total Files │ 5 │
│ Total Size │ 2.50 MB │
└─────────────────┴────────────────────────────────────────┘Refresh Cache¶
Refresh the model list from the cache directory:
erad cache refreshClear Cache¶
Clear all cached models:
erad cache clear [OPTIONS]Options:
--force, -f: Skip confirmation prompt
Example:
# With confirmation
erad cache clear
# Skip confirmation
erad cache clear --forceServer Commands¶
Start REST API Server¶
Start the ERAD REST API server:
erad server start [OPTIONS]Options:
--host, -h: Host to bind to (default: 0.0.0.0)--port, -p: Port to bind to (default: 8000)--reload, -r: Enable auto-reload for development--workers, -w: Number of workers (default: 1)
Example:
# Start with defaults
erad server start
# Start on custom port with reload
erad server start --port 8080 --reload
# Production with multiple workers
erad server start --workers 4Start MCP Server¶
Start the ERAD MCP server for AI assistant integration:
erad server mcpCache Directories¶
The CLI uses the same cache directories as the REST API and MCP server:
Distribution Models:
Linux/macOS:
~/.cache/erad/distribution_models/Windows:
%LOCALAPPDATA%\erad\distribution_models\
Hazard Models:
Linux/macOS:
~/.cache/erad/hazard_models/Windows:
%LOCALAPPDATA%\erad\hazard_models\
Shell Completion¶
Install shell completion for your shell:
# For bash
erad --install-completion bash
# For zsh
erad --install-completion zsh
# For fish
erad --install-completion fishExamples¶
Complete Workflow¶
# 1. Check ERAD info
erad info
# 2. Add a distribution system model
erad models add distribution_system.json --name power_grid --description "City power grid"
# 3. Add a hazard system model
erad hazards add earthquake_scenario.json --name eq_major --description "Major earthquake"
# 4. List available models
erad models list
erad hazards list
# 5. View model details
erad models show power_grid
erad hazards show eq_major
# 6. Run earthquake simulation
erad simulate power_grid eq_major --output eq_results.sqlite
# 7. Add flood hazard model and generate scenarios
erad hazards add flood_scenario.json --name flood_100yr --description "100-year flood"
erad generate power_grid flood_100yr --samples 50 --seed 42 --output flood_scenarios.zip
# 8. Start API server for programmatic access
erad server start --port 8000Batch Processing Script¶
#!/bin/bash
# Process multiple hazard scenarios
DIST_MODELS=$(erad models list --json | jq -r 'keys[]')
HAZARD_MODELS=$(erad hazards list --json | jq -r 'keys[]')
for dist_model in $DIST_MODELS; do
for hazard_model in $HAZARD_MODELS; do
echo "Processing $dist_model with $hazard_model..."
erad generate "$dist_model" "$hazard_model" \
--samples 100 \
--seed 42 \
--output "results/${dist_model}_${hazard_model}.zip"
done
doneSee Also¶
MCP Server Documentation - Model Context Protocol server for AI assistants