This is not a secret, I'm a big fan of Mapbox APIs and products. In my latest project (Satellite Search) I've been using Mapbox-GL to create a simple web interface to search for satellite data, and what made this project so simple? Using satellite footprint grid to select area of interest...
Sentinel and Landsat footprint grids are made of thousand of elements covering all the land cover and interacting with each grid cell on a web page was something not possible two-three years ago. But that was before Mapbox created and openned Vector Tiles.
On Mapbox page it says:
Vector tiles make huge maps fast while offering full design flexibility. They are the vector data equivalent of image tiles for web mapping, applying the strengths of tiling – developed for caching, scaling and serving map imagery rapidly – to vector data.
What is really important here is that you can have a huge vector dataset and make it available (and interactive) on a webpage via vector tiles.
For Satellite Search I'm not only showing the grid but I'm using Mapbox GL API to query each cell information (PATH-ROW combination) under a mouse click, then I'm using DeveloppmentSeed sat-utils to retrieve available images. This work fine and Satellite Search is by far the most visited RemotePixel.ca page.
Storing Path-Row information on every cell was simple and usefull in combination to the sat-api, but I wanted to push things a bit more: Could we store every Landsat image metadata on the grid cells and by-pass the external API call ?
For this experiment I forked Satellite Search and created Landsat 8 MVT project.
When looking for satellite imagery there are two importants filters you whant to use: Cloud % and Dates. So I created a Landsat 8 footprint grid with those two variables (in addition to the path & row).
- Get Landsat Metadata (http://landsat.usgs.gov//metadatalist.php)
- Get Landsat WRS2 vector (http://landsat.usgs.gov//tools_wrs-2_shapefile.php) and filter to get only descending orbits
- Create a new WRS2 vector file with two new entries: Cloud % and Dates (array) using a python script
- Transform the vector file to Mapbox vector tiles with tippecanoe
By using Mapbox-gl API and those new Vector tiles I can now get all the images dates and cloud coverage on each cell.
With this trick I removed all sat-api calls and landsat search is now faster. You can even filter the Landsat-8 grid based on Cloud % and Date.
Not optimized, not mobile friendly, remember this is an Experiment
- Tiles are heavier
- I cannot create low level zoom due to tiles size
- Cloud and Dates filters are heavy client side processing (e.g. I cannot automatically filter vector tiles when moving the map)
- Landsat ID are not strait forward from dates "LC80070302014202LGN00", latest two digit can change, so I may need to store Scene ID instead of dates
- Date: August 2016
- Category: Landsat / Vector Tiles