Files

53 lines
1.6 KiB
TypeScript
Raw Permalink Normal View History

import type { CityDetail } from "@/lib/dashboard-types";
export function getProbabilityView(detail: CityDetail, targetDate?: string | null) {
const date = targetDate || detail.local_date;
if (date === detail.local_date) {
return {
calibrationMode: detail.probabilities?.calibration_mode ?? null,
calibrationVersion: detail.probabilities?.calibration_version ?? null,
engine: detail.probabilities?.engine ?? null,
mu: detail.probabilities?.mu ?? null,
probabilities: detail.probabilities?.distribution || [],
probabilitiesAll:
detail.probabilities?.distribution_all ||
detail.probabilities?.distribution ||
[],
shadowProbabilities: detail.probabilities?.shadow_distribution || [],
shadowProbabilitiesAll:
detail.probabilities?.shadow_distribution_all ||
detail.probabilities?.shadow_distribution ||
[],
};
}
const daily = detail.multi_model_daily?.[date];
return {
calibrationMode: null,
calibrationVersion: null,
engine: null,
mu: daily?.deb?.prediction ?? null,
probabilities: daily?.probabilities || [],
probabilitiesAll: daily?.probabilities_all || daily?.probabilities || [],
shadowProbabilities: [],
shadowProbabilitiesAll: [],
};
}
export function getModelView(detail: CityDetail, targetDate?: string | null) {
const date = targetDate || detail.local_date;
const daily = detail.multi_model_daily?.[date];
2026-05-06 18:24:15 +08:00
const deb = detail.deb?.prediction ?? daily?.deb?.prediction ?? null;
if (daily) {
return {
2026-05-06 18:24:15 +08:00
deb,
models: daily.models || {},
};
}
return {
2026-05-06 18:24:15 +08:00
deb,
models: detail.multi_model || {},
};
}