Global Imagery Browse Services (GIBS)
  • Introduction
  • Available Visualizations
  • Access Basics
  • Access Advanced Topics
  • Accessing via GIS Applications
  • Accessing via Map Libraries and GDAL Scripts
  • Accessing via Python
    • OGC Web Map Service (WMS)
      • Basic WMS Connection
      • Get WMS Capabilities
      • Display WMS All Layers
      • Search WMS Layer And Its Attributes
      • Visualize WMS Raster Data In Geographic Projection
      • Visualize WMS Raster Data In Web Mercator Projection
      • Visualize WMS Raster Data In Arctic Polar Stereographic Projection
      • Visualize WMS Raster Data In Antarctic Polar Stereographic Projection
      • Visualize WMS Global Raster Data
      • Visualize WMS Global Vector Data
      • Interactive Web Map with WMS
      • Display a Legend for a WMS Layer
      • Visualize WMS Raster Data with a Legend
    • OGC Web Map Tile Service (WMTS)
      • Get WMTS Capabilities
      • Display All Layers of WMTS Capabilities.
      • Search WMTS Vector Layer, Attributes And Vector Information
      • Read WMTS Vector Data
      • Display WMTS Vector Data
      • Visualize WMTS Raster Data By GDAL
      • Display Legends for a WMTS Layer
      • Visualize WMTS Raster Data with a Legend
    • Examples of Analysis and Application
      • Numerical Analysis of GIBS ColorMap
        • Histogram of Percent Cropland
        • Percentages of Land Cover Types
      • Image Analysis
      • Using a Mask
        • Using a "No Data" Mask
        • Using a Land Mask
      • Integrating an External Service
      • Bulk Downloading of GIBS Imagery
      • Ideas for Machine Learning with GIBS Imagery
  • Contact Us
 
Global Imagery Browse Services (GIBS)
  • Docs »
  • Accessing via Python

Accessing via Python¶

The following is a collection of Python examples demonstrating how to connect to GIBS access points and exercise various capabilities. Included are examples of how to visualize raster and vector-based data from GIBS, plot imagery on maps, list GIBS capabilities, access GIBS metadata, basic image analysis and more. Please scroll down or use the navigation bar to browse through the examples.

These examples are also downloadable as a Jupyter Notebook.

Import Python Packages And Modules

Major packages are requests, xml, json, skiimage, matplotlib, cartopy and pillow image.

In [1]:
Copied!
import os
from io import BytesIO
from skimage import io
import requests
import json
import matplotlib.pyplot as plt
import matplotlib.ticker as mticker
import cartopy.crs as ccrs
import cartopy
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER
import urllib.request
import urllib.parse
import mapbox_vector_tile
import xml.etree.ElementTree as xmlet
import lxml.etree as xmltree
from PIL import Image as plimg
import numpy as np
from owslib.wms import WebMapService
from IPython.display import Image, display
%matplotlib inline
import os from io import BytesIO from skimage import io import requests import json import matplotlib.pyplot as plt import matplotlib.ticker as mticker import cartopy.crs as ccrs import cartopy from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER import urllib.request import urllib.parse import mapbox_vector_tile import xml.etree.ElementTree as xmlet import lxml.etree as xmltree from PIL import Image as plimg import numpy as np from owslib.wms import WebMapService from IPython.display import Image, display %matplotlib inline

OGC Web Map Service (WMS)¶

Web Map Service (WMS) is the preferred method for accessing static imagery (whereas Web Map Tile Service WMTS is preferred for interactive web maps). For smaller-scale, single image requests, WMS is usually easier to configure than WMTS and can also perform server-side compositing of multiple layers (both vector and raster).

Basic WMS Connection¶

First we will connect to the GIBS WMS Service and visualize the MODIS_Terra_CorrectedReflectance_TrueColor layer.

In [2]:
Copied!
# Connect to GIBS WMS Service
wms = WebMapService('https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?', version='1.1.1')

# Configure request for MODIS_Terra_CorrectedReflectance_TrueColor
img = wms.getmap(layers=['MODIS_Terra_CorrectedReflectance_TrueColor'],  # Layers
                 srs='epsg:4326',  # Map projection
                 bbox=(-180,-90,180,90),  # Bounds
                 size=(1200, 600),  # Image size
                 time='2021-09-21',  # Time of data
                 format='image/png',  # Image format
                 transparent=True)  # Nodata transparency

# Save output PNG to a file
out = open('python-examples/MODIS_Terra_CorrectedReflectance_TrueColor.png', 'wb')
out.write(img.read())
out.close()

# View image
Image('python-examples/MODIS_Terra_CorrectedReflectance_TrueColor.png')
# Connect to GIBS WMS Service wms = WebMapService('https://gibs.earthdata.nasa.gov/wms/epsg4326/best/wms.cgi?', version='1.1.1') # Configure request for MODIS_Terra_CorrectedReflectance_TrueColor img = wms.getmap(layers=['MODIS_Terra_CorrectedReflectance_TrueColor'], # Layers srs='epsg:4326', # Map projection bbox=(-180,-90,180,90), # Bounds size=(1200, 600), # Image size time='2021-09-21', # Time of data format='image/png', # Image format transparent=True) # Nodata transparency # Save output PNG to a file out = open('python-examples/MODIS_Terra_CorrectedReflectance_TrueColor.png', 'wb') out.write(img.read()) out.close() # View image Image('python-examples/MODIS_Terra_CorrectedReflectance_TrueColor.png')
Out[2]: