Data Formats¶
The data loader supports two JSON formats, detected automatically at runtime. Both can coexist in the same data/ directory.
1. Catalogue format (recommended)¶
One file covers all technologies in a domain. Contains a metadata block and a technologies array with flat numeric fields per instance.
Files: data/<category>/<category>_technologies.json
{
"metadata": {
"domain": "generation",
"version": "1.0.0",
"description": "...",
"primary_sources": ["NREL ATB 2023", "IRENA 2023"]
},
"technologies": [
{
"technology_id": "ccgt",
"technology_name": "Combined Cycle Gas Turbine (CCGT)",
"domain": "generation",
"carrier": "natural_gas",
"oeo_class": "http://openenergy-platform.org/ontology/oeo/OEO_00000044",
"description": "...",
"instances": [
{
"instance_id": "ccgt_800mw_current",
"instance_name": "CCGT – 800 MW (Current, 2024)",
"typical_capacity_mw": 800,
"capex_usd_per_kw": 900,
"opex_fixed_usd_per_kw_yr": 20.0,
"opex_var_usd_per_mwh": 3.5,
"efficiency_percent": 58.0,
"lifetime_years": 30,
"co2_emission_factor_operational_g_per_kwh": 202,
"ramping_rate_percent_per_min": 8.0,
"reference_source": "NREL ATB 2023"
}
]
}
]
}
Field mapping (catalogue → internal model)¶
| Catalogue field | Internal field | Conversion |
|---|---|---|
capex_usd_per_kw |
capex_per_kw.value |
direct |
efficiency_percent |
electrical_efficiency.value |
÷ 100 |
typical_capacity_mw |
capacity_kw.value |
× 1000 |
co2_emission_factor_operational_g_per_kwh |
co2_emission_factor.value |
÷ 1000 → tCO₂/MWh |
ramping_rate_percent_per_min |
ramp_up_rate.value + ramp_down_rate.value |
direct |
oeo_class (full URI) |
oeo_uri + oeo_class (last segment) |
split |
2. Individual format (legacy, fully supported)¶
One JSON file per technology using nested ParameterValue objects. Detected automatically by the absence of a metadata/technologies root structure.
Adding a new technology¶
Catalogue format (preferred)¶
- Open
data/<category>/<category>_technologies.json. - Add a new entry to the
technologiesarray following the schema above. - Reload the API:
- Verify via
GET /api/v1/technologies/{your_new_id}.
Individual format¶
- Create
data/<category>/<tech_id>.jsonwith a nestedParameterValueschema. - The
idfield must be a valid UUID. - Add at least one entry in
instances. - Reload via the debug endpoint above.
Timeseries profile format¶
Files in data/timeseries/ are referenced by profile_key on VRE technologies. Metadata is indexed in timeseries_catalogue.json.