Partial implementation of meb, the conten type seems to be wrong
This commit is contained in:
parent
3827a3138f
commit
68e1fc5d20
2
main.js
2
main.js
@ -16,7 +16,7 @@ const createWindow = () => {
|
||||
app.whenReady().then(() => {
|
||||
ipcMain.handle('run', (_, param) => {
|
||||
Factory.get(param.workflow)
|
||||
Factory.workflow.run(param.application, param.buildings, './tmp/')
|
||||
Factory.workflow.run(param.application, param, './tmp/')
|
||||
})
|
||||
createWindow()
|
||||
app.on('window-all-closed', () => {
|
||||
|
@ -3,7 +3,12 @@
|
||||
padding-top: 5px;
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
.form-element label{
|
||||
width: 250px;
|
||||
}
|
||||
.form-element select{
|
||||
width: 204px;
|
||||
}
|
||||
#links {
|
||||
padding-left: 40px;
|
||||
padding-top: 20px;
|
||||
@ -23,3 +28,24 @@ h1 {
|
||||
width: 40%;
|
||||
padding-left: -10px;
|
||||
}
|
||||
#parameters {
|
||||
visibility: collapse;
|
||||
position: relative;
|
||||
}
|
||||
#runWorkflow {
|
||||
--bs-btn-color: #fff;
|
||||
--bs-btn-bg: #0d6efd;
|
||||
--bs-btn-border-color: #0d6efd;
|
||||
--bs-btn-hover-color: #fff;
|
||||
--bs-btn-hover-bg: #0b5ed7;
|
||||
--bs-btn-hover-border-color: #0a58ca;
|
||||
--bs-btn-focus-shadow-rgb: 49,132,253;
|
||||
--bs-btn-active-color: #fff;
|
||||
--bs-btn-active-bg: #0a58ca;
|
||||
--bs-btn-active-border-color: #0a53be;
|
||||
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
--bs-btn-disabled-color: #fff;
|
||||
--bs-btn-disabled-bg: #0d6efd;
|
||||
--bs-btn-disabled-border-color: #0d6efd;
|
||||
margin-top: 20px;
|
||||
}
|
@ -9,39 +9,58 @@
|
||||
</head>
|
||||
<body>
|
||||
<a href="../../index.html" class="nav-link"><i class="bi bi-house-fill"></i> Home</a>
|
||||
<h1><img src="logo/logo.png" id="img_logo"> Monthly energy balance workflow</h1>
|
||||
<h1><img src="logo/logo.png" id="img_logo">INSEL monthly energy balance workflow</h1>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<form id="form">
|
||||
<div class="form-element">
|
||||
<input type="file" id="avatar" name="avatar" accept="geojson/geojson, citygml/gml" />
|
||||
<input type="file" id="geometry_file" name="geometry_file" accept=".geojson, .gml"/>
|
||||
</div>
|
||||
<span class="geojson">
|
||||
Geojson parameters:<br>
|
||||
<div class="form-element">
|
||||
<label for="height_field">Height field</label><input type="text" id="height_field" name="height_field" />
|
||||
<div id="parameters">
|
||||
<div class="form-element" id="height">
|
||||
<label for="height_field" class="p-1">Height field</label><input type="text" id="height_field" name="height_field" />
|
||||
</div>
|
||||
<div class="form-element" id="function">
|
||||
<label for="function_field" class="p-1">Function field</label><input type="text" id="function_field" name="function_field" />
|
||||
</div>
|
||||
<div class="form-element" id="year_of_construction">
|
||||
<label for="year_of_construction_field" class="p-1">Year of construction field</label><input type="text" id="year_of_construction_field" name="year_of_construction_field" />
|
||||
</div>
|
||||
<div class="form-element">
|
||||
<label for="function_field">Function field</label><input type="text" id="function_field" name="function_field" />
|
||||
<label for="construction_handler" class="p-1">Construction handler</label>
|
||||
<select id="construction_handler" name="construction_handler">
|
||||
<option value="nrcan" selected>NRCAN</option>
|
||||
<option value="nrel">NREL</option>
|
||||
<option value="eilat">Eilat</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-element">
|
||||
<label for="year_of_construction_field">Year of construction field</label><input type="text" id="year_of_construction_field" name="year_of_construction_field" />
|
||||
<label for="usage_handler" class="p-1">Usage handler</label>
|
||||
<select id="usage_handler" name="usage_handler">
|
||||
<option value="nrcan" selected>NRCAN</option>
|
||||
<option value="comnet">Comnet</option>
|
||||
<option value="eilat">Eilat</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-element">
|
||||
<label for="construction_handler">Construction handler</label><input type="text" id="construction_handler" name="construction_handler" />
|
||||
<label for="function_to_hub" class="p-1">Function to hub dictionary</label>
|
||||
<select id="function_to_hub" name="function_to_hub">
|
||||
<option value="montreal" selected>Montreal</option>
|
||||
<option value="hft">Hft Alkis subset</option>
|
||||
<option value="alkis">Alkis</option>
|
||||
<option value="pluto">NYC Pluto</option>
|
||||
<option value="eilat">Eilat</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-element">
|
||||
<label for="usage_handler">Usage handler</label><input type="text" id="usage_handler" name="construction_handler" />
|
||||
<a href="#" id="runWorkflow" class="btn btn-bd-primary mb-4">Run workflow</a>
|
||||
</div>
|
||||
</span>
|
||||
<div class="form-element">
|
||||
<a href="#" id="runScenario" class="btn btn-bd-primary mb-4">Run scenario</a>
|
||||
</div>
|
||||
</form>
|
||||
<div id="links"></div>
|
||||
</div>
|
||||
<div class="col">
|
||||
<div id="info">Retrofit workflow access to the precalculated data bla bla bla, we may need to put some explanation over here</div>
|
||||
<div id="info">Insel monthly energy balance uses insel engine to calculate the monthly energy balance and the peak loads from the buildings in a geometry file, the process involves bla bla bla</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="./run.js"></script>
|
||||
|
@ -1,9 +1,11 @@
|
||||
const { dialog, BrowserWindow } = require ("electron");
|
||||
const { dialog, BrowserWindow } = require("electron");
|
||||
const fs = require('fs');
|
||||
const dotenv = require('dotenv')
|
||||
const session_start = 'https://nextgenerations-cities.encs.concordia.ca/api/v1.4/session/start'
|
||||
const retrofit_results = 'https://nextgenerations-cities.encs.concordia.ca/api/v1.4/workflow/insel-monthly-energy-balance'
|
||||
//const insel_meb = 'https://nextgenerations-cities.encs.concordia.ca/api/v1.4/workflow/insel-monthly-energy-balance'
|
||||
const insel_meb = 'http://127.0.0.1:15789/v1.4/workflow/insel-monthly-energy-balance'
|
||||
|
||||
exports.run = async (application, buildings, tmp_path) => {
|
||||
exports.run = async (application, param, tmp_path) => {
|
||||
console.log(`Executing ${application}`)
|
||||
dotenv.config({ path:__dirname+'/.env' })
|
||||
const application_uuid = process.env.APPLICATION;
|
||||
@ -20,157 +22,32 @@ exports.run = async (application, buildings, tmp_path) => {
|
||||
}
|
||||
});
|
||||
if (response.status == 200) {
|
||||
const application_response = await response.json()
|
||||
const session_id = response.headers.get('session_id')
|
||||
let token = response.headers.get('token')
|
||||
console.log(`token: ${token}`)
|
||||
request = new FormData()
|
||||
requestAnimationFrame
|
||||
application_response.scenarios.forEach((scenario) => {
|
||||
scenario_request = {}
|
||||
scenario_request[`${scenario}`] = buildings
|
||||
request['scenarios'].push(scenario_request)
|
||||
})
|
||||
response = await fetch(retrofit_results, {
|
||||
let formData = new FormData();
|
||||
formData.append('height_field', param['height_field'])
|
||||
formData.append('year_of_construction_field', param['year_of_construction_field'])
|
||||
formData.append('function_field', param['function_field'])
|
||||
formData.append('function_to_hub', param['function_to_hub'])
|
||||
formData.append('construction_handler', param['construction_handler'])
|
||||
formData.append('usage_handler', param['usage_handler'])
|
||||
formData.append('geometry_file', fs.createReadStream(param['geometry_file']));
|
||||
response = await fetch(insel_meb, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-type': 'application/json',
|
||||
'Content-type': 'multipart/form-data',
|
||||
'session-id': session_id,
|
||||
'token': token,
|
||||
'application-uuid': application_uuid,
|
||||
'accept': 'application/json'
|
||||
},
|
||||
body: JSON.stringify(request)
|
||||
body: formData
|
||||
}, 600000)
|
||||
console.log(`response: ${response.status}`)
|
||||
if (response.status == 200) {
|
||||
results = await response.json()
|
||||
|
||||
var meb_header = "SCENARIO;BUILDING NAME;TOTAL HEATING AREA"
|
||||
meb_header = `${meb_header};YEARLY COOLING DEMAND;YEARLY HEATING DEMAND;MONTHLY COOLING DEMAND(JAN);MONTHLY COOLING DEMAND(FEB);MONTHLY COOLING DEMAND(MAR);MONTHLY COOLING DEMAND(APR);MONTHLY COOLING DEMAND(MAY);MONTHLY COOLING DEMAND(JUN);MONTHLY COOLING DEMAND(JUL);MONTHLY COOLING DEMAND(AUG);MONTHLY COOLING DEMAND(SEPT);MONTHLY COOLING DEMAND(OCT);MONTHLY COOLING DEMAND(NOV);MONTHLY COOLING DEMAND(DEC);MONTHLY HEATING DEMAND(JAN);MONTHLY HEATING DEMAND(FEB);MONTHLY HEATING DEMAND(MAR);MONTHLY HEATING DEMAND(APR);MONTHLY HEATING DEMAND(MAY);MONTHLY HEATING DEMAND(JUN);MONTHLY HEATING DEMAND(JUL);MONTHLY HEATING DEMAND(AUG);MONTHLY HEATING DEMAND(SEPT);MONTHLY HEATING DEMAND(OCT);MONTHLY HEATING DEMAND(NOV);MONTHLY HEATING DEMAND(DEC)`
|
||||
meb_header = `${meb_header};YEARLY COOLING PEAK LOAD;YEARLY HEATING PEAK LOAD;MONTHLY COOLING PEAK LOAD (JAN);MONTHLY COOLING PEAK LOAD (FEB);MONTHLY COOLING PEAK LOAD (MAR);MONTHLY COOLING PEAK LOAD (APR);MONTHLY COOLING PEAK LOAD (MAY);MONTHLY COOLING PEAK LOAD (JUN);MONTHLY COOLING PEAK LOAD (JUL);MONTHLY COOLING PEAK LOAD (AUG);MONTHLY COOLING PEAK LOAD (SEPT);MONTHLY COOLING PEAK LOAD (OCT);MONTHLY COOLING PEAK LOAD (NOV);MONTHLY COOLING PEAK LOAD (DEC);MONTHLY HEATING PEAK LOAD (JAN);MONTHLY HEATING PEAK LOAD (FEB);MONTHLY HEATING PEAK LOAD (MAR);MONTHLY HEATING PEAK LOAD (APR);MONTHLY HEATING PEAK LOAD (MAY);MONTHLY HEATING PEAK LOAD (JUN);MONTHLY HEATING PEAK LOAD (JUL);MONTHLY HEATING PEAK LOAD (AUG);MONTHLY HEATING PEAK LOAD (SEPT);MONTHLY HEATING PEAK LOAD (OCT);MONTHLY HEATING PEAK LOAD (NOV);MONTHLY HEATING PEAK LOAD (DEC)`
|
||||
meb_header = `${meb_header};YEARLY LIGHTING PEAK LOAD;MONTHLY LIGHTING PEAK LOAD(JAN);MONTHLY LIGHTING PEAK LOAD(FEB);MONTHLY LIGHTING PEAK LOAD(MAR);MONTHLY LIGHTING PEAK LOAD(APR);MONTHLY LIGHTING PEAK LOAD(MAY);MONTHLY LIGHTING PEAK LOAD(JUN);MONTHLY LIGHTING PEAK LOAD(JUL);MONTHLY LIGHTING PEAK LOAD(AUG);MONTHLY LIGHTING PEAK LOAD(SEPT);MONTHLY LIGHTING PEAK LOAD(OCT);MONTHLY LIGHTING PEAK LOAD(NOV);MONTHLY LIGHTING PEAK LOAD(DEC)`
|
||||
meb_header = `${meb_header};YEARLY COOLING CONSUMPTION;YEARLY HEATING CONSUMPTION;MONTHLY COOLING CONSUMPTION(JAN);MONTHLY COOLING CONSUMPTION(FEB);MONTHLY COOLING CONSUMPTION(MAR);MONTHLY COOLING CONSUMPTION(APR);MONTHLY COOLING CONSUMPTION(MAY);MONTHLY COOLING CONSUMPTION(JUN);MONTHLY COOLING CONSUMPTION(JUL);MONTHLY COOLING CONSUMPTION(AUG);MONTHLY COOLING CONSUMPTION(SEPT);MONTHLY COOLING CONSUMPTION(OCT);MONTHLY COOLING CONSUMPTION(NOV);MONTHLY COOLING CONSUMPTION(DEC);MONTHLY HEATING CONSUMPTION(JAN);MONTHLY HEATING CONSUMPTION(FEB);MONTHLY HEATING CONSUMPTION(MAR);MONTHLY HEATING CONSUMPTION(APR);MONTHLY HEATING CONSUMPTION(MAY);MONTHLY HEATING CONSUMPTION(JUN);MONTHLY HEATING CONSUMPTION(JUL);MONTHLY HEATING CONSUMPTION(AUG);MONTHLY HEATING CONSUMPTION(SEPT);MONTHLY HEATING CONSUMPTION(OCT);MONTHLY HEATING CONSUMPTION(NOV);MONTHLY HEATING CONSUMPTION(DEC)`
|
||||
meb_header = `${meb_header};YEARLY APPLIANCES PEAK LOAD;MONTHLY APPLIANCES PEAK LOAD(JAN);MONTHLY APPLIANCES PEAK LOAD(FEB);MONTHLY APPLIANCES PEAK LOAD(MAR);MONTHLY APPLIANCES PEAK LOAD(APR);MONTHLY APPLIANCES PEAK LOAD(MAY);MONTHLY APPLIANCES PEAK LOAD(JUN);MONTHLY APPLIANCES PEAK LOAD(JUL);MONTHLY APPLIANCES PEAK LOAD(AUG);MONTHLY APPLIANCES PEAK LOAD(SEPT);MONTHLY APPLIANCES PEAK LOAD(OCT);MONTHLY APPLIANCES PEAK LOAD(NOV);MONTHLY APPLIANCES PEAK LOAD(DEC)`
|
||||
meb_header = `${meb_header};YEARLY LIGHTING ELECTRICAL DEMAND;MONTHLY LIGHTING ELECTRICAL DEMAND(JAN);MONTHLY LIGHTING ELECTRICAL DEMAND(FEB);MONTHLY LIGHTING ELECTRICAL DEMAND(MAR);MONTHLY LIGHTING ELECTRICAL DEMAND(APR);MONTHLY LIGHTING ELECTRICAL DEMAND(MAY);MONTHLY LIGHTING ELECTRICAL DEMAND(JUN);MONTHLY LIGHTING ELECTRICAL DEMAND(JUL);MONTHLY LIGHTING ELECTRICAL DEMAND(AUG);MONTHLY LIGHTING ELECTRICAL DEMAND(SEPT);MONTHLY LIGHTING ELECTRICAL DEMAND(OCT);MONTHLY LIGHTING ELECTRICAL DEMAND(NOV);MONTHLY LIGHTING ELECTRICAL DEMAND(DEC)`
|
||||
meb_header = `${meb_header};YEARLY APPLIANCES ELECTRICAL DEMAND;MONTHLY APPLIANCES ELECTRICAL DEMAND(JAN);MONTHLY APPLIANCES ELECTRICAL DEMAND(FEB);MONTHLY APPLIANCES ELECTRICAL DEMAND(MAR);MONTHLY APPLIANCES ELECTRICAL DEMAND(APR);MONTHLY APPLIANCES ELECTRICAL DEMAND(MAY);MONTHLY APPLIANCES ELECTRICAL DEMAND(JUN);MONTHLY APPLIANCES ELECTRICAL DEMAND(JUL);MONTHLY APPLIANCES ELECTRICAL DEMAND(AUG);MONTHLY APPLIANCES ELECTRICAL DEMAND(SEPT);MONTHLY APPLIANCES ELECTRICAL DEMAND(OCT);MONTHLY APPLIANCES ELECTRICAL DEMAND(NOV);MONTHLY APPLIANCES ELECTRICAL DEMAND(DEC)`
|
||||
meb_header = `${meb_header};YEARLY ON SITE ELECTRICAL PRODUCTION;MONTHLY ON SITE ELECTRICAL PRODUCTION(JAN);MONTHLY ON SITE ELECTRICAL PRODUCTION(FEB);MONTHLY ON SITE ELECTRICAL PRODUCTION(MAR);MONTHLY ON SITE ELECTRICAL PRODUCTION(APR);MONTHLY ON SITE ELECTRICAL PRODUCTION(MAY);MONTHLY ON SITE ELECTRICAL PRODUCTION(JUN);MONTHLY ON SITE ELECTRICAL PRODUCTION(JUL);MONTHLY ON SITE ELECTRICAL PRODUCTION(AUG);MONTHLY ON SITE ELECTRICAL PRODUCTION(SEPT);MONTHLY ON SITE ELECTRICAL PRODUCTION(OCT);MONTHLY ON SITE ELECTRICAL PRODUCTION(NOV);MONTHLY ON SITE ELECTRICAL PRODUCTION(DEC)`
|
||||
meb_header = `${meb_header};YEARLY DOMESTIC HOT WATER CONSUMPTION;YEARLY DOMESTIC HOT WATER HEAT DEMAND;MONTHLY DOMESTIC HOT WATER CONSUMPTION(JAN);MONTHLY DOMESTIC HOT WATER CONSUMPTION(FEB);MONTHLY DOMESTIC HOT WATER CONSUMPTION(MAR);MONTHLY DOMESTIC HOT WATER CONSUMPTION(APR);MONTHLY DOMESTIC HOT WATER CONSUMPTION(MAY);MONTHLY DOMESTIC HOT WATER CONSUMPTION(JUN);MONTHLY DOMESTIC HOT WATER CONSUMPTION(JUL);MONTHLY DOMESTIC HOT WATER CONSUMPTION(AUG);MONTHLY DOMESTIC HOT WATER CONSUMPTION(SEPT);MONTHLY DOMESTIC HOT WATER CONSUMPTION(OCT);MONTHLY DOMESTIC HOT WATER CONSUMPTION(NOV);MONTHLY DOMESTIC HOT WATER CONSUMPTION(DEC);MONTHLY DOMESTIC HOT WATER HEAT DEMAND(JAN);MONTHLY DOMESTIC HOT WATER HEAT DEMAND(FEB);MONTHLY DOMESTIC HOT WATER HEAT DEMAND(MAR);MONTHLY DOMESTIC HOT WATER HEAT DEMAND(APR);MONTHLY DOMESTIC HOT WATER HEAT DEMAND(MAY);MONTHLY DOMESTIC HOT WATER HEAT DEMAND(JUN);MONTHLY DOMESTIC HOT WATER HEAT DEMAND(JUL);MONTHLY DOMESTIC HOT WATER HEAT DEMAND(AUG);MONTHLY DOMESTIC HOT WATER HEAT DEMAND(SEPT);MONTHLY DOMESTIC HOT WATER HEAT DEMAND(OCT);MONTHLY DOMESTIC HOT WATER HEAT DEMAND(NOV);MONTHLY DOMESTIC HOT WATER HEAT DEMAND(DEC)`
|
||||
meb_header = `${meb_header};YEARLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION;MONTHLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION(JAN);MONTHLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION(FEB);MONTHLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION(MAR);MONTHLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION(APR);MONTHLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION(MAY);MONTHLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION(JUN);MONTHLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION(JUL);MONTHLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION(AUG);MONTHLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION(SEPT);MONTHLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION(OCT);MONTHLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION(NOV);MONTHLY DISTRIBUTION SYSTEMS ELECTRICAL CONSUMPTION(DEC)`
|
||||
|
||||
var costs_header = "SCENARIO;BUILDING NAME;TOTAL HEATING AREA"
|
||||
costs_header = `${costs_header};TOTAL CAPITAL COSTS SKIN;TOTAL CAPITAL COSTS SYSTEMS;END OF LIFE COSTS;TOTAL OPERATIONAL COSTS;TOTAL MAINTENANCE COSTS;OPERATIONAL INCOMES`
|
||||
costs_header = `${costs_header};B2010 OPAQUE WALLS(1);B2010 OPAQUE WALLS(2);B2010 OPAQUE WALLS(3);B2010 OPAQUE WALLS(4);B2010 OPAQUE WALLS(5);B2010 OPAQUE WALLS(6);B2010 OPAQUE WALLS(7);B2010 OPAQUE WALLS(8);B2010 OPAQUE WALLS(9);B2010 OPAQUE WALLS(10);B2010 OPAQUE WALLS(11);B2010 OPAQUE WALLS(12);B2010 OPAQUE WALLS(13);B2010 OPAQUE WALLS(14);B2010 OPAQUE WALLS(15);B2010 OPAQUE WALLS(16);B2010 OPAQUE WALLS(17);B2010 OPAQUE WALLS(18);B2010 OPAQUE WALLS(19);B2010 OPAQUE WALLS(20);B2010 OPAQUE WALLS(21);B2010 OPAQUE WALLS(22);B2010 OPAQUE WALLS(23);B2010 OPAQUE WALLS(24);B2010 OPAQUE WALLS(25);B2010 OPAQUE WALLS(26);B2010 OPAQUE WALLS(27);B2010 OPAQUE WALLS(28);B2010 OPAQUE WALLS(29);B2010 OPAQUE WALLS(30);B2010 OPAQUE WALLS(31)`
|
||||
costs_header = `${costs_header};B2020 TRANSPARENT(1);B2020 TRANSPARENT(2);B2020 TRANSPARENT(3);B2020 TRANSPARENT(4);B2020 TRANSPARENT(5);B2020 TRANSPARENT(6);B2020 TRANSPARENT(7);B2020 TRANSPARENT(8);B2020 TRANSPARENT(9);B2020 TRANSPARENT(10);B2020 TRANSPARENT(11);B2020 TRANSPARENT(12);B2020 TRANSPARENT(13);B2020 TRANSPARENT(14);B2020 TRANSPARENT(15);B2020 TRANSPARENT(16);B2020 TRANSPARENT(17);B2020 TRANSPARENT(18);B2020 TRANSPARENT(19);B2020 TRANSPARENT(20);B2020 TRANSPARENT(21);B2020 TRANSPARENT(22);B2020 TRANSPARENT(23);B2020 TRANSPARENT(24);B2020 TRANSPARENT(25);B2020 TRANSPARENT(26);B2020 TRANSPARENT(27);B2020 TRANSPARENT(28);B2020 TRANSPARENT(29);B2020 TRANSPARENT(30);B2020 TRANSPARENT(31)`
|
||||
costs_header = `${costs_header};B3010 OPAQUE ROOF(1);B3010 OPAQUE ROOF(2);B3010 OPAQUE ROOF(3);B3010 OPAQUE ROOF(4);B3010 OPAQUE ROOF(5);B3010 OPAQUE ROOF(6);B3010 OPAQUE ROOF(7);B3010 OPAQUE ROOF(8);B3010 OPAQUE ROOF(9);B3010 OPAQUE ROOF(10);B3010 OPAQUE ROOF(11);B3010 OPAQUE ROOF(12);B3010 OPAQUE ROOF(13);B3010 OPAQUE ROOF(14);B3010 OPAQUE ROOF(15);B3010 OPAQUE ROOF(16);B3010 OPAQUE ROOF(17);B3010 OPAQUE ROOF(18);B3010 OPAQUE ROOF(19);B3010 OPAQUE ROOF(20);B3010 OPAQUE ROOF(21);B3010 OPAQUE ROOF(22);B3010 OPAQUE ROOF(23);B3010 OPAQUE ROOF(24);B3010 OPAQUE ROOF(25);B3010 OPAQUE ROOF(26);B3010 OPAQUE ROOF(27);B3010 OPAQUE ROOF(28);B3010 OPAQUE ROOF(29);B3010 OPAQUE ROOF(30);B3010 OPAQUE ROOF(31)`
|
||||
costs_header = `${costs_header};B10 SUPERSTRUCTURE(1);B10 SUPERSTRUCTURE(2);B10 SUPERSTRUCTURE(3);B10 SUPERSTRUCTURE(4);B10 SUPERSTRUCTURE(5);B10 SUPERSTRUCTURE(6);B10 SUPERSTRUCTURE(7);B10 SUPERSTRUCTURE(8);B10 SUPERSTRUCTURE(9);B10 SUPERSTRUCTURE(10);B10 SUPERSTRUCTURE(11);B10 SUPERSTRUCTURE(12);B10 SUPERSTRUCTURE(13);B10 SUPERSTRUCTURE(14);B10 SUPERSTRUCTURE(15);B10 SUPERSTRUCTURE(16);B10 SUPERSTRUCTURE(17);B10 SUPERSTRUCTURE(18);B10 SUPERSTRUCTURE(19);B10 SUPERSTRUCTURE(20);B10 SUPERSTRUCTURE(21);B10 SUPERSTRUCTURE(22);B10 SUPERSTRUCTURE(23);B10 SUPERSTRUCTURE(24);B10 SUPERSTRUCTURE(25);B10 SUPERSTRUCTURE(26);B10 SUPERSTRUCTURE(27);B10 SUPERSTRUCTURE(28);B10 SUPERSTRUCTURE(29);B10 SUPERSTRUCTURE(30);B10 SUPERSTRUCTURE(31)`
|
||||
costs_header = `${costs_header};D3020 HEAT GENERATING SYSTEMS(1);D3020 HEAT GENERATING SYSTEMS(2);D3020 HEAT GENERATING SYSTEMS(3);D3020 HEAT GENERATING SYSTEMS(4);D3020 HEAT GENERATING SYSTEMS(5);D3020 HEAT GENERATING SYSTEMS(6);D3020 HEAT GENERATING SYSTEMS(7);D3020 HEAT GENERATING SYSTEMS(8);D3020 HEAT GENERATING SYSTEMS(9);D3020 HEAT GENERATING SYSTEMS(10);D3020 HEAT GENERATING SYSTEMS(11);D3020 HEAT GENERATING SYSTEMS(12);D3020 HEAT GENERATING SYSTEMS(13);D3020 HEAT GENERATING SYSTEMS(14);D3020 HEAT GENERATING SYSTEMS(15);D3020 HEAT GENERATING SYSTEMS(16);D3020 HEAT GENERATING SYSTEMS(17);D3020 HEAT GENERATING SYSTEMS(18);D3020 HEAT GENERATING SYSTEMS(19);D3020 HEAT GENERATING SYSTEMS(20);D3020 HEAT GENERATING SYSTEMS(21);D3020 HEAT GENERATING SYSTEMS(22);D3020 HEAT GENERATING SYSTEMS(23);D3020 HEAT GENERATING SYSTEMS(24);D3020 HEAT GENERATING SYSTEMS(25);D3020 HEAT GENERATING SYSTEMS(26);D3020 HEAT GENERATING SYSTEMS(27);D3020 HEAT GENERATING SYSTEMS(28);D3020 HEAT GENERATING SYSTEMS(29);D3020 HEAT GENERATING SYSTEMS(30);D3020 HEAT GENERATING SYSTEMS(31)`
|
||||
costs_header = `${costs_header};D3030 COOLING GENERATION SYSTEMS(1);D3030 COOLING GENERATION SYSTEMS(2);D3030 COOLING GENERATION SYSTEMS(3);D3030 COOLING GENERATION SYSTEMS(4);D3030 COOLING GENERATION SYSTEMS(5);D3030 COOLING GENERATION SYSTEMS(6);D3030 COOLING GENERATION SYSTEMS(7);D3030 COOLING GENERATION SYSTEMS(8);D3030 COOLING GENERATION SYSTEMS(9);D3030 COOLING GENERATION SYSTEMS(10);D3030 COOLING GENERATION SYSTEMS(11);D3030 COOLING GENERATION SYSTEMS(12);D3030 COOLING GENERATION SYSTEMS(13);D3030 COOLING GENERATION SYSTEMS(14);D3030 COOLING GENERATION SYSTEMS(15);D3030 COOLING GENERATION SYSTEMS(16);D3030 COOLING GENERATION SYSTEMS(17);D3030 COOLING GENERATION SYSTEMS(18);D3030 COOLING GENERATION SYSTEMS(19);D3030 COOLING GENERATION SYSTEMS(20);D3030 COOLING GENERATION SYSTEMS(21);D3030 COOLING GENERATION SYSTEMS(22);D3030 COOLING GENERATION SYSTEMS(23);D3030 COOLING GENERATION SYSTEMS(24);D3030 COOLING GENERATION SYSTEMS(25);D3030 COOLING GENERATION SYSTEMS(26);D3030 COOLING GENERATION SYSTEMS(27);D3030 COOLING GENERATION SYSTEMS(28);D3030 COOLING GENERATION SYSTEMS(29);D3030 COOLING GENERATION SYSTEMS(30);D3030 COOLING GENERATION SYSTEMS(31)`
|
||||
costs_header = `${costs_header};D3080 OTHER HVAC AHU(1);D3080 OTHER HVAC AHU(2);D3080 OTHER HVAC AHU(3);D3080 OTHER HVAC AHU(4);D3080 OTHER HVAC AHU(5);D3080 OTHER HVAC AHU(6);D3080 OTHER HVAC AHU(7);D3080 OTHER HVAC AHU(8);D3080 OTHER HVAC AHU(9);D3080 OTHER HVAC AHU(10);D3080 OTHER HVAC AHU(11);D3080 OTHER HVAC AHU(12);D3080 OTHER HVAC AHU(13);D3080 OTHER HVAC AHU(14);D3080 OTHER HVAC AHU(15);D3080 OTHER HVAC AHU(16);D3080 OTHER HVAC AHU(17);D3080 OTHER HVAC AHU(18);D3080 OTHER HVAC AHU(19);D3080 OTHER HVAC AHU(20);D3080 OTHER HVAC AHU(21);D3080 OTHER HVAC AHU(22);D3080 OTHER HVAC AHU(23);D3080 OTHER HVAC AHU(24);D3080 OTHER HVAC AHU(25);D3080 OTHER HVAC AHU(26);D3080 OTHER HVAC AHU(27);D3080 OTHER HVAC AHU(28);D3080 OTHER HVAC AHU(29);D3080 OTHER HVAC AHU(30);D3080 OTHER HVAC AHU(31)`
|
||||
costs_header = `${costs_header};D5020 LIGHTING AND BRANCH WIRING(1);D5020 LIGHTING AND BRANCH WIRING(2);D5020 LIGHTING AND BRANCH WIRING(3);D5020 LIGHTING AND BRANCH WIRING(4);D5020 LIGHTING AND BRANCH WIRING(5);D5020 LIGHTING AND BRANCH WIRING(6);D5020 LIGHTING AND BRANCH WIRING(7);D5020 LIGHTING AND BRANCH WIRING(8);D5020 LIGHTING AND BRANCH WIRING(9);D5020 LIGHTING AND BRANCH WIRING(10);D5020 LIGHTING AND BRANCH WIRING(11);D5020 LIGHTING AND BRANCH WIRING(12);D5020 LIGHTING AND BRANCH WIRING(13);D5020 LIGHTING AND BRANCH WIRING(14);D5020 LIGHTING AND BRANCH WIRING(15);D5020 LIGHTING AND BRANCH WIRING(16);D5020 LIGHTING AND BRANCH WIRING(17);D5020 LIGHTING AND BRANCH WIRING(18);D5020 LIGHTING AND BRANCH WIRING(19);D5020 LIGHTING AND BRANCH WIRING(20);D5020 LIGHTING AND BRANCH WIRING(21);D5020 LIGHTING AND BRANCH WIRING(22);D5020 LIGHTING AND BRANCH WIRING(23);D5020 LIGHTING AND BRANCH WIRING(24);D5020 LIGHTING AND BRANCH WIRING(25);D5020 LIGHTING AND BRANCH WIRING(26);D5020 LIGHTING AND BRANCH WIRING(27);D5020 LIGHTING AND BRANCH WIRING(28);D5020 LIGHTING AND BRANCH WIRING(29);D5020 LIGHTING AND BRANCH WIRING(30);D5020 LIGHTING AND BRANCH WIRING(31)`
|
||||
costs_header = `${costs_header};D301010 PHOTOVOLTAIC SYSTEM(1);D301010 PHOTOVOLTAIC SYSTEM(2);D301010 PHOTOVOLTAIC SYSTEM(3);D301010 PHOTOVOLTAIC SYSTEM(4);D301010 PHOTOVOLTAIC SYSTEM(5);D301010 PHOTOVOLTAIC SYSTEM(6);D301010 PHOTOVOLTAIC SYSTEM(7);D301010 PHOTOVOLTAIC SYSTEM(8);D301010 PHOTOVOLTAIC SYSTEM(9);D301010 PHOTOVOLTAIC SYSTEM(10);D301010 PHOTOVOLTAIC SYSTEM(11);D301010 PHOTOVOLTAIC SYSTEM(12);D301010 PHOTOVOLTAIC SYSTEM(13);D301010 PHOTOVOLTAIC SYSTEM(14);D301010 PHOTOVOLTAIC SYSTEM(15);D301010 PHOTOVOLTAIC SYSTEM(16);D301010 PHOTOVOLTAIC SYSTEM(17);D301010 PHOTOVOLTAIC SYSTEM(18);D301010 PHOTOVOLTAIC SYSTEM(19);D301010 PHOTOVOLTAIC SYSTEM(20);D301010 PHOTOVOLTAIC SYSTEM(21);D301010 PHOTOVOLTAIC SYSTEM(22);D301010 PHOTOVOLTAIC SYSTEM(23);D301010 PHOTOVOLTAIC SYSTEM(24);D301010 PHOTOVOLTAIC SYSTEM(25);D301010 PHOTOVOLTAIC SYSTEM(26);D301010 PHOTOVOLTAIC SYSTEM(27);D301010 PHOTOVOLTAIC SYSTEM(28);D301010 PHOTOVOLTAIC SYSTEM(29);D301010 PHOTOVOLTAIC SYSTEM(30);D301010 PHOTOVOLTAIC SYSTEM(31)`
|
||||
costs_header = `${costs_header};GLOBAL END OF LIFE COSTS(1);GLOBAL END OF LIFE COSTS(2);GLOBAL END OF LIFE COSTS(3);GLOBAL END OF LIFE COSTS(4);GLOBAL END OF LIFE COSTS(5);GLOBAL END OF LIFE COSTS(6);GLOBAL END OF LIFE COSTS(7);GLOBAL END OF LIFE COSTS(8);GLOBAL END OF LIFE COSTS(9);GLOBAL END OF LIFE COSTS(10);GLOBAL END OF LIFE COSTS(11);GLOBAL END OF LIFE COSTS(12);GLOBAL END OF LIFE COSTS(13);GLOBAL END OF LIFE COSTS(14);GLOBAL END OF LIFE COSTS(15);GLOBAL END OF LIFE COSTS(16);GLOBAL END OF LIFE COSTS(17);GLOBAL END OF LIFE COSTS(18);GLOBAL END OF LIFE COSTS(19);GLOBAL END OF LIFE COSTS(20);GLOBAL END OF LIFE COSTS(21);GLOBAL END OF LIFE COSTS(22);GLOBAL END OF LIFE COSTS(23);GLOBAL END OF LIFE COSTS(24);GLOBAL END OF LIFE COSTS(25);GLOBAL END OF LIFE COSTS(26);GLOBAL END OF LIFE COSTS(27);GLOBAL END OF LIFE COSTS(28);GLOBAL END OF LIFE COSTS(29);GLOBAL END OF LIFE COSTS(30);GLOBAL END OF LIFE COSTS(31);GLOBAL END OF LIFE COSTS(32)`
|
||||
costs_header = `${costs_header};FIXED COSTS ELECTRICITY PEAK(1);FIXED COSTS ELECTRICITY PEAK(2);FIXED COSTS ELECTRICITY PEAK(3);FIXED COSTS ELECTRICITY PEAK(4);FIXED COSTS ELECTRICITY PEAK(5);FIXED COSTS ELECTRICITY PEAK(6);FIXED COSTS ELECTRICITY PEAK(7);FIXED COSTS ELECTRICITY PEAK(8);FIXED COSTS ELECTRICITY PEAK(9);FIXED COSTS ELECTRICITY PEAK(10);FIXED COSTS ELECTRICITY PEAK(11);FIXED COSTS ELECTRICITY PEAK(12);FIXED COSTS ELECTRICITY PEAK(13);FIXED COSTS ELECTRICITY PEAK(14);FIXED COSTS ELECTRICITY PEAK(15);FIXED COSTS ELECTRICITY PEAK(16);FIXED COSTS ELECTRICITY PEAK(17);FIXED COSTS ELECTRICITY PEAK(18);FIXED COSTS ELECTRICITY PEAK(19);FIXED COSTS ELECTRICITY PEAK(20);FIXED COSTS ELECTRICITY PEAK(21);FIXED COSTS ELECTRICITY PEAK(22);FIXED COSTS ELECTRICITY PEAK(23);FIXED COSTS ELECTRICITY PEAK(24);FIXED COSTS ELECTRICITY PEAK(25);FIXED COSTS ELECTRICITY PEAK(26);FIXED COSTS ELECTRICITY PEAK(27);FIXED COSTS ELECTRICITY PEAK(28);FIXED COSTS ELECTRICITY PEAK(29);FIXED COSTS ELECTRICITY PEAK(30);FIXED COSTS ELECTRICITY PEAK(31);FIXED COSTS ELECTRICITY PEAK(32)`
|
||||
costs_header = `${costs_header};FIXED COSTS ELECTRICITY MONTHLY(1);FIXED COSTS ELECTRICITY MONTHLY(2);FIXED COSTS ELECTRICITY MONTHLY(3);FIXED COSTS ELECTRICITY MONTHLY(4);FIXED COSTS ELECTRICITY MONTHLY(5);FIXED COSTS ELECTRICITY MONTHLY(6);FIXED COSTS ELECTRICITY MONTHLY(7);FIXED COSTS ELECTRICITY MONTHLY(8);FIXED COSTS ELECTRICITY MONTHLY(9);FIXED COSTS ELECTRICITY MONTHLY(10);FIXED COSTS ELECTRICITY MONTHLY(11);FIXED COSTS ELECTRICITY MONTHLY(12);FIXED COSTS ELECTRICITY MONTHLY(13);FIXED COSTS ELECTRICITY MONTHLY(14);FIXED COSTS ELECTRICITY MONTHLY(15);FIXED COSTS ELECTRICITY MONTHLY(16);FIXED COSTS ELECTRICITY MONTHLY(17);FIXED COSTS ELECTRICITY MONTHLY(18);FIXED COSTS ELECTRICITY MONTHLY(19);FIXED COSTS ELECTRICITY MONTHLY(20);FIXED COSTS ELECTRICITY MONTHLY(21);FIXED COSTS ELECTRICITY MONTHLY(22);FIXED COSTS ELECTRICITY MONTHLY(23);FIXED COSTS ELECTRICITY MONTHLY(24);FIXED COSTS ELECTRICITY MONTHLY(25);FIXED COSTS ELECTRICITY MONTHLY(26);FIXED COSTS ELECTRICITY MONTHLY(27);FIXED COSTS ELECTRICITY MONTHLY(28);FIXED COSTS ELECTRICITY MONTHLY(29);FIXED COSTS ELECTRICITY MONTHLY(30);FIXED COSTS ELECTRICITY MONTHLY(31);FIXED COSTS ELECTRICITY MONTHLY(32)`
|
||||
costs_header = `${costs_header};VARIABLE COSTS ELECTRICITY(1);VARIABLE COSTS ELECTRICITY(2);VARIABLE COSTS ELECTRICITY(3);VARIABLE COSTS ELECTRICITY(4);VARIABLE COSTS ELECTRICITY(5);VARIABLE COSTS ELECTRICITY(6);VARIABLE COSTS ELECTRICITY(7);VARIABLE COSTS ELECTRICITY(8);VARIABLE COSTS ELECTRICITY(9);VARIABLE COSTS ELECTRICITY(10);VARIABLE COSTS ELECTRICITY(11);VARIABLE COSTS ELECTRICITY(12);VARIABLE COSTS ELECTRICITY(13);VARIABLE COSTS ELECTRICITY(14);VARIABLE COSTS ELECTRICITY(15);VARIABLE COSTS ELECTRICITY(16);VARIABLE COSTS ELECTRICITY(17);VARIABLE COSTS ELECTRICITY(18);VARIABLE COSTS ELECTRICITY(19);VARIABLE COSTS ELECTRICITY(20);VARIABLE COSTS ELECTRICITY(21);VARIABLE COSTS ELECTRICITY(22);VARIABLE COSTS ELECTRICITY(23);VARIABLE COSTS ELECTRICITY(24);VARIABLE COSTS ELECTRICITY(25);VARIABLE COSTS ELECTRICITY(26);VARIABLE COSTS ELECTRICITY(27);VARIABLE COSTS ELECTRICITY(28);VARIABLE COSTS ELECTRICITY(29);VARIABLE COSTS ELECTRICITY(30);VARIABLE COSTS ELECTRICITY(31);VARIABLE COSTS ELECTRICITY(32)`
|
||||
costs_header = `${costs_header};FIXED COSTS GAS(1);FIXED COSTS GAS(2);FIXED COSTS GAS(3);FIXED COSTS GAS(4);FIXED COSTS GAS(5);FIXED COSTS GAS(6);FIXED COSTS GAS(7);FIXED COSTS GAS(8);FIXED COSTS GAS(9);FIXED COSTS GAS(10);FIXED COSTS GAS(11);FIXED COSTS GAS(12);FIXED COSTS GAS(13);FIXED COSTS GAS(14);FIXED COSTS GAS(15);FIXED COSTS GAS(16);FIXED COSTS GAS(17);FIXED COSTS GAS(18);FIXED COSTS GAS(19);FIXED COSTS GAS(20);FIXED COSTS GAS(21);FIXED COSTS GAS(22);FIXED COSTS GAS(23);FIXED COSTS GAS(24);FIXED COSTS GAS(25);FIXED COSTS GAS(26);FIXED COSTS GAS(27);FIXED COSTS GAS(28);FIXED COSTS GAS(29);FIXED COSTS GAS(30);FIXED COSTS GAS(31);FIXED COSTS GAS(32)`
|
||||
costs_header = `${costs_header};VARIABLE COSTS GAS(1);VARIABLE COSTS GAS(2);VARIABLE COSTS GAS(3);VARIABLE COSTS GAS(4);VARIABLE COSTS GAS(5);VARIABLE COSTS GAS(6);VARIABLE COSTS GAS(7);VARIABLE COSTS GAS(8);VARIABLE COSTS GAS(9);VARIABLE COSTS GAS(10);VARIABLE COSTS GAS(11);VARIABLE COSTS GAS(12);VARIABLE COSTS GAS(13);VARIABLE COSTS GAS(14);VARIABLE COSTS GAS(15);VARIABLE COSTS GAS(16);VARIABLE COSTS GAS(17);VARIABLE COSTS GAS(18);VARIABLE COSTS GAS(19);VARIABLE COSTS GAS(20);VARIABLE COSTS GAS(21);VARIABLE COSTS GAS(22);VARIABLE COSTS GAS(23);VARIABLE COSTS GAS(24);VARIABLE COSTS GAS(25);VARIABLE COSTS GAS(26);VARIABLE COSTS GAS(27);VARIABLE COSTS GAS(28);VARIABLE COSTS GAS(29);VARIABLE COSTS GAS(30);VARIABLE COSTS GAS(31);VARIABLE COSTS GAS(32)`
|
||||
costs_header = `${costs_header};HEATING MAINTENANCE(1);HEATING MAINTENANCE(2);HEATING MAINTENANCE(3);HEATING MAINTENANCE(4);HEATING MAINTENANCE(5);HEATING MAINTENANCE(6);HEATING MAINTENANCE(7);HEATING MAINTENANCE(8);HEATING MAINTENANCE(9);HEATING MAINTENANCE(10);HEATING MAINTENANCE(11);HEATING MAINTENANCE(12);HEATING MAINTENANCE(13);HEATING MAINTENANCE(14);HEATING MAINTENANCE(15);HEATING MAINTENANCE(16);HEATING MAINTENANCE(17);HEATING MAINTENANCE(18);HEATING MAINTENANCE(19);HEATING MAINTENANCE(20);HEATING MAINTENANCE(21);HEATING MAINTENANCE(22);HEATING MAINTENANCE(23);HEATING MAINTENANCE(24);HEATING MAINTENANCE(25);HEATING MAINTENANCE(26);HEATING MAINTENANCE(27);HEATING MAINTENANCE(28);HEATING MAINTENANCE(29);HEATING MAINTENANCE(30);HEATING MAINTENANCE(31);HEATING MAINTENANCE(32)`
|
||||
costs_header = `${costs_header};COOLING MAINTENANCE(1);COOLING MAINTENANCE(2);COOLING MAINTENANCE(3);COOLING MAINTENANCE(4);COOLING MAINTENANCE(5);COOLING MAINTENANCE(6);COOLING MAINTENANCE(7);COOLING MAINTENANCE(8);COOLING MAINTENANCE(9);COOLING MAINTENANCE(10);COOLING MAINTENANCE(11);COOLING MAINTENANCE(12);COOLING MAINTENANCE(13);COOLING MAINTENANCE(14);COOLING MAINTENANCE(15);COOLING MAINTENANCE(16);COOLING MAINTENANCE(17);COOLING MAINTENANCE(18);COOLING MAINTENANCE(19);COOLING MAINTENANCE(20);COOLING MAINTENANCE(21);COOLING MAINTENANCE(22);COOLING MAINTENANCE(23);COOLING MAINTENANCE(24);COOLING MAINTENANCE(25);COOLING MAINTENANCE(26);COOLING MAINTENANCE(27);COOLING MAINTENANCE(28);COOLING MAINTENANCE(29);COOLING MAINTENANCE(30);COOLING MAINTENANCE(31);COOLING MAINTENANCE(32)`
|
||||
costs_header = `${costs_header};PV MAINTENANCE(1);PV MAINTENANCE(2);PV MAINTENANCE(3);PV MAINTENANCE(4);PV MAINTENANCE(5);PV MAINTENANCE(6);PV MAINTENANCE(7);PV MAINTENANCE(8);PV MAINTENANCE(9);PV MAINTENANCE(10);PV MAINTENANCE(11);PV MAINTENANCE(12);PV MAINTENANCE(13);PV MAINTENANCE(14);PV MAINTENANCE(15);PV MAINTENANCE(16);PV MAINTENANCE(17);PV MAINTENANCE(18);PV MAINTENANCE(19);PV MAINTENANCE(20);PV MAINTENANCE(21);PV MAINTENANCE(22);PV MAINTENANCE(23);PV MAINTENANCE(24);PV MAINTENANCE(25);PV MAINTENANCE(26);PV MAINTENANCE(27);PV MAINTENANCE(28);PV MAINTENANCE(29);PV MAINTENANCE(30);PV MAINTENANCE(31);PV MAINTENANCE(32)`
|
||||
costs_header = `${costs_header};GLOBAL OPERATIONAL INCOMES(1);GLOBAL OPERATIONAL INCOMES(2);GLOBAL OPERATIONAL INCOMES(3);GLOBAL OPERATIONAL INCOMES(4);GLOBAL OPERATIONAL INCOMES(5);GLOBAL OPERATIONAL INCOMES(6);GLOBAL OPERATIONAL INCOMES(7);GLOBAL OPERATIONAL INCOMES(8);GLOBAL OPERATIONAL INCOMES(9);GLOBAL OPERATIONAL INCOMES(10);GLOBAL OPERATIONAL INCOMES(11);GLOBAL OPERATIONAL INCOMES(12);GLOBAL OPERATIONAL INCOMES(13);GLOBAL OPERATIONAL INCOMES(14);GLOBAL OPERATIONAL INCOMES(15);GLOBAL OPERATIONAL INCOMES(16);GLOBAL OPERATIONAL INCOMES(17);GLOBAL OPERATIONAL INCOMES(18);GLOBAL OPERATIONAL INCOMES(19);GLOBAL OPERATIONAL INCOMES(20);GLOBAL OPERATIONAL INCOMES(21);GLOBAL OPERATIONAL INCOMES(22);GLOBAL OPERATIONAL INCOMES(23);GLOBAL OPERATIONAL INCOMES(24);GLOBAL OPERATIONAL INCOMES(25);GLOBAL OPERATIONAL INCOMES(26);GLOBAL OPERATIONAL INCOMES(27);GLOBAL OPERATIONAL INCOMES(28);GLOBAL OPERATIONAL INCOMES(29);GLOBAL OPERATIONAL INCOMES(30);GLOBAL OPERATIONAL INCOMES(31);GLOBAL OPERATIONAL INCOMES(32)`
|
||||
costs_header = `${costs_header};SUBSIDIES CONSTRUCTION(1);SUBSIDIES CONSTRUCTION(2);SUBSIDIES CONSTRUCTION(3);SUBSIDIES CONSTRUCTION(4);SUBSIDIES CONSTRUCTION(5);SUBSIDIES CONSTRUCTION(6);SUBSIDIES CONSTRUCTION(7);SUBSIDIES CONSTRUCTION(8);SUBSIDIES CONSTRUCTION(9);SUBSIDIES CONSTRUCTION(10);SUBSIDIES CONSTRUCTION(11);SUBSIDIES CONSTRUCTION(12);SUBSIDIES CONSTRUCTION(13);SUBSIDIES CONSTRUCTION(14);SUBSIDIES CONSTRUCTION(15);SUBSIDIES CONSTRUCTION(16);SUBSIDIES CONSTRUCTION(17);SUBSIDIES CONSTRUCTION(18);SUBSIDIES CONSTRUCTION(19);SUBSIDIES CONSTRUCTION(20);SUBSIDIES CONSTRUCTION(21);SUBSIDIES CONSTRUCTION(22);SUBSIDIES CONSTRUCTION(23);SUBSIDIES CONSTRUCTION(24);SUBSIDIES CONSTRUCTION(25);SUBSIDIES CONSTRUCTION(26);SUBSIDIES CONSTRUCTION(27);SUBSIDIES CONSTRUCTION(28);SUBSIDIES CONSTRUCTION(29);SUBSIDIES CONSTRUCTION(30);SUBSIDIES CONSTRUCTION(31)`
|
||||
costs_header = `${costs_header};SUBSIDIES HVAC(1);SUBSIDIES HVAC(2);SUBSIDIES HVAC(3);SUBSIDIES HVAC(4);SUBSIDIES HVAC(5);SUBSIDIES HVAC(6);SUBSIDIES HVAC(7);SUBSIDIES HVAC(8);SUBSIDIES HVAC(9);SUBSIDIES HVAC(10);SUBSIDIES HVAC(11);SUBSIDIES HVAC(12);SUBSIDIES HVAC(13);SUBSIDIES HVAC(14);SUBSIDIES HVAC(15);SUBSIDIES HVAC(16);SUBSIDIES HVAC(17);SUBSIDIES HVAC(18);SUBSIDIES HVAC(19);SUBSIDIES HVAC(20);SUBSIDIES HVAC(21);SUBSIDIES HVAC(22);SUBSIDIES HVAC(23);SUBSIDIES HVAC(24);SUBSIDIES HVAC(25);SUBSIDIES HVAC(26);SUBSIDIES HVAC(27);SUBSIDIES HVAC(28);SUBSIDIES HVAC(29);SUBSIDIES HVAC(30);SUBSIDIES HVAC(31)`
|
||||
costs_header = `${costs_header};SUBSIDIES PV(1);SUBSIDIES PV(2);SUBSIDIES PV(3);SUBSIDIES PV(4);SUBSIDIES PV(5);SUBSIDIES PV(6);SUBSIDIES PV(7);SUBSIDIES PV(8);SUBSIDIES PV(9);SUBSIDIES PV(10);SUBSIDIES PV(11);SUBSIDIES PV(12);SUBSIDIES PV(13);SUBSIDIES PV(14);SUBSIDIES PV(15);SUBSIDIES PV(16);SUBSIDIES PV(17);SUBSIDIES PV(18);SUBSIDIES PV(19);SUBSIDIES PV(20);SUBSIDIES PV(21);SUBSIDIES PV(22);SUBSIDIES PV(23);SUBSIDIES PV(24);SUBSIDIES PV(25);SUBSIDIES PV(26);SUBSIDIES PV(27);SUBSIDIES PV(28);SUBSIDIES PV(29);SUBSIDIES PV(30);SUBSIDIES PV(31)`
|
||||
|
||||
var operational_co2_header = "SCENARIO;BUILDING NAME;TOTAL HEATING AREA"
|
||||
operational_co2_header = `${operational_co2_header};HEATING YEAR;HEATING MONTH(JAN);HEATING MONTH(FEB);HEATING MONTH(MAR);HEATING MONTH(APR);HEATING MONTH(MAY);HEATING MONTH(JUN);HEATING MONTH(JUL);HEATING MONTH(AUG);HEATING MONTH(SEPT);HEATING MONTH(OCT);HEATING MONTH(NOV);HEATING MONTH(DEC)`
|
||||
operational_co2_header = `${operational_co2_header};DOMESTIC HOT WATER YEAR;DOMESTIC HOT WATER MONTH(JAN);DOMESTIC HOT WATER MONTH(FEB);DOMESTIC HOT WATER MONTH(MAR);DOMESTIC HOT WATER MONTH(APR);DOMESTIC HOT WATER MONTH(MAY);DOMESTIC HOT WATER MONTH(JUN);DOMESTIC HOT WATER MONTH(JUL);DOMESTIC HOT WATER MONTH(AUG);DOMESTIC HOT WATER MONTH(SEPT);DOMESTIC HOT WATER MONTH(OCT);DOMESTIC HOT WATER MONTH(NOV);DOMESTIC HOT WATER MONTH(DEC)`
|
||||
operational_co2_header = `${operational_co2_header};COOLING YEAR;COOLING MONTH(JAN);COOLING MONTH(FEB);COOLING MONTH(MAR);COOLING MONTH(APR);COOLING MONTH(MAY);COOLING MONTH(JUN);COOLING MONTH(JUL);COOLING MONTH(AUG);COOLING MONTH(SEPT);COOLING MONTH(OCT);COOLING MONTH(NOV);COOLING MONTH(DEC)`
|
||||
operational_co2_header = `${operational_co2_header};LIGHTS YEAR;LIGHTS MONTH(JAN);LIGHTS MONTH(FEB);LIGHTS MONTH(MAR);LIGHTS MONTH(APR);LIGHTS MONTH(MAY);LIGHTS MONTH(JUN);LIGHTS MONTH(JUL);LIGHTS MONTH(AUG);LIGHTS MONTH(SEPT);LIGHTS MONTH(OCT);LIGHTS MONTH(NOV);LIGHTS MONTH(DEC)`
|
||||
operational_co2_header = `${operational_co2_header};APPLIANCES YEAR;APPLIANCES MONTH(JAN);APPLIANCES MONTH(FEB);APPLIANCES MONTH(MAR);APPLIANCES MONTH(APR);APPLIANCES MONTH(MAY);APPLIANCES MONTH(JUN);APPLIANCES MONTH(JUL);APPLIANCES MONTH(AUG);APPLIANCES MONTH(SEPT);APPLIANCES MONTH(OCT);APPLIANCES MONTH(NOV);APPLIANCES MONTH(DEC)`
|
||||
operational_co2_header = `${operational_co2_header};ELECTRICITY YEAR;ELECTRICITY MONTH(JAN);ELECTRICITY MONTH(FEB);ELECTRICITY MONTH(MAR);ELECTRICITY MONTH(APR);ELECTRICITY MONTH(MAY);ELECTRICITY MONTH(JUN);ELECTRICITY MONTH(JUL);ELECTRICITY MONTH(AUG);ELECTRICITY MONTH(SEPT);ELECTRICITY MONTH(OCT);ELECTRICITY MONTH(NOV);ELECTRICITY MONTH(DEC)`
|
||||
|
||||
|
||||
let meb_lines = []
|
||||
let cost_lines = []
|
||||
let operational_co2_lines = []
|
||||
for (var scenario in results.results) {
|
||||
var value = results.results[scenario];
|
||||
value.forEach(building_info => {
|
||||
const base_line = `"${scenario}";"${building_info.building}";${building_info.total_heating_area}`
|
||||
let meb = `${base_line}`
|
||||
building_info['insel meb'].yearly_cooling_demand.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_heating_demand.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_cooling_demand.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_heating_demand.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_cooling_peak_load.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_heating_peak_load.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_cooling_peak_load.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_heating_peak_load.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_lighting_peak_load.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_lighting_peak_load.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_cooling_consumption.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_heating_consumption.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_cooling_consumption.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_heating_consumption.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_appliances_peak_load.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_appliances_peak_load.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_lighting_electrical_demand.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_lighting_electrical_demand.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_appliances_electrical_demand.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_appliances_electrical_demand.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_on_site_electrical_production.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_on_site_electrical_production.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_domestic_hot_water_consumption.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_domestic_hot_water_heat_demand.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_domestic_hot_water_consumption.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_domestic_hot_water_heat_demand.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].yearly_distribution_systems_electrical_consumption.forEach(element => meb = `${meb};${element}`)
|
||||
building_info['insel meb'].monthly_distribution_systems_electrical_consumption.forEach(element => meb = `${meb};${element}`)
|
||||
meb_lines.push(meb)
|
||||
|
||||
let cost = `${base_line};${building_info.costs.total_capital_costs_skin};${building_info.costs.total_capital_costs_systems};${building_info.costs.end_of_life_costs};${building_info.costs.total_operational_costs};${building_info.costs.total_maintenance_costs};${building_info.costs.operational_incomes}`
|
||||
building_info.costs.global_capital_costs.B2010_opaque_walls.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_capital_costs.B2020_transparent.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_capital_costs.B3010_opaque_roof.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_capital_costs.B10_superstructure.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_capital_costs.D3020_heat_generating_systems.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_capital_costs.D3030_cooling_generation_systems.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_capital_costs.D3080_other_hvac_ahu.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_capital_costs.D5020_lighting_and_branch_wiring.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_capital_costs.D301010_photovoltaic_system.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_end_of_life_costs.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_operational_costs.fixed_costs_electricity_peak.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_operational_costs.fixed_costs_electricity_monthly.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_operational_costs.variable_costs_electricity.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_operational_costs.fixed_costs_gas.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_operational_costs.variable_costs_gas.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_maintenance_costs.heating_maintenance.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_maintenance_costs.cooling_maintenance.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_maintenance_costs.pv_maintenance.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_operational_incomes.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_capital_incomes.subsidies_construction.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_capital_incomes.subsidies_hvac.forEach(element => cost = `${cost};${element}`)
|
||||
building_info.costs.global_capital_incomes.subsidies_pv.forEach(element => cost = `${cost};${element}`)
|
||||
cost_lines.push(cost)
|
||||
|
||||
let operational_co2 = `${base_line}`
|
||||
building_info.operational_co2.Heating.year.forEach(element => operational_co2 = `${operational_co2};${element}`)
|
||||
building_info.operational_co2.Heating.month.forEach(element => operational_co2 = `${operational_co2};${element}`)
|
||||
building_info.operational_co2['Domestic Hot Water'].year.forEach(element => operational_co2 = `${operational_co2};${element}`)
|
||||
building_info.operational_co2['Domestic Hot Water'].month.forEach(element => operational_co2 = `${operational_co2};${element}`)
|
||||
building_info.operational_co2.Cooling.year.forEach(element => operational_co2 = `${operational_co2};${element}`)
|
||||
building_info.operational_co2.Cooling.month.forEach(element => operational_co2 = `${operational_co2};${element}`)
|
||||
building_info.operational_co2.Lights.year.forEach(element => operational_co2 = `${operational_co2};${element}`)
|
||||
building_info.operational_co2.Lights.month.forEach(element => operational_co2 = `${operational_co2};${element}`)
|
||||
building_info.operational_co2.Appliances.year.forEach(element => operational_co2 = `${operational_co2};${element}`)
|
||||
building_info.operational_co2.Appliances.month.forEach(element => operational_co2 = `${operational_co2};${element}`)
|
||||
building_info.operational_co2.Electricity.year.forEach(element => operational_co2 = `${operational_co2};${element}`)
|
||||
building_info.operational_co2.Electricity.month.forEach(element => operational_co2 = `${operational_co2};${element}`)
|
||||
operational_co2_lines.push(operational_co2)
|
||||
})
|
||||
}
|
||||
require("fs").writeFile(
|
||||
`${tmp_path}meb.csv`,
|
||||
`${meb_header}\n${meb_lines.join('\n')}`,
|
||||
@ -189,7 +66,9 @@ exports.run = async (application, buildings, tmp_path) => {
|
||||
BrowserWindow.fromId(1).webContents.send('task-completed', '<a href="../../tmp/meb.csv">meb</a><br /><a href="../../tmp/cost.csv">costs</a><br /><a href="../../tmp/operational_co2.csv">operational_co2</a>')
|
||||
}
|
||||
else {
|
||||
console.log('unautorized retrofit')
|
||||
console.log('unautorized insel meb')
|
||||
results = await response.json()
|
||||
console.log(results)
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
@ -1,24 +1,29 @@
|
||||
let param = {
|
||||
'workflow': 'meb',
|
||||
'application': '',
|
||||
'buildings': []
|
||||
'application': 'Insel MEB'
|
||||
}
|
||||
document.getElementById("runScenario").addEventListener("click", runScenario)
|
||||
async function runScenario() {
|
||||
document.getElementById("runWorkflow").addEventListener("click", runWorkflow)
|
||||
document.getElementById("geometry_file").addEventListener("change", (event) => {
|
||||
const file = event.target.files[0]
|
||||
document.getElementById('parameters').style.visibility = 'visible'
|
||||
if (file.type == 'application/geo+json') {
|
||||
document.getElementById('height').style.display = 'block'
|
||||
}
|
||||
else {
|
||||
document.getElementById('height').style.display = 'none'
|
||||
}
|
||||
param['geometry_file'] = file.path
|
||||
})
|
||||
async function runWorkflow() {
|
||||
try {
|
||||
document.getElementById('links').innerHTML = '<img id="spinner" src="../../img/spinner.gif" width="50px" />'
|
||||
document.getElementById('buildings').style.backgroundColor = "#FFFFFF"
|
||||
param['application'] = document.getElementById('application').value
|
||||
let buildingsString = document.getElementById('buildings').value
|
||||
if (buildingsString == "")
|
||||
{
|
||||
document.getElementById('links').innerHTML = ''
|
||||
document.getElementById('buildings').style.backgroundColor = "#FFAAAA"
|
||||
return
|
||||
}
|
||||
buildings = buildingsString.replace('\r', '').replace('\n', '').replace('\t', '').split(';').map(e => e.trim())
|
||||
param['buildings'] = buildings
|
||||
console.log(buildings)
|
||||
//params
|
||||
param['height_field']= document.getElementById('height_field').value
|
||||
param['year_of_construction_field']= document.getElementById('year_of_construction_field').value
|
||||
param['function_field']= document.getElementById('function_field').value
|
||||
param['function_to_hub']= document.getElementById('function_to_hub').value
|
||||
param['construction_handler']= document.getElementById('construction_handler').value
|
||||
param['usage_handler']= document.getElementById('usage_handler').value
|
||||
await window.functions.run(param)
|
||||
}
|
||||
catch(ex) {
|
||||
|
@ -23,3 +23,20 @@ h1 {
|
||||
width: 40%;
|
||||
padding-left: -10px;
|
||||
}
|
||||
#runScenario {
|
||||
--bs-btn-color: #fff;
|
||||
--bs-btn-bg: #0d6efd;
|
||||
--bs-btn-border-color: #0d6efd;
|
||||
--bs-btn-hover-color: #fff;
|
||||
--bs-btn-hover-bg: #0b5ed7;
|
||||
--bs-btn-hover-border-color: #0a58ca;
|
||||
--bs-btn-focus-shadow-rgb: 49,132,253;
|
||||
--bs-btn-active-color: #fff;
|
||||
--bs-btn-active-bg: #0a58ca;
|
||||
--bs-btn-active-border-color: #0a53be;
|
||||
--bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
||||
--bs-btn-disabled-color: #fff;
|
||||
--bs-btn-disabled-bg: #0d6efd;
|
||||
--bs-btn-disabled-border-color: #0d6efd;
|
||||
margin-top: 20px;
|
||||
}
|
@ -6,7 +6,8 @@ const retrofit_results = 'https://nextgenerations-cities.encs.concordia.ca/api/v
|
||||
//const retrofit_results = 'http://127.0.0.1:15789/v1.4/persistence/retrofit-results'
|
||||
|
||||
|
||||
exports.run = async (application, buildings, tmp_path) => {
|
||||
exports.run = async (application, param, tmp_path) => {
|
||||
buildings = param['buildings']
|
||||
console.log(`Executing ${application}`)
|
||||
dotenv.config({ path:__dirname+'/.env' })
|
||||
const application_uuid = process.env.APPLICATION;
|
||||
|
Loading…
Reference in New Issue
Block a user