Difference between revisions of "Climate change policies in Helsinki"

From Testiwiki
Jump to: navigation, search
(See also: template added for Helsinki energy decision 2015)
m
 
(41 intermediate revisions by 5 users not shown)
Line 5: Line 5:
 
[[Category:Heating]]
 
[[Category:Heating]]
 
[[Category:PM2.5]]
 
[[Category:PM2.5]]
{{assessment|moderator=Jouni|stub=Yes|status=Ongoing}}
+
{{assessment|moderator=Jouni}}
 
:''This assessment was used for training in [[Decision analysis and risk management 2015]] course. To see student contributions, see [http://en.opasnet.org/en-opwiki/index.php?title=Climate_change_policies_in_Helsinki&oldid=37124 a previous version].
 
:''This assessment was used for training in [[Decision analysis and risk management 2015]] course. To see student contributions, see [http://en.opasnet.org/en-opwiki/index.php?title=Climate_change_policies_in_Helsinki&oldid=37124 a previous version].
  
Line 21: Line 21:
  
 
* Jouni Tuomisto (THL), the coordinator of the assessment
 
* Jouni Tuomisto (THL), the coordinator of the assessment
* Tha perticipants of the [[Decision analysis and risk management 2015]] course.
+
* The participants of the [[Decision analysis and risk management 2015]] course.
 
* Helsinki Environment Centre
 
* Helsinki Environment Centre
 
* Siemens and the City Performance Tool experts
 
* Siemens and the City Performance Tool experts
Line 27: Line 27:
 
=== Boundaries ===
 
=== Boundaries ===
  
* Time: 2010-2040
+
* Time: 2010-2060
* Spatial: the city of Helainki
+
* Spatial: the city of Helsinki
  
 
=== Decisions and scenarios ===
 
=== Decisions and scenarios ===
  
* Renovate 1 or 2 % of buildings per year.
+
Energy saving policy: Relates to the shares of efficiency types when new buildings are built (ovariable efficiencyShares).
* Change the district heating fuel from 100 % fossil to 50 % fossil, 50 % wood-based fuel.
+
*BAU: Business as usual, no change to the energy efficiency of buildings.
 +
*Energy saving moderate: No change to the energy efficiency of buildings.
 +
*Energy saving total: Starting from the year 2020 buildings are built to be more energy efficient. 25 percentage points of production shifts from low-energy buildings to passive buildings. Starting from the year 2040 another 10 percentage points of production shifts from low-energy to passive.
 +
Fuel policy: Helen increases the share of wood-based biofuels used in Hanasaari and Salmisaari power plants to 40 % of fuels used. Both burn 40 % wood pellets and 60 % coal. (ovariable fuelShares)
 +
*BAU: Business and usual, both power plants continue burning only 5-10 % biofuel.
 +
*40 bio: Shift to biofuels, starting from the year 2020 the share of wood-based fuels increase by 24 percentage points and coal's share decrease by the same amount.
 +
Energy saving policy (ovariable renovationRate)
 +
*BAU: Business as usual, every year 1 % of all buildings over 30 years old are renovated to increase their energy efficiency.
 +
*Energy saving moderate: Increased energy renovation, every year 2 % of all buildings over 30 years old are renovated to increase their energy efficiency.
 +
*Energy saving total: Greatly increased energy renovation, every year 3 % of all buildings over 30 years old are renovated to increase their energy efficiency.
 +
 
 +
 
 +
See also decisions in [[Climate change policies and health in Kuopio]].
 +
 
 +
{{hidden|
 +
 
 +
<t2b name="Decisions" index='Decision maker,Decision,Option,Variable,Cell,Change,Unit' obs='Amount' desc='Description' unit='-'>
 +
Builders|EnergySavingPolicy|BAU|efficiencyShares||Add||0|
 +
Builders|EnergySavingPolicy|Energy saving moderate|efficiencyShares||Add||0|
 +
Builders|EnergySavingPolicy|Energy saving total|efficiencyShares|Efficiency:Passive;Time:2020,2030|Add|fraction|0.25|All input must be given in units that are used in respective ovariables.
 +
Builders|EnergySavingPolicy|Energy saving total|efficiencyShares|Efficiency:Passive;Time:2040,2050,2060|Add|fraction|0.1|
 +
Builders|EnergySavingPolicy|Energy saving total|efficiencyShares|Efficiency:Low-energy;Time:2020,2030|Add|fraction|-0.25|
 +
Builders|EnergySavingPolicy|Energy saving total|efficiencyShares|Efficiency:Low-energy;Time:2040,2050,2060|Add|fraction|-0.1|
 +
Helen|FuelPolicy|BAU|fuelShares||Add||0|
 +
Helen|FuelPolicy|40 bio|fuelShares|Burner:Large fluidized bed;Fuel:Wood;Time:2020,2030,2040,2050,2060|Add|fraction|0.24|
 +
Helen|FuelPolicy|40 bio|fuelShares|Burner:Large fluidized bed;Fuel:Coal;Time:2020,2030,2040,2050,2060|Add|fraction|-0.24|
 +
Building owner|EnergySavingPolicy|BAU|renovationRate||Multiply|1 /a|1|Assumes BAU renovation rate = 1%/a for buildings >30 a old
 +
Building owner|EnergySavingPolicy|Energy saving moderate|renovationRate||Multiply|1 /a|2|
 +
Building owner|EnergySavingPolicy|Energy saving total|renovationRate||Multiply|1 /a|3|3%/a is 100 % in 20 a
 +
</t2b>
 +
}}
  
 
=== Timing ===
 
=== Timing ===
Line 55: Line 85:
 
=== Dependencies ===
 
=== Dependencies ===
  
Tähän muuttujien hierarkkinen kuvaus buildingsista taaksepäin:
 
* buildings [[Building model]] löytyy koodi, jonka lopputulos on Saved ovariables buildings, heatingEnergy, emissions, exposure. mainitaan t2b- tai muu data, josta muuttuja lasketaan. [linkki Opasnet Baseen]
 
**stockBuildings: data = temp
 
**heatingShares <- 1 sivun [[Building stock in Helsinki]] koodissa
 
**efficiencyShares: [[Energy use of buildings]] Taulukko: [[Energy use of buildings#Energy efficiency in heating|Energy efficiency of the new buildings in the future]]. [http://en.opasnet.org/w/Special:Opasnet_Base?id=op_en5488.energy_efficiency_of_new_buildings_in_the_future OpasnetBase]
 
**changeBuildings = stock Buildings
 
**renovationShares: [[Building stock in Helsinki]] -sivun koodi ottaa datan taulukostaan [[Building stock in Helsinki#Renovations|Popularity of renovation types]]. [http://en.opasnet.org/w/Special:Opasnet_Base?id=op_en7115.popularity_of_renovation_types OpasnetBase]
 
**renovationRate: [[Building stock in Helsinki]] -sivun koodi ottaa datan taulukostaan [[Building stock in Helsinki#Renovatios|Fraction of houses renovated per year]]. [http://en.opasnet.org/w/Special:Opasnet_Base?id=op_en7115.fraction_of_houses_renovated_per_year OpasnetBase]
 
**obstime: koodissa tällä sivulla
 
**heating_before: FALSE
 
**efficiency_before: TRUE
 
 
* [[Building stock in Helsinki]]
 
* [[Building stock in Helsinki]]
 
* [[Energy use of buildings]]  
 
* [[Energy use of buildings]]  
Line 77: Line 96:
 
* [[Exposure-response function]]
 
* [[Exposure-response function]]
 
* [[Burden of disease in Finland]]
 
* [[Burden of disease in Finland]]
 +
* [[Outdoor air temperature in Finland]]
 +
* [[Unit price of carbon emission permits]]
  
 
; Data files
 
; Data files
Line 113: Line 134:
 
=== Calculations ===
 
=== Calculations ===
  
[http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=VJlO76pMOS1UEpQP Model run 8.6.2015]
+
*[http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=bGzkpGQwG2P0xTs5 Model run 15.6.2015]
 +
*[http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=iOrQttDzoCgmuKw2 Model run 24.6.2015] (new structure of building model)
  
 
<rcode graphics=1>
 
<rcode graphics=1>
Line 132: Line 154:
 
obstime <- data.frame(Startyear = c((198:206) * 10)) # Observation years must be defined for an assessment.
 
obstime <- data.frame(Startyear = c((198:206) * 10)) # Observation years must be defined for an assessment.
  
BS <- 24
+
BS <- 24 # base_size = font size in graphs
 
heating_before <- FALSE # Should heatingShares be calculated before renovate and timepoints (or after)?  
 
heating_before <- FALSE # Should heatingShares be calculated before renovate and timepoints (or after)?  
 
efficiency_before <- TRUE # Should efficiencyShares be calculated before renovate and timepoints (or after)?
 
efficiency_before <- TRUE # Should efficiencyShares be calculated before renovate and timepoints (or after)?
dummy <- 1
 
 
figstofile <- FALSE
 
figstofile <- FALSE
  
 
## Additional index needed in followup of ovariables efficiencyShares and stockBuildings
 
## Additional index needed in followup of ovariables efficiencyShares and stockBuildings
  
###################### Decisions
+
############################ City-specific data
#
 
#decisions <- opbase.data('Op_en5461', subset = "Decisions") # [[Climate change policies and health in Kuopio]]
 
  
#DecisionTableParser(decisions)
+
##########################!------------------------------------------------
 +
## Decisions
 +
decisions <- opbase.data("Op_en7063", subset = "Decisions") # [[Climate change policies in Helsinki]]
  
############################ City-specific data
+
## Building stock
 +
objects.latest("Op_en7115", code_name = "stockBuildings") # [[Building stock in Helsinki]]
 +
objects.latest("Op_en7115", code_name = "changeBuildings") # [[Building stock in Helsinki]]
 +
objects.latest("Op_en7115", code_name = "renovationRate") # [[Building stock in Helsinki]]
 +
objects.latest("Op_en7115", code_name = "renovationShares") # [[Building stock in Helsinki]]
 +
objects.latest("Op_en5488", code_name = "efficiencyShares") # [[Energy use of buildings]]
  
#### First download Basel data and use that as a default. Then, replace Helsinki-specific parts.
+
objects.latest("Op_en6289", code_name = "buildings") # [[Building model]] # Generic building model.
  
####!------------------------------------------------
+
## Energy use
objects.latest("Op_en7115", code_name = "initiate") # [[Building stock in Helsinki]]
+
objects.latest("Op_en5488", code_name = "energyUseAnnual")        # [[Energy use of buildings]] annual version of energyUse
 +
#objects.latest("Op_en5488", code_name = "efficiencyRatio")  # [[Energy use of buildings]] DEFAULT USED
 +
# objects.latest("Op_en5488", code_name = "renovationRatio") # [[Energy use of buildings]] DEFAULT USED
  
# [[Building stock in Helsinki]]
+
## Energy and emissions
dat <- opbase.data("Op_en7115.stock_details")[ , c(
+
objects.latest("Op_en7311", code_name = "emissionLocations") # [[Helsinki energy production]] also heatingShares
# "Rakennus ID",
+
objects.latest("Op_en2791", code_name = "emissionFactors") # [[Emission factors for burning processes]]
"Sijainti",
+
objects.latest("Op_en2791", code_name = "emissions") # [[Emission factors for burning processes]]
"Valmistumisaika",
+
objects.latest("Op_en7311", code_name = "fuelShares") # [[Helsinki energy production]]
# "Julkisivumateriaali",
 
"Käyttötarkoitus",
 
# "Lämmitystapa",
 
"Polttoaine",
 
# "Rakennusaine",
 
# "Varusteena koneellinen ilmanvaihto",
 
# "Perusparannus",
 
# "Kunta rakennuttajana",
 
# "Energiatehokkuusluokka",
 
# "Varusteena aurinkopaneeli",
 
# "Tilavuus",
 
"Result" # Rakennusala m2
 
)]
 
  
colnames(dat) <- c("City_area", "Time", "Building types in Facta", "Heating types in Facta", "stockBuildingsResult")
+
## Exposure
dat$Time <- as.numeric(substring(dat$Time, nchar(as.character(dat$Time)) - 3))
 
dat$Time <- as.numeric(as.character((cut(dat$Time, breaks = c(0, 1885 + 0:26*5), labels = as.character(1885 + 0:26*5)))))
 
dat$stockBuildingsResult <- as.numeric(as.character(dat$stockBuildingsResult))
 
  
build <- tidy(opbase.data("Op_en7115.building_types"))
+
objects.latest("Op_en5813", code_name = "exposure") # [[Intake fractions of PM]] uses Humbert iF as default.
colnames(build)[colnames(build) == "Result"] <- "Building"
 
  
heat <- tidy(opbase.data("Op_en7115.heating_types"))
+
## Health assessment
colnames(heat)[colnames(heat) == "Result"] <- "Heating"
 
  
######################
+
objects.latest('Op_en2261', code_name = 'totcases') # [[Health impact assessment]] totcases and dependencies.
# Korjaus
+
objects.latest('Op_en5461', code_name = 'DALYs') # [[Climate change policies and health in Kuopio]] DALYs, DW, L
########################
 
temp <- as.character(heat$Heating)
 
temp[temp == "District heating"]  <- "District"
 
temp[temp == "Light oil"] <- "Oil"
 
temp[temp == "Fuel oil"] <- "Oil"
 
  
heat$Heating <- temp
+
population <- 623732 # Contains only the Helsinki city, i.e. assumes no exposure outside city. (Wikipedia)
########################################
+
# Note: the population size does NOT affect the health impact if the exposure-response function in linear.
 +
# However, it DOES affect exposure estimates.
  
dat <- merge(merge(dat, build), heat)[c("City_area", "Time", "Building", "Heating", "stockBuildingsResult")]
+
#########################i--------------------------------------------------
  
###################### Decisions
 
  
decisions <- opbase.data('Op_en5480') # [[Climate change policies in Basel]]
+
################# Actual model and some intermediate processing.
  
 
DecisionTableParser(decisions)
 
DecisionTableParser(decisions)
Line 213: Line 218:
 
forgetDecisions()
 
forgetDecisions()
  
temp <- aggregate(dat["stockBuildingsResult"], by = dat[c("Time", "Building", "Heating")], FUN =sum)
+
renovationRate <- EvalOutput(renovationRate) * 10 # Rates for 10-year periods
temp <- temp[!is.na(temp$stockBuildingsResult) , ]
 
  
stockBuildings <- Ovariable("stockBuildings", data = temp) # Replace Basel building data with Helsinki data
+
buildings <- EvalOutput(buildings)
  
# Construction rate is assumed to be 2 % /a from the year 2010 building stock.
+
buildings@output$EnergySavingPolicy <- factor(
 +
buildings@output$EnergySavingPolicy,
 +
levels = c("BAU", "Energy saving moderate", "Energy saving total"),
 +
ordered = TRUE
 +
)
  
# changeBuildings is defined as in Basel but only created now to match Helsinki data.
+
exposure <- EvalOutput(exposure)
  
changeBuildings <- stockBuildings
+
exposure@output <- exposure@output[exposure@output$Area == "Average" , ] # Helsinki is an average area,
changeBuildings@name <- "changeBuildings"
+
# rather than rural or urban.
colnames(changeBuildings@data)[colnames(changeBuildings@data) == "stockBuildingsResult"] <- "changeBuildingsResult"
 
changeBuildings@data$changeBuildingsResult <- changeBuildings@data$changeBuildingsResult * 0.02
 
changeBuildings@data$Time <- NULL
 
changeBuildings@data <- merge(changeBuildings@data, data.frame(Time = 2015 + 0:7 * 5))
 
  
renovationRate <- EvalOutput(renovationRate) * 20 # Rates for 20-year periods
+
totcases <- EvalOutput(totcases)
 +
totcases@output$Time <- as.numeric(as.character(totcases@output$Time))
 +
totcases <- oapply(totcases, cols = c("Age", "Sex"), FUN = sum)
  
#################### Energy use (needed for buildings submodel)
+
totcases <- truncateIndex(totcases, cols = "Heating", bins = 5)
 
 
####!------------------------------------------------
 
objects.latest("Op_en5488", code_name = "initiate") # [[Energy use of buildings]]
 
####i------------------------------------------------
 
  
###################### Actual building model
+
DALYs <- EvalOutput(DALYs)
# The building stock is measured as m^2 floor area.
 
  
####!------------------------------------------------
+
####################### Post-processing and graphs
objects.latest("Op_en6289", code_name = "initiate") # [[Building model]] # Generic building model.
 
####i------------------------------------------------
 
 
 
buildings <- EvalOutput(buildings)
 
 
 
buildings@output$RenovationPolicy <- factor(
 
buildings@output$RenovationPolicy,
 
levels = c("BAU", "Active renovation", "Total renovation"),
 
ordered = TRUE
 
)
 
 
 
buildings@output$EfficiencyPolicy <- factor(
 
buildings@output$EfficiencyPolicy,
 
levels = c("BAU", "Active efficiency"),
 
ordered = TRUE
 
)
 
  
 
bui <- oapply(buildings * 1E-6, cols = c("City_area", "buildingsSource"), FUN = sum)
 
bui <- oapply(buildings * 1E-6, cols = c("City_area", "buildingsSource"), FUN = sum)
Line 262: Line 247:
 
#levels(bui$Heating)[levels(bui$Heating) == "Long-distance heating"] <- "District heating"
 
#levels(bui$Heating)[levels(bui$Heating) == "Long-distance heating"] <- "District heating"
  
ggplot(subset(bui, EfficiencyPolicy == "BAU" & RenovationPolicy == "BAU"), aes(x = Time, weight = buildingsResult, fill = Heating)) + geom_bar(binwidth = 5) +  
+
ggplot(subset(bui, EnergySavingPolicy == "BAU"), aes(x = Time, weight = buildingsResult, fill = Heating)) + geom_bar(binwidth = 5) +  
 
theme_gray(base_size = BS) +
 
theme_gray(base_size = BS) +
 
labs(
 
labs(
Line 272: Line 257:
 
if(figstofile) ggsave("Figure6.eps", width = 8, height = 7)
 
if(figstofile) ggsave("Figure6.eps", width = 8, height = 7)
  
ggplot(subset(bui, EfficiencyPolicy == "BAU"), aes(x = Time, weight = buildingsResult, fill = Renovation)) + geom_bar(binwidth = 5) +  
+
#ggplot(renovationRate@output, aes(x = Time, weight = renovationRateResult)) + geom_bar(binwidth = 5) +  
facet_grid(. ~ RenovationPolicy) + theme_gray(base_size = BS) +
+
# facet_grid(. ~ EnergySavingPolicy) + theme_gray(base_size = BS) +
labs(
+
# labs(
title = "Building stock in Helsinki by renovation policy",
+
# title = "Renovation rate by energy saving policy",
x = "Time",
+
# x = "Time",
y = "Floor area (M m2)"
+
# y = "Floor area (M m2)"
)
+
# )
  
ggplot(subset(bui, RenovationPolicy == "BAU"), aes(x = Time, weight = buildingsResult, fill = Efficiency)) + geom_bar(binwidth = 5) +  
+
ggplot(bui, aes(x = Time, weight = buildingsResult, fill = Efficiency)) + geom_bar(binwidth = 5) +  
facet_grid(. ~ EfficiencyPolicy) + theme_gray(base_size = BS) +
+
facet_grid(. ~ EnergySavingPolicy) + theme_gray(base_size = BS) +
 
labs(
 
labs(
 
title = "Building stock in Helsinki by efficiency policy",
 
title = "Building stock in Helsinki by efficiency policy",
Line 288: Line 273:
 
)
 
)
  
ggplot(subset(bui, RenovationPolicy == "BAU" & EfficiencyPolicy == "BAU"), aes(x = Time, weight = buildingsResult, fill = Heating)) + geom_bar(binwidth = 5) +  
+
ggplot(bui, aes(x = Time, weight = buildingsResult, fill = Renovation)) + geom_bar(binwidth = 5) +  
theme_gray(base_size = BS) +
+
theme_gray(base_size = BS) + facet_grid(. ~ EnergySavingPolicy) +
 
labs(
 
labs(
 
title = "Building stock in Helsinki",
 
title = "Building stock in Helsinki",
Line 296: Line 281:
 
)
 
)
  
ggplot(subset(bui, RenovationPolicy == "BAU" & EfficiencyPolicy == "BAU"), aes(x = Time, weight = buildingsResult, fill = Building)) + geom_bar(binwidth = 5) +  
+
ggplot(subset(bui, EnergySavingPolicy == "BAU"), aes(x = Time, weight = buildingsResult, fill = Building)) + geom_bar(binwidth = 5) +  
 
theme_gray(base_size = BS) +
 
theme_gray(base_size = BS) +
 
labs(
 
labs(
Line 304: Line 289:
 
)
 
)
  
###################### Energy and emissions
 
 
#############################
 
# Toinen korjaus
 
#############################
 
energyUse <- EvalOutput(energyUse)
 
levels(energyUse@output$Building)[levels(energyUse@output$Building) == "Detached houses"] <- "Residential"
 
temp <- energyUse@output[energyUse@output$Heating == "Oil",]
 
temp$Heating <- "Other"
 
energyUse@output <- rbind(energyUse@output, temp)
 
#############################
 
 
####!------------------------------------------------
 
objects.latest("Op_en2791", code_name = "initiate") # [[Emission factors for burning processes]]
 
####i------------------------------------------------
 
 
heatingEnergy <- EvalOutput(heatingEnergy)
 
 
################ Transport and fate
 
 
####!------------------------------------------------
 
iF <- Ovariable("iF", ddata = "Op_en3435", subset = "Intake fractions of PM")
 
# [[Exposure to PM2.5 in Finland]] Humbert et al 2011 data
 
####i------------------------------------------------
 
 
colnames(iF@data) <- gsub("[ \\.]", "_", colnames(iF@data))
 
iF@data$iFResult <- iF@data$iFResult * 1E-6
 
 
#################################
 
# Kolmas korjaus
 
# fuelShares:sta puuttuu Heating-Other lokaatio
 
# emissionLocations:sta puuttuu Heating-Oil,Other lokaatiot (myös "District heating")
 
# heatingEnergy:n Heating-District vastaa fuelShares:ssa jotain turvepohjaista tuotantoa
 
# emissions@formula:ssa yksi rivi bugaa
 
#################################
 
temp <- as.character(heatingEnergy@output$Heating)
 
temp[temp == "District"]  <- "District heating"
 
heatingEnergy@output$Heating <- temp
 
 
emissionLocations <- EvalOutput(emissionLocations)
 
#levels(emissionLocations@output$Building)[levels(emissionLocations@output$Building) == "Detached houses"] <- "Residential"
 
temp <- emissionLocations@output[emissionLocations@output$Heating == "District",]
 
temp$Heating <- "District heating"
 
emissionLocations@output <- rbind(emissionLocations@output, temp)
 
temp <- emissionLocations@output[emissionLocations@output$Heating == "Heating oil",]
 
temp$Heating <- "Oil"
 
emissionLocations@output <- rbind(emissionLocations@output, temp)
 
temp <- emissionLocations@output[emissionLocations@output$Heating == "Other sources",]
 
temp$Heating <- "Other"
 
emissionLocations@output <- rbind(emissionLocations@output, temp)
 
 
temp <- fuelShares@data[1,]
 
temp$Heating <- "Other"
 
temp$Burner <- "*"
 
temp$Fuel <- "*"
 
temp$Time <- "*"
 
temp$fuelSharesResult <- 0
 
fuelShares@data <- rbind(fuelShares@data, temp)
 
 
temp <- function(...){
 
out <- oapply(heatingEnergy, cols = c("Building", "Efficiency"), FUN = sum)
 
out <- out * fuelShares * emissionFactors * 3.6 * 1e-09
 
out <- unkeep(out * emissionLocations, sources = TRUE, prevresults = TRUE)
 
out@output$Emission_site <- as.factor(
 
ifelse(
 
out@output$Emission_site == "At site of consumption",
 
as.character(out@output$City_area),
 
as.character(out@output$Emission_site)
 
)
 
)
 
out <- oapply(out, cols = c("Burner", "City_area"), FUN = sum)
 
return(out)
 
}
 
#################################
 
 
emissions <- EvalOutput(emissions)
 
 
emissions@output$Time <- as.numeric(as.character(emissions@output$Time))
 
emissions@output$Time <- as.numeric(as.character(emissions@output$Time))
  
 
# Plot energy need and emissions
 
# Plot energy need and emissions
  
hea <- oapply(heatingEnergy * 1E-6, cols = c("City_area", "buildingsSource"), FUN = sum)
+
hea <- oapply(energyUse * 1E-6, cols = c("City_area", "buildingsSource"), FUN = sum)
 
hea <- truncateIndex(hea, cols = "Heating", bins = 4)@output
 
hea <- truncateIndex(hea, cols = "Heating", bins = 4)@output
#levels(hea$Heating)[levels(hea$Heating) == "Long-distance heating"] <- "District heating"
 
  
ggplot(hea, aes(x = Time, weight = heatingEnergyResult * 1E-6, fill = Heating)) + geom_bar(binwidth = 5) +
+
ggplot(hea, aes(x = Time, weight = energyUseResult, fill = Heating)) + geom_bar(binwidth = 5) + # Tuplamuunnos *1e-6 pois
facet_wrap( ~ RenovationPolicy) + theme_gray(base_size = BS) +
+
facet_wrap( ~ EnergySavingPolicy) + theme_gray(base_size = BS) +
 
labs(
 
labs(
 
title = "Energy used in heating in Helsinki",
 
title = "Energy used in heating in Helsinki",
Line 396: Line 304:
 
)
 
)
  
emis <- truncateIndex(emissions, cols = "Emission_site", bins = 5)@output
+
emis <- truncateIndex(emissions, cols = "Emission_site", bins = 5)@output
  
ggplot(subset(emis, EfficiencyPolicy == "BAU" & FuelPolicy == "BAU"), aes(x = Time, weight = emissionsResult, fill = Emission_site)) + geom_bar(binwidth = 5) +
+
ggplot(subset(emis, FuelPolicy == "BAU"), aes(x = Time, weight = emissionsResult, fill = Emission_site)) + geom_bar(binwidth = 5) +
facet_grid(Pollutant ~ RenovationPolicy, scale = "free_y") + theme_gray(base_size = BS) +
+
facet_grid(Pollutant ~ EnergySavingPolicy, scale = "free_y") + theme_gray(base_size = BS) +
labs(
+
labs(
title = "Emissions from heating in Helsinki",
+
title = "Emissions from heating in Helsinki",
x = "Time",
+
x = "Time",
y = "Emissions (ton /a)"
+
y = "Emissions (ton /a)"
)
+
)
  
ggplot(subset(emis, EfficiencyPolicy == "BAU" & RenovationPolicy == "BAU"), aes(x = Time, weight = emissionsResult, fill = Fuel)) + geom_bar(binwidth = 5) +
+
ggplot(subset(emissions@output, EnergySavingPolicy == "BAU"), aes(x = Time, weight = emissionsResult, fill = Fuel)) + geom_bar(binwidth = 5) +
 
facet_grid(Pollutant ~ FuelPolicy, scale = "free_y") + theme_gray(base_size = BS) +
 
facet_grid(Pollutant ~ FuelPolicy, scale = "free_y") + theme_gray(base_size = BS) +
 
labs(
 
labs(
Line 414: Line 322:
 
)
 
)
  
ggplot(subset(emis, EfficiencyPolicy == "BAU" & FuelPolicy == "BAU"), aes(x = Time, weight = emissionsResult, fill = Fuel)) + geom_bar(binwidth = 5) +
+
#ggplot(subset(emissions@output, EnergySavingPolicy == "BAU" & FuelPolicy == "BAU"), aes(x = Time, weight = emissionsResult, fill = Fuel)) + geom_bar(binwidth = 5) +
facet_grid(Pollutant ~ RenovationPolicy, scale = "free_y") + theme_gray(base_size = BS) +
+
# facet_grid(Pollutant ~ . , scale = "free_y") + theme_gray(base_size = BS) +
labs(
+
# labs(
title = "Emissions from heating in Helsinki",
+
# title = "Emissions from heating in Helsinki",
x = "Time",
+
# x = "Time",
y = "Emissions (ton /a)"
+
# y = "Emissions (ton /a)"
)
+
# )
 
 
###################### Health assessment
 
 
 
####!------------------------------------------------
 
objects.latest('Op_en2261', code_name = 'initiate') # [[Health impact assessment]] dose, RR, totcases.
 
objects.latest('Op_en5917', code_name = 'initiate') # [[Disease risk]] disincidence
 
#objects.latest('Op_en5827', code_name = 'initiate') # [[ERFs of environmental pollutants]] ERF, threshold # ERF is picked automatically
 
#objects.latest('Op_en5453', code_name = 'initiate') # [[Burden of disease in Finland]] BoD
 
directs <- tidy(opbase.data("Op_en5461", subset = "Direct inputs"), direction = "wide") # [[Climate change policies and health in Kuopio]]
 
####i------------------------------------------------
 
 
 
colnames(directs) <- gsub(" ", "_", colnames(directs))
 
 
 
### Use these population and iF values in health impact assessment. Why?
 
 
 
frexposed <- 1 # fraction of population that is exposed
 
bgexposure <- 0 # Background exposure to an agent (a level below which you cannot get in practice)
 
BW <- 70 # Body weight (is needed for RR calculations although it is irrelevant for PM2.5)
 
 
 
population <- 623732 # Contains only the Helsinki city, i.e. assumes no exposure outside city. (Wikipedia)
 
# population <- 700000 # Contains the Helsinki metropolitan area, as that is exposed to PM2.5.
 
# Note: the population size does NOT affect the health impact as it cancels out. However, it DOES affect
 
# exposure estimates.
 
  
exposure <- EvalOutput(exposure)
+
ggplot(exposure@output, aes(x = Time, weight = exposureResult, fill = Heating)) + geom_bar(binwidth = 5) +
 
+
facet_grid(EnergySavingPolicy ~ FuelPolicy) + theme_gray(base_size = BS) +
ggplot(subset(exposure@output, RenovationPolicy == "BAU" & EfficiencyPolicy == "BAU" & FuelPolicy == "BAU"), aes(x = Time, weight = exposureResult, fill = Heating)) + geom_bar(binwidth = 5) + facet_grid(Area ~ Emission_height) + theme_gray(base_size = BS) +
 
 
labs(
 
labs(
 
title = "Exposure to PM2.5 from heating in Helsinki",
 
title = "Exposure to PM2.5 from heating in Helsinki",
Line 454: Line 338:
 
)
 
)
  
exposure@output <- exposure@output[exposure@output$Area == "Urban" , ] # Helsinki is an urban area,
+
ggplot(exposure@output, aes(x = Time, weight = exposureResult, fill = Fuel)) + geom_bar(binwidth = 5) +
# rather than rural or urban.
+
facet_grid(EnergySavingPolicy ~ FuelPolicy) + theme_gray(base_size = BS) +
 
 
ggplot(subset(exposure@output, EfficiencyPolicy == "BAU"), aes(x = Time, weight = exposureResult, fill = Heating)) + geom_bar(binwidth = 5) + facet_grid(FuelPolicy ~ RenovationPolicy) + theme_gray(base_size = BS) +
 
 
labs(
 
labs(
 
title = "Exposure to PM2.5 from heating in Helsinki",
 
title = "Exposure to PM2.5 from heating in Helsinki",
Line 464: Line 346:
 
)
 
)
  
totcases <- EvalOutput(totcases)
+
ggplot(subset(totcases@output, FuelPolicy == "BAU"), aes(x = Time, weight = totcasesResult, fill = Heating))+geom_bar(binwidth = 5) +  
#totcases@output$Time <- as.numeric(as.character(totcases@output$Time))
+
facet_grid(Response ~ EnergySavingPolicy) +
totcases <- oapply(totcases, cols = c("Age", "Sex"), FUN = sum)
 
 
 
totcases <- truncateIndex(totcases, cols = "Heating", bins = 5)
 
levels(totcases@output$Heating)[levels(totcases@output$Heating) == "Long-distance heating"] <- "District heating"
 
 
 
ggplot(subset(totcases@output, EfficiencyPolicy == "BAU" & FuelPolicy == "BAU"), aes(x = Time, weight = totcasesResult, fill = Heating))+geom_bar(binwidth = 5) +  
 
facet_grid(Trait ~ RenovationPolicy) +
 
 
theme_gray(base_size = BS) +
 
theme_gray(base_size = BS) +
 
labs(
 
labs(
Line 481: Line 356:
  
 
if(figstofile) ggsave("Figure8.eps", width = 11, height = 7)
 
if(figstofile) ggsave("Figure8.eps", width = 11, height = 7)
 
DW <- Ovariable("DW", data = data.frame(directs["Trait"], Result = directs$DW))
 
L <- Ovariable("L", data = data.frame(directs["Trait"], Result = directs$L))
 
 
DALYs <- totcases * DW * L
 
  
 
cat("Total DALYs/a by different combinations of policy options.\n")
 
cat("Total DALYs/a by different combinations of policy options.\n")
Line 492: Line 362:
 
temp@output <- subset(
 
temp@output <- subset(
 
temp@output,
 
temp@output,
as.character(Time) %in% c("2010", "2030") & Trait == "Total mortality"
+
as.character(Time) %in% c("2010", "2030") & Response == "Total mortality"
 
)
 
)
  
oprint(oapply(temp, INDEX = c("Time", "EfficiencyPolicy", "RenovationPolicy", "FuelPolicy"), FUN = sum))
+
oprint(
 +
oapply(temp, INDEX = c("Time", "EnergySavingPolicy", "FuelPolicy"), FUN = sum),
 +
caption = "Table 1: Total DALYs/a by different combinations of policy options.",
 +
caption.placement = "top",
 +
include.rownames = FALSE
 +
)
  
ggplot(subset(DALYs@output, FuelPolicy == "BAU" & Trait == "Total mortality"), aes(x = Time, weight = Result, fill = Heating))+geom_bar(binwidth = 5) +  
+
ggplot(subset(DALYs@output, Response == "Total mortality"), aes(x = Time, weight = DALYsResult, fill = Heating))+geom_bar(binwidth = 5) +  
facet_grid(EfficiencyPolicy ~ RenovationPolicy) +
+
facet_grid(EnergySavingPolicy ~ FuelPolicy) +
 
theme_gray(base_size = BS) +
 
theme_gray(base_size = BS) +
 
labs(
 
labs(
Line 506: Line 381:
 
)
 
)
  
ggplot(subset(DALYs@output, Time == 2030 & Trait == "Total mortality"), aes(x = FuelPolicy, weight = Result, fill = Heating))+geom_bar() +  
+
ggplot(subset(DALYs@output, Time == 2030), aes(x = FuelPolicy, weight = DALYsResult, fill = Heating))+geom_bar() +  
facet_grid(EfficiencyPolicy ~ RenovationPolicy) +
+
facet_grid(EnergySavingPolicy ~ Response) +
 
theme_gray(base_size = BS) +
 
theme_gray(base_size = BS) +
 
labs(
 
labs(
Line 515: Line 390:
 
)
 
)
  
koord <- tidy(opbase.data("Op_en7115", subset = "Locations of postal codes"))
+
koord <- opbase.data("Op_en7115", subset = "Locations of city areas")
colnames(koord) <- c("Emission_site", "X", "Y")
+
koord <- tidy(koord, widecol = "Location")
 +
colnames(koord)[colnames(koord) == "City_area"] <- "Emission_site"
 +
#colnames(koord)[colnames(koord) == "N"] <- "X"
 +
#colnames(koord)[colnames(koord) == "E"] <- "Y"
 
koord$Result <- 1
 
koord$Result <- 1
koord <- Ovariable("koord", output = koord, marginal = c(TRUE, TRUE, TRUE, FALSE))
+
koord <- Ovariable("koord", output = koord, marginal = colnames(koord) != "Result")
  
 
emis <- emissions * koord
 
emis <- emissions * koord
  
emis@output <- subset(emis@output, RenovationPolicy == "BAU" & EfficiencyPolicy == "BAU" & FuelPolicy == "BAU" & Pollutant == "PM2.5")
+
emis@output <- subset(emis@output, EnergySavingPolicy == "BAU" &  
emis <- oapply(emis, INDEX = c("Emission_site", "X", "Y"), FUN = sum)
+
FuelPolicy == "BAU" & Pollutant == "PM2.5")
 +
emis <- oapply(emis, INDEX = c("Emission_site", "N", "E"), FUN = sum)
  
 
MyRmap(
 
MyRmap(
ova2spat(
+
ova2spat(
emis,  
+
emis,  
coord = c("X", "Y"),  
+
coord = c("E", "N"),  
proj4string = "+init=epsg:21781"
+
proj4string = "+init=epsg:3067"
), # Swiss Land Survey uses CH1903
+
), # National Land Survey Finland uses ETRS89 / ETRS-TM35FIN
# http://spatialreference.org/ref/epsg/21782/
+
#http://spatialreference.org/ref/epsg/etrs89-etrs-tm35fin/
# http://en.wikipedia.org/wiki/Swiss_coordinate_system
+
plotvar = "Result",  
plotvar = "Result",  
+
legend_title = "PM2.5 emissions (ton/a)",  
legend_title = "PM2.5 emissions (ton/a)",  
+
numbins = 4,  
numbins = 4,  
+
pch = 19,  
pch = 19,  
+
cex = sqrt(result(emis)) * 3
cex = sqrt(result(emis)) * 3
 
 
)
 
)
 +
 
# Map saved manually to .eps with width = 1280, height = 960 px.
 
# Map saved manually to .eps with width = 1280, height = 960 px.
 
</rcode>
 
</rcode>
 +
 +
 +
{{attack|# |In the results the graph "Energy used in heating in Helsinki" shows a twice or thrice bigger energy use for Oil and Other than the table "Total energy consumption in Helsinki in 2013 (GWh)" on [[Helsinki energy consumption]] would suggest.|--[[User:Heta|Heta]] ([[User talk:Heta|talk]]) 08:18, 11 June 2015 (UTC)}}
 +
 +
{{attack|# |Effective floor area of buildings by building type -table on page [[Building stock in Helsinki]] has the current building stock at 7 million m2 more than the graphs in the result, and the future estimates are even more higher than the code result estimates|--[[User:Heta|Heta]] ([[User talk:Heta|talk]]) 10:49, 11 June 2015 (UTC)}}
  
 
== See also ==
 
== See also ==
Line 552: Line 436:
 
* [[Climate change policies in Kuopio]]
 
* [[Climate change policies in Kuopio]]
 
* [http://www.hri.fi/fi/dataset?sort=metadata_created+desc&q= Helsinki Region Infoshare]
 
* [http://www.hri.fi/fi/dataset?sort=metadata_created+desc&q= Helsinki Region Infoshare]
 +
  
 
=== Other variables and pages to look at ===
 
=== Other variables and pages to look at ===
Line 566: Line 451:
 
* {{#l:Housing stock in Helsinki metropolitan area.xls}}
 
* {{#l:Housing stock in Helsinki metropolitan area.xls}}
 
* {{#l:Parameters, gabi-model.xls}}
 
* {{#l:Parameters, gabi-model.xls}}
 
 
* [[Gabi 4.3 - life cycle assessment software]]
 
* [[Gabi 4.3 - life cycle assessment software]]
 +
* [http://energiaremontti2015.fi/mika-energiaremontti/ Energiaremontti]
 +
* [http://urn.fi/URN:NBN:fi:jyu-201402281297 Halme et al. 2014 Kasvua ja työllisyyttä uudella energiapolitiikalla]
 +
* [https://www.facebook.com/energiaremontti2015.fi?ref=br_rs Energiaremontti 2015] -Facebook-ryhmä
 +
* [https://www.facebook.com/groups/740342559331216/ Uusi energiapolitiikka] -Facebook-sivu
 +
* Helsingin Sanomat: [http://www.hs.fi/kaupunki/a1434082462141 Energiavallankumous horjuttaa Helsingin jättivoimala­hanketta – miljardin euron päätöstä saatetaan lykätä jälleen]
  
 
;Possibly useful variables
 
;Possibly useful variables

Latest revision as of 16:53, 11 January 2016



This assessment was used for training in Decision analysis and risk management 2015 course. To see student contributions, see a previous version.

Scope

Question

What is the energy need of buildings in Helsinki and the related greenhouse gas emissions and health impacts? How can these be affected by renovation of buildings and fuel changes in district heating?

Intended use and users

A problem in the climate policy practices in the City of Helsinki is that there is not enough information about different costs and impacts of different climate change mitigation measures, especially in the long term. This is slowing down the decision-making process. The results of this course will be used at the City of Helsinki Environment Centre to assess the outcomes of different ways to reduce GHG emissions. The results will help in identifying the most favourable ways to cut GHG emissions.

Participants

Boundaries

  • Time: 2010-2060
  • Spatial: the city of Helsinki

Decisions and scenarios

Energy saving policy: Relates to the shares of efficiency types when new buildings are built (ovariable efficiencyShares).

  • BAU: Business as usual, no change to the energy efficiency of buildings.
  • Energy saving moderate: No change to the energy efficiency of buildings.
  • Energy saving total: Starting from the year 2020 buildings are built to be more energy efficient. 25 percentage points of production shifts from low-energy buildings to passive buildings. Starting from the year 2040 another 10 percentage points of production shifts from low-energy to passive.

Fuel policy: Helen increases the share of wood-based biofuels used in Hanasaari and Salmisaari power plants to 40 % of fuels used. Both burn 40 % wood pellets and 60 % coal. (ovariable fuelShares)

  • BAU: Business and usual, both power plants continue burning only 5-10 % biofuel.
  • 40 bio: Shift to biofuels, starting from the year 2020 the share of wood-based fuels increase by 24 percentage points and coal's share decrease by the same amount.

Energy saving policy (ovariable renovationRate)

  • BAU: Business as usual, every year 1 % of all buildings over 30 years old are renovated to increase their energy efficiency.
  • Energy saving moderate: Increased energy renovation, every year 2 % of all buildings over 30 years old are renovated to increase their energy efficiency.
  • Energy saving total: Greatly increased energy renovation, every year 3 % of all buildings over 30 years old are renovated to increase their energy efficiency.


See also decisions in Climate change policies and health in Kuopio.



Timing

The data will be collected before the end of the Decision analysis and risk management 2015 course (12th May, 2015). The model runs will be finalised soon after that. Results will be available before September 2015.

Answer

Results

Conclusions

Rationale

Error creating thumbnail: Unable to save thumbnail to destination
Causal diagram of climate change policies in Helsinki. This assessment only relates to the building stock part of the diagram.

Stakeholders

  • City of Helsinki

Dependencies

Data files

Discussions

These are some resolutions of discussions within the assessment.

  • City level climate change mitigation is not useless although international treaties are important for success.D↷
  • Climate change adaptation is not more important than mitigation on city level.R↻
  • Citizens may have a key role in implementing city climate policies.D↷
  • Food issues are underrepresented in climate discussions although food is a major emission source.R↻
  • The role of district heating by nuclear energy in Helsinki is unclear.D↷
  • There may be large uncertainty in CO2 emission factors of biofuels.D↷

Analyses

Indices

The data will be classified according to these indices:

  • Building: Residential, Public, Industrial, Other. For separating different use purposes of buildings.
  • Constructed: Years of construction of the buildings in the format 1990-1999, 2000-2009, 2010-2013.
  • Heating: District, Electricity, Geothermal, Oil, Wood,

The results of each ovariable will be measuring these things:

  • buildings: total floor area in m2.

Calculations

+ Show code


# : In the results the graph "Energy used in heating in Helsinki" shows a twice or thrice bigger energy use for Oil and Other than the table "Total energy consumption in Helsinki in 2013 (GWh)" on Helsinki energy consumption would suggest. --Heta (talk) 08:18, 11 June 2015 (UTC)

# : Effective floor area of buildings by building type -table on page Building stock in Helsinki has the current building stock at 7 million m2 more than the graphs in the result, and the future estimates are even more higher than the code result estimates --Heta (talk) 10:49, 11 June 2015 (UTC)

See also

Other related assessments
Helsinki energy decision 2015
In English
Assessment Main page | Helsinki energy decision options 2015
Helsinki data Building stock in Helsinki | Helsinki energy production | Helsinki energy consumption | Energy use of buildings | Emission factors for burning processes | Prices of fuels in heat production | External cost
Models Building model | Energy balance | Health impact assessment | Economic impacts
Related assessments Climate change policies in Helsinki | Climate change policies and health in Kuopio | Climate change policies in Basel
In Finnish
Yhteenveto Helsingin energiapäätös 2015 | Helsingin energiapäätöksen vaihtoehdot 2015 | Helsingin energiapäätökseen liittyviä arvoja | Helsingin energiapäätös 2015.pptx


Other variables and pages to look at

Possibly useful variables
Almost empty pages that should be removed

Keywords

Helsinki, energy, building stock, heating, renovation.

References


Related files