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.

  1. Get a copy of the code repository:

    mkdir ~/polar2grid
    cd ~/polar2grid
    git clone https://github.com/ssec/polar2grid.git
    cd polar2grid
    
  2. 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.

  3. Active the conda environment and install “polar2grid” in development mode:

    conda activate p2g_dev
    pip install --no-deps -e .
    
  4. 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.