feat: update lake index, sync scraping scripts, and prune unused data files

This commit is contained in:
David Fencl
2026-06-05 22:24:47 +02:00
parent 61a8af109c
commit 5411bd16ff
33 changed files with 1793 additions and 3127 deletions
+27 -4
View File
@@ -16,9 +16,13 @@ const lakes = lakesConfig.map(lake => {
let currentFlow = 0;
let sparkline: number[] = Array(12).fill(0);
let capacity = 0;
let volume = 0;
let inflow = 0;
if (fs.existsSync(DATA_FILE)) {
try {
const data: DataRecord[] = JSON.parse(fs.readFileSync(DATA_FILE, 'utf-8'));
const data: any[] = JSON.parse(fs.readFileSync(DATA_FILE, 'utf-8'));
if (data.length > 0) {
// Find latest valid record or just the last record
const lastValidLevelData = [...data].reverse().find(d => d.level !== null && !isNaN(d.level));
@@ -35,11 +39,29 @@ const lakes = lakesConfig.map(lake => {
while (sparkline.length < 12) {
sparkline.unshift(0);
}
const latest = data[data.length - 1];
if (latest.volume && latest.volume > 0) {
volume = latest.volume;
}
if (latest.inflow !== undefined) {
inflow = latest.inflow;
}
}
} catch (e) {
console.error(`Error reading data for ${internalId}`, e);
}
}
if (lake.minLevel && lake.maxLevel && currentLevel > 0) {
const percentage = ((currentLevel - lake.minLevel) / (lake.maxLevel - lake.minLevel)) * 100;
capacity = Math.max(0, Math.min(100, Math.round(percentage * 10) / 10)); // Round to 1 decimal place
if (volume === 0) {
volume = Number(((capacity / 100) * (lake.maxVolume || 0)).toFixed(1));
}
} else {
if (volume === 0) volume = lake.maxVolume || 0;
}
return {
id: lake.id,
@@ -47,10 +69,11 @@ const lakes = lakesConfig.map(lake => {
river: lake.text.includes('-') ? lake.text.split('-')[1].trim() : '',
priority: lake.priority || false,
level: currentLevel.toFixed(2),
capacity: 0, // Removed fake capacity
inflow: currentFlow.toFixed(1),
capacity: capacity,
inflow: inflow.toFixed(1),
outflow: currentFlow.toFixed(1),
volume: lake.maxVolume || 0, // Using real maxVolume if known
volume: volume,
maxVolume: lake.maxVolume || 0,
lat: lake.coords[0],
lng: lake.coords[1],
sparkline