Question
What is the building stock in Basel?
Answer
Rationale
Data
Detailed data can be found from heande:Buildings in Basel. This data is aggregated to the postal code level. The table uses Swiss Land Survey coordinates CH1903. [1] [2] Use this code in the ova2spat function:
proj4string = "+init=epsg:21781"
Renovations
Estimates from Laura Perez and Stephan Trüeb, unibas.ch N:\YMAL\Projects\Urgenche\WP9 Basel\Energy_scenarios_Basel_update.docx
Fraction of houses renovated per year(%)Obs | Age | Result | Description |
---|
1 | 0 | 0 | Estimates from Laura Perez and Stephan Trüeb |
2 | 20 | 0 | Assumption Result applies to buildings older than the value in the Age column. |
3 | 25 | 1 | |
4 | 30 | 1 | |
5 | 50 | 1 | |
6 | 100 | 1 | |
7 | 1000 | 1 | |
Emission locations
Where and how do the emissions of heating take place?
Emission locations(-)Obs | Heating | Emission site | Emission height | Dummy |
---|
1 | District | 4056 | High | 4056 is the postal code of the heat and power plant IWB, Hagenaustrasse 40/70 4056 Basel. |
2 | Long-distance heating | 4056 | High | |
3 | Electricity | 4056 | High | |
4 | Geothermal | 4056 | High | |
5 | Centrifuge, hydro-extractor | 4056 | High | |
6 | Heating oil | At site of consumption | Ground | |
7 | Wood | At site of consumption | Ground | |
8 | Gas | At site of consumption | Ground | |
9 | Coal | At site of consumption | Ground | |
10 | Solar heater/ collector | At site of consumption | Ground | |
11 | No energy source | At site of consumption | Ground | |
12 | Other sources | At site of consumption | Ground | |
Locations of postal codes(epsg:21781)Obs | Postal code | X | Y |
---|
1 | 4001 | 611296.55 | 267316.04 |
2 | 4051 | 611004.37 | 267137.18 |
3 | 4052 | 612735.06 | 266596.60 |
4 | 4053 | 611695.00 | 265635.41 |
5 | 4054 | 609694.31 | 266598.91 |
6 | 4055 | 609798.12 | 267812.13 |
7 | 4056 | 610271.78 | 268500.37 |
8 | 4057 | 611580.35 | 268976.81 |
9 | 4058 | 612781.70 | 268225.32 |
10 | 4059 | 611615.85 | 264689.04 |
11 | 4125 | 615721.84 | 269737.40 |
12 | 4126 | 617160.01 | 268852.20 |
Fuel use by heating type
Basel-specific data about connections between Heating and fuel usage. Generic data should be taken from Energy balance.
Fuel use by heating type(-)Obs | Heating | Burner | Fuel | Fraction | Description |
---|
1 | Long-distance heating | Large fluidized bed | Waste | 0.5 | The values are from Wikipedia for Basel. See below. |
2 | Long-distance heating | Large fluidized bed | Wood | 0.1 | |
3 | Long-distance heating | Large fluidized bed | Gas | 0.4 | |
4 | Long-distance heating | Grid | Electricity | 0 | This is geothermally-generated district heating. Note: the fraction you need electricity is ca. 0.3*the amount of geoheat produced. |
5 | Coal | Large fluidized bed | Coal | 1 | |
For guesstimates about Long-distance heating (which is used in Basel), see Climate change policies in Basel and de:IWB.
Calculations
This code creates ovariables that are needed to run the Building model and its ovariables buildings and heatingEnergy.
+ Show code- Hide code
library(OpasnetUtils)
# [[Buildings in Basel]], building stock, locations by postal codes (in A Swiss coordinate system)
stockBuildings <- Ovariable("stockBuildings", ddata = "Op_en7044.postal_code_areas")
colnames(stockBuildings@data)[colnames(stockBuildings@data) == "Built"] <- "Time"
colnames(stockBuildings@data)[colnames(stockBuildings@data) == "Postal code"] <- "City_area"
# Construction rate is assumed to be 2 % /a from the year 2010 building stock.
changeBuildings <- stockBuildings
changeBuildings@name <- "changeBuildings"
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))
# Geolocations of the buildings for emission calculations. OLD VERSION
# emissionLocations <- Ovariable("emissionLocations", ddata = "Op_en7044.locations_of_postal_codes")
# colnames(emissionLocations@data)[colnames(emissionLocations@data) == "emissionLocationsResult"] <- "Y"
# emissionLocations@data$emissionLocationsResult <- 1
emissionLocations <- Ovariable("emissionLocations", ddata = "Op_en7044", subset = "Emission locations")
colnames(emissionLocations@data) <- gsub("[ \\.]", "_", colnames(emissionLocations@data))
emissionLocations@data$emissionLocationsResult <- 1
heatingShares <- 1 # This is already in the Basel data.
renovationRate <- Ovariable('renovationRate',
dependencies = data.frame(Name = "dummy"),
formula = function(...) {
temp <- tidy(opbase.data('Op_en7044', subset = 'Fraction of houses renovated per year'))
temp$Age <- round(as.numeric(as.character(temp$Age)))
out <- as.data.frame(approx(
temp$Age,
temp$Result,
n = (max(temp$Age) - min(temp$Age) + 1),
method = "constant"
))
colnames(out) <- c("Age", "renovationRateResult")
out$renovationRateResult <- out$renovationRateResult / 100
out <- Ovariable("renovationRate", output = out, marginal = c(TRUE, FALSE))
return(out)
}
)
renovationShares <- Ovariable("renovationShares",
dependencies = data.frame(Name = "dummy"),
formula = function(...) {
out <- Ovariable("raw", ddata = 'Op_en7044', subset = 'Popularity of renovation types')
out <- findrest((out), cols = "Renovation", total = 100) / 100
renovationyear <- Ovariable("renovationyear", data = data.frame(
Obsyear = factor(c(2020, 2030, 2040, 2050)),
Result = 1
))
out <- out * renovationyear # renovation shares repeated for every potential renovation year.
out@output$Renovation <- factor(out@output$Renovation, levels = c(
"None",
"General",
"Windows",
"Technical systems",
"Sheath reform"
), ordered = TRUE)
return(out)
}
)
dummy <- 1
objects.store(
stockBuildings, # Current building stock
changeBuildings, # Building stock change per year
emissionLocations, # Locations of buildings and emissions
heatingShares, # Heating types of current buildings
renovationRate, # Percentage of renovations per year
renovationShares, # Fraction of renovation type when renovation is done. From [[Building stock in Kuopio]]
dummy # Needed by renovationShares
)
cat("Objects
stockBuildings,
changeBuildings,
emissionLocations,
heatingShares,
renovationRate,
renovationShares
stored.\n")
| |
See also
References
Related files