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.
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.
# 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')