{"id":659,"name":"Sea ice drift","description":"Sea ice drift from Sentinel-1 SAR imagery using open source feature tracking.","url":"https://github.com/nansencenter/sea_ice_drift","last_synced_at":"2026-05-01T02:01:30.939Z","repository":{"id":55919028,"uuid":"46479183","full_name":"nansencenter/sea_ice_drift","owner":"nansencenter","description":"Sea ice drift from Sentinel-1 SAR imagery using open source feature tracking","archived":false,"fork":false,"pushed_at":"2023-05-24T07:50:40.000Z","size":23781,"stargazers_count":48,"open_issues_count":5,"forks_count":18,"subscribers_count":12,"default_branch":"master","last_synced_at":"2026-04-14T18:03:08.576Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nansencenter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2015-11-19T08:40:38.000Z","updated_at":"2026-03-20T07:26:39.000Z","dependencies_parsed_at":"2023-09-21T19:09:59.906Z","dependency_job_id":null,"html_url":"https://github.com/nansencenter/sea_ice_drift","commit_stats":{"total_commits":199,"total_committers":5,"mean_commits":39.8,"dds":"0.10552763819095479","last_synced_commit":"f59d4952692aeebe49dbc62e0cf0b8ede3d5fd1e"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/nansencenter/sea_ice_drift","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nansencenter%2Fsea_ice_drift","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nansencenter%2Fsea_ice_drift/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nansencenter%2Fsea_ice_drift/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nansencenter%2Fsea_ice_drift/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nansencenter","download_url":"https://codeload.github.com/nansencenter/sea_ice_drift/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nansencenter%2Fsea_ice_drift/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31982755,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T17:30:12.329Z","status":"ssl_error","status_checked_at":"2026-04-18T17:29:59.069Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"nansencenter","name":"Nansen Environmental and Remote Sensing Center","uuid":"5212513","kind":"organization","description":"","email":"post@nersc.no","website":"www.nersc.no","location":"Bergen, Norway","twitter":"nansensenteret","company":null,"icon_url":"https://avatars.githubusercontent.com/u/5212513?v=4","repositories_count":105,"last_synced_at":"2024-04-16T01:11:29.752Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/nansencenter","funding_links":[],"total_stars":856,"followers":59,"following":0,"created_at":"2022-11-04T01:36:02.729Z","updated_at":"2024-04-16T01:12:09.932Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nansencenter","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nansencenter/repositories"},"packages":[],"commits":{"id":1254322,"full_name":"nansencenter/sea_ice_drift","default_branch":"master","total_commits":199,"total_committers":5,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":39.8,"dds":0.10552763819095479,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-04-27T00:01:25.219Z","last_synced_commit":"f59d4952692aeebe49dbc62e0cf0b8ede3d5fd1e","created_at":"2023-03-27T11:32:08.646Z","updated_at":"2026-04-27T00:01:06.117Z","committers":[{"name":"akorosov","email":"korosov@gmail.com","login":"akorosov","count":178},{"name":"Stefan Muckenhuber","email":"stemuc@Skopje.local","login":null,"count":17},{"name":"stefanmuckenhuber","email":"stefan.muckenhuber@gmail.com","login":"stefanmuck","count":2},{"name":"tdcwilliams","email":"tdcwilliams@gmail.com","login":"tdcwilliams","count":1},{"name":"Ashwin Nair","email":"ash1995@gmail.com","login":"ashnair1","count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/nansencenter%2Fsea_ice_drift/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-01T00:00:07.988Z","repositories_count":6223986,"commits_count":900096834,"contributors_count":34903418,"owners_count":1147653,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"nansencenter/sea_ice_drift","html_url":"https://github.com/nansencenter/sea_ice_drift","last_synced_at":"2025-09-01T03:33:23.777Z","status":"error","issues_count":28,"pull_requests_count":3,"avg_time_to_close_issue":11782556.739130436,"avg_time_to_close_pull_request":161708.66666666666,"issues_closed_count":23,"pull_requests_closed_count":3,"pull_request_authors_count":3,"issue_authors_count":16,"avg_comments_per_issue":1.9642857142857142,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":3,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":2,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-09T10:35:47.825Z","updated_at":"2025-09-02T13:57:54.447Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/nansencenter%2Fsea_ice_drift","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/nansencenter%2Fsea_ice_drift/issues","issue_labels_count":{"enhancement":1},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":20,"MEMBER":7,"CONTRIBUTOR":1},"pull_request_author_associations_count":{"CONTRIBUTOR":2,"MEMBER":1},"issue_authors":{"akorosov":7,"hamoun1981":3,"lucearth":3,"SAMPHY86":3,"tdcwilliams":1,"QianShisysu":1,"loniitkina":1,"ChrisKong0717":1,"jthargrove":1,"mitkin":1,"Linkersem":1,"LooperzZ":1,"schuman12":1,"tsafs":1,"Antarekai":1,"YU9684":1},"pull_request_authors":{"ashnair1":1,"tdcwilliams":1,"akorosov":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-05-01T00:00:07.984Z","repositories_count":14452485,"issues_count":34155617,"pull_requests_count":112014493,"authors_count":11249994,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":1},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{"ChrisKong0717":1},"past_year_pull_request_authors":{},"maintainers":[{"login":"akorosov","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/akorosov"}],"active_maintainers":[]},"events":{"total":{"ForkEvent":1,"IssuesEvent":2,"WatchEvent":4,"IssueCommentEvent":1},"last_year":{"IssuesEvent":1,"WatchEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"pypi","filepath":"setup.py","sha":null,"kind":"manifest","created_at":"2022-08-15T09:30:32.666Z","updated_at":"2022-08-15T09:30:32.666Z","repository_link":"https://github.com/nansencenter/sea_ice_drift/blob/master/setup.py","dependencies":[{"id":1766228667,"package_name":"nansat","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"docker","filepath":"Dockerfile","sha":null,"kind":"manifest","created_at":"2023-09-21T19:09:59.894Z","updated_at":"2023-09-21T19:09:59.894Z","repository_link":"https://github.com/nansencenter/sea_ice_drift/blob/master/Dockerfile","dependencies":[{"id":13856542761,"package_name":"jupyter/minimal-notebook","ecosystem":"docker","requirements":"latest","direct":true,"kind":"build","optional":false}]}],"score":5.579729825986222,"created_at":"2023-09-11T11:54:35.547Z","updated_at":"2026-05-01T02:01:30.940Z","avatar_url":"https://github.com/nansencenter.png","language":"Python","category":"Cryosphere","sub_category":"Sea Ice","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"[![Build Status](https://travis-ci.org/nansencenter/sea_ice_drift.svg?branch=master)](https://travis-ci.org/nansencenter/sea_ice_drift)\n[![Coverage Status](https://coveralls.io/repos/nansencenter/sea_ice_drift/badge.svg?branch=master)](https://coveralls.io/r/nansencenter/sea_ice_drift)\n[![DOI](https://zenodo.org/badge/46479183.svg)](https://zenodo.org/badge/latestdoi/46479183)\n\n## Sea ice drift from Sentinel-1 SAR data\n\nA computationally efficient, open source feature tracking algorithm,\ncalled ORB, is adopted and tuned for retrieval of the first guess\nsea ice drift from Sentinel-1 SAR images. Pattern matching algorithm\nbased on MCC calculation is used further to retrieve sea ice drift on a\nregular grid.\n\n## References:\n * 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](http://www.mdpi.com/2072-4292/9/3/258)\n * 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](http://www.the-cryosphere.net/10/913/2016/), 2016\n\n## Running with Docker\n```\n# run ipython with SeaIceDrift\ndocker run --rm -it -v /path/to/data:/home/jovyan/work nansencenter/seaicedrift ipython\n\n# run jupyter notebook with SeaIceDrift\ndocker run --rm -p 8888:8888 -v /path/to/data/and/notebooks:/home/jovyan/work nansencenter/seaicedrift\n```\n\n## Installation on Ubuntu\n```\n# install some requirements with apt-get\napt-get install -y --no-install-recommends libgl1-mesa-glx gcc build-essential\n\n# install some requirements with conda\nconda install -c conda-forge gdal cartopy opencv\n\n# install other requirements with pip\npip install netcdf4 nansat\n\n# clone code\ngit clone https://github.com/nansencenter/sea_ice_drift.git\ncd sea_ice_drift\n\n# install SeaIceDrift\npython setup.py install\n```\n\n## Usage example\n```\n# download example datasets\nwget https://github.com/nansencenter/sea_ice_drift_test_files/raw/master/S1B_EW_GRDM_1SDH_20200123T120618.tif\nwget https://github.com/nansencenter/sea_ice_drift_test_files/raw/master/S1B_EW_GRDM_1SDH_20200125T114955.tif\n\n# start Python and import relevant libraries\nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom nansat import Nansat\nfrom sea_ice_drift import SeaIceDrift\n\n# open pair of satellite images using Nansat and SeaIceDrift\nfilename1='S1B_EW_GRDM_1SDH_20200123T120618.tif'\nfilename2='S1B_EW_GRDM_1SDH_20200125T114955.tif'\nsid = SeaIceDrift(filename1, filename2)\n\n# run ice drift retrieval using Feature Tracking\nuft, vft, lon1ft, lat1ft, lon2ft, lat2ft = sid.get_drift_FT()\n\n# plot\nplt.quiver(lon1ft, lat1ft, uft, vft);plt.show()\n\n# define a grid (e.g. regular)\nlon1pm, lat1pm = np.meshgrid(np.linspace(-33.5, -30.5, 50),\n                             np.linspace(83.6, 83.9, 50))\n\n# run ice drift retrieval for regular points using Pattern Matching\n# use results from the Feature Tracking as the first guess\nupm, vpm, apm, rpm, hpm, lon2pm, lat2pm = sid.get_drift_PM(\n        lon1pm, lat1pm,\n        lon1ft, lat1ft,\n        lon2ft, lat2ft)\n# select high quality data only\ngpi = rpm*hpm \u003e 4\n\n# plot high quality data on a regular grid\nplt.quiver(lon1pm[gpi], lat1pm[gpi], upm[gpi], vpm[gpi], rpm[gpi])\n\n```\nFull example [here](https://github.com/nansencenter/sea_ice_drift/blob/master/examples/simple.py)\n\n![Feature Tracking and the first SAR image](https://raw.githubusercontent.com/nansencenter/sea_ice_drift/master/examples/sea_ice_drift_FT_img1.png)\n\n![Pattern Matching and the second SAR image](https://raw.githubusercontent.com/nansencenter/sea_ice_drift/master/examples/sea_ice_drift_PM_img2.png)\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["resampler"],"project_url":"https://ost.ecosyste.ms/api/v1/projects/659","html_url":"https://ost.ecosyste.ms/projects/659"}