Climate change policies in Helsinki: Difference between revisions

From Opasnet
Jump to navigation Jump to search
mNo edit summary
 
(52 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 ===


Tasks given 15.4.2015 about [[Building stock in Helsinki]]. Please put the name of file, reference, or other source of your information to the column Description in each table, or under the table if the description is long.
* [[Building stock in Helsinki]]
* Tables 1 and 2: Paula and Mohammad ALSO UPLOAD {{#l:Helsingin_rakennuskanta_Facta_ajo_huhtikuu_2015.xlsx}} using [[Opasnet Base]]
* [[Energy use of buildings]]
* Table 3: Sonja and Panayoitis and Anna
* [[Emission factors for burning processes]]
* Tables 4 and 5: Anni, Mari, and Michael
* [[Climate change policies and health in Kuopio#Direct inputs]]
* Table 6: Aishat, Evans and Badejo
* [[District heating production units in Helsinki metropolitan area]]
* Tables 7-8: not done
* [[Exposure to PM2.5 in Finland]]
* [[OpasnetUtils/Drafts]]
* [[Health impact assessment]]
* [[Disease risk]]
* [[Exposure-response function]]
* [[Burden of disease in Finland]]
* [[Outdoor air temperature in Finland]]
* [[Unit price of carbon emission permits]]


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 55: 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 97: 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 114: 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_en7044", code_name = "initiate") # [[Buildings in Basel]]
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
#########################i--------------------------------------------------
########################################


dat <- merge(merge(dat, build), heat)[c("City_area", "Time", "Building", "Heating", "stockBuildingsResult")]


###################### Decisions
################# Actual model and some intermediate processing.
 
decisions <- opbase.data('Op_en5480') # [[Climate change policies in Basel]]


DecisionTableParser(decisions)
DecisionTableParser(decisions)
Line 230: 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
# The building stock is measured as m^2 floor area.


####!------------------------------------------------
DALYs <- EvalOutput(DALYs)
objects.latest("Op_en6289", code_name = "initiate") # [[Building model]] # Generic building model.
####i------------------------------------------------


buildings <- EvalOutput(buildings)
####################### Post-processing and graphs
 
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 279: 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 289: 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 305: 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 313: 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 321: 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 413: 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 431: 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
#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) +
ggplot(exposure@output, aes(x = Time, weight = exposureResult, fill = Heating)) + geom_bar(binwidth = 5) +
facet_grid(EnergySavingPolicy ~ FuelPolicy) + 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 471: 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 481: 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 498: 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 509: 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 523: 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 532: Line 390:
)
)


koord <- tidy(opbase.data("Op_en7044", 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 565: 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 579: 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 626: 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 634: 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