@betagouv/publicodes-voiture
v0.3.2
Published
Modèle de calcul de l'impact environnemental et du coût de la voiture
Downloads
212
Maintainers
Keywords
Readme
Modèle de calcul des coûts et de l'empreinte CO2e de la possession et
l'utilisation d'une voiture individuelle et de ses alternatives. Il existe un
client autonome agir-voiture
et
une intégration est en cours dans l'application
J'agis.
[!WARNING] Ce projet est en cours de construction et est susceptible de fortement évoluer. Voir le document de travail pour plus d'informations sur le projet.
Usage
Ajouter le paquet à vos dépendances :
yarn add @betagouv/publicodes-voiture
Avec la classe CarSimulator
Afin de faciliter la réutilisation du modèle, ce paquet expose en plus des
règles Publicodes (accessibles depuis
./src/rules
, une classe
CarSimulator
qui encapsule un moteur Publicodes.
[!NOTE] To see the full API documentation, please refer to jsDocs.io.
import { CarSimulator } from "@betagouv/publicodes-voiture"
// Initialisation du moteur (parsing des règles Publicodes)
const simulator = new CarSimulator()
// Définition des paramètres (cad. les réponses aux questions)
simulator.setInputs({
"voiture . prix d'achat": 10000,
"voiture . occasion": true,
"voiture . gabarit": "moyenne",
"voiture . motorisation": "thermique",
"voiture . thermique . carburant": "gazole B7 ou B10",
"usage . km annuels . connus": true,
"usage . km annuels . renseignés": 5000,
"voiture . thermique . prix carburant": 5,
"voiture . durée de détention totale": 10,
// ...
})
// Calcul pour la voiture "actuelle"
console.log(simulator.evaluateCar())
// Sortie :
{
emissions: {
value: 1115.731110659287,
unit: "kgCO2e",
title: "Empreinte carbone annuelle de votre voiture",
isEnumValue: false,
isApplicable: true,
},
cost: {
value: 4344.882978723404,
unit: "€/an",
title: "Coûts annuels de votre voiture",
isEnumValue: false,
isApplicable: true,
},
size: {
value: "moyenne",
unit: undefined,
title: "Monospace",
isEnumValue: true,
isApplicable: true,
},
motorisation: {
value: "thermique",
unit: undefined,
title: "Thermique",
isEnumValue: true,
isApplicable: true,
},
fuel: {
value: "gazole B7 ou B10",
unit: undefined,
title: "Diesel",
isEnumValue: true,
isApplicable: true,
},
}
// Calcul des alternatives
const alternatives = simulator.evaluateAlternatives()
// Récupération des informations de la voiture cibles afin de filtrer les alternatives
// non compatibles (ex: ne pas proposer une voiture électrique si la personne
// n'a pas la possibilité de pouvoir recharger sa voiture quotidiennement).
simulator.setInputs(
{
"voiture . cible . gabarit": "SUV",
"voiture . cible . borne de recharge": false,
},
{
// Permet de simplement mettre à jours les entrées au lieu de les écraser
// (comportement par défaut).
overwrite: false
},
)
console.log(simulator.evaluateTargetInfos())
// Sortie :
{
size: {
value: "SUV",
unit: undefined,
title: "SUV",
isEnumValue: true,
isApplicable: true,
},
hasChargingStation: {
value: false,
unit: undefined,
title: "Borne de recharge",
isEnumValue: false,
isApplicable: true,
}
}
Avec le moteur Publicodes
Il est également possible d'utiliser uniquement les règles Publicodes directement avec
@betagouv/publicodes-voiture/rules
:
import Engine from "publicodes"
import rules from "@betagouv/publicodes-voiture/rules"
const engine = new Engine(rules)
engine.setSituation({
"voiture . prix d'achat": "10000 €",
"voiture . occasion": "oui",
"usage . km annuels . renseignés": "1000 km/mois",
//...
})
const costs = engine.evaluate("coûts")
const emissions = engine.evaluate("empreinte")
En local
Compiler le modèle
Les règles Publicodes du modèle sont disponible dans le dossier
rules/
.
yarn compile:rules
Lancer les tests
yarn test
Lancer la documentation
Le code de la documentation est disponible dans le dossier
online-doc/
.
Pour lancer l'app React en local permettant de parcourir la documentation du modèle, il suffit d'exécuter la commande suivante :
yarn install --cwd doc
yarn doc
Publier une nouvelle version
Afin de publier une nouvelle version il suffit d'exécuter la commande yarn
version
.