China launches major cleanup operation after oil spill


After an after an oil pipeline in China exploded and spilled around 1,500 tonnes of oil into the Yellow Sea near the city of Dalian, the government has launched a cleanup operation consisting of more than 800 vessels.
The spill occurred on Friday, after a pipeline at the port exploded. The oil terminal at the port has been closed ever since. Authorities have been using 24 ships designed for cleaning up oil, and today ordered around 800 civilian fishing boats to join the operation.
The spill has been halted, although an oil slick which measured 50 square kilometers at its height remains in the harbor, and ships are using absorbent foam to remove oil from the water, as well as barriers to keep oil from reaching the shore. Despite their efforts, parts of the coast reportedly have a slick of oil evident on beaches and rocks.
Although rough seas have affected the cleanup, authorities expect to have completed the operations within ten days.
According to domestic media, concerns over safety at the port have been raised in the past; a government study in 2006 noted that five projects at the port were at risk of accidents.
The spill has caused ongoing disruptions to the port's operations, with several ships, including six oil tankers carrying a total of around twelve million barrels of oil, having been diverted to other ports both in China and other countries.

