1.1. Development Environment¶
Before adding components to polar2grid you will need to set up a polar2grid development environment. This will make it easier to get the newest updates from other developers and vice versa. Creating a development environment does not provide the bash wrapper scripts since they depend on a software bundle. It is recommended that you contact the Polar2Grid team before adding/developing any new features to coordinate efforts.
The main code repository for polar2grid can be found on github at https://github.com/ssec/polar2grid. Changes to this repository are done through a pull request which will require creating a fork of the repository.
The following instructions will assist in getting an environment up and running
that will allow for easy development of polar2grid. The instructions will use an
existing conda-based Python environment. This isn’t strictly required, but is the
easiest way to get going. To avoid possible Terms of Service issues with
Anaconda.org, we recommend using miniforge
or mambaforge
to install
conda on your system. See https://github.com/conda-forge/miniforge#miniforge
for more information.
Get a copy of the code repository:
mkdir ~/polar2grid cd ~/polar2grid git clone https://github.com/ssec/polar2grid.git cd polar2grid
Create a conda environment specifically for Polar2Grid/Geo2Grid work:
conda env create -n p2g_dev --file build_environment.yml
This script will walk you through a few questions including whether or not to use ShellB3 (linux only), provide a preinstalled ShellB3, or build and install secondary polar2grid components.
Active the conda environment and install “polar2grid” in development mode:
conda activate p2g_dev pip install --no-deps -e .
Run “polar2grid.sh” or “geo2grid.sh” to run example commands. These scripts are made available because you installed the python package above. Any changes made to the source code should be automatically reflected when you run these scripts. There are also “polar2grid” and “geo2grid” helper scripts when on non-bash environments. All of these scripts are simple wrappers around calling python -m polar2grid.glue … which can be used as an alternative.