_comuns/dist/GEE/Escopo3/downstream/rodoviarioDownstream/rodoviario4.js
2024-05-07 10:50:06 -03:00

125 lines
No EOL
5.9 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.escopo3rodoviarioDownstream4 = void 0;
const resposta_1 = require("../../../../resposta");
const fatorEmissaoCombustivel_1 = require("../../../ListasFatoresEmissao/fatorEmissaoCombustivel");
const gwp_1 = require("../../../ListasFatoresEmissao/gwp");
const listaFatorAno_1 = require("../../../ListasFatoresEmissao/listaFatorAno");
const listas_1 = require("../../../ListasFatoresEmissao/listas");
const tiposVeiculos_1 = require("../../../ListasFatoresEmissao/tiposVeiculos");
const interfaces_1 = require("../../../interfaces");
exports.escopo3rodoviarioDownstream4 = {
escopo: "Escopo3",
idTipoFonte: "escopo3rodoviarioDownstream4",
descricao: "Rodoviário por distância percorrida no ano (Downstream)",
estruturaCadastro: [
{
idCampo: "tipo",
descricao: "Tipo da frota de veículo",
tipo: interfaces_1.tiposCamposGee.opcoes,
opcoes: listas_1.listaVeiculos,
},
{
idCampo: "ano",
descricao: "Ano do veículo",
tipo: interfaces_1.tiposCamposGee.opcoes,
opcoes: listas_1.listaAno,
},
],
estruturaRegistro: [
{
campo: "distancia",
descricao: "Distância mensal percorrida (Km)",
tipo: interfaces_1.tiposCamposGee.numero,
},
],
formula: ({ cad, reg, inventario }) => {
//Cadastro e Registro
const detalheTipoVeiculo = Object.values(tiposVeiculos_1.tiposDeVeiculosDetalhe).find((a) => a.descricao == cad.tipo);
if (!detalheTipoVeiculo) {
return resposta_1.respostaCM.addErro("não foi encontrado tipo de veiculo");
}
const ano = cad.ano;
if (!ano) {
return resposta_1.respostaCM.addErro("não foi encontrado ano da frota");
}
const distancia = reg.distancia;
//Fatores de emissão
let [CH4, CO2, N2O, BIO, QTDCombustivelBio, QTDCombustivelFossil] = [
0, 0, 0, 0, 0, 0,
];
//Seleção de gasolina
if (detalheTipoVeiculo.categoria == "Gasolina") {
CH4 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[0].fator_emissao_CH4;
CO2 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[0].fator_emissao_CO2;
N2O = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[0].fator_emissao_N2O;
BIO = 1;
QTDCombustivelFossil =
distancia *
(1 -
listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percGasolina);
QTDCombustivelBio =
distancia *
(1 - listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percBio);
}
//Seleção de etanol
else if (detalheTipoVeiculo.categoria == "Etanol") {
CH4 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[8].fator_emissao_CH4;
CO2 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[8].fator_emissao_CO2;
N2O = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[8].fator_emissao_N2O;
BIO = 1;
QTDCombustivelFossil =
distancia *
(1 -
listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percGasolina);
QTDCombustivelBio =
distancia *
(1 - listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percBio);
}
//Seleção do GNV
else if (detalheTipoVeiculo.categoria == "GNV") {
CH4 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[2].fator_emissao_CH4;
CO2 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[2].fator_emissao_CO2;
N2O = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[2].fator_emissao_N2O;
BIO = 1;
QTDCombustivelFossil = distancia;
}
//Seleção do Diesel
else if (detalheTipoVeiculo.categoria == "Diesel") {
CH4 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[1].fator_emissao_CH4;
CO2 = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[1].fator_emissao_CO2;
N2O = fatorEmissaoCombustivel_1.fatorEmissaoCombustivel[1].fator_emissao_N2O;
// eslint-disable-next-line @typescript-eslint/no-unused-vars
BIO = 1;
QTDCombustivelFossil =
distancia *
(1 -
listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percGasolina);
// eslint-disable-next-line @typescript-eslint/no-unused-vars
QTDCombustivelBio =
distancia *
(1 - listaFatorAno_1.listaFatorAno[Number(inventario.anoInventario) - 2000].percBio);
}
const fatores = listaFatorAno_1.listaFatorAno.find((a) => a.ano == Number(ano));
fatores?.automovelEtanol;
//seleção de consumo médio sugerido
const fatorAno = listaFatorAno_1.listaFatorAno.find((a) => a.ano == Number(ano));
if (!fatorAno) {
return resposta_1.respostaCM.addErro("não foi encontrado fator de ano");
}
const consumoMedio = fatorAno[detalheTipoVeiculo.tipo];
const calculoCombustivel = distancia / consumoMedio;
const emissaoCO2 = QTDCombustivelFossil * (CO2 / 1000);
const emissaoCH4 = (CH4 * calculoCombustivel) / 1000;
const emissaoN2O = (N2O * calculoCombustivel) / 1000;
//Calculo de carbono Final
const carbono = emissaoCO2 * Number(gwp_1.gwp[0].gwp) +
emissaoCH4 * Number(gwp_1.gwp[1].gwp) +
emissaoN2O * Number(gwp_1.gwp[2].gwp);
//Calculo de Biocombustivel
const bio = QTDCombustivelBio * 0.8;
//Arredondamento
return resposta_1.respostaCM.addResultado([carbono, bio]);
},
};
//# sourceMappingURL=rodoviario4.js.map