Skip to content

mdtanker/polartoolkit

Repository files navigation

PolarToolkit

Helpful tools for polar researchers

Documentation Link

PolarToolkit (formerly known as Antarctic-Plots) is a Python package with the goal of making Polar (i.e. Antarctic, Arctic, Greenland) research more efficient, reproducible, and accessible. The software does this by providing:

  • Convenient functions for downloading and pre-processing a wide range of commonly used polar datasets
  • Tools for common geospatial tasks (i.e. changing data resolution, subsetting data by geographic regions)
  • Code to easily create publication-quality maps, data profiles, and cross-sections

Additionally, PolarToolkit provides an easy means for exploring datasets with pre-defined or interactively-chosen geographic regions.

Binder link

Latest version on PyPI Latest version on conda-forge Test coverage status

Compatible Python versions. Zenodo DOI Documentation Status

Disclaimer

🚨 **Ready for daily use but still changing.** 🚨

This means that we are still adding a lot of new features and sometimes we make changes to the ones we already have while we try to improve the software based on users' experience, test new ideas, make better design decisions, etc. Some of these changes could be backwards incompatible. Keep that in mind before you update PolarToolkit to a new major version (i.e. from v1.0.0 to v2.0.0).

I welcome any feedback, ideas, or contributions! Please contact us on the GitHub discussions page or submit an issue on GitHub for problems or feature ideas.

The PolarToolkit python package provides some basic tools to help in conducting polar research. You can use it to download common datasets (i.e. BedMachine, Bedmap2, MODIS Mosaics), create maps and plots specific to Antarctica, Greenland and the Arctic and visualize data with multiple methods.

Feel free to use, share, modify, and contribute to this project. I've mostly made this for personal usage so expect significant changes. Hopefully, I'll implement more tests and Gallery examples soon.

What PolarToolkit is for:

  • download commonly used datasets related to Antarctica, Greenland and the Arctic
  • making publication-quality maps and cross-sections
  • interactively explore data and define geographic regions
  • plotting and working with data in projected coordinates (meters) in either EPSG 3031 or 3413, for the South and North hemispheres, respectively
  • mostly focused on regularly gridded (interpolated) datasets, with some support for discrete (un-gridded) data
  • current focus for datasets is related to ice, geophysics, and earth properties since this is where my personal research interests are, but please request or add your own types of data!
  • basic geospatial manipulations (filtering, resampling, reprojecting, masking etc.)

What PolarToolkit is NOT for:

  • downloading niche datasets or those that only cover specific regions
  • downloaded datasets outside of Antarctica, Greenland and the Arctic
  • plotting and working with data in geographic (latitude and longitude) coordinates
  • plots not related to geospatial data
  • a point-and-click GUI for plotting or data exploration -> see Quantarctica or QGreenland
  • complex geospatial processing -> see PyGMT, Verde, Geopandas or Rasterio

Installation

There are 3 main ways to install polartoolkit. We show them here in order of simplest to hardest.

Conda / Mamba

The easiest way to install this package and its dependencies is with conda or mamba into a new virtual environment:

mamba create --name polartoolkit --yes --force polartoolkit

And activate the environment:

conda activate polartoolkit

Note that conda and mamba are interchangeable.

Pip

Instead, you can use pip to install polartoolkit, but first you need to install a few dependencies with conda. This is because PyGMT GeoPandas, and Cartopy all rely on C packages, which can only be install with conda/mamba and not with pip.

To create a new virtual environment:

mamba create --name polartoolkit --yes --force pygmt geopandas cartopy

And activate the environment, followed by using pip to install polartoolkit:

mamba activate polartoolkit
pip install polartoolkit

To install the optional dependencies of polartoolkit, use this instead:

`pip install polartoolkit[all]`

Development version

You can use pip, with the above created environment, to install the latest source from GitHub:

pip install git+https://github.com/mdtanker/polartoolkit.git

Or you can clone the repository and install:

git clone https://github.com/mdtanker/polartoolkit.git
cd polartoolkit
pip install .

How to contribute

I really welcome all forms of contribution! If you have any questions, comments or suggestions, please open a discussion or issue (feature request) on the GitHub page!

Also, please feel free to share how you're using PolarToolkit, I'd love to know.

Please, read our Contributor Guide to learn how you can contribute to the project.