Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -0,0 +1,34 @@
|
|||||||
|
export function funktionDoppelteInterpolation(SuchSpalte: number, DatenZeile: number, dataZeile: any, dataBox: any): number {
|
||||||
|
|
||||||
|
function interpolate(x: number, x0: number, y0: number, x1: number, y1: number): number {
|
||||||
|
return y0 + ((y1 - y0) * (x - x0)) / (x1 - x0);
|
||||||
|
}
|
||||||
|
|
||||||
|
function findNearestPoints(data: any[], value: number, key: string): any[] {
|
||||||
|
let lower = data[0];
|
||||||
|
let upper = data[data.length - 1];
|
||||||
|
|
||||||
|
for (let i = 0; i < data.length - 1; i++) {
|
||||||
|
if (data[i][key][0] <= value && data[i + 1][key][0] >= value) {
|
||||||
|
lower = data[i];
|
||||||
|
upper = data[i + 1];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return [lower, upper];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const [lowerSuchSpalte, upperSuchSpalte] = findNearestPoints(dataBox, SuchSpalte, 'SuchSpalte');
|
||||||
|
const lowerIndex = dataZeile[0].DatenZeile.findIndex((val: number) => val >= DatenZeile) - 1;
|
||||||
|
const upperIndex = lowerIndex + 1;
|
||||||
|
|
||||||
|
const lowerDatenZeile = dataZeile[0].DatenZeile[lowerIndex];
|
||||||
|
const upperDatenZeile = dataZeile[0].DatenZeile[upperIndex];
|
||||||
|
|
||||||
|
const lowerDatenSpalte = interpolate(DatenZeile, lowerDatenZeile, lowerSuchSpalte.DatenSpalte[lowerIndex], upperDatenZeile, lowerSuchSpalte.DatenSpalte[upperIndex]);
|
||||||
|
const upperDatenSpalte = interpolate(DatenZeile, lowerDatenZeile, upperSuchSpalte.DatenSpalte[lowerIndex], upperDatenZeile, upperSuchSpalte.DatenSpalte[upperIndex]);
|
||||||
|
|
||||||
|
return interpolate(SuchSpalte, lowerSuchSpalte.SuchSpalte[0], lowerDatenSpalte, upperSuchSpalte.SuchSpalte[0], upperDatenSpalte);
|
||||||
|
}
|
||||||
@@ -1,6 +1,5 @@
|
|||||||
import { datasetGesamtluftWechselKorrekturfaktorNettoVolumen1500T14T15 } from "#lib/Berechnungen/BedarfsausweisWohnen/datasetGesamtluftWechselKorrekturfaktorNettoVolumen1500T14T15.js";
|
import { datasetGesamtluftWechselKorrekturfaktorNettoVolumen1500T14T15 } from "#lib/Berechnungen/BedarfsausweisWohnen/datasetGesamtluftWechselKorrekturfaktorNettoVolumen1500T14T15.js";
|
||||||
import { funktionDoppelteInterpolation } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionDoppelteInterpolation.js";
|
import { funktionDoppelteInterpolation } from "#lib/Berechnungen/BedarfsausweisWohnen/funktionDoppelteInterpolation.js";
|
||||||
import { date } from "astro:schema";
|
|
||||||
|
|
||||||
|
|
||||||
export function funktionGesamtluftWechselKorrekturfaktorNettoVolumen1500T14T15(LueftungsAnlage: string, LuftDichtheit: string, LueftungBedarfsgefuehrt: string, suchSpalte: number, datenZeile: number): any | null {
|
export function funktionGesamtluftWechselKorrekturfaktorNettoVolumen1500T14T15(LueftungsAnlage: string, LuftDichtheit: string, LueftungBedarfsgefuehrt: string, suchSpalte: number, datenZeile: number): any | null {
|
||||||
@@ -59,5 +58,5 @@ return {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const result = funktionGesamtluftWechselKorrekturfaktorNettoVolumen1500T14T15("Zu-/Abluftanlage", "Kategorie I - mit geplanter Dichtheitsprüfung", "bedarfsgeführt", 0, 0.1);
|
const result = funktionGesamtluftWechselKorrekturfaktorNettoVolumen1500T14T15("Zu-/Abluftanlage", "Kategorie I - mit geplanter Dichtheitsprüfung", "bedarfsgeführt", 0, 0.000001);
|
||||||
console.log(result);
|
console.log(result);
|
||||||
Reference in New Issue
Block a user