OpenTiles is an online service which provides GIS scientists and enthusiasts access to a plethora of satellite observations. NASA and the USGS collectively have petabytes of data pertaining to various earth, ocean, and atmospheric fields. While the data is freely available, it is difficult to find and is often in a format unfriendly to the average GIS hobbyist. This is where OpenTiles comes in. We obtain the data, convert and format it, then upload it to GeoServer where it is available to the world.

This project is solving the EarthTiles challenge.


Description

Our solution OpenTiles is more of a service than a product. Currently it is a simple implementation demonstrating the 5 main components of the project. We now explain how it would operate at a production scale.

Python scripts will take care of the first 3 components.

1) Download

A script will constantly query the databases and servers where satellite data is stored. If the scripts find a data file that that is not on the GeoServer drive or has been updated, it will download it. This first component ensures all the data on the GeoServer is up to date.

2) Convert

Satellite observations are stored in various formats. While they all have their benefits a collection of files in a more unified, GIS friendly format, would be more practical. After the data has been downloaded it is converted from its native type, most commonly NetCDF and HDF, into a Geotiff (Gtiff) file. We use the GDAL library for reprojections and conversions.

3) Crop and Scale

The magic of Google Earth and other earth observation data viewers is in the tiles and pyramids. One Gtiff could be laid over an earth model but it could only be viewed at that one scale. Tiling a Gtiff and creating a pyramid of different scales, allows the user to zoom in and out of the data in a more natural way. We use GDAL for retiling, to create the various pyramids and tiles.

alt text

4) Automatic Geoserver Integration

Once the pyramids are obtained, we use the Geoserver REST interface to upload them into Geoserver. Specifically, we are using the Geoserver Manager java library to read the contents of the pyramids and upload them automatically. Once the pyramids are uploaded into Geoserver they can be served as images using the WMS standard (for OpenLayers, Leaflet, etc.), kml files (for Google Earth) and GeoTiff files (for GIS).

alt text

5) Demo - Tile Display

For visualizing the tiles uploaded into Geoserver, we are cofiguring a web site that displays all the layers available in the server. The website allows the user to change the transparency of the layers, choose which layers to display, and download the layer as kml and Geotiff format and zoom in and out of the map in an interface similar to that of Google Maps. These tasks can be accomplished without any external intervention.

alt text

Visualizer Demo

The data currently on our local server is obtained from the Ocean Color Web. It is the average Sea Surface Temperature (SST) throughout 2012 for the entire world. Layer 0 is the data, and layer 1 is the mask. It can be downloaded in KML format with one click and visualized on Google Earth.



Project Information

License: MIT License
Source Code/Project URL: https://github.com/mathnathan/OpenTiles.git

Resources

NASA landsat Info - http://landsat.gsfc.nasa.gov/data/where.html
Landsat Data - http://landsat.usgs.gov/
Landsat - Band designations - http://landsat.usgs.gov/band_designations_landsat_satellites.php
Geospatial Data Abstraction Library - http://www.gdal.org/