Damage vector for life-cycle analysis: Difference between revisions
Jump to navigation
Jump to search
(→Formula: variables renamed, code debugged but units are not clear) |
(→Formula: code commented) |
||
Line 65: | Line 65: | ||
damagesPerImpact <- opbase.data("Op_en5902.damagefactors") # Download the data from Opasnet Base. | damagesPerImpact <- opbase.data("Op_en5902.damagefactors") # Download the data from Opasnet Base. | ||
damagesPerImpact <- reshape( # Reshape it into the wide format. | damagesPerImpact <- reshape( # Reshape it into the wide format. | ||
damagesPerImpact[ , colnames(damagesPerImpact) != "Obs"], | damagesPerImpact[ , colnames(damagesPerImpact) != "Obs"], # Data to be reshaped | ||
times = "Result", | times = "Result", # Column(s) to be reshaped | ||
timevar = "Unique_categories", | timevar = "Unique_categories", # Column identifiers | ||
idvar = "Damage_categories", | idvar = "Damage_categories", # Row identifiers | ||
direction = "wide" | direction = "wide" # Reshape from long to wide format | ||
) | ) | ||
colnames(damagesPerImpact) <- gsub("Result.", "", colnames(damagesPerImpact)) # Remove extra "Result." from colnames. | colnames(damagesPerImpact) <- gsub("Result.", "", colnames(damagesPerImpact)) # Remove extra "Result." from colnames. | ||
rownames(damagesPerImpact) <- damagesPerImpact[[1]] # Make the first column the rownames. | rownames(damagesPerImpact) <- damagesPerImpact[[1]] # Make the first column the rownames. | ||
Line 94: | Line 95: | ||
coffee <- opbase.data("Op_en5902.coffeecupinputs") # Download the data from Opasnet Base. | coffee <- opbase.data("Op_en5902.coffeecupinputs") # Download the data from Opasnet Base. | ||
coffee <- coffee[ , colnames(coffee) != "Obs"] | coffee <- coffee[ , colnames(coffee) != "Obs"] # Remove the redundant Obs column. | ||
cat("Primary prosesses related to a cup of coffee (in Euro)\n") | cat("Primary prosesses related to a cup of coffee (in Euro)\n") | ||
print(xtable(coffee), type = 'html') | print(xtable(coffee), type = 'html') | ||
# Combine the direct requirements of a coffee cup with a full vector of requirements and fill empty cells with 0. | |||
coffee <- merge(data.frame(directRequirements = rownames(impactsPerDollar)), coffee, all.x = TRUE) | coffee <- merge(data.frame(directRequirements = rownames(impactsPerDollar)), coffee, all.x = TRUE) | ||
coffee$Result <- ifelse(is.na(coffee$Result), 0, coffee$Result) | coffee$Result <- ifelse(is.na(coffee$Result), 0, coffee$Result) | ||
# | # Get the normalisation data for different damages and make an ovariable out of it. | ||
temp <- tidy(opbase.data("Op_en5904"), objname="normalisation") | temp <- tidy(opbase.data("Op_en5904"), objname="normalisation") | ||
Line 112: | Line 115: | ||
data = temp | data = temp | ||
)) | )) | ||
impactsPerDollar <- impactsPerDollar * coffee$Result # Multiply data matrix with activities. | impactsPerDollar <- impactsPerDollar * coffee$Result # Multiply data matrix with activities. | ||
out <- impactsPerDollar %*% damagesPerImpact | out <- impactsPerDollar %*% damagesPerImpact # Do a matrix multiplication | ||
# After matrix operations, turn | # After matrix operations, turn out into a data.frame for graphics. | ||
out <- as.data.frame(out) | out <- as.data.frame(out) | ||
out$directRequirements <- rownames(out) | out$directRequirements <- rownames(out) | ||
out <- melt(out, idvars = "directRequirements", variable_name = "damages") | out <- melt(out, idvars = "directRequirements", variable_name = "damages") # Reshape into long format | ||
out <- out[out$value >= sum(out$value) * limit , ] | out <- out[out$value >= sum(out$value) * limit , ] # Remove all rows with smaller values than the limit. | ||
out <- dropall(out) | out <- dropall(out) | ||
# Rename the columns to reflect actual things. | # Rename the columns to reflect actual things. | ||
Line 132: | Line 133: | ||
colnames(out)[colnames(out) == "value"] <- "Result" | colnames(out)[colnames(out) == "value"] <- "Result" | ||
damages <- EvalOutput(new("ovariable", name = "damages", data = out)) | damages <- EvalOutput(new("ovariable", name = "damages", data = out)) # Make an ovariable | ||
# | |||
damageFractions <- damages / normalisation * 365 | damageFractions <- damages / normalisation * 365 # Normalise and scale to daily values. | ||
# | # Plot results on a bar graph. | ||
cat("Effects smaller than", limit*100, "% of the total effect are not shown.\n") | cat("Effects smaller than", limit*100, "% of the total effect are not shown.\n") |
Revision as of 16:53, 24 January 2013
Moderator:Nobody (see all) Click here to sign up. |
This page is a stub. You may improve it into a full page. |
Upload data
|
Question
What are the damages per unit purchased commodity using a life-cycle assessment?
Answer
Rationale
Dependencies
Data
Obs | Unique_categories | Human health | Ecosystem quality | Climate change | Resources | Water consumption |
---|---|---|---|---|---|---|
1 | Carcinogens | 0.0000028 | 0 | 0 | 0 | 0 |
2 | Non-carcinogens | 0.0000028 | 0 | 0 | 0 | 0 |
3 | Respiratory inorganics | 0.0007 | 0 | 0 | 0 | 0 |
4 | Ionizing radiation | 0.00000000021 | 0 | 0 | 0 | 0 |
5 | Ozone layer depletion | 0.00105 | 0 | 0 | 0 | 0 |
6 | Respiratory organics | 0.00000213 | 0 | 0 | 0 | 0 |
7 | Aquatic ecotoxicity | 0 | 0.0000502 | 0 | 0 | 0 |
8 | Terrestrial ecotoxicity | 0 | 0.00791 | 0 | 0 | 0 |
9 | Terrestrial acidification/nutrification | 0 | 1.04 | 0 | 0 | 0 |
10 | Land occupation | 0 | 1.09 | 0 | 0 | 0 |
11 | Aquatic acidification | 0 | 0 | 0 | 0 | 0 |
12 | Aquatic eutrophication | 0 | 0 | 0 | 0 | 0 |
13 | Global warming | 0 | 0 | 1 | 0 | 0 |
14 | Non-renewable energy | 0 | 0 | 0 | 1 | 0 |
15 | Mineral extraction | 0 | 0 | 0 | 1 | 0 |
16 | Water withdrawal | 0 | 0 | 0 | 0 | 0 |
17 | Water consumption | 0 | 0 | 0 | 0 | 1 |
Example of coffee cup
Obs | directRequirements | Result |
---|---|---|
1 | 31131A - Sugar cane mills and refining | 0.1 |
2 | 112120 - Dairy cattle and milk production | 0.2 |
3 | 311820 - Cookie, cracker, and pasta manufacturing | 0.5 |
4 | 311920 - Coffee and tea manufacturing | 0.2 |
5 | 221100 - Electric power generation, transmission, and distribution | 0.1 |
6 | 322299 - All other converted paper product manufacturing | 0.04 |
7 | 335210 - Small electrical appliance manufacturing | 0 |
8 | 335221 - Household cooking appliance manufacturing | 0.01 |
Formula
See also
Keywords
References
Related files
<mfanonymousfilelist></mfanonymousfilelist>