Automatic Digitisation of Antarctic Coastline from Satellite Imagery

This post is a write-up of a Computing Science MSc project with Anastasija Jadrevska.

In my previous position at British Antarctic Survey (BAS), I was involved in preparing base mapping data to support operations, logistics and research in Antarctica. The continent is huge, 50 times the area of the UK and, and the enterprise of keeping these geospatial datasets up to date is very resource intensive. A particular vital requirement for ship and aircraft operations is an accurate dataset representing the ice coastline, data which changes rapidly, often on a weekly basis. The best update frequency achieved using manual digitisation using Geographic Information Systems (GIS) has hitherto been once every 6 months, not really reflecting the dynamic nature of the ice environment.

Photo by Matt Palmer on Unsplash

It has been clear for some time that an automated, software-driven approach to preparing the coastline data might lead to a much more efficient process, and much better data serving the Antarctic community. In the light of this, I consulted with my ex-colleagues at BAS and came up with a specification for a six-month student project to develop a software pipeline to attempt to deduce a plausible coastline from freely available satellite imagery sources. Anastasija Jadrevska took on the project as part of her MSc in Advanced Computer Science, and what follows draws on the results of her dissertation.

There is a good and regularly acquired catalogue of Sentinel 1 SAR (radar) images available from Polar View which provide high resolution (40m pixel size) cloud-free radar images around the whole coastal area of Antarctica. These are the raw material for the current manual approach, and, by using some kind of edge detection algorithm, are also amenable to automatic deduction of the coastline.

It might be thought that tracing an ice edge (generally very bright in a radar image) against open water (dark) would be an easy task for edge detection. Anastasija demonstrated this is not the case — there are many potential problem scenarios. Here are just a few examples:

a. Different brightness/contrast across adjacent images. This needs to be adjusted for in tracing out a coastline.

b. Shattered ice areas, usually where glacier fronts have calved and small icebergs fallen into the sea. Such small transient blocks of ice would not form part of a coastline dataset and need to be eliminated.

c. Where rock coastline meets ice — the former is not going to change except in geologic time, so any automatic procedure needs to be able to detect and eliminate invariant data.

d. Another illustration of ambiguity in the interpretation of what is and isn’t coast. Lots of transient sea ice in this image — where does it end, and mainland coast begin?

e. Low brightness/contrast caused by predominantly rock coastline giving a different quality of response to the sensor.

The task of the project was to investigate ways that these kinds of problems could be tackled without too much post-process manual intervention. However, even experts in looking at sea ice conditions can differ widely in their interpretations of coastline in some of the edge-case scenarios, so the automated approach will likely never be a complete solution (one interesting potential future enhancement would be for the pipeline to incorporate a machine learning component, taking appropriately structured feedback from experts to refine the interpretation in the ambiguous cases. This was out of the scope of the current project due to time limitations).

Anastasija’s approach was threefold:

  1. Evaluation of different pre-processing methods for the imagery (Noise Reduction). This was found to be necessary to eliminate spurious fine structure in the images which could confuse the edge-detection algorithm later. It also served to enhance the actual edges representing coastline.
  2. Investigating the performance and suitability of two different boundary extraction techniques (Canny Edge Detection and Segmentation) and determining which gave the best results.
  3. Using GIS software (QGIS, a popular Open Source desktop package) to convert the edges resulting from (2) — which are raster data — into vector data, the desired output format for the final coastline.

A reference coastline was provided, namely the dataset from the most recent manual update in September 2019. This gives some useful guidance to the edge detection algorithm, particularly pinpointing where the invariant coastline is, and indicating start/end points for ice coastline segments which the algorithm will be recomputing. It was extremely helpful for the purposes of looking at the accuracy of the results to have an updated coastline, digitised manually in May 2020.

The best Noise Reduction method turned out to be a bilateral filter, using a weighting factor for each pixel based on the average intensity of its neighbours. The filter enabled good elimination of noise without losing fine detail or the ability to perceive sharp edges.

Edge Detection

ED algorithms aim to identify sets of points in the image where the intensity value has a discontinuity.

Anastasija began by trialling Canny Edge Detection. An edge in an image may point in a variety of directions, so the Canny algorithm uses four filters to detect horizontal, vertical and diagonal edges in the blurred image. This process results in a dataset known as an Intensity Gradient for the image (for those interested, she used Python bindings to the OpenCV image processing library with the Sobel Kernel to assist here).

Armed with the gradient information, a technique known as Non-maximum Suppression is then used to remove unwanted pixels which do not contribute to edges. A final post-process, applying maximum and minimum intensity threshold values (empirically determined) removes many of the artefacts of the previous process, in theory leaving a good coastline edge.

Here is Anastasija’s best result from several experiments, varying the above threshold values each time:

While the desired coastline is (mostly) clearly delineated, there is still a great deal of noise, and the application of a strong blurring filter in stage 1 made little difference.

The second approach tried was Segmentation. This process separates the SAR image into two homogenous regions — land and water. This technique is widely used when trying to solve the problem of edge detection. In contrast to actual edge detection algorithms, it is based on similarity and works by grouping pixels by common features. Anastasija’s research into past work in this area indicated some considerable success in the area of coastline detection. The technique works by turning the input greyscale SAR image into a binary (1-bit — black and white) image by applying an appropriate thresholding method. The choice of threshold value is key to the success of the method, and the disparity in brightness/contrast between individual images presents a clear challenge to automating the process as a software pipeline (rather easier to manually choose a value by inspecting each image by eye!). Otsu’s Method was chosen to compute the threshold value, following several different evaluations.

It works by going through all the possible threshold values, performing a “measure of spread” calculation for the pixel levels located each side of the threshold (the transition from foreground to background). An example image where this worked well is shown below:

There is a clear boundary indicating the desired coastline. The challenge for Anastasija at this point was to eliminate the multiple misclassified boundaries (internal to mainland Antarctica and therefore completely irrelevant to the current purpose). She opted to filter out spurious background (black) areas by using a size threshold, which worked well much of the time. There will, however, be cases where the water area on an image (due to the combination of coastal nature and image orientation) ends up being smaller than the threshold and is erroneously eliminated. Perhaps use of the reference vector coastal dataset, eliminating all background areas contained within its borders, would be a more reliable approach?

However, the above clean-up is done, the algorithm to detect the coastline as a raster, and converting it to a vector dataset (using Python bindings for GDAL), can be run. Here is the output from the above image:

The results are quite impressive for the example image. Anastasija needed then to think about how to generalise the process to handle a contiguous series of SAR images in different orientations, spread around the Antarctic coastal region. The main difficulty was the presence of gaps in the discovered coastline occurring at image boundaries (especially true if the images were acquired on different dates and the ice environment was particularly dynamic). This is a fertile area for more research, as reliable solutions to these problems proved beyond the timescale of this project.

Final coastline outputs

The algorithms performed well for “normal” images I.e. those with a good level of contrast and proportions of both land and ocean areas:

Coastline deduced by the algorithm shown in green. Reference coastline (from September 2019) shown in red. Image (a) shows clear inaccuracies (simple offsets) in the reference data, and a degree of manual interpretation around the inlet which would be difficult for an automated process to emulate.

Images containing areas of shattered ice, for example around a calving glacier front, presented few extra challenges for the algorithm. In the images below (deduced coast in green, reference in red) it could be argued that the output from the algorithm is too detailed! The reference coastline is much simplified, although this may reflect much reduced sea ice activity in these areas at the time. It does illustrate the need for some degree of geometric simplification on the result, so that the dataset conforms to a particular resolution. Working with geospatial data of the complexity below can present performance and memory problems for both desktop and web GIS systems.

Low brightness and contrast in the images below made it hard to determine a reliable threshold, and resulted in sea ice misclassified as land.

Conclusions

The automation of the digitisation of a coastline is a difficult task and is part of an ongoing research area. Attempting to perform this process in an Antarctic context is particularly challenging as ice coastline changes rapidly and exhibits many ambiguous cases due to its high dependence on factors such as weather. Anastasija’s work amply demonstrated the feasibility of automatically digitising a coastline from imagery; there is much interesting work still to be done enhancing the software pipeline to become more automatic in future, including the identification and compilation of an appropriately dated image working set (this had to be done manually). The provision for some degree of algorithm training by accepting expert feedback would also be valuable.

--

--