The Suomi National Polar-Orbiting Partnership (NPP) is one the newest U.S. Government satellites orbiting the earth, providing beautiful, open public domain imagery, thanks to U.S. taxpayers, and the U.S. Government’s commitment to open data and remote sensing research. Today, I used the VIIRS Nighttime Lights-2012 dataset, maintained by the Earth Observation Group, NOAA National Geophysical Data Center, to create a beautiful webmap showing lights visible at night from space.

Suomi National Polar-orbiting Partnership (NPP)

The National Polar-Orbiting Partnership, was jointly developed by the National Aeronautics and Space Administration (NASA) and the National Oceanic and Atmospheric Administration (NOAA). NPP was launched into the skies on a Delta II Rocket in October 2011.

NPP Delta II Launch (201110280005HQ) by nasa hq photo, on Flickr

A Delta II rocket launch with the NPP spacecraft payload, October 28, 2012 at Vandenberg Air Force Base, California (NASA/Bill Ingalls)

The Suomi NPP mission has several science objectives:

  • Monitor and record climate change and natural disasters, including wildfires, volcanic eruptions, droughts, and floods
  • Enhance weather prediction capabilities by collecting information about cloud cover, atmospheric temperatures, and humidity
  • Observe changes in agricultural processes and vegetation patterns, as well as land and ocean ice
  • Record atmospheric, land and sea surface temperatures
  • Monitor the amount of energy entering and exiting our planet’s atmosphere

NPP Satellite Instruments

For an in-depth description of the NPP spacecraft instrument, head over to NASA’s NPP instrument description.

There are five instruments on the Suomi NPP satellite.

  1. The Advanced Technology Microwave Sounder (ATMS), a microwave radiometer, which models temperature and moisture for weather forecasting models
  2. The Cross-track Infrared Sounder (CrIS), an interferometer, which measures atmospheric moisture and pressure for weather forecasting
  3. The Ozone Mapping and Profiler Suite (OMPS) measures the ozone layer
  4. The Visible Infrared Imaging Radiometer Suite (VIIRS) captures visible and infrared imagery to monitor and measure processes including wildfires, land changes, cloud cover, and sea surface temperature
  5. The Clouds and the Earth’s Radiant Energy System (CERES) monitors the amount of energy entering and exiting the atmosphere

Visible Infrared Imaging Radiometer Suite (VIIRS)

The VIIRS Instrument collects visible and infrared imagery, across 22 different channels along the electromagnetic spectrum. There are many potential use cases for VIIRS imagery, including ocean, land, and atmospheric monitoring.

I’m going to go through how you can use VIIRS imagery with the open source geospatial library GDAL and TileMill to visualize nighttime lights visible from space.

VIIRS Nighttime Lights 2012 is a VIIRS derivative product created by compositing day/night bands from images captured between April 18-26, 2012, and October 11-23, 2012, on nights without moonlight. The dataset description goes into more detail about the level of processing, but a few important things to note are that the dataset has not had the background noise subtracted. The VIIRS day-night band detects lights, gas flares, auroras, and wildfires. It also detects reflected moonlight on some extremely bright surfaces, like snow-covered mountains.


  1. Download GeoTIFFs from NOAA, which you can access via ftp at
  2. Once you have the files downloaded, you’ll want to scale the downloaded GeoTiff, which comes with 32bit floating point values ranging from -1 to 50,000, to produce an 8 bit output GeoTiff. Because I was only interested in the areas in which the VIIRS sensor detected light, I used gdal_translate -scale 0 50 -ot Byte to take only those values falling between 1-50, and scaling them to 1 to 255 in the output raster.
  3. Reproject to Google Mercator using gdalwarp
  4. Add overviews to the reprojected GeoTIFF using gdaladdo
  5. Next use gdalbuildvrt to generate three virtual rasters – one for each band of an RGB image. Since the Nighttime Lights dataset comes as a single-band grayscale GeoTIFF, I use virtual rasters to simulate the bands of a natural color RGB image.
  6. Create a fourth virtual raster with the red, green, and blue VRTs generated in step 5
  7. Modify the colors of each band, setting the <ColorInterp> tag, and adding look up tables using the <LUT> tag to the VRT XML
  8. To optimize performance, generate a new GeoTIFF from the RGB-simulated VRT, and add overviews
  9. Open in TileMill, style, and render
  10. Upload to MapBox Hosting, and create a custom high-contrast MapBox Satellite layer base map.

Lights of the Night

Explore the finished map – Lights of the Night – and check out my script for processing the raw GeoTIFFs into TileMill-ready map layers.

Lights of the Night, Japan


Lights of the Night, Chicago

Chicago, Illinois

Lights of the Night, Europe