Background

The Shipbreaking Platform is a coalition of environmental, human and labour rights organisations first created in September 2005. That year, it was realised by some of the few NGOs working on the shipbreaking issue that a broader base of support both geographically and in orientation was needed to challenge the arguments from a powerful shipping industry not used to being held accountable for its substandard practices. - Taken from http://www.shipbreakingplatform.org/what-we-do/

Data Analysis

Having a solid background in the Marine Industry, I wanted to explore this dataset and wanted to know more about the challenges that we face, as shipbuilding nations continue to build more larger ships. While the marine industry is moving towards greener ships and tighter environmental controls on ship design and machinery. Unfortunately, the technology for scrapping vessels, through efficient and “cleaner” methods remains up to this day as UNDEVELOPED. While major ship owners can easily modify their existing fleet to the latest marine technology, however, for the small and medium size ship owners, this may come of a greater challenge considering that shipping business is always profit driven. The last thing they will plan are spending their profits for scrapping. We hope that major shipping countries may also work on ways and try to be more responsible, not only on the start of the vessels service life but until towards scrapping / shipbreaking.

This dataset can be downloaded at http://www.shipbreakingplatform.org/shipbrea_wp2011/wp-content/uploads/2017/01/2016-List-of-all-ships-scrapped-worldwide.xlsx

library(readxl)
library(dplyr)
library(ggplot2)
library(DT)
library(RColorBrewer)
library(ggpubr)
library(magrittr)

let’s load our Dataset

scrap <- read_excel("~/Documents/Rstudio/My created datasets/2016-List-of-all-ships-scrapped-worldwide.xlsx")
head(scrap)
## # A tibble: 6 x 15
##              VESSEL    X__1                                 X__2  X__3
##               <chr>   <chr>                                <chr> <chr>
## 1              NAME    IMO#                                 TYPE    GT
## 2           Frosina 7125196                        General Cargo  2757
## 3             Luena 8706088     Combined Chemical And Oil Tanker 22733
## 4           Trident 8808537                       Product Tanker 19034
## 5              Cent 8203309 Bulk Carrier With Container Capacity 13004
## 6 Austral Leader II 7382770                              Trawler  1045
## # ... with 11 more variables: X__4 <chr>, FLAG <chr>, OWNERSHIP <chr>,
## #   X__5 <chr>, X__6 <chr>, X__7 <chr>, X__8 <chr>, X__9 <chr>,
## #   DESTINATION <chr>, X__10 <chr>, X__11 <chr>
colnames(scrap) <- c("Name", "IMO", "Type", "GT", "Built", "Flag", 
                     "Ownership", "Shipping_Nation", "Operator", "Registered_Owner", 
                     "RO_Country","Date_Sold", "Shipbreaking_City", "Shipbreaking_Country", "Arrival")
scrap1 <-scrap[-1,]
summary(scrap1)
##      Name               IMO                Type          
##  Length:862         Length:862         Length:862        
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##       GT               Built               Flag          
##  Length:862         Length:862         Length:862        
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##   Ownership         Shipping_Nation      Operator        
##  Length:862         Length:862         Length:862        
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##  Registered_Owner    RO_Country         Date_Sold        
##  Length:862         Length:862         Length:862        
##  Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character  
##  Shipbreaking_City  Shipbreaking_Country   Arrival         
##  Length:862         Length:862           Length:862        
##  Class :character   Class :character     Class :character  
##  Mode  :character   Mode  :character     Mode  :character
mytheme_1 <- function() {
  return(theme(axis.text.x = element_text(angle = 90, size = 10, vjust = 0.4), 
               plot.title = element_text(size = 15, vjust = 2),
               axis.title.x = element_text(size = 12, vjust = -0.35))) 
                         }
by_built <- scrap1 %>%
  group_by(Built) %>%
  summarise(Total = n()) %>%
  arrange(desc(Total)) %>%
  ungroup()

We check the year Built of all vessels scrap in 2016

We can see that vessels built during the mid 1990’s compromise the highest number of scrap vessels.

ggplot(by_built, aes(Built, Total)) + 
  geom_bar(stat = "identity", fill = "blue") + mytheme_1() + 
  labs(title = "Year Built of Scrap Vessels",
      subtitle = "Vessels which are 30 years older built from 1996 up to 1998 signify the highest.",
      caption="Source:NGO Shipbreaking Platform", 
      x= "Year Built", y = "Number of Scrap Vessels")

by_flag <- scrap1 %>%
  group_by(Flag) %>%
  summarise(Total = n()) %>%
  arrange(desc(Total)) %>%
  ungroup()

Most common flags for vessels scrap in 2016

We can see the Panama flag as the highest “end” of ship flag followed by Liberia then St.Kitts-Nevis. Most of these flags belonging to top 5 are what we call “flags of convenience”.

ggplot(by_flag, aes(x=reorder(Flag, -Total), Total)) + 
  geom_bar(stat = "identity", fill = "purple") + mytheme_1() +labs(title = "Flags of Vessels Scrap in 2016",
                                                subtitle = "Panama followed by Liberia then St.Kitts-Nevis tops the flags for vessels scrap.",
caption = "Source: NGO Shipbreaking Platform", 
x= "Vessel Flag", y = "Number of Scrap Vessels")   

by_ship_type <- scrap1 %>% 
  group_by(Type) %>% 
  summarise(Total = n()) %>% 
  arrange(desc(Total)) %>%
  ungroup()

#Most of the vessels scrap in 2016 were bulk carriers. We can see that 362 bulk carriers were sent to scraped during 2016 followed by Fully Containership at 167 ships then General Cargo With Container Capacity at 68 vessels. Between these 3 types of ships, we have total 597 ships sent to scraped. More or less, that is the same number as the newbuildings that are being built in one year. How, ironic!

datatable(by_shipping_nation)

#Top shipping nations of vessels scrap in 2016.

We can see that Greece contributed total of 133 ships followed by China at 105 ships then Germany at 100 vessels. This is true, as all these 3 countries are leading as top shipowning nations.

Further reading can be found here: http://worldmaritimenews.com/archives/193786/greece-keeps-the-lead-as-largest-ship-owning-nation/

by_shipbreaking_country <- scrap1 %>%
  group_by(Shipbreaking_Country) %>%
  summarise(Total = n()) %>% filter(Total > 2) %>%
  arrange(desc(Total)) %>%
  ungroup()
datatable(by_shipbreaking_country)

#Top Shipbreaking Countries

We can see that most of the ship’s will be sent to shipbreaking yards in India counting at 305 vessel, followed by Bangladesh 222 vessels and then Pakistan at 141 ships. Both Turkey and China also makes the list. Denmark and Belgium makes the list but according to the data, both countries are engaged in shipbreaking of smaller ships like yacht, fishing boats and tugboats. Types of ships which are relatively small and can be broken down easily with almost zero to minimal environment impact.

                                                                                                                ggdotchart(by_shipbreaking_country, x = "Shipbreaking_Country", y = "Total" , color = "Shipbreaking_Country", palette = "Dark2",sorting = "descending",rotate = TRUE, dot.size = 6,                                 
           y.text.col = TRUE,                            
           ggtheme = labs_pubr(),
           add = "segments" ,
           label = round(by_shipbreaking_country$Total),
           font.label = list(color = "white", size = 8, 
                             vjust = 0.5))

by_shipbreaking_city <- scrap1 %>%
  group_by(Shipbreaking_City) %>%
  summarise(Total = n()) %>% filter(Total > 2) %>%
  arrange(desc(Total)) %>%
  ungroup()
datatable(by_shipbreaking_city)

#Major Shipbreaking Cities.

We can see that the Alang City of India holds the top spot in shipbreaking cities followed by Chittagong, Bangladesh then Gadani Pakistan. We can also see 4 cities from China which are also involved in shipbreaking. To refer from our data prior, out of the 3 major shipping nations, only China is involved in at least “scrapping” their own vessels.

Further reading can be found on this website: http://indianexpress.com/article/india/india-news-india/a-graveyard-goes-silent/

ggdotchart(by_shipbreaking_city, x = "Shipbreaking_City", y = "Total" , color = "Shipbreaking_City",            palette = "jco",sorting = "descending", rotate = TRUE, dot.size = 8,                                 
y.text.col = TRUE,                            
ggtheme = labs_pubr(),
add = "segments" ,
label = round(by_shipbreaking_city$Total),
font.label = list(color = "white", size = 8, 
svjust = 0.5))

by_ownership <- scrap1 %>%
  group_by(Ownership, Shipping_Nation) %>%
  summarise(Total = n()) %>% 
  arrange(desc(Total)) %>%
  ungroup()

List of Ship Companies and Total Vessels Scrapped in 2016

datatable(by_ownership)

##In Conclusion:

We can see that vessels built during the mid 1990’s compromise the highest number of scrap vessels. We can see the Panama flag as the highest “end” of ship flag followed by Liberia then St.Kitts-Nevis. Most of the vessels scrap in 2016 were bulk carriers. We can see that Greece contributed total of 133 ships followed by China at 105 ships then Germany at 100 vessels. Note that out of the 3 major shipping nations, only China is involved in at least “scrapping” their own vessels. We can see that most of the ship’s will be sent to shipbreaking yards in India followed by Bangladesh and then Pakistan.