From 1f3a3c931707e77a18962981da28f5371826b7ee Mon Sep 17 00:00:00 2001 From: "Alinson S. Xavier" Date: Wed, 22 Feb 2023 15:41:39 -0600 Subject: [PATCH] web: Add driving metric, fix missing defaults --- relog-web/src/casebuilder/ParametersBlock.js | 7 +++++ relog-web/src/casebuilder/defaults.js | 1 + relog-web/src/casebuilder/export.js | 27 ++++++++++++++++++-- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/relog-web/src/casebuilder/ParametersBlock.js b/relog-web/src/casebuilder/ParametersBlock.js index dcd6f94..ed1d489 100644 --- a/relog-web/src/casebuilder/ParametersBlock.js +++ b/relog-web/src/casebuilder/ParametersBlock.js @@ -37,6 +37,13 @@ const ParametersBlock = (props) => { onChange={(v) => onChangeField("inflation rate (%)", v)} validate="float" /> + onChangeField("distance metric", v)} + default="Euclidean" + /> diff --git a/relog-web/src/casebuilder/defaults.js b/relog-web/src/casebuilder/defaults.js index 0d9d56e..96d9cf3 100644 --- a/relog-web/src/casebuilder/defaults.js +++ b/relog-web/src/casebuilder/defaults.js @@ -44,6 +44,7 @@ export const defaultData = { "time horizon (years)": "1", "building period (years)": "[1]", "inflation rate (%)": "0", + "distance metric": "Euclidean", }, products: {}, plants: {}, diff --git a/relog-web/src/casebuilder/export.js b/relog-web/src/casebuilder/export.js index 692f0e6..dc1426c 100644 --- a/relog-web/src/casebuilder/export.js +++ b/relog-web/src/casebuilder/export.js @@ -26,7 +26,7 @@ export const exportValue = (original, T, R = 1, data = {}) => { return evaluateExpr(original.toString(), data); } } catch { - // ignore + // ignore; } try { @@ -319,6 +319,14 @@ export const exportData = (original) => { ["time horizon (years)", "building period (years)"].forEach((key) => { result.parameters[key] = exportValue(original.parameters[key]); }); + ["distance metric"].forEach((key) => { + if (original.parameters[key].length > 0) { + result.parameters[key] = original.parameters[key]; + } + }); + + console.log(original.parameters); + console.log(result.parameters); // Read time horizon let T = result.parameters["time horizon (years)"]; @@ -424,6 +432,11 @@ export const importPlant = (original) => { plant[key] = null; }); + // Initialize defaults + if (!original["outputs (tonne/tonne)"]) { + original["outputs (tonne/tonne)"] = {}; + } + // Import scalar values ["input"].forEach((key) => { plant[key] = original[key]; @@ -443,7 +456,6 @@ export const importPlant = (original) => { }); let costsInitialized = false; - let R = null; // Read locations const resLocDict = (plant.locations = {}); @@ -492,6 +504,14 @@ export const importPlant = (original) => { parameters["inflation rate (%)"] = String((R - 1) * 100); parameters["time horizon (years)"] = String(T); + // Initialize defaults + if (!origLocDict.storage) { + origLocDict.storage = { + "cost ($/tonne)": new Array(T).fill(0), + "limit (tonne)": new Array(T).fill(0), + }; + } + // Read adjusted costs const importListAcf = (obj) => importList( @@ -576,6 +596,9 @@ export const importData = (original) => { ["building period (years)"].forEach((k) => { result.parameters[k] = JSON.stringify(original.parameters[k]); }); + ["distance metric"].forEach((k) => { + result.parameters[k] = original.parameters[k]; + }); result.parameters["inflation rate (%)"] = "0"; // Import products