https://github.com/danielmwatkins/icedrift
Library for processing sea ice drifting buoys
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
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
Metadata Files
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
- Website: www.danielmwatkins.com
- Repositories: 14
- Profile: https://github.com/danielmwatkins
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
Top Committers
| Name | 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
Pull Request Labels
Dependencies
- 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
- actions/checkout v3 composite
- actions/setup-python v3 composite
- sphinx ==7.1.2
- sphinx-rtd-theme ==1.3.0rc1