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_delete()

ixmp4.server.rest.iamc.datapoint.bulk_upsert(df: DataFrame, backend: SqlAlchemyBackend = Depends(get_managed_backend)) None

ixmp4.server.rest.iamc.datapoint.bulk_upsert()

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.datapoint.tabulate_versions()

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].

parameters: Mapping[str, Any]
run__id: int
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.query()

ixmp4.server.rest.iamc.timeseries.tabulate_versions(filter: TabulateVersionArgs = Body(transaction__id=None), pagination: Pagination = Depends(NoneType), backend: SqlAlchemyBackend = Depends(get_managed_backend)) DataFrame

Module contents