Merge pull request #342 from IBCornelsen/Jens
Überarbeitet und auf funktionDoppelteInterpolation umgestellt
This commit is contained in:
@@ -1,177 +1,162 @@
|
||||
// Funktion zur Berechnung des monatlichen Belastungsgrades aus Tabelle 9 EFH und Tabelle 11 MFH
|
||||
|
||||
import { cubicSplineInterpolation } from "js-interpolate";
|
||||
import { funktionDoppelteInterpolation } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionDoppelteInterpolation.js";
|
||||
|
||||
let WohnEinheiten = 3;
|
||||
// aus Eingabeformular
|
||||
let WohnEinheiten = 2;
|
||||
let teilBeheizung = "mit Teilbeheizung";
|
||||
|
||||
const datasetEinfamilienHausMittlereBelastung = {
|
||||
Januar: {
|
||||
50: [ 0.557, 0.554, 0.55, 0.543, 0.536, 0.533, 0.531, 0.53, 0.53 ],
|
||||
90: [ 0.562, 0.559, 0.555, 0.548, 0.541, 0.538, 0.536, 0.535, 0.535 ],
|
||||
130: [ 0.567, 0.563, 0.56, 0.553, 0.545, 0.542, 0.54, 0.539, 0.539 ],
|
||||
},
|
||||
Februar: {
|
||||
50: [ 0.531, 0.527, 0.524, 0.517, 0.51, 0.507, 0.505, 0.504, 0.505 ],
|
||||
90: [ 0.536, 0.532, 0.529, 0.522, 0.515, 0.512, 0.51, 0.51, 0.509 ],
|
||||
130: [ 0.54, 0.537, 0.533, 0.526, 0.52, 0.516, 0.515, 0.514, 0.513 ],
|
||||
},
|
||||
März: {
|
||||
50: [ 0.448, 0.445, 0.443, 0.437, 0.431, 0.427, 0.427, 0.426, 0.426 ],
|
||||
90: [ 0.453, 0.45, 0.447, 0.441, 0.436, 0.433, 0.431, 0.431, 0.43 ],
|
||||
130: [ 0.457, 0.454, 0.451, 0.445, 0.439, 0.435, 0.435, 0.434, 0.434 ],
|
||||
},
|
||||
April: {
|
||||
50: [ 0.317, 0.314, 0.313, 0.308, 0.305, 0.303, 0.302, 0.301, 0.301 ],
|
||||
90: [ 0.32, 0.318, 0.316, 0.311, 0.307, 0.306, 0.305, 0.304, 0.304 ],
|
||||
130: [ 0.322, 0.32, 0.318, 0.314, 0.31, 0.308, 0.307, 0.307, 0.306 ],
|
||||
},
|
||||
Mai: {
|
||||
50: [ 0.173, 0.172, 0.171, 0.169, 0.166, 0.165, 0.165, 0.165, 0.164 ],
|
||||
90: [ 0.175, 0.173, 0.172, 0.17, 0.168, 0.167, 0.166, 0.166, 0.166 ],
|
||||
130: [ 0.176, 0.175, 0.174, 0.172, 0.169, 0.168, 0.168, 0.168, 0.167 ],
|
||||
},
|
||||
Juni: {
|
||||
50: [ 0.097, 0.096, 0.096, 0.094, 0.093, 0.092, 0.092, 0.092, 0.092 ],
|
||||
90: [ 0.098, 0.097, 0.096, 0.095, 0.094, 0.093, 0.093, 0.093, 0.093 ],
|
||||
130: [ 0.098, 0.097, 0.096, 0.095, 0.094, 0.094, 0.094, 0.094, 0.094 ],
|
||||
},
|
||||
Juli: {
|
||||
50: [ 0.029, 0.029, 0.029, 0.029, 0.028, 0.028, 0.028, 0.028, 0.028 ],
|
||||
90: [ 0.03, 0.029, 0.029, 0.029, 0.028, 0.028, 0.028, 0.028, 0.028 ],
|
||||
130: [ 0.03, 0.03, 0.029, 0.029, 0.028, 0.028, 0.028, 0.028, 0.028 ],
|
||||
},
|
||||
August: {
|
||||
50: [ 0.041, 0.041, 0.041, 0.04, 0.04, 0.04, 0.039, 0.039, 0.039 ],
|
||||
90: [ 0.041, 0.041, 0.041, 0.04, 0.04, 0.04, 0.039, 0.039, 0.039 ],
|
||||
130: [ 0.042, 0.041, 0.041, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04 ],
|
||||
},
|
||||
September: {
|
||||
50: [ 0.167, 0.166, 0.165, 0.163, 0.161, 0.16, 0.159, 0.159, 0.159 ],
|
||||
90: [ 0.169, 0.168, 0.167, 0.164, 0.162, 0.161, 0.161, 0.161, 0.16 ],
|
||||
130: [ 0.17, 0.169, 0.168, 0.166, 0.164, 0.163, 0.162, 0.162, 0.162 ],
|
||||
},
|
||||
Oktober: {
|
||||
50: [ 0.308, 0.306, 0.304, 0.3, 0.296, 0.294, 0.293, 0.293, 0.293 ],
|
||||
90: [ 0.311, 0.309, 0.307, 0.303, 0.299, 0.297, 0.296, 0.296, 0.295 ],
|
||||
130: [ 0.313, 0.311, 0.309, 0.305, 0.301, 0.3, 0.299, 0.298, 0.298 ],
|
||||
},
|
||||
November: {
|
||||
50: [ 0.466, 0.463, 0.46, 0.454, 0.448, 0.445, 0.444, 0.443, 0.443 ],
|
||||
90: [ 0.471, 0.467, 0.465, 0.459, 0.453, 0.45, 0.448, 0.448, 0.447 ],
|
||||
130: [ 0.474, 0.471, 0.469, 0.462, 0.456, 0.454, 0.453, 0.451, 0.451 ],
|
||||
},
|
||||
Dezember: {
|
||||
50: [ 0.56, 0.557, 0.553, 0.546, 0.539, 0.536, 0.534, 0.533, 0.533 ],
|
||||
90: [ 0.565, 0.562, 0.558, 0.551, 0.544, 0.54, 0.539, 0.538, 0.537 ],
|
||||
130: [ 0.57, 0.566, 0.563, 0.555, 0.548, 0.545, 0.543, 0.542, 0.542 ],
|
||||
},
|
||||
}
|
||||
|
||||
const datasetMehrfamilienHausMittlereBelastung = {
|
||||
Januar: {
|
||||
50: [0.575, 0.574, 0.573, 0.570, 0.567, 0.566, 0.566, 0.565, 0.565],
|
||||
90: [0.578, 0.577, 0.575, 0.573, 0.570, 0.569, 0.568, 0.568, 0.568],
|
||||
130: [0.580, 0.579, 0.578, 0.575, 0.572, 0.571, 0.571, 0.570, 0.570],
|
||||
},
|
||||
Februar: {
|
||||
50: [0.548, 0.547, 0.546, 0.543, 0.541, 0.539, 0.539, 0.538, 0.538],
|
||||
90: [0.551, 0.549, 0.548, 0.546, 0.543, 0.542, 0.541, 0.541, 0.541],
|
||||
130: [0.553, 0.552, 0.550, 0.548, 0.545, 0.544, 0.543, 0.543, 0.543],
|
||||
},
|
||||
März: {
|
||||
50: [0.463, 0.462, 0.461, 0.459, 0.457, 0.456, 0.455, 0.455, 0.455],
|
||||
90: [0.465, 0.464, 0.463, 0.461, 0.459, 0.458, 0.458, 0.457, 0.457],
|
||||
130: [0.467, 0.466, 0.465, 0.463, 0.461, 0.460, 0.459, 0.459, 0.459],
|
||||
},
|
||||
April: {
|
||||
50: [0.327, 0.326, 0.326, 0.324, 0.323, 0.322, 0.321, 0.321, 0.321],
|
||||
90: [0.329, 0.328, 0.327, 0.326, 0.324, 0.323, 0.323, 0.323, 0.323],
|
||||
130: [0.330, 0.329, 0.328, 0.327, 0.325, 0.325, 0.324, 0.324, 0.324],
|
||||
},
|
||||
Mai: {
|
||||
50: [0.179, 0.178, 0.178, 0.177, 0.176, 0.176, 0.176, 0.176, 0.175],
|
||||
90: [0.179, 0.179, 0.179, 0.178, 0.177, 0.177, 0.176, 0.176, 0.176],
|
||||
130: [0.180, 0.180, 0.179, 0.179, 0.178, 0.177, 0.177, 0.177, 0.177],
|
||||
},
|
||||
Juni: {
|
||||
50: [0.100, 0.100, 0.099, 0.099, 0.099, 0.098, 0.098, 0.098, 0.098],
|
||||
90: [0.100, 0.100, 0.100, 0.099, 0.099, 0.099, 0.099, 0.099, 0.099],
|
||||
130: [0.101, 0.101, 0.100, 0.100, 0.099, 0.099, 0.099, 0.099, 0.099],
|
||||
},
|
||||
Juli: {
|
||||
50: [0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030],
|
||||
90: [0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030],
|
||||
130: [0.031, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030],
|
||||
},
|
||||
August: {
|
||||
50: [0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042],
|
||||
90: [0.043, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042],
|
||||
130: [0.043, 0.043, 0.043, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042],
|
||||
},
|
||||
September: {
|
||||
50: [0.173, 0.172, 0.172, 0.171, 0.170, 0.170, 0.170, 0.170, 0.170],
|
||||
90: [0.173, 0.173, 0.173, 0.172, 0.171, 0.171, 0.170, 0.170, 0.170],
|
||||
130: [0.174, 0.174, 0.173, 0.173, 0.172, 0.171, 0.171, 0.171, 0.171],
|
||||
},
|
||||
Oktober: {
|
||||
50: [0.318, 0.317, 0.317, 0.315, 0.314, 0.313, 0.313, 0.312, 0.312],
|
||||
90: [0.319, 0.319, 0.318, 0.317, 0.315, 0.314, 0.314, 0.314, 0.314],
|
||||
130: [0.321, 0.320, 0.319, 0.318, 0.316, 0.316, 0.315, 0.315, 0.315],
|
||||
},
|
||||
November: {
|
||||
50: [0.481, 0.480, 0.479, 0.477, 0.475, 0.474, 0.473, 0.473, 0.473],
|
||||
90: [0.484, 0.483, 0.482, 0.479, 0.477, 0.476, 0.476, 0.475, 0.475],
|
||||
130: [0.486, 0.485, 0.484, 0.481, 0.479, 0.478, 0.477, 0.477, 0.477],
|
||||
},
|
||||
Dezember: {
|
||||
50: [0.578, 0.577, 0.576, 0.573, 0.570, 0.569, 0.569, 0.568, 0.568],
|
||||
90: [0.581, 0.580, 0.578, 0.576, 0.573, 0.572, 0.571, 0.571, 0.571],
|
||||
130: [0.583, 0.582, 0.581, 0.578, 0.575, 0.574, 0.574, 0.573, 0.573],
|
||||
},
|
||||
const datasetEinfamilienHaus = {
|
||||
Januar: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.557, 0.554, 0.55, 0.543, 0.536, 0.533, 0.531, 0.53, 0.53] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.562, 0.559, 0.555, 0.548, 0.541, 0.538, 0.536, 0.535, 0.535] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.567, 0.563, 0.56, 0.553, 0.545, 0.542, 0.54, 0.539, 0.539] },
|
||||
],
|
||||
Februar: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.531, 0.527, 0.524, 0.517, 0.51, 0.507, 0.505, 0.504, 0.505] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.536, 0.532, 0.529, 0.522, 0.515, 0.512, 0.51, 0.51, 0.509] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.54, 0.537, 0.533, 0.526, 0.52, 0.516, 0.515, 0.514, 0.513] },
|
||||
],
|
||||
März: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.448, 0.445, 0.443, 0.437, 0.431, 0.427, 0.427, 0.426, 0.426] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.453, 0.45, 0.447, 0.441, 0.436, 0.433, 0.431, 0.431, 0.43] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.457, 0.454, 0.451, 0.445, 0.439, 0.435, 0.435, 0.434, 0.434] },
|
||||
],
|
||||
April: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.317, 0.314, 0.313, 0.308, 0.305, 0.303, 0.302, 0.301, 0.301] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.32, 0.318, 0.316, 0.311, 0.307, 0.306, 0.305, 0.304, 0.304] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.322, 0.32, 0.318, 0.314, 0.31, 0.308, 0.307, 0.307, 0.306] },
|
||||
],
|
||||
Mai: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.173, 0.172, 0.171, 0.169, 0.166, 0.165, 0.165, 0.165, 0.164] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.175, 0.173, 0.172, 0.17, 0.168, 0.167, 0.166, 0.166, 0.166] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.176, 0.175, 0.174, 0.172, 0.169, 0.168, 0.168, 0.168, 0.167] },
|
||||
],
|
||||
Juni: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.097, 0.096, 0.096, 0.094, 0.093, 0.092, 0.092, 0.092, 0.092] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.098, 0.097, 0.096, 0.095, 0.094, 0.093, 0.093, 0.093, 0.093] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.098, 0.097, 0.096, 0.095, 0.094, 0.094, 0.094, 0.094, 0.094] },
|
||||
],
|
||||
Juli: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.029, 0.029, 0.029, 0.029, 0.028, 0.028, 0.028, 0.028, 0.028] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.03, 0.029, 0.029, 0.029, 0.028, 0.028, 0.028, 0.028, 0.028] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.03, 0.03, 0.029, 0.029, 0.028, 0.028, 0.028, 0.028, 0.028] },
|
||||
],
|
||||
August: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.041, 0.041, 0.041, 0.04, 0.04, 0.04, 0.039, 0.039, 0.039] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.041, 0.041, 0.041, 0.04, 0.04, 0.04, 0.039, 0.039, 0.039] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.042, 0.041, 0.041, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04] },
|
||||
],
|
||||
September: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.167, 0.166, 0.165, 0.163, 0.161, 0.16, 0.159, 0.159, 0.159] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.169, 0.168, 0.167, 0.164, 0.162, 0.161, 0.161, 0.161, 0.16] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.17, 0.169, 0.168, 0.166, 0.164, 0.163, 0.162, 0.162, 0.162] },
|
||||
],
|
||||
Oktober: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.308, 0.306, 0.304, 0.3, 0.296, 0.294, 0.293, 0.293, 0.293] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.311, 0.309, 0.307, 0.303, 0.299, 0.297, 0.296, 0.296, 0.295] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.313, 0.311, 0.309, 0.305, 0.301, 0.3, 0.299, 0.298, 0.298] },
|
||||
],
|
||||
November: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.466, 0.463, 0.46, 0.454, 0.448, 0.445, 0.444, 0.443, 0.443] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.471, 0.467, 0.465, 0.459, 0.453, 0.45, 0.448, 0.448, 0.447] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.474, 0.471, 0.469, 0.462, 0.456, 0.454, 0.453, 0.451, 0.451] },
|
||||
],
|
||||
Dezember: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.56, 0.557, 0.553, 0.546, 0.539, 0.536, 0.534, 0.533, 0.533] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.565, 0.562, 0.558, 0.551, 0.544, 0.54, 0.539, 0.538, 0.537] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.57, 0.566, 0.563, 0.555, 0.548, 0.545, 0.543, 0.542, 0.542] },
|
||||
],
|
||||
};
|
||||
|
||||
function getDatasetBelastung(WohnEinheiten: number) {
|
||||
if (WohnEinheiten < 3) {
|
||||
return datasetEinfamilienHausMittlereBelastung;
|
||||
} else {
|
||||
return datasetMehrfamilienHausMittlereBelastung;
|
||||
|
||||
const datasetMehrfamilienHaus = {
|
||||
Januar: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.575, 0.574, 0.573, 0.570, 0.567, 0.566, 0.566, 0.565, 0.565] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.578, 0.577, 0.575, 0.573, 0.570, 0.569, 0.568, 0.568, 0.568] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.580, 0.579, 0.578, 0.575, 0.572, 0.571, 0.571, 0.570, 0.570] },
|
||||
],
|
||||
Februar: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.548, 0.547, 0.546, 0.543, 0.541, 0.539, 0.539, 0.538, 0.538] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.551, 0.549, 0.548, 0.546, 0.543, 0.542, 0.541, 0.541, 0.541] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.553, 0.552, 0.550, 0.548, 0.545, 0.544, 0.543, 0.543, 0.543] },
|
||||
],
|
||||
März: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.463, 0.462, 0.461, 0.459, 0.457, 0.456, 0.455, 0.455, 0.455] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.465, 0.464, 0.463, 0.461, 0.459, 0.458, 0.458, 0.457, 0.457] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.467, 0.466, 0.465, 0.463, 0.461, 0.460, 0.459, 0.459, 0.459] },
|
||||
],
|
||||
April: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.327, 0.326, 0.326, 0.324, 0.323, 0.322, 0.321, 0.321, 0.321] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.329, 0.328, 0.327, 0.326, 0.324, 0.323, 0.323, 0.323, 0.323] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.330, 0.329, 0.328, 0.327, 0.325, 0.325, 0.324, 0.324, 0.324] },
|
||||
],
|
||||
Mai: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.179, 0.178, 0.178, 0.177, 0.176, 0.176, 0.176, 0.176, 0.175] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.179, 0.179, 0.179, 0.178, 0.177, 0.177, 0.176, 0.176, 0.176] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.180, 0.180, 0.179, 0.179, 0.178, 0.177, 0.177, 0.177, 0.177] },
|
||||
],
|
||||
Juni: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.100, 0.100, 0.099, 0.099, 0.099, 0.098, 0.098, 0.098, 0.098] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.100, 0.100, 0.100, 0.099, 0.099, 0.099, 0.099, 0.099, 0.099] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.101, 0.101, 0.100, 0.100, 0.099, 0.099, 0.099, 0.099, 0.099] },
|
||||
],
|
||||
Juli: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.031, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030, 0.030] },
|
||||
],
|
||||
August: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.043, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.043, 0.043, 0.043, 0.042, 0.042, 0.042, 0.042, 0.042, 0.042] },
|
||||
],
|
||||
September: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.173, 0.172, 0.172, 0.171, 0.170, 0.170, 0.170, 0.170, 0.170] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.173, 0.173, 0.173, 0.172, 0.171, 0.171, 0.170, 0.170, 0.170] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.174, 0.174, 0.173, 0.173, 0.172, 0.171, 0.171, 0.171, 0.171] },
|
||||
],
|
||||
Oktober: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.318, 0.317, 0.317, 0.315, 0.314, 0.313, 0.313, 0.312, 0.312] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.319, 0.319, 0.318, 0.317, 0.315, 0.314, 0.314, 0.314, 0.314] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.321, 0.320, 0.319, 0.318, 0.316, 0.316, 0.315, 0.315, 0.315] },
|
||||
],
|
||||
November: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.481, 0.480, 0.479, 0.477, 0.475, 0.474, 0.473, 0.473, 0.473] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.484, 0.483, 0.482, 0.479, 0.477, 0.476, 0.476, 0.475, 0.475] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.486, 0.485, 0.484, 0.481, 0.479, 0.478, 0.477, 0.477, 0.477] },
|
||||
],
|
||||
Dezember: [
|
||||
{ SuchSpalte: [50], DatenSpalte: [0.578, 0.577, 0.576, 0.573, 0.570, 0.569, 0.569, 0.568, 0.568] },
|
||||
{ SuchSpalte: [90], DatenSpalte: [0.581, 0.580, 0.578, 0.576, 0.573, 0.572, 0.571, 0.571, 0.571] },
|
||||
{ SuchSpalte: [130], DatenSpalte: [0.583, 0.582, 0.581, 0.578, 0.575, 0.574, 0.574, 0.573, 0.573] },
|
||||
],
|
||||
};
|
||||
|
||||
function getDataset(WohnEinheiten: number) {
|
||||
if (WohnEinheiten < 3) {
|
||||
return datasetEinfamilienHaus;
|
||||
} else {
|
||||
return datasetMehrfamilienHaus;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const dataset = getDatasetBelastung(WohnEinheiten);
|
||||
|
||||
const dataset = getDataset(WohnEinheiten);
|
||||
|
||||
// Für "Ohne Teilbeheizung" habe ich hier einfach 0 eingesetzt:
|
||||
const HeizLast = [0, 5, 10, 25, 50, 75, 100, 125, 150];
|
||||
const dataZeile = [{ DatenZeile: [0, 5, 10, 25, 50, 75, 100, 125, 150] }];
|
||||
|
||||
// Um über die beiden Tabellen zu interpolieren können wir einfach zuerst über
|
||||
// jede einzeln interpolieren und dann zwischen den Tabellen interpolieren.
|
||||
// Falls wir also den Wert an Stelle Heizlast: 120, Zeitkonstante 100, Monat:
|
||||
// Januar haben wollen:
|
||||
export function funktionMonatlicherBelastungsgradT9T11 (heizlast: number, zeitkonstane: number, monat: keyof typeof dataset) {
|
||||
const data = dataset[monat]
|
||||
|
||||
const interpolations: number[] = []
|
||||
export function funktionMonatlicherBelastungsgradT9T11(datenZeile: number, suchSpalte: number, monat: keyof typeof dataset): number {
|
||||
|
||||
for (const key in data) {
|
||||
const values = data[key as unknown as keyof typeof data]
|
||||
if (teilBeheizung === "ohne Teilbeheizung") {datenZeile = 0;}
|
||||
|
||||
const interpolated = cubicSplineInterpolation(
|
||||
values.map((value, i) => ({ x: HeizLast[i], y: value })),
|
||||
heizlast
|
||||
)
|
||||
if (suchSpalte < 50) { suchSpalte = 50; }
|
||||
if (suchSpalte > 130) { suchSpalte = 130; }
|
||||
if (datenZeile < 5) { datenZeile = 5; }
|
||||
if (datenZeile > 150) { datenZeile = 150; }
|
||||
|
||||
interpolations.push(interpolated)
|
||||
}
|
||||
const dataBox = dataset[monat]
|
||||
const MonatlicherBelastungsgradT9T11 = funktionDoppelteInterpolation(suchSpalte, datenZeile, dataZeile, dataBox);
|
||||
return MonatlicherBelastungsgradT9T11;
|
||||
|
||||
const interpolated = cubicSplineInterpolation(
|
||||
interpolations.map((interpolation, i) => {
|
||||
return {
|
||||
x: Object.keys(data)[i],
|
||||
y: interpolation
|
||||
}
|
||||
}),
|
||||
zeitkonstane
|
||||
)
|
||||
|
||||
return interpolated
|
||||
}
|
||||
Reference in New Issue
Block a user