Climate change policies in Helsinki: Difference between revisions

From Opasnet
Jump to navigation Jump to search
(→‎Calculations: ERF not needed any more; comes directly from HIA)
mNo edit summary
 
(45 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].


== Scope ==
== Scope ==


{{comment|# |All: Suggest good scoping for the assessment. You may also consult people in Helsinki. You may also borrow ideas you have used in Homework4. This will be decided soon after Easter.|--[[User:Jouni|Jouni]] ([[User talk:Jouni|talk]]) 21:04, 25 March 2015 (UTC)}}
=== Question ===


=== 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 ===
=== 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.
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 ===
=== Participants ===
* Jouni Tuomisto (THL), the coordinator of the assessment
* The participants of the [[Decision analysis and risk management 2015]] course.
* Helsinki Environment Centre
* Siemens and the City Performance Tool experts


=== Boundaries ===
=== Boundaries ===
* Time: 2010-2060
* Spatial: the city of Helsinki


=== Decisions and scenarios ===
=== 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]].
{{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 ===
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 ==
== Answer ==
Line 32: Line 77:
== Rationale ==
== Rationale ==


[[image:Causal diagram of climate change policies in Helsinki.PNG|thumb|Causal diagram of climate change policies in Helsinki.]]
[[image:Helsinki energy decision 2015.png|thumb|400px|Causal diagram of climate change policies in Helsinki. This assessment only relates to the building stock part of the diagram.]]


=== Stakeholders ===
=== Stakeholders ===
* City of Helsinki


=== Dependencies ===
=== Dependencies ===


Tähän muuttujien hierarkkinen kuvaus buildingsista taaksepäin:
* [[Building stock in Helsinki]]
* 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]
* [[Energy use of buildings]]  
**stockBuildings: data = temp
* [[Emission factors for burning processes]]
**heatingShares <- 1 sivun [[Building stock in Helsinki]] koodissa
* [[Climate change policies and health in Kuopio#Direct inputs]]
**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]
* [[District heating production units in Helsinki metropolitan area]]
**changeBuildings = stock Buildings
* [[Exposure to PM2.5 in Finland]]
**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]
* [[OpasnetUtils/Drafts]]
**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]
* [[Health impact assessment]]
**obstime: koodissa tällä sivulla
* [[Disease risk]]
**heating_before: FALSE
* [[Exposure-response function]]
**efficiency_before: TRUE
* [[Burden of disease in Finland]]
 
* [[Outdoor air temperature in Finland]]
Tasks given 15.4.2015 about [[Building stock in Helsinki]]. Please put the name of file, reference, or other
* [[Unit price of carbon emission permits]]
source of your information to the column Description in each table, or under the table if the description is long.
* Tables 1 and 2: Paula and Mohammad ALSO UPLOAD {{#l:Helsingin_rakennuskanta_Facta_ajo_huhtikuu_2015.xlsx}} using [[Opasnet Base]]
* Table 3: Sonja and Panayoitis and Anna
* Tables 4 and 5: Anni, Mari, and Michael
* Table 6: Aishat, Evans and Badejo
* Tables 7-8: not done


The main data source are these two files. I recommend that all groups go through the whole material although not everything is relevant for all groups.
; Data files
* {{#l:Climate policies Helsinki data.zip}}
* {{#l:Climate policies Helsinki data.zip}}
* {{#l:Climate policies Helsinki additional data.zip}}
* {{#l:Climate policies Helsinki additional data.zip}}
Line 68: Line 109:
** VTT energy efficiency expert Jyri Nieminen
** VTT energy efficiency expert Jyri Nieminen
** Tampere University of Technology: EPAT: Energy saving potential in Finnish housing stock by 2050. [http://www.tut.fi/ee/Materiaali/Epat/EPAT_loppuraportti.pdf] See especially section 4.2.4.
** Tampere University of Technology: EPAT: Energy saving potential in Finnish housing stock by 2050. [http://www.tut.fi/ee/Materiaali/Epat/EPAT_loppuraportti.pdf] See especially section 4.2.4.
{{greenbox|
TASKS FOR THE DARM COURSE PARTICIPANTS:
* ALL GROUPS: Study [[Building model]] as it is closely connected to everything we do.
* '''GROUP1''' (Mari, Anni and Michael): Look at [[Building stock in Helsinki]] which is the format we are likely to get the data about Helsinki. Compare that with previous assessments [[Buildings in Basel]] and [[Building stock in Kuopio]]. Make a suggestion how to model buildings in Helsinki.
* '''GROUP2''' (Mohammad and Paula): Study [[Energy use of buildings]] and come up with a suggestion whether and how that variable can be used for the Helsinki case.
* '''GROUP3''' (Badejo, Evans and Aishat): Study [[Emission factors for burning processes]] and come up with a suggestion whether and how that variable can be used for the Helsinki case.
* '''GROUP4''' (Panayiotis): Study [[Climate change policies and health in Kuopio]] and expecially the table Direct inputs with DALY weights etc. Come up with a suggestion whether and how that variable can be used for the Helsinki case.
}}
* [[District heating production units in Helsinki metropolitan area]]
* [[Exposure to PM2.5 in Finland]]
* [[OpasnetUtils/Drafts]]
* [[Health impact assessment]]
* [[Disease risk]]
* [[ERFs of environmental pollutants]]
* [[Burden of disease in Finland]]


==== Discussions ====
==== Discussions ====
Line 110: Line 134:
=== Calculations ===
=== Calculations ===


[http://en.opasnet.org/en-opwiki/index.php?title=Special:RTools&id=U5Y9O1IV6TWfhSs2 Model run 3,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 127: Line 152:
objects.latest("Op_en6007", code_name = "answer") # [[OpasnetUtils/Drafts]] findrest
objects.latest("Op_en6007", code_name = "answer") # [[OpasnetUtils/Drafts]] findrest


#obstime <- data.frame(Startyear = (192:205) * 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.
 
obstime <- data.frame(Startyear = c(2010, 2030)) # 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


#year <- Ovariable("year", data = data.frame(
############################ City-specific data
# Constructed = factor(
# c("1759-1899", "1900-1909", "1910-1919", "1920-1929", "1930-1939", "1940-1949",
# "1950-1959", "1960-1969", "1970-1979", "1980-1989", "1990-1999",
# "2000-2010", "2011-2019", "2020-2029", "2030-2039", "2040-2049"
# ),
# ordered = TRUE
# ),
# Time = c(1880, 1905 + 0:14 * 10),
# Result = 1
#))


###################### Decisions
##########################!------------------------------------------------
#
## Decisions
#decisions <- opbase.data('Op_en5461', subset = "Decisions") # [[Climate change policies and health in Kuopio]]
decisions <- opbase.data("Op_en7063", subset = "Decisions") # [[Climate change policies in Helsinki]]


#DecisionTableParser(decisions)
## 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]]


############################ City-specific data
objects.latest("Op_en6289", code_name = "buildings") # [[Building model]] # Generic building model.


#### First download Basel data and use that as a default. Then, replace Helsinki-specific parts.
## Energy use
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


####!------------------------------------------------
## Energy and emissions
objects.latest("Op_en7115", code_name = "initiate") # [[Building stock in Helsinki]]
objects.latest("Op_en7311", code_name = "emissionLocations") # [[Helsinki energy production]] also heatingShares
objects.latest("Op_en2791", code_name = "emissionFactors") # [[Emission factors for burning processes]]
objects.latest("Op_en2791", code_name = "emissions") # [[Emission factors for burning processes]]
objects.latest("Op_en7311", code_name = "fuelShares") # [[Helsinki energy production]]


# [[Building stock in Helsinki]]. Somehow only works if done in parts.
## Exposure
#datb <- opbase.data("Op_en7115.stock_details", include = list(Julkisivumateriaali = "")) # 18747 rows
#datc <- opbase.data("Op_en7115.stock_details", exclude = list(Julkisivumateriaali = "")) # 30038 rows
dat <- opbase.data("Op_en7115.stock_details")[ , c(
# "Rakennus ID",
"Sijainti",
"Valmistumisaika",
# "Julkisivumateriaali",
"Käyttötarkoitus",
# "Lämmitystapa",
"Polttoaine",
# "Rakennusaine",
# "Varusteena koneellinen ilmanvaihto",
# "Perusparannus",
# "Kunta rakennuttajana",
# "Energiatehokkuusluokka",
# "Varusteena aurinkopaneeli",
# "Tilavuus",
"Result"
)]
#dat <- rbind(datb, datc)[ , c(
# "Rakennus ID",
# "Sijainti",
# "Valmistumisaika",
# "Julkisivumateriaali",
# "Käyttötarkoitus",
# "Lämmitystapa",
# "Polttoaine",
# "Rakennusaine",
# "Varusteena koneellinen ilmanvaihto",
# "Perusparannus",
# "Kunta rakennuttajana",
# "Energiatehokkuusluokka",
# "Varusteena aurinkopaneeli",
# "Tilavuus",
# "Result"
#)]


colnames(dat) <- c("City_area", "Time", "Building types in Facta", "Heating types in Facta", "stockBuildingsResult")
objects.latest("Op_en5813", code_name = "exposure") # [[Intake fractions of PM]] uses Humbert iF as default.
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"))
## Health assessment
colnames(build)[colnames(build) == "Result"] <- "Building"


heat <- tidy(opbase.data("Op_en7115.heating_types"))
objects.latest('Op_en2261', code_name = 'totcases') # [[Health impact assessment]] totcases and dependencies.  
colnames(heat)[colnames(heat) == "Result"] <- "Heating"
objects.latest('Op_en5461', code_name = 'DALYs') # [[Climate change policies and health in Kuopio]] DALYs, DW, L


######################
population <- 623732 # Contains only the Helsinki city, i.e. assumes no exposure outside city. (Wikipedia)
# Korjaus
# Note: the population size does NOT affect the health impact if the exposure-response function in linear.
########################
# However, it DOES affect exposure estimates.
temp <- as.character(heat$Heating)
temp[temp == "District heating"]  <- "District"
temp[temp == "Light oil"]  <- "Oil"
temp[temp == "Fuel oil"]  <- "Oil"
 
heat$Heating <- temp
########################################


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 243: 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 292: 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 302: 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 318: 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 326: 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 334: 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 426: 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 444: 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
ggplot(exposure@output, aes(x = Time, weight = exposureResult, fill = Heating)) + geom_bar(binwidth = 5) +
 
facet_grid(EnergySavingPolicy ~ FuelPolicy) + theme_gray(base_size = BS) +
####!------------------------------------------------
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(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 484: 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 494: 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 511: 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 522: 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 536: 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 545: 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 ==
;Other related assessments
{{Helsinki energy decision 2015}}


* [[Climate change policies and health in Kuopio]]
* [[Climate change policies and health in Kuopio]]
Line 578: 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 592: 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
* [[Assessment on impacts of emission trading on city-level (ET-CL)]]
* [[Assessment on impacts of emission trading on city-level (ET-CL)]]
* [[Exposure of Finnish subpopulations to fine particles due domestic wood combustion]]
* [[Exposure of Finnish subpopulations to fine particles due domestic wood combustion]]
Line 639: Line 502:
* [[Heating systems in buildings in Finland]] SHOULD BE UPDATED FROM STAT FINLAND IF NEEDED
* [[Heating systems in buildings in Finland]] SHOULD BE UPDATED FROM STAT FINLAND IF NEEDED


Almost empty pages that should be removed
;Almost empty pages that should be removed
* [[Unit price of carbon emission permits]]
* [[Unit price of carbon emission permits]]
* [[Outdoor air temperature in Finland]]
* [[Outdoor air temperature in Finland]]
Line 647: Line 510:


== Keywords ==
== Keywords ==
Helsinki, energy, building stock, heating, renovation.


== References ==
== References ==

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

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) (type: truth; paradigms: science: 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 --Heta (talk) 10:49, 11 June 2015 (UTC) (type: truth; paradigms: science: attack)

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