IAMC Data REST API
Submodules
ixmp4.server.rest.iamc.datapoint module
- ixmp4.server.rest.iamc.datapoint.bulk_delete(df: DataFrame, backend: SqlAlchemyBackend = Depends(get_managed_backend)) None
- ixmp4.server.rest.iamc.datapoint.bulk_upsert(df: DataFrame, backend: SqlAlchemyBackend = Depends(get_managed_backend)) None
- ixmp4.server.rest.iamc.datapoint.query(filter: ~ixmp4.data.db.iamc.datapoint.filter.DataPointFilter = Body(step_year=None time_series__id=None region=None unit=None variable=None model=None scenario=None run=sqla_model(id=None, default_only=True, id__in=None) step_year__in=None step_year__lt=None step_year__gte=None step_year__lte=None step_year__gt=None time_series__id__in=None), join_parameters: bool | None = Query(False), join_runs: bool = Query(False), table: bool | None = Query(False), pagination: ~ixmp4.server.rest.base.Pagination = Depends(NoneType), backend: ~ixmp4.data.backend.db.SqlAlchemyBackend = Depends(get_managed_backend)) EnumerationOutput[DataPoint]
ixmp4.server.rest.iamc.datapoint.query()
This endpoint is used to retrieve and optionally filter data.add()
Filter parameters are provided as keyword arguments.
The available filters can be found here:
ixmp4.data.db.iamc.datapoint.filter.DataPointFilter
.Filter data points for a given model, scenario combination, and a number of years:
{ "model" : {"name": "model 1"}, "scenario" : {"name": "scenario 1"}, "year__in" : [2020, 2025] }
Return all data for a given variable:
{ "variable": {"name": "Final Energy"} }
- ixmp4.server.rest.iamc.datapoint.tabulate_versions(filter: TabulateVersionArgs = Body(transaction__id=None), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) DataFrame
ixmp4.server.rest.iamc.region module
- ixmp4.server.rest.iamc.region.query(filter: ~ixmp4.data.db.region.filter.IamcRegionFilter = Body(id=None name=None hierarchy=None id__in=None name__in=None name__like=None name__ilike=None name__notlike=None name__notilike=None hierarchy__in=None hierarchy__like=None hierarchy__ilike=None hierarchy__notlike=None hierarchy__notilike=None variable=None unit=None run=sqla_model(id=None, version=None, default_only=True, is_default=True, model=None, scenario=None, id__in=None, version__in=None, version__lt=None, version__gte=None, version__lte=None, version__gt=None)), table: bool | None = Query(False), pagination: ~ixmp4.server.rest.base.Pagination = Depends(NoneType), backend: ~ixmp4.data.backend.db.SqlAlchemyBackend = Depends(get_managed_backend)) EnumerationOutput[Region]
ixmp4.server.rest.iamc.timeseries module
- class ixmp4.server.rest.iamc.timeseries.TimeSeriesInput(*, run__id: int, parameters: Mapping[str, Any])
Bases:
BaseModel
- model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True, 'from_attributes': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- ixmp4.server.rest.iamc.timeseries.bulk_upsert(df: DataFrame, create_related: bool = Query(False), backend: SqlAlchemyBackend = Depends(get_managed_backend)) Response
- ixmp4.server.rest.iamc.timeseries.create(timeseries: TimeSeriesInput, backend: SqlAlchemyBackend = Depends(get_managed_backend)) TimeSeries
- ixmp4.server.rest.iamc.timeseries.get_by_id(id: int, backend: SqlAlchemyBackend = Depends(get_managed_backend)) TimeSeries
- ixmp4.server.rest.iamc.timeseries.query(join_parameters: bool | None = Query(False), filter: ~ixmp4.data.db.iamc.timeseries.filter.TimeSeriesFilter = Body(id=None id__in=None run=sqla_model(id=None, version=None, default_only=True, is_default=None, model=None, scenario=None, id__in=None, version__in=None, version__lt=None, version__gte=None, version__lte=None, version__gt=None) region=None variable=None unit=None), table: bool | None = Query(False), pagination: ~ixmp4.server.rest.base.Pagination = Depends(NoneType), backend: ~ixmp4.data.backend.db.SqlAlchemyBackend = Depends(get_managed_backend)) EnumerationOutput[TimeSeries]
- ixmp4.server.rest.iamc.timeseries.tabulate_versions(filter: TabulateVersionArgs = Body(transaction__id=None), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) DataFrame