Inspiration

Iceberg Watch began with a question about a moving iceberg near Coulman Island: could changes in the surrounding ice affect a penguin colony’s access to open water? I wanted to investigate the wider region rather than follow only one prominent object, and to connect satellite image processing with a measurable spatial question.

As a second year ACSAI student at Sapienza University, I built the project individually to learn how to turn satellite observations into a reproducible analysis while being clear about what the available evidence can support.

What it does

The project analyses four Sentinel 1 radar observations from 16, 22 and 28 July and 21 August 2025. It detects iceberg candidates across a shared study region, proposes associations between observations and calculates how candidate barriers affect modelled access routes.

The comparison keeps the assumed August water boundary, colony starting point and permitted domain fixed while changing the candidate barriers. This makes it a controlled scenario comparison, rather than a reconstruction of July water conditions or an observation of penguin movements.

The website lets visitors explore all four dates, compare routes with and without candidate barriers, inspect individual candidate effects and test different corridor assumptions. A separate interactive grid demonstrates how the routing algorithm responds to obstacles.

How I built it

Python and OpenCV 5 handle filtering, thresholding, morphology, connected component analysis and reference image registration. Rasterio and NumPy support geographic preparation and spatial masks, while a shortest path solver prevents travel through blocked cells and diagonal shortcuts through blocked corners.

Raw satellite preparation was performed locally. AWS EC2 runs the analysis from prepared maps through a 26 stage pipeline that includes candidate processing, association proposals, route calculations and validation. The public website presents saved Antarctic results, while the separate synthetic example recalculates in the browser.

Human review records uncertain associations and visual observations without silently changing the automatic detector or turning those opinions into verified accuracy scores.

Results and accomplishments

At 80 metre grid spacing with offshore candidates, the four dates contain 37, 28, 33 and 44 candidates. For 16 July, 13 of the 37 candidates intersect the permitted route domain, and one changes the calculated result in the individual intervention tests.

The extra distances with all candidate barriers are approximately 33, 137, 66 and 66 metres across the four dates. Candidates are tested both alone and by removal from the complete set, so detection counts are distinguished from actual effects on the model.

A separate corridor experiment finds paths in 35 of 48 trials and reports the remaining 13 as unavailable. The current source package includes 53 software tests. The recorded AWS execution passed 56 tests before three checks for retired experiments were removed.

Challenges and lessons

The hardest problem was distinguishing open water from ice using radar appearance. Dark pixels alone were not reliable enough, so I narrowed the claim to changing candidate barriers under a shared reference assumption.

Another important lesson was that detecting many objects does not mean every object changes a particular route. Small and zero effects are retained rather than adjusting the model to produce a more dramatic result.

The calculations remain sensitive to segmentation, geographic alignment, grid spacing and passability assumptions. They do not establish feeding disruption, complete iceberg detection or actual penguin travel.

What comes next

Independent annotations and dated water and passability references would support stronger validation. Better handling of fragmented objects, followed by additional colony and target scenarios, would help test whether candidates with no effect in the current comparison become relevant elsewhere.

Share this project:

Updates

Submission history