Skip to content

Commit

Permalink
Un-hardcode 'baseline', use config.referenceScenarioObject instead
Browse files Browse the repository at this point in the history
Closes #63
  • Loading branch information
yongrenjie committed Nov 2, 2023
1 parent e16036f commit e3aecd7
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 25 deletions.
12 changes: 6 additions & 6 deletions web/src/data/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ import scenario7 from "src/data/scenarios/scenario7.json";

// One of the scenarios is used as the 'reference', against which values are
// scaled.
const referenceScenarioFile = baseline;
const referenceScenarioObject = baseline;

// Range to scale all indicator values between (for the baseline).
const scale = {
Expand All @@ -47,7 +47,7 @@ const scale = {
}

// List all the other scenarios here.
const otherScenarioFiles = [
const otherScenarioObjects = [
scenario1,
scenario1,
scenario2,
Expand Down Expand Up @@ -157,8 +157,8 @@ interface Config {
initialLatitude: number;
initialLongitude: number;
initialZoom: number;
referenceScenarioFile: ScenarioObject;
otherScenarioFiles: ScenarioObject[];
referenceScenarioObject: ScenarioObject;
otherScenarioObjects: ScenarioObject[];
signatures: { name: string, color: string }[];
allIndicators: Map<IndicatorName, Indicator>;
allInputs: Map<InputName, Input>;
Expand All @@ -175,8 +175,8 @@ const config: Config = {
initialZoom: initialZoom,
geography: geography as GeoJSON.FeatureCollection,
featureIdentifier: featureIdentifier,
referenceScenarioFile: referenceScenarioFile,
otherScenarioFiles: otherScenarioFiles,
referenceScenarioObject: referenceScenarioObject,
otherScenarioObjects: otherScenarioObjects,
signatures: signatures,
allIndicators: allIndicators,
allInputs: allInputs,
Expand Down
6 changes: 3 additions & 3 deletions web/src/initialise.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export function setupReferenceScenarioUnscaled(): Scenario {
// `null` to avoid scaling. The ScaleFactorMap that we use for
// everything else will be returned by this function. Likewise for the
// validAreaNames parameter.
return fromScenarioObject(config.referenceScenarioFile, null, null, "reference scenario");
return fromScenarioObject(config.referenceScenarioObject, null, null, "reference scenario");
}

/* This function returns a set of all valid area names, as read from the
Expand Down Expand Up @@ -51,8 +51,8 @@ export function setupScenarioMap(
validAreaNames: Set<string>,
): Map<string, Scenario> {
const allScenarioObjects = [
config.referenceScenarioFile,
...config.otherScenarioFiles
config.referenceScenarioObject,
...config.otherScenarioObjects
];
const scenarioList = allScenarioObjects.map((scenarioObject, i) => {
return fromScenarioObject(scenarioObject, scaleFactors, validAreaNames, `scenario #${i}`);
Expand Down
32 changes: 16 additions & 16 deletions web/src/lib/leftSidebar/create/ModifyOutputAreas.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
$customScenarioInProgress = false;
});
function getBaselineSig(oaName: string): number {
function getReferenceSig(oaName: string): number {
return $allScenarios
.get("baseline")
.get(config.referenceScenarioObject.metadata.name)
.values.get(oaName)
.get("signature_type");
}
Expand All @@ -42,7 +42,7 @@
// editable layers
function getSingleOAChanges(
oaName: string
): Map<MacroVar | "baseline_sig", number | null> {
): Map<MacroVar | "reference_sig", number | null> {
const hasChanges = changes.has(oaName);
const thisChanges = changes.get(oaName);
return new Map([
Expand All @@ -53,7 +53,7 @@
["job_types", hasChanges ? thisChanges.get("job_types") : null],
["use", hasChanges ? thisChanges.get("use") : null],
["greenspace", hasChanges ? thisChanges.get("greenspace") : null],
["baseline_sig", getBaselineSig(oaName)],
["reference_sig", getReferenceSig(oaName)],
]);
}
Expand Down Expand Up @@ -88,7 +88,7 @@
thisOAChanges.set(macroVar, macroVarValue);
}
});
thisOAChanges.delete("baseline_sig");
thisOAChanges.delete("reference_sig");
changes.set(oa.name, thisOAChanges as Map<MacroVar, number>);
});
}
Expand Down Expand Up @@ -137,23 +137,23 @@
useModified = use !== null;
green = oaChanges.get("greenspace");
greenModified = green !== null;
baselineSig = oaChanges.get("baseline_sig");
referenceSig = oaChanges.get("reference_sig");
} else {
// More than one OA selected
const allSigs: Array<number | null> = oas.map((oa) =>
getSingleOAChanges(oa.name).get("signature_type")
);
const allBaselineSigs: Array<number> = oas.map((oa) =>
getSingleOAChanges(oa.name).get("baseline_sig")
const allReferenceSigs: Array<number> = oas.map((oa) =>
getSingleOAChanges(oa.name).get("reference_sig")
);
// If none of the values were changed, check if the baseline values
// If none of the values were changed, check if the reference values
// are all the same. If so, display that
if (allSigs.every((s) => s === null)) {
sigModified = false;
if (allBaselineSigs.every((s) => s === allBaselineSigs[0])) {
baselineSig = allBaselineSigs[0];
if (allReferenceSigs.every((s) => s === allReferenceSigs[0])) {
referenceSig = allReferenceSigs[0];
} else {
baselineSig = null;
referenceSig = null;
}
}
// If some of the values were changed, but not all, display an unchecked checkbox
Expand All @@ -163,7 +163,7 @@
) {
sig = null;
sigModified = false;
baselineSig = null;
referenceSig = null;
}
// If we reached here, then that means that all of the values were
// changed to something else.
Expand Down Expand Up @@ -216,7 +216,7 @@
// Variables for OA modifiers
let sig: number | null = null;
let sigModified: boolean;
let baselineSig: null | number;
let referenceSig: null | number;
let job: number | null = null;
let jobModified: boolean;
let use: number | null = null;
Expand Down Expand Up @@ -267,7 +267,7 @@
bind:checked={sigModified}
on:change={() => {
if (sigModified) {
sig = baselineSig;
sig = referenceSig;
}
if ($clickedOAs.length > 1 && !sigModified) {
sig = null;
Expand All @@ -288,7 +288,7 @@
{/each}
</select>
{:else}
<select id="sig-dropdown" value={baselineSig} disabled>
<select id="sig-dropdown" value={referenceSig} disabled>
{#each [...config.signatures.entries()] as [signatureId, signature]}
<option value={signatureId}
>{signatureId}: {signature.name}</option
Expand Down

0 comments on commit e3aecd7

Please sign in to comment.