1. Introduction

1.1. Overview

Polar2Grid is a set of command line tools for extracting swath data from earth-observing satellite instruments, remapping it to uniform grids, and writing that gridded data to a new file format. Polar2Grid was created by scientists and software developers at the SSEC. It is distributed as part of the CSPP and IMAPP projects for processing of data received via direct broadcast antennas. Although Polar2Grid was created to serve the direct broadcast community, it can be used on most archived data files.

The features provided by Polar2Grid are accessible via bash scripts and binary command line tools. This is meant to give scientists an easy way to use and access features that typically involve complicated programming interfaces. Linux terminal commands included in these instructions assume the bash shell is used.


A collaboration between the Polar2Grid and PyTroll team will change a majority of the low-level code in future versions of Polar2Grid. However, the bash scripts will still be available to provide the same functionality with which users are familiar. Polar2Grid terminology such as "frontend" and "backend" is now used interchangeably with the SatPy terminology "reader" and "writer".

GitHub Repository

Contact Us

1.2. Software Design

Polar2Grid has a modular design operating on the idea of satellite “products” or "datasets"; data observed by a satellite instrument. These products can be any type of raster data, such as temperatures, reflectances, radiances, or any other value that may be recorded by or calculated from an instrument. There are 4 main steps or components involved when working with these products in Polar2Grid: reading, writing, compositing, and remapping. Polar2Grid makes it possible to access and configure these steps via simple bash scripts. The script that "glues" these steps together is polar2grid.sh and creates gridded versions of the user swath products provided to it. More information on accessing Polar2Grid's features and running its scripts can be found in the Polar2Grid Basics section or the examples following each reader section. Note that although an example may be written for a specific reader the same operations can be applied to all readers unless mentioned otherwise.

For more low-level information on the design and responsibility of each component see the Software Design Overview Appendix.

digraph glue_flow {
    rankdir = LR;
    node [shape = rectangle, fillcolor="#C3DCE7:white", gradientangle="90.0", style="filled"];
    "Reader" -> "Remapper";
    "Remapper" -> "Writer";
    "Remapper" -> "Compositors" [style=dashed];
    "Compositors" -> "Writer" [style=dashed];


Compositors and how they are configured will be changing in future versions of Polar2Grid. Due to this they are no longer documented here.

1.3. What's New?

Polar2Grid Version 2.1 is now available. Changes in this version include:

  • Phasing out of legacy <reader><writer>.bash scripts and replacing with polar2grid.sh <reader> <writer> implementation.
  • Add ability to output float geotiffs
  • Add ability to store geotiff tiles instead of strips
  • Fix fornav bug for non-float inputs (unused in most cases)
  • Add add_colormap.sh script for adding color tables to geotiffs
  • Add add_coastlines.sh script for adding borders, coastlines, rivers, etc to geotiffs
  • Add basic NUCAPS reader (via SatPy)
  • Add VIIRS L1B reader (via SatPy)
  • Add AMSR2 L1B reader (via SatPy)
  • Add MIRS reader
  • Change default fornav-d flag in most glue scripts to 1
  • Adjust true/false color scaling to be more continuous (similar result)
  • Add AWIPS Puerto Rico Grid (210)
  • Add polar_alaska dynamic grid
  • New version of ShellB3 for C/python dependencies
  • Fix geotiff geotransform to fix "off by half-pixel" bug.

For more details on what's new in this version and past versions see the Release Notes in the github repository.

1.4. System Requirements

System requirements for the Polar2Grid software are as follows:
  • Intel or AMD CPU with 64-bit instruction support
  • 8 GB RAM (minimum)
  • CentOS 6 64-bit Linux (or other compatible 64-bit Linux distribution)
  • 3 GB disk space (minimum)
  • GLIBC version 2.7 or higher (execute “/lib64/libc.so.6” to find the version number)

Linux terminal commands included in these instructions assume the bash shell is used.

1.5. License and Disclaimer

Original scripts and automation included as part of this package are distributed under the GNU GENERAL PUBLIC LICENSE agreement version 3. Software included as part of this software package are copyrighted and licensed by their respective organizations, and distributed consistent with their licensing terms.

The University of Wisconsin-Madison Space Science and Engineering Center (SSEC) makes no warranty of any kind with regard to the CSPP and/or IMAPP Polar2Grid software or any accompanying documentation, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. SSEC does not indemnify any infringement of copyright, patent, or trademark through the use or modification of this software.

There is no expressed or implied warranty made to anyone as to the suitability of this software for any purpose. All risk of use is assumed by the user. Users agree not to hold SSEC, the University of Wisconsin-Madison, or any of its employees or assigns liable for any consequences resulting from the use of the CSPP and/or IMAPP Polar2Grid software.