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.
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).
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.
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 LicenseSource Code/Project URL: https://github.com/mathnathan/OpenTiles.git
Resources
NASA landsat Info - http://landsat.gsfc.nasa.gov/data/where.htmlLandsat 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/