Source code for co2mpas.core.model.selector.models.co2_params

# -*- coding: utf-8 -*-
#
# Copyright 2015-2019 European Commission (JRC);
# Licensed under the EUPL (the 'Licence');
# You may not use this work except in compliance with the Licence.
# You may obtain a copy of the Licence at: http://ec.europa.eu/idabc/eupl
"""
Functions and constants to define the co2_params selector.
"""
import copy
import schedula as sh
from co2mpas.utils import mae
from ._core import define_sub_model
from ...physical.engine.fc import dsp as _fc

#: Model name.
name = 'co2_params'

#: Parameters that constitute the model.
models = [
    'co2_params_calibrated', 'calibration_status', 'initial_friction_params',
    'engine_idle_fuel_consumption', 'kco2_wltp_correction_factor'
]

#: Inputs required to run the model.
inputs = ['co2_emissions_model']

#: Relevant outputs of the model.
outputs = ['co2_emissions', 'calibration_status']

#: Targets to compare the outputs of the model.
targets = ['identified_co2_emissions', 'calibration_status']

#: Weights coefficients to compute the model score.
weights = sh.map_list(targets, 1, None)


# noinspection PyUnusedLocal
[docs]def metric_calibration_status(y_true, y_pred): """ Metric for the `calibration_status`. :param y_true: Reference calibration_status. :type y_true: list :param y_pred: Predicted calibration_status. :type y_pred: list :return: Error. :rtype: list """ return [v[0] for v in y_pred]
#: Metrics to compare outputs with targets. metrics = sh.map_list(targets, mae, metric_calibration_status) #: Upper score limits to raise the warnings. up_limit = {'identified_co2_emissions': 0.5} #: Prediction model. # noinspection PyProtectedMember dsp = sh.Blueprint(copy.deepcopy(_fc).add_data( 'kco2_wltp_correction_factor' ), inputs, outputs, models)._set_cls(define_sub_model)