Skip to content

WilhelmusLab/IceFloeTracker.jl

Repository files navigation

IceFloeTracker

Build Status Coverage Dev

Track Ice Floes using Moderate Resolution Imaging Spectroradiometer (MODIS) data.

Documentation

See the package's documentation at https://wilhelmuslab.github.io/IceFloeTracker.jl/

There are Jupyter notebooks illustrating the main image processing and tracking functions, in the /notebooks folder.

See related tools in the IFTPipeline repository, including a Julia Command-line Interface and templates that leverage the Cylc pipeline orchestrator.

User Quick Start

Open a Google Colab notebook and start segmenting images.

Developer Quick Start

Devcontainer

The easiest way to get started developing the IceFloeTracker.jl is to use a devcontainer. Clone the repository in VSCode and then run the command "Reopen in Container". This will create a virtual machine to run the code, ensure all the packages are installed and precompiled, and run a subset of the package tests.

Regular Operating System

If you prefer to run within your regular operating system, install the dependencies:

The PyCall dependency of IceFloeTracker.jl often causes issues when installing the package. To set up PyCall and its Conda environment correctly after installing Julia, run:

julia --project=.devcontainer/PyCallSetup.jl .devcontainer/PyCallSetup.jl/setup.jl

Git hooks are used to run common developer tasks on commits (e.g. code formatting, tests, etc.). Run the following from the root of the project to enable git hooks:

git config core.hooksPath ./hooks

To help with passing git hooks, run the formatting script before staging files:

./scripts/format.jl
git add .
git commit -m "some informative message"
git push

Release Process

  1. Start a new branch and update the major or minor version numbers in the corresponding field at the top of Project.toml
  2. After merging the changes, add @JuliaRegistrator register in a comment in the commit you wish to use for the release (not a comment on a PR, but the actual commit)
  3. Wait for feedback from the bot to make sure the new version is accepted and merged to the Julia registry
  4. Create a new version tag
    • The bot will generate git commands that you can run in a terminal to add a tag
  5. Create the new release on the repo console
    • Click on Draft a new release
    • Choose the new tag you created
    • Click on Generate release notes or add a custom description
  6. Head over the ice-floe-tracker-pipeline repo and update the [compat] section of the Project.toml where IceFloeTracker is a dependency.

Note: After the PR for the release is merged, a trigger workflow will force a rebuild of Docker container used in the pipeline.