N.B. Update on 10 December 2016. The allocation decisions have moved to the web page of the Environmental Protection Authority.
The Environmental Protection Authority now hosts the 2015 Industrial Allocation Decisions that show the final free allocation of emission units to emitters for 2015 under the New Zealand Emissions Trading Scheme.
The New Zealand Ministry for the Environment no longer hosts the unit allocation data and the old link returns an Acess Denied page.
I looked at the 2010 to 2014 data in my post Opening up the data on emissions units in the NZ emissions trading scheme. So in this post I am will repeat my steps in web-scraping the freebie emissions unit data into a sensible open-data format (but with the links updated to the EPA).
The url of the old Ministry for the Environment web page is http://www.mfe.govt.nz/climate-change/reducing-greenhouse-gas-emissions/new-zealand-emissions-trading-scheme/participatin-4
The url of the EPA web page is http://www.epa.govt.nz/e-m-t/taking-part/Industrial-allocations/allocations-decisions/Pages/decisions-2010.aspx. And unfortunately, the Google sheet 'scrape the table' script does not seem to work with the EPA page.
Go to Google and open a new Google sheet.
Following the tip from the School of Data Liberating HTML Data Tables, enter this text in cell A1 of the Google sheet.
=importHTML("","table",1)
Add the url of the Ministry for the Environment's free allocation web-page between the double speech marks so you have this exact text in cell A1.
=importHTML("http://www.mfe.govt.nz/climate-change/reducing-greenhouse-gas-emissions/new-zealand-emissions-trading-scheme/participatin-4","table",1)
It was good thing that I kept a screen shot to show that it worked perfectly! We now have a Google sheet of the 2015 free unit allocation to NZ emissions trading scheme emitters.
I have saved it as NZETS-2015-final-allocations-for-eligible-activities.
However, the data does not have a "tidy" structure, where each variable is a column and each observation is a row (Wickham, Hadley . "Tidy Data" Journal of Statistical Software [Online], Volume 59, Issue 10 (12 September 2014)).
The first column includes both industry names and types of industries classified by the type of emissions the industry produces. And lots of asterisks. A tidy format would have these attributes (or variables) as separate columns so that each company/emitter would have a row each.
I used a programme called Open Refine (which is also at Github) to data-wrangle the data into tidy format and to save it as a comma-separated values file which is this Google sheet NZETS-2015-final-allocations-for-eligible-activities. Its a bit fiddly using Open Refine, and I have not documented the steps. I won't describe how I did it. Yes, I know, from the point of view of reproducing the tidied data I should have done the tidying with a script or code. Next time I will.
As usual, the big emitters get the most emission units! Of 4.417 million units allocated to industries, 90% went to 11 large companies. New Zealand Steel Development Limited, of arbitrage profits fame, gets 1,067,501 free units. New Zealand Aluminium Smelters Limited gets 772,706 free units.
This is the updated free emission unit allocation data from 2010 to 2015.
I did a bit of data visualising with the 2015 data and created this pie-chart in R programming language.The R script for that is:
# read in data downloaded from Google Sheets as a dataframe | |
nzu2015 <- read.csv("nzu-allocation-2015.csv",skip=0,header=TRUE, sep = ",",dec=".",na.strings ='na') | |
# examine the dataframe | |
str(nzu2015) | |
'data.frame': 108 obs. of 4 variables: | |
$ Year : int 2015 2015 2015 2015 2015 2015 2015 2015 2015 2015 ... | |
$ Applicants.Name : Factor w/ 97 levels "ACI Operations NZ Limited",..: 53 31 94 9 59 96 58 23 36 15 ... | |
$ Activity : Factor w/ 26 levels "Aluminium Smelting",..: 1 2 2 3 4 5 6 7 7 8 ... | |
$ Final.Unit.Entitlement: int 772706 152951 3089 173906 13271 79585 9927 325532 184794 1563 ... | |
# How many emission units were given to emitter industries in 2015? | |
sum(nzu2015[["Final.Unit.Entitlement"]] ) | |
[1] 4329248 | |
# How many units given to the top 12 emitters? | |
sum(nzu2015[["Final.Unit.Entitlement"]][1:12]) | |
[1] 3960716 | |
# call that number 'therest' | |
therest<-sum(nzu2015[["Final.Unit.Entitlement"]][1:12]) | |
therest | |
[1] 3960716 | |
total <-sum(nzu2015[["Final.Unit.Entitlement"]]) | |
# look at the top 12 allocations | |
nzu2015[["Final.Unit.Entitlement"]][1:12] | |
[1] 1067501 772706 655851 325532 184794 173906 152951 148311 143262 | |
[10] 122825 121292 91785 | |
# who received the biggest 12 free allocations? | |
nzu2015[["Applicants.Name"]][1:12] | |
[1] New Zealand Steel Development Limited | |
[2] New Zealand Aluminium Smelters Limited | |
[3] Methanex New Zealand Limited | |
[4] Fletcher Concrete and Infrastructure Limited | |
[5] Holcim (New Zealand) Limited | |
[6] Ballance Agri-Nutrients (Kapuni) Limited | |
[7] Graymont (NZ) Limited (formerly McDonalds Lime Limited) | |
[8] Oji Fibre Solutions (NZ) Limited (formerly Carter Holt Harvey Pulp & Paper Limited) | |
[9] Oji Fibre Solutions (NZ) Limited (formerly Carter Holt Harvey Pulp & Paper Limited) | |
[10] Norske Skog Tasman Limited | |
[11] Pan Pac Forest Products Limited | |
[12] Winstone Pulp International Limited | |
97 Levels: ACI Operations NZ Limited ... Winstone Pulp International Limited | |
# we have 2 allocations to Oji Fibre formerly known as Carter Holt Harvey Pulp and Paper Ltd | |
[8] [9] | |
148311 + 143262 | |
[1] 291573 | |
# How many units were given to all the other emitters? | |
total - therest | |
[1] 368532 | |
# set up the vector of the top 12 and the names | |
units<-c(1067501, 772706, 655851, 325532, 291573, 184794, 173906, 152951, 122825, 121292, 91785,368532) | |
names<-c("New Zealand Steel Development Ltd","NZ Aluminium Smelters Ltd","Methanex New Zealand Ltd", "Fletcher Concrete Ltd","Oji Fibre Solutions (ex CHH)","Holcim (NZ) Ltd","Ballance Agri-Nutrients","Graymont (ex McDonalds Lime)", "Norske Skog Tasman Ltd","Pan Pac Forest Products Ltd", "Winstone Pulp International Ltd","All others") | |
png("nzu-allocations-pie-2015-680.png", width=680, height=510, pointsize = 14) | |
pie(units,labels=c(names),radius = 0.95,clockwise = FALSE,init.angle=90, col = rainbow(13),cex.lab=1.1,cex.main=1.5,main="NZETS free allocation of emission units to industry 2015") | |
mtext(side=1,cex=0.9,line=1.5, "Source: http://www.mfe.govt.nz/climate-change/reducing-greenhouse-gas-emissions/\nnew-zealand-emissions-trading-scheme/participatin-4") | |
mtext(side=3,cex=0.9,line=-0.1,"Of 4.417 million units allocated to industry 90% went to 11 companies") | |
dev.off() |
Did I not get the End the Rainbow memo? So I picked a better colour scale from Colour Brewer.
The R script for this non-rainbow pie chart is:
mypalette<-brewer.pal(12, "Paired") | |
png("nzu-allocations-pie2-2015-680.png", width=680, height=510, pointsize = 14) | |
pie(units,labels=c(names),radius = 0.95,clockwise = FALSE,init.angle=90,col = mypalette, cex.lab=1.1,cex.main=1.5,main="NZETS free allocation of emission units to industry 2015") | |
mtext(side=1,cex=0.9,line=1.5,"Source: http://www.mfe.govt.nz/climate-change/reducing-greenhouse-gas-emissions/\nnew-zealand-emissions-trading-scheme/participatin-4") | |
mtext(side=3,cex=0.9,line=-0.1,"Of 4.417 million units allocated to industry 90% went to 11 companies") | |
dev.off() |