0% found this document useful (0 votes)
16 views18 pages

LCA Assignment2 Training - 23-24

Uploaded by

Danny Zaeem
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views18 pages

LCA Assignment2 Training - 23-24

Uploaded by

Danny Zaeem
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Life-Cycle Assessment – Individual Project Assignment 2

Life-Cycle Assessment

Individual Project Assignment 2

Life-Cycle Analysis and Multi-Criteria Decision Analysis

A Bridge Example
[email protected]

Choices engineers make during design of a civil engineered product have a significant impact on all
other stages such as construction, operation, or maintenance. Life cycle analysis allows us to have a
sneak peek into the future implications of design decisions. For example, we can assess what will be
the impact on the environment of a specific civil system during its life cycle. We provide you with a
step-by-step tutorial to show how to implement such as analysis in R. We also show how to implement
two methods to support your multi-criteria decision-making process.

This tutorial is structured as follow:


1. Engineering aspects
2. Prerequisite – supporting tools
3. Life-Cycle timeline
4. Life Cycle Inventory and Analysis
5. MCDA - AHP

1. Engineering aspects

At each step, engineers need to make decisions about product configuration, materials, construction,
operation and maintenance. These decisions are linked to life-cycle costs and the environmental
impact. This example illustrates the possibility to conduct a life cycle assessment of a concrete bridge.
To this end, we start defining the goal and the scope of this assessment in the following subsection.

1.1. Goal and scope of the assessment


This section defines what we want to achieve by conducting this assessment as well as defining the
boundaries of our analysis. The main goal of this is to do a carbon footprint analysis. The scope and
the boundaries of the assessment are presented in the figure below.

page1
Life-Cycle Assessment – Individual Project Assignment 2

This example focuses on the decisions practitioners need to take when designing the deck of a
concrete bridge. You need to think about the goal and scope of your own assessment.

The design alternatives we are going to analyze are presented in the figure below.

page2
Life-Cycle Assessment – Individual Project Assignment 2
Materials selection plays an important role during civil system design. Each alternative can
accommodate different material strategies. Here we provide 7 different design options, but you should
focus on only 3 for your assignment.
Design option Girders Material Deck Material Deck surface
Option 1 Prefab concrete Cast in place concrete Asphalt

Option 2 Steel Cast in place concrete, Asphalt

Option 3 Prefab concrete Prefab concrete elements, Asphalt

Option 4 Steel Prefab concrete elements Asphalt

Option 5 Prefab concrete Fiber-reinforced polymer Asphalt

Option 6 Steel Fiber-reinforced polymer Asphalt

Option 7 None Cast in place concrete Asphalt

The table below presents the materials used in this tutorial for different elements under analysis. For
your own system, you will probably have a different set of elements that accompany material
specifications and cross-sectional areas.

Element Cross Section Area (m2) Material

Prefab concrete girder 0.78 50MPa, mix 1 (Marceau, 2007)

Steel girder (HEM800 – 317kg/m) 0.04043 S355J0WP

Deck (width = 15m, thickness = 0.25m) 3.75 20MPa, mix 5 (Marceau, 2007)

Prefab deck 0.5 * Deck 50MPa, mix 1 (Marceau, 2007)

Asphalt (thickness = 0.12m) 0.12 Asphalt, hot mix

Fiber-Reinforced Polymer 0.2* Deck Fiber-reinforced Polymer

1.2 Life Cycle Inventory of different materials, Performance, and environmental indicators

The following table presents the composition of different materials used. For each material, we
collected information about energy consumption for fabrication and processing (MJ/t), CO2, NOx,
SO2 (kg/m3) and cost associated with extraction, processing, manufacture, and construction.
Remember that you will need to do the same based on your own goals and boundaries.

material scope quantities energy CO2 NOX SO2

Cement RC 167 3.26 0.822 0.177 0.065

Fly Ash RC 56 0 0.0025 0 0.78

Coarse Aggregates RC 1127 0.0035 0.016 0.0018 0.0018

page3
Life-Cycle Assessment – Individual Project Assignment 2
Fine Aggregates RC 831 0.0023 0.0053 0.009 0.009

Reinforcement RC 135 2430 225 0.71 1.85

Steel steel 1 2430 225 0.71 1.85

FRP FRP 1 169.69 3.09 0.766 0.036

Cement PRC 504 3.26 0.822 0.177 0.065

Coarse Aggregates PRC 1050 0.035 0.016 0.0018 0.0018

Fine Aggregates PRC 555 0.0023 0.0053 0.009 0.009

Reinforcement Girders PRC 350 2430 225 0.71 1.85

Asphalt Cement asphalt 5 60.88 11 6.641E-05 0.00638

Asphalt Aggregates asphalt 95 0.0029 2 0.000076 0.00492

The scope column indicates the use of a specific material in the composition of a specific mix, such
as RC = reinforced concrete, FRP = fiber-reinforced polymer, PRC = Precast reinforced concrete.

The “quantities” column has a different meaning, depending on the materials. For RC and PRC those
are the quantities of materials consumed to produce a cubic meter of concrete, respectively the
reinforcement in Kg usually used for 1cubic meter of concrete. For steel and FRP is indicated 1,
because the energy consumed as well as the emissions are indicated for each Kg of materials produced
and consumed. For asphalt, the values indicated represent percentages of various materials used in 1
cubic meter of asphalt, such as 5% is asphalt cement and 95% aggregates.

Various sources were used to extract these values, which are indicated at the end of this tutorial.
1. Prerequisite – supporting tools

As a first step, we need to start by installing R and RStudio. This tutorial is using the following
versions:
• R: 4.3.1
• RStudio 2023.06.0+421 "Mountain Hydrangea"

Go to https://cran.r-project.org/ and download the R distribution suitable for your system. Use the
downloaded installer to install R on your machine.

Go to https://www.rstudio.com/products/rstudio/ and download the Rstudio distribution suitable for


your system. Use the downloaded installer to install RStudio on your machine.

Start RStudio and run the following lines on the console to install the required packages we are going
to use through this tutorial:

> install.packages(“Shiny“)
> install.packages(“dplyr")
> install.packages(“ggplot2")

page4
Life-Cycle Assessment – Individual Project Assignment 2
> install.packages(“scales")
> install.packages(“reshape2")
> install.packages(“tibble")
> install.packages(“lubridate")

Please note that these need to be run only once on your machine. Do not include these in your RScript,
as it is not necessary to run these commands every time as the script.
To get started with the next part, please got to the main menu File → New File → R Script to start a
new script. The shortcut for this is represented by the following combination of keys: Ctrl+Shift+N.

On the new appeared window, right on top, write the following code line:

rm (list = ls())

Every time you run your script, this command will clean your environment. By this, you make sure
that you cannot use any of the variables you created previously, and the environment is clean, allowing
you to use only the data and variables you initialize with your current script.

Make sure that you save your newly created file. By this you will be able to open it later. Go to File
→ Save As and choose a name for your file, as well as a location were you want to save it and to
access it later. You will have to do this only one, and later on, as you are working and adding more
code lines to your file, you can use File → Save of the shortcut Ctrl+S to save your progress. Make
sure that you save your script file on a regular basis, in order to avoid possible data loss.

To use the packages you previously installed, please add the following lines of code to your script:

library(shiny)
library(readr)
library(dplyr)
library(ggplot2)
library(scales)
library(reshape2)
library(tibble)
library(lubridate)

By using the above commands, we specify that we want to use the specified libraries in the script we
develop.

At this point, we are ready to start with the next part of our assignment.

page5
Life-Cycle Assessment – Individual Project Assignment 2
2. Life-Cycle timeline

Visualizing the life cycle of civil-engineered systems provides a clear representation of when specific
interventions, such as repairs, replacements, and maintenance, are required. Using Shiny, a powerful
web application framework for R, we've developed an app that enables you to easily input and display
these interventions on a timeline.

Access to the R.app:


https://tubcloud.tu-berlin.de/s/pG2XAFtajQiedGk
Password: 9dgHmRqfXR

2.1. Setting interventions and lifespan

The first step is to know interventions associated with the system with specific design option you
have. For our bridge example, we have this list of interventions with frequency of occurrence for each
design option.

Here is the table for our example:


DesignOption Event Frequency TotalLifespan
1.Cast in place deck and concrete prefab girders SDO 15 120
1.Cast in place deck and concrete prefab girders M 5 120
1.Cast in place deck and concrete prefab girders DR 30 120
2.Cast in place deck and steel girders SDO 15 120
2.Cast in place deck and steel girders M 5 120
2.Cast in place deck and steel girders DR 30 120
2.Cast in place deck and steel girders PR 45 120
3.Prefab deck and concrete prefab girders M 10 120
4.Prefab deck and steel girders M 5 120
4.Prefab deck and steel girders PR 45 120
5.FRP deck and concrete prefab girders M 10 120
5.FRP deck and concrete prefab girders PR 30 120
5.FRP deck and concrete prefab girders DR 45 120
6.FRP deck and steel girders M 10 120
6.FRP deck and steel girders PR 45 120
7.Cast in place deck M 5 120
7.Cast in place deck SDO 15 120
7.Cast in place deck DR 30 120

SDO = shallow deck overlay


M = maintenance
DR = deck replacement
PR = partial replacement

For your own system, these interventions should be defined either from literature, practices, or
professional experiences. Also, the lifespan for each system is different; you should refer to your own
system.

page6
Life-Cycle Assessment – Individual Project Assignment 2

2.2. uploading the interventions files

Make sure that you add your data as csv to be easily readable by the app.

Then you can simply show different design options with different interventions:

page7
Life-Cycle Assessment – Individual Project Assignment 2
3. Life Cycle Inventory and Analysis
As mentioned before, this tutorial will walk you step by step through the life cycle analysis of different
bridge deck design options. We will use the materials defined at step 1.2 and read the table which was
exported to csv.

LCI.materials <- read.csv("LCImaterials.csv")

If you receive such an error:

That means either your file name is incorrect, or R cannot localize the file in your computer, then you
would need to edit the code to exactly where the file is like the following for example:
LCI.materials <- read.csv("/Users/Mohamed Abdelfattah/LCA
2023/my_shiny_app/data/LCImaterials.csv")

As a next step, we will define a function which, based on a bridge’s dimensions and different design
options for the deck and girders will compute the total amount of energy consumed, as well as the
total amount of emissions.

LCA.bridge <- function(length, width, height, thickness, girder.Option, deck.Option,


materials) {
# function’s body
}

As a first step, we include the geometrical characteristics of the possible design elements as defined
in section 1.1. Add the following lines of code to the function’s body.

prefab.girder.Section <- 0.78


steel.girders.unitWeight <- 317 #the weight for HEM800 steel profile
asphalt.Q <- length * width * thickness

Next we use the split() function to create subsets of materials based on the different scopes we defined.

materials.split <- split(materials, materials$scope)

Different deck options lead to different amount of materials, as well as different interventions as per
our timelines. To take this into account, we will add the following block of code to the function’s
body. Note that functions like interventions.deck refers to the number of times that interventions occur
during the lifetime of the system. For you system, this needs to be defined based on the lifetime of
your system and frequency of interventions.

# calculate the volume of the deck based on different materials strategies


if(deck.Option == "RC") {
deck.volume <- length * width * height
interventions.deck <- 2.5
} else if (deck.Option == "PRC") {
deck.volume <- 0.5 * length * width * height
interventions.deck <- 2

page8
Life-Cycle Assessment – Individual Project Assignment 2
} else if (deck.Option == "FRP") {
deck.volume <- 0.2 * length * width * height
interventions.deck <- 1
}

Similarly, we define a similar selector based on different options for girders.

#girder options
if (girder.Option == "PRC") {
#get the numbers of girders
n <-round(width / 3.75, 0)
interventions.girders <- 2
#get the volume of the concrete
for the prefab girders
girders.V <- n *
prefab.girder.Section * length
} else if (girder.Option ==
"steel")
{
n <- round(width / 3, 0)
girders.V <- n *
steel.girders.unitWeight *
length
interventions.girders <- 2
} else if (girder.Option ==
"none") {
n <- 0
girders.V <- 0
interventions.girders <- 0
}

Now, we are going to use this data, which will be automatically selected, to create a matrix containing
the information we need for life cycle analysis. The first part, which is similar for all the design
options, is the asphalt.

asphalt <- mutate(materials.split$asphalt, bridge.Q = asphalt.Q, interventions = 12)

Next, we consider the deck option, and we supplement the data with specific information.

deck <- mutate(materials.split[[deck.Option]], bridge.Q = deck.volume, interventions =


interventions.deck)

For the girder options, we need to consider the fact that in the last option we do not have girders. To
sort this out, we add an if statement checking if the option provided has or does not have girders.

if (!is.null(materials.split[[girder.Option]])) {
girders <- mutate(materials.split[[girder.Option]], bridge.Q = girders.V,
interventions = interventions.girders)
LCA.matrix <- rbind(deck, girders, asphalt)
} else {
LCA.matrix <- rbind(deck, asphalt)
}
LCA.matrix <- rbind() creates the matrix with all the materials based on the options we defined.

page9
Life-Cycle Assessment – Individual Project Assignment 2
Based on the information we have, we now calculate the total amount of materials for the bridge
elements, as well as, the total amount of materials consumed during the lifecycle. Based on this, we
will calculate the total amount of energy and emissions per materials.

LCA.matrix <- mutate(LCA.matrix, TotalMaterials.Q = quantities * bridge.Q / 1000,


materials.LC = TotalMaterials.Q * interventions,
Energy.LC = materials.LC * energy,
CO2.LC = materials.LC * CO2 * 1000,
NOx.LC = materials.LC * NOX * 1000,
SO2.LC = materials.LC * SO2 * 1000)
Next, we calculate the total amount of energy and emissions for the design options. To do this, add
the following line of code.

LCA.results <- list(Energy = sum(LCA.matrix$Energy.LC),


CO2 = sum(LCA.matrix$CO2.LC),
NOx = sum(LCA.matrix$NOx.LC),
SO2 = sum(LCA.matrix$SO2.LC))

To conclude the function, we will add a return statement.

return(LCA.results)
Now that we have the function defined, we need to initialize the variables we need.

b.length <- 16 # units: m


b.width <- 15 #units m
bd.depth <- 0.25 #units m
asphalt.tk <- 0.12 #units m

We will create two vectors, which will contain different design options for girders and for deck.

Girder.Options <- c(“PRC”, “steel”, “none”)


deck.options <- c("RC", "PRC", "FRP")

At this point, it is important to mention that these identifiers must be identical with the ones defined
in the scope column of the table defined at point 1.2. This way the function will extract the information
specific to that design option.
To get the LCA results, we will net the add the following lines of code.

Option1 <- LCA.bridge(b.length, b.width, bd.depth, asphalt.tk, girder.Options[1], deck.options[1],


LCI.materials)
Option2 <- LCA.bridge(b.length, b.width, bd.depth, asphalt.tk, girder.Options[2], deck.options[1],
LCI.materials)
Option3 <- LCA.bridge(b.length, b.width, bd.depth, asphalt.tk, girder.Options[1], deck.options[2],
LCI.materials)
Option4 <- LCA.bridge(b.length, b.width, bd.depth, asphalt.tk, girder.Options[2], deck.options[2],
LCI.materials)
Option5 <- LCA.bridge(b.length, b.width, bd.depth, asphalt.tk, girder.Options[1], deck.options[3],
LCI.materials)
Option6 <- LCA.bridge(b.length, b.width, bd.depth, asphalt.tk, girder.Options[2], deck.options[3],
LCI.materials)
bd.depth <- 1.00
Option7 <- LCA.bridge(b.length, b.width, bd.depth, asphalt.tk, girder.Options[3], deck.options[1],
LCI.materials)

page10
Life-Cycle Assessment – Individual Project Assignment 2
We will create a matrix containing the results for all the options we defined by adding the following
line of code.
results <- as.data.frame(rbind(Option1 = unlist(Option1),
Option2 = unlist(Option2),
Option3 = unlist(Option3),
Option4 = unlist(Option4),
Option5 = unlist(Option5),
Option6 = unlist(Option6),
Option7 = unlist(Option7)))
Using the following lines of code, we create barplots to visualize different levels of energy
consumption for the life cycle of our design options.
barplot(results$Energy, names.arg = row.names(results))

The plot we obtain is similar to the one presented in the figure below.

energy consumption level for different design options.

Following a similar logic, we will create bar plots for the other indicators.

barplot(results$CO2, names.arg = row.names(results))

CO2 emissions for different design options

page11
Life-Cycle Assessment – Individual Project Assignment 2

For NOx emissions, we will add the following line of code:


barplot(results$NOX, names.arg = row.names(results))

NOx emissions for different design options


For SO2 emissions, we will add the following line of code:
barplot(results$SO2, names.arg = row.names(results))

SO2 emissions for different design options


Having multiple performance criteria, making a decision is difficult because we have a multi-criteria
decision-making problem (MCDM). For this, we are going to investigate the implementation of some
MCDM methods, such as AHP and TOPSIS.

page12
Life-Cycle Assessment – Individual Project Assignment 2
4. MCDM – Analytic hierarchy process (AHP)

The first MCDM method we are going to implement in R is AHP.

a. Structure the Decision Problem:


The decision problem is broken down into a hierarchy. At the top level, you have the goal, followed
by criteria that affect the decision, and finally, the alternatives.

In our case, the goal is to rank design options. The criteria (attributes on which the design options will
be compared) include energy, CO2, NOX, and SO2. The alternatives are the design options
("Option1", "Option2", ..., "Option7").

To have these, we will extract as vectors the names of the design options (alternatives) as well as the
names of the indicators (criteria/attributes).

alternatives <- rownames(results)

indicators <- colnames(results)

b. Defining the main functions of AHP calculations

The primary aim of AHP is to derive relative weights for each criterion and alternative. The method
converts subjective assessments into ratio scales.
• Eigenvectors: In AHP, eigenvectors of the pairwise comparison matrices represent the
relative weights of the criteria or alternatives. The principal eigenvector (associated with the
largest eigenvalue) is the one used to determine the weights.
• Intuitively, this principal eigenvector reveals a stable and consistent set of values
(weights) that maintain the ratio scale of comparisons as closely as possible. When
you multiply the matrix with this vector, the result is a scaled version of the vector
itself. That's why it is considered the best representative of relative weights.
• Normalization: Once the principal eigenvector is derived, it's normalized (divided by its sum)
to ensure that the weights sum up to 1.

So we define the following code for this:


getWeights <- function(mat) {
eigenvec <- eigen(mat)$vectors[,1]
w <- eigenvec / sum(eigenvec)
return(w)
}
Having obtained the weights for the criteria and the weights for the alternatives with respect to each
criterion, we need to aggregate them to derive an overall score for each alternative.
This is done using the AHP function, which multiplies the alternative weights with the criteria
weights and sums them up for each alternative.
AHP <- function(criteria_weights, alternatives_mats) {
criteria_w <- getWeights(criteria_weights)
alt_weights <- sapply(alternatives_mats, getWeights)
result <- alt_weights %*% criteria_w
return(result)
}

page13
Life-Cycle Assessment – Individual Project Assignment 2

c. Pairwise Comparisons:

You compare the criteria and alternatives pairwise to determine which is more important and by how
much. These comparisons are often represented using a matrix. If an element in the matrix (i,j) has a
value of 5, it means the ith element is five times as important as the jth element. A value of 1/5 would
mean the jth element is five times as important as the ith element.

The numbers in the tutorials are based on the 1-9 Saaty’s scale as seen in the table below (Saaty,
1980):

For each performance criteria, we will have to define the score matrix. To do this for energy, add the
following line of code.
energy <- t(matrix(c(1, 1/4, 4, 1/6, 5, 3, 2,
4, 1, 4, 1/4, 2, 2, 4,
1/4, 1/4, 1, 0.2, 3, 5, 4,
6, 4, 5, 1, 2, 3, 7,
1/5, 1/2, 1/3, 1/2, 1, 1/5, 1/6,
1/3, 1/2, 1/5, 1/3, 5, 1, 6,
1/2, 1/4, 1/4, 1/7, 6, 1/6, 1),
nrow=length(alternatives),ncol=length(alternatives),
dimnames = list(alternatives, alternatives)))

To easily test the reciprocal condition of your matrix we can use the following line of code:

energy == t(1/energy)

In case the condition is met, then on your console, will be printed a matrix containing TRUE elements.

Similarly, we will define the score matrices for the CO2, NOX and SO2 criteria. Also, add the
reciprocal check. Add the following lines of code to your script.

page14
Life-Cycle Assessment – Individual Project Assignment 2
CO2 <- t(matrix(c(1, 2, 5, 1, 3, 2, 4,
1/2, 1 , 3 , 2, 1/4, 1/3, 1/5 ,
1/5,1/3,1, 1/4, 2, 4, 6,
1, 1/2, 4, 1, 3, 2, 1/2,
1/3, 4, 1/2, 1/3, 1, 2, 4,
1/2, 3, 1/4, 1/2, 1/2, 1, 1/3,
1/4, 5, 1/6, 2, 1/4, 3, 1),
nrow=length(alternatives),ncol=length(alternatives),
dimnames = list(alternatives, alternatives)))
#check for reciprocal condition
CO2 == t(1/CO2)

NOX <- t(matrix(c(1, 2, 4, 1, 1/4, 3, 4,


1/2 ,1 , 3, 2, 4, 2, 1/3,
1/4, 1/3, 1, 1/5, 2, 3, 1/5,
1, 1/2, 5, 1, 3, 2, 1/4,
4, 1/4, 1/2, 1/3, 1, 2, 3,
1/3, 1/2, 1/3, 1/2, 1/2, 1, 2,
1/4, 3, 5, 4, 1/3, 1/2, 1),
nrow=length(alternatives),ncol=length(alternatives),
dimnames = list(alternatives, alternatives)))
#check for reciprocal condition
NOX == t(1/NOX)

SO2 <- t(matrix(c(1, 3, 2, 1, 1/4, 4, 1/3,


1/3, 1, 4, 3, 2, 1/3, 1/5,
1/2, 1/4, 1, 1/5, 2, 3, 2,
1, 1/3, 5, 1, 3, 4, 1/4,
4, 1/2, 1/2, 1/3, 1, 2, 3,
1/4, 3, 1/3, 1/4, 1/2, 1, 1/5,
3, 5, 1/2, 4, 1/3, 5, 1),
nrow=length(alternatives),ncol=length(alternatives),
dimnames = list(alternatives, alternatives)))
#check for reciprocal condition
SO2 == t(1/SO2)

Note: for your specific example, you would need to explain the numbers. In practice, these numbers
are computed from the exact values you just calculated in the LCA step. So, you compare real numbers
to each other’s so that you can get realistic results of ranking.

These score matrices we defined above represent the pairwise comparison matrices of the alternatives.
We will bundle these matrices in one list using the following line of code.
APCL <- list(energy=energy,
CO2=CO2,
NOX=NOX,
SO2 = SO2)

With this, we create a list of matrices, each one getting the name of the matrix as indicated by the left-
hand term.

Next, we will define the pairwise comparison matrix for each criterion. Each criterion (which in our
case is represented by the performance indicators we defined) will be ranked against the others.

What does this mean? Basically, you define which criterion has more value and which has less value
than the others.

page15
Life-Cycle Assessment – Individual Project Assignment 2
How to get these comparison numbers? This is based on the goal, specific case study, boundaries, etc.
So, it is crucial to explain what are the bases on which you got your comparison numbers. For
example, why criterion 1 (energy) is 3 times more important than criterion 3 (NOX).

Similar to the alternatives pairwise comparison, the matrix we define needs to meet the reciprocal
condition. To do this, we will add the following lines of code.

CWPC <- t(matrix(c(1, 1/2, 3, 2,


2, 1, 4, 1/3,
1/3, 1/4, 1, 1/2,

1/2, 3, 2, 1)

nrow=length(APCL),ncol=length(APCL),

dimnames = list(names(APCL), names(APCL))))

CWPC == t(1/CWPC)

d. Compute Results:

results.AHP <- AHP(CWPC, APCL)

results.AHP <- Re(results.AHP)

To visually represent the results, we can create a pie chart. To do this, add the following line of codes.

piepercent <- round(100 * results.AHP, 1)


pie(results.AHP, labels = piepercent,
col = c("lightblue", "mistyrose", "lightcyan",
"lavender",
"cornsilk", "thistle4", "steelblue4"),
radius = 1,
main = "Ranking of the design options using AHP")
legend("bottomleft",
alternatives, cex = 0.8,
fill = c("lightblue", "mistyrose", "lightcyan",
"lavender",
"cornsilk", "thistle4", "steelblue4"))

The result should look like the one shown below.

page16
Life-Cycle Assessment – Individual Project Assignment 2

Previously, looking at the bar plots we created for the levels of each indicator, our favorite option was
Option5 which actually had the lowest level of all the indicators. Now from the Pie chart we can see
that a more detailed analysis of our preferences changed the ranking, which in this case as shown in
the results of the AHP method is Option4 by having the highest score.

page17
Life-Cycle Assessment – Individual Project Assignment 2
References used:

Marceau, M., Nisbet, M.A. and Van Geem, M.G., 2007.


Life cycle inventory of portland cement concrete. Portland Cement Association.
(http://www.nrmca.org/taskforce/item_2_talkingpoints/sustainability/sustainability/
sn3011%5B1%5D.pdf)

Please do not hesitate to contact us in case you should have any questions or you are stuck
([email protected]). Very often, we can solve problems quickly. Please also
make use of the support sessions (Monday 14:00 – 16:00, Tuesday 12:00, 14:00).

We wish you fun and luck with this project assignment!

page18

You might also like