# cseptesting/floatcsep architecture

> Architecture diagram of the GitHub repository cseptesting/floatcsep, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/cseptesting/floatcsep
- Repository: https://github.com/cseptesting/floatcsep

## Overview

floatCSEP deploys reproducible prospective earthquake-forecasting experiments. A user runs a configuration through the CLI; the experiment coordinates model execution, catalog and forecast access, evaluations, then reports and plots results. The separate view command serves an exported dashboard. The graph preserves configuration-driven model, evaluation, infrastructure, and web-reporting branches. Relationships are limited to README statements and source-index references; unsampled modules are represented only where the tree supports their subsystem.

Main entry points: [`floatcsep/experiment.py`](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/experiment.py) (Experiment orchestration), [`floatcsep/commands/main.py`](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/commands/main.py) (CLI commands), [`floatcsep/model.py`](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/model.py) (Forecast models), [`floatcsep/infrastructure/repositories.py`](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/infrastructure/repositories.py) (Catalog and result repositories)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["User entry points"]
  node_cli["CLI commands<br/>[main.py]"]
end

subgraph group_experiment["Experiment execution"]
  node_experiment_core["Experiment orchestration<br/>[experiment.py]"]
  node_models["Forecast models<br/>[model.py]"]
  node_evaluations["Evaluation tests<br/>[evaluation.py]"]
end

subgraph group_infra["Execution infrastructure"]
  node_engine["Task execution<br/>[engine.py]"]
  node_environments["Model environments<br/>[environments.py]"]
  node_registries["Run registries<br/>[registries.py]"]
  node_repositories["Catalog and result repositories<br/>[repositories.py]"]
  node_accessors["Remote model access<br/>[accessors.py]"]
  node_file_io["Forecast file parsing<br/>[file_io.py]"]
  node_helpers["Configuration helpers<br/>[helpers.py]"]
end

subgraph group_results["Results and exploration"]
  node_plotting["Forecast and catalog plots<br/>[plot_handler.py]"]
  node_reporting["Reports<br/>[reporting.py]"]
  node_web_export["Dashboard export<br/>[export.py]"]
  node_web_server["Dashboard server<br/>[serve.py]"]
  node_web_app["Dashboard interface<br/>[app.js]"]
end

node_user(("Experiment user"))

node_user -->|"runs or views"| node_cli
node_cli -->|"configures and runs"| node_experiment_core
node_cli -->|"generates report"| node_reporting
node_cli -->|"generates plots"| node_plotting
node_cli -->|"serves dashboard"| node_web_server
node_experiment_core -->|"configures models"| node_models
node_experiment_core -->|"configures tests"| node_evaluations
node_experiment_core -->|"builds task graph"| node_engine
node_experiment_core -->|"creates registries"| node_registries
node_experiment_core -->|"sets repositories"| node_repositories
node_models -->|"creates environment"| node_environments
node_models -->|"creates model registry"| node_registries
node_models -->|"loads forecasts"| node_repositories
node_engine -->|"uses Docker manager"| node_environments
node_evaluations -->|"uses registries"| node_registries
node_evaluations -->|"uses helpers"| node_helpers
node_repositories -->|"uses registry paths"| node_registries
node_repositories -->|"loads forecast files"| node_file_io
node_repositories -->|"uses helpers"| node_helpers
node_models -->|"retrieves model artifacts"| node_accessors
node_reporting -->|"reads experiment state"| node_experiment_core
node_reporting -->|"uses plot functions"| node_plotting
node_cli -.->|"exports dashboard data"| node_web_export
node_web_server -.->|"serves interface"| node_web_app
node_web_export -->|"reads run metadata"| node_registries
node_web_app -.->|"loads dashboard data"| node_web_export

click node_cli "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/commands/main.py"
click node_experiment_core "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/experiment.py"
click node_models "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/model.py"
click node_evaluations "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/evaluation.py"
click node_engine "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/infrastructure/engine.py"
click node_environments "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/infrastructure/environments.py"
click node_registries "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/infrastructure/registries.py"
click node_repositories "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/infrastructure/repositories.py"
click node_accessors "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/utils/accessors.py"
click node_file_io "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/utils/file_io.py"
click node_helpers "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/utils/helpers.py"
click node_plotting "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/postprocess/plot_handler.py"
click node_reporting "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/postprocess/reporting.py"
click node_web_export "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/postprocess/web/export.py"
click node_web_server "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/postprocess/web/serve.py"
click node_web_app "https://github.com/cseptesting/floatcsep/blob/main/floatcsep/postprocess/web/static/js/app.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_user toneBlue
class node_experiment_core,node_models,node_evaluations toneAmber
class node_engine,node_environments,node_registries,node_repositories,node_accessors,node_file_io,node_helpers toneMint
class node_plotting,node_reporting,node_web_export,node_web_server,node_web_app toneRose
```

## Components

### User entry points

- [CLI commands](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/commands/main.py): `floatcsep/commands/main.py`

### Experiment execution

- [Experiment orchestration](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/experiment.py): `floatcsep/experiment.py`
- [Forecast models](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/model.py): `floatcsep/model.py`
- [Evaluation tests](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/evaluation.py): `floatcsep/evaluation.py`

### Execution infrastructure

- [Task execution](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/infrastructure/engine.py): `floatcsep/infrastructure/engine.py`
- [Model environments](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/infrastructure/environments.py): `floatcsep/infrastructure/environments.py`
- [Run registries](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/infrastructure/registries.py): `floatcsep/infrastructure/registries.py`
- [Catalog and result repositories](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/infrastructure/repositories.py): `floatcsep/infrastructure/repositories.py`
- [Remote model access](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/utils/accessors.py): `floatcsep/utils/accessors.py`
- [Forecast file parsing](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/utils/file_io.py): `floatcsep/utils/file_io.py`
- [Configuration helpers](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/utils/helpers.py): `floatcsep/utils/helpers.py`

### Results and exploration

- [Forecast and catalog plots](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/postprocess/plot_handler.py): `floatcsep/postprocess/plot_handler.py`
- [Reports](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/postprocess/reporting.py): `floatcsep/postprocess/reporting.py`
- [Dashboard export](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/postprocess/web/export.py): `floatcsep/postprocess/web/export.py`
- [Dashboard server](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/postprocess/web/serve.py): `floatcsep/postprocess/web/serve.py`
- [Dashboard interface](https://github.com/cseptesting/floatcsep/blob/main/floatcsep/postprocess/web/static/js/app.js): `floatcsep/postprocess/web/static/js/app.js`

### Other components

- **Experiment user**

## Connections

- Experiment user → CLI commands: runs or views (evidence: `README.md`)
- CLI commands → Experiment orchestration: configures and runs (evidence: `floatcsep/commands/main.py`)
- CLI commands → Reports: generates report (evidence: `floatcsep/commands/main.py`)
- CLI commands → Forecast and catalog plots: generates plots (evidence: `floatcsep/commands/main.py`)
- CLI commands → Dashboard server: serves dashboard (evidence: `floatcsep/commands/main.py`)
- Experiment orchestration → Forecast models: configures models (evidence: `floatcsep/experiment.py`)
- Experiment orchestration → Evaluation tests: configures tests (evidence: `floatcsep/experiment.py`)
- Experiment orchestration → Task execution: builds task graph (evidence: `floatcsep/experiment.py`)
- Experiment orchestration → Run registries: creates registries (evidence: `floatcsep/experiment.py`)
- Experiment orchestration → Catalog and result repositories: sets repositories (evidence: `floatcsep/experiment.py`)
- Forecast models → Model environments: creates environment (evidence: `floatcsep/model.py`)
- Forecast models → Run registries: creates model registry (evidence: `floatcsep/model.py`)
- Forecast models → Catalog and result repositories: loads forecasts (evidence: `floatcsep/model.py`)
- Task execution → Model environments: uses Docker manager (evidence: `floatcsep/infrastructure/engine.py`)
- Evaluation tests → Run registries: uses registries (evidence: `floatcsep/evaluation.py`)
- Evaluation tests → Configuration helpers: uses helpers (evidence: `floatcsep/evaluation.py`)
- Catalog and result repositories → Run registries: uses registry paths (evidence: `floatcsep/infrastructure/repositories.py`)
- Catalog and result repositories → Forecast file parsing: loads forecast files (evidence: `floatcsep/infrastructure/repositories.py`)
- Catalog and result repositories → Configuration helpers: uses helpers (evidence: `floatcsep/infrastructure/repositories.py`)
- Forecast models → Remote model access: retrieves model artifacts (evidence: `floatcsep/model.py`)
- Reports → Experiment orchestration: reads experiment state (evidence: `floatcsep/postprocess/reporting.py`)
- Reports → Forecast and catalog plots: uses plot functions (evidence: `floatcsep/postprocess/reporting.py`)
- CLI commands → Dashboard export: exports dashboard data
- Dashboard server → Dashboard interface: serves interface
- Dashboard export → Run registries: reads run metadata (evidence: `floatcsep/postprocess/web/export.py`)
- Dashboard interface → Dashboard export: loads dashboard data
