https://github.com/danielmwatkins/icedrift

Library for processing sea ice drifting buoys

https://github.com/danielmwatkins/icedrift

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 5 committers (20.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.1%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Library for processing sea ice drifting buoys

Basic Info
  • Host: GitHub
  • Owner: danielmwatkins
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 332 MB
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 2
  • Open Issues: 13
  • Releases: 0
Created about 4 years ago · Last pushed 11 months ago
Metadata Files
Readme

README.md

icedrift: a library for cleaning, interpolating, and analyzing drifting sea ice trajectory data

The IceDrift library contains tools for cleaning, regridding, and analysing sea ice trajectory data, in particular data from drifting buoys, ice stations, and tracked ice floes. This library contains tools used to identify questionable data points, interpolate data to fixed grids. The analysis software includes tools to compute common derived properties, such as velocity and acceleration, and more complex measures such as strain rates and dispersion metrics. The code is designed for work with Arctic drifting buoy data such as data from the International Arctic Buoy Program (IABP), the Multidisciplinary Drifting Observatory for the Study of Arctic Climate (MOSAiC), and the Sea Ice Dynamic Experiment (SIDEx). Additional data that can be processed with IceDrift includes tracked floes from the Ice Floe Tracker (IFT).

cleaning

Outlier detection is a common problem in data analysis and there are numerous sophisticated methods in existence. We focus here on outliers that are detectable by consideration of physics: time moving backwards, drifters repeating the same pattern endlessly, jumps in position that would only be possible with teleportation. The approach at this step is nondestructive: questionable data are flagged, not removed. The process is based on the data processing steps taken by Hutchings and Martini. In each case, a flag of True means that an problem has been identified.

basic quality control

check_dates looks for duplicated dates within a time tolerance, as well as checking for problems in date formats and reversals in time. Default time tolerance is (1 min? 5 min?)

check_gaps returns True if there is a set of points that is shorter than a threshold and is isolated by a gap larger than a second threshold.

check_positions looks for duplicated lat/lon points as well as points outside the range of valid lat/lon.

simple outlier detection

detect_outliers contains a few methods for outlier detection: z-score, median filters

complex checks

These tools use statistical methods to identify outliers.

interpolation

Comparison of multiple trajectories requires alignment on a common time grid. The two main functions in the interpolation module are designed to first interpolate to align data with a regular grid, without filling gaps, then to fill gaps up to a specified length. The default is to interpolate to the nearest 5 minutes. Interpolation uncertainty is estimated by comparing the distance between original position and the interpolated position at the same times, then assigning the absolute value of the nearest direct error measurement to the values on the new grid.

TBD: show method with a figure

Gap filling methods: 1. 1D interpolation using scipy.interpolate 2. Kriging?

use cubic spline interpolation to align the tracks to a common time grid. By default I only allow gaps to filled that are up to 4 hours long (i.e., for 2 hourly data, only one missing point).

Because the buoys drift as an array, gap filling for winter periods could be done with the regression model approach.

analysis

Currently limited to calculating velocity and acceleration and reprojecting latitude/longitude onto a Lambert Azimuthal Equal Area projection.

Some ideas to include: - rotary spectral analysis, to investigate tidal and inertial oscillations
- dispersion (single, pair, or triplet)
- deformation (polygons, based on Jenny's approach) In addition, it contains an implementation of the polygon-based deformation calculation code from Hutchings et al., 2012 and 2018.

Status

Currently, I'm working on automatically identifying a common problem where one or two datapoints are slightly offset from the main buoy track. I'm trying to initially make it work with only consideration of the buoy track itself rather than using outside information (like wind speed or sea ice concentration). I've gotten it to work pretty well (but not perfectly) for a few buoys at least.

TBD short term: - Incorporate the updates from what I did for the MOSAiC data cleaning - Set up test cases for each of the outlier check functions

Owner

  • Name: Daniel Watkins
  • Login: danielmwatkins
  • Kind: user
  • Location: Providence, RI
  • Company: Center for Fluid Mechanics, Brown University

Climate scientist at Brown University focusing on Arctic atmosphere, ice, and ocean dynamics.

GitHub Events

Total
  • Issues event: 1
  • Push event: 3
Last Year
  • Issues event: 1
  • Push event: 3

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 66
  • Total Committers: 5
  • Avg Commits per committer: 13.2
  • Development Distribution Score (DDS): 0.364
Past Year
  • Commits: 37
  • Committers: 2
  • Avg Commits per committer: 18.5
  • Development Distribution Score (DDS): 0.243
Top Committers
Name Email Commits
daniel watkins d****s@g****m 42
Carlos Paniagua c****m@g****m 9
Daniel Watkins d****2@e****u 8
Daniel Watkins d****2@e****l 5
Daniel Watkins d****w@m****l 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 2 years ago

All Time
  • Total issues: 18
  • Total pull requests: 2
  • Average time to close issues: 25 days
  • Average time to close pull requests: about 21 hours
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 0.17
  • Average comments per pull request: 0.5
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 16
  • Pull requests: 2
  • Average time to close issues: 25 days
  • Average time to close pull requests: about 21 hours
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 0.19
  • Average comments per pull request: 0.5
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • danielmwatkins (11)
  • cpaniaguam (3)
  • awang343 (2)
Pull Request Authors
  • cpaniaguam (4)
  • danielmwatkins (1)
Top Labels
Issue Labels
documentation (4) enhancement (4)
Pull Request Labels

Dependencies

pyproject.toml pypi
  • numpy >=1.26.3, <2.0.0
  • pandas >=2.2.0, <3.0.0
  • pyproj >=3.2.0, <4.0.0
  • scipy >=1.7.0, <2.0.0
.github/workflows/python-package.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
docs/requirements.txt pypi
  • sphinx ==7.1.2
  • sphinx-rtd-theme ==1.3.0rc1