Skip to content

About

Sea ice drift from Sentinel-1 SAR imagery using open source feature tracking

Resources

Stars

49 stars

Watchers

12 watching

Forks

Latest commit

 

History

225 Commits

Folders and files

Repository files navigation

Build Status Coverage Status DOI

Sea ice drift from Sentinel-1 SAR data

A computationally efficient, open source feature tracking algorithm, called ORB, is adopted and tuned for retrieval of the first guess sea ice drift from Sentinel-1 SAR images. Pattern matching algorithm based on MCC calculation is used further to retrieve sea ice drift on a regular grid.

References:

  • Korosov A.A. and Rampal P., A Combination of Feature Tracking and Pattern Matching with Optimal Parametrization for Sea Ice Drift Retrieval from SAR Data, Remote Sens. 2017, 9(3), 258; doi:10.3390/rs9030258
  • Muckenhuber S., Korosov A.A., and Sandven S., Open-source feature-tracking algorithm for sea ice drift retrieval from Sentinel-1 SAR imagery, The Cryosphere, 10, 913-925, doi:10.5194/tc-10-913-2016, 2016

Running with Docker

# run ipython with SeaIceDrift
docker run --rm -it -v /path/to/data:/home/jovyan/work nansencenter/seaicedrift ipython

# run jupyter notebook with SeaIceDrift
docker run --rm -p 8888:8888 -v /path/to/data/and/notebooks:/home/jovyan/work nansencenter/seaicedrift

Installation on Ubuntu

# install some requirements with apt-get
apt-get install -y --no-install-recommends libgl1-mesa-glx gcc build-essential

# install some requirements with conda
conda install -c conda-forge gdal cartopy opencv

# install other requirements with pip
pip install netcdf4 nansat

# clone code
git clone https://github.com/nansencenter/sea_ice_drift.git
cd sea_ice_drift

# install SeaIceDrift
python setup.py install

Usage example

# download example datasets
wget https://github.com/nansencenter/sea_ice_drift_test_files/raw/master/S1B_EW_GRDM_1SDH_20200123T120618.tif
wget https://github.com/nansencenter/sea_ice_drift_test_files/raw/master/S1B_EW_GRDM_1SDH_20200125T114955.tif

# start Python and import relevant libraries
import numpy as np
import matplotlib.pyplot as plt
from nansat import Nansat
from sea_ice_drift import SeaIceDrift

# open pair of satellite images using Nansat and SeaIceDrift
filename1='S1B_EW_GRDM_1SDH_20200123T120618.tif'
filename2='S1B_EW_GRDM_1SDH_20200125T114955.tif'
sid = SeaIceDrift(filename1, filename2)

# run ice drift retrieval using Feature Tracking
uft, vft, lon1ft, lat1ft, lon2ft, lat2ft = sid.get_drift_FT()

# plot
plt.quiver(lon1ft, lat1ft, uft, vft);plt.show()

# define a grid (e.g. regular)
lon1pm, lat1pm = np.meshgrid(np.linspace(-33.5, -30.5, 50),
                             np.linspace(83.6, 83.9, 50))

# run ice drift retrieval for regular points using Pattern Matching
# use results from the Feature Tracking as the first guess
upm, vpm, apm, rpm, hpm, lon2pm, lat2pm = sid.get_drift_PM(
        lon1pm, lat1pm,
        lon1ft, lat1ft,
        lon2ft, lat2ft)
# select high quality data only
gpi = rpm*hpm > 4

# plot high quality data on a regular grid
plt.quiver(lon1pm[gpi], lat1pm[gpi], upm[gpi], vpm[gpi], rpm[gpi])

Full example here

Feature Tracking and the first SAR image

Pattern Matching and the second SAR image

About

Sea ice drift from Sentinel-1 SAR imagery using open source feature tracking

Resources

Stars

49 stars

Watchers

12 watching

Forks

Releases

Packages

Used by

Contributors

Languages