message_ix_models.model.transport.data.MERtoPPP
- class message_ix_models.model.transport.data.MERtoPPP(source, source_kw)[source]
Bases:
ExoDataSource
Provider of exogenous MERtoPPP data.
- Parameters:
source_kw – Must include exactly the keys “measure” (must be “MERtoPPP”) and “nodes” (the ID of the node code list).
- __init__(source, source_kw)[source]
Handle source and source_kw.
An implementation must:
Raise
ValueError
if it does not recognize or cannot handle the arguments in source or source_kw.Recognize and handle (if possible) a “measure” keyword in source_kw from
MEASURES
.
It may:
Transform these into other values, for instance by mapping certain values to others, applying regular expressions, or other operations.
Store those values as instance attributes for use in
__call__()
.Set
name
and/orextra_dims
to control the behaviour ofprepare_computer()
.Log messages that give information that may help to debug a
ValueError
for source or source_kw that cannot be handled.
It should not actually load data or perform any time- or memory-intensive operations; these should only be triggered by
__call__()
.
Methods
__init__
(source, source_kw)Handle source and source_kw.
raise_on_extra_kw
(kwargs)Helper for subclasses to handle the source_kw argument.
transform
(c, base_key)Prepare c to transform raw data from base_key.
Attributes
True
iftransform()
should aggregate data on the \(n\) dimension.Optional additional dimensions for the returned
Key
/Quantity
.Identifier for this particular source.
True
iftransform()
should interpolate data on the \(y\) dimension.- aggregate: bool = True
True
iftransform()
should aggregate data on the \(n\) dimension.
- extra_dims: Tuple[str, ...] = ()
Optional additional dimensions for the returned
Key
/Quantity
. If not set by__init__()
, the dimensions are \((n, y)\).
- interpolate: bool = True
True
iftransform()
should interpolate data on the \(y\) dimension.
- name: str = ''
Optional name for the returned
Key
/Quantity
. If not set by__init__()
, then the “measure” keyword is used.
- raise_on_extra_kw(kwargs) None
Helper for subclasses to handle the source_kw argument.
Store
aggregate
andinterpolate
, if they remain in kwargs.Raise
ValueError
if there are any other, unhandled keyword arguments in kwargs.
- transform(c: Computer, base_key: Key) Key
Prepare c to transform raw data from base_key.
base_key identifies the
Quantity
that is returned by__call__()
. Before the data is returned,transform()
allows the data source to add additional tasks or computations to c that further transform the data. (These operations may be done in__call__()
directly, buttransform()
allows use of othergenno
operators and conveniences.)The default implementation:
If
aggregate
isTrue
, aggregates the data (genno.operator.aggregate()
) on the \(n\) dimension using the key “n::groups”.If
interpolate
isTrue
, interpolates the data (genno.operator.interpolate()
) on the \(y\) dimension using “y::coords”.