9/16/2015 localhost:3000/#/?export A BROWSER FOR THE PLANET PLANET LABS' SCENE EXPLORER A. Isaacs - T. Schaub Planet Labs Apps Team http://localhost:3000/#/?export 1/23
9/16/2015 localhost:3000/#/?export What are we trying to do ? Planet's Mission 1: Image the whole world every day http://localhost:3000/#/?export 2/23
9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 3/23
9/16/2015 localhost:3000/#/?export Doves orbit the earth in 90 minutes. They capture scenes that cover 2 between 30 and 300 km , and each satellite captures hundreds per pass. We have 30 in operation today and 150 are planned for 2016. That sounds like a lot of imagery! How do we let people find images they care about? http://localhost:3000/#/?export 4/23
9/16/2015 localhost:3000/#/?export SCENES EXPLORER! Let's try to build a tool that makes it easy to browse this huge image library. http://localhost:3000/#/?export 5/23
9/16/2015 localhost:3000/#/?export Iterations, Iterations. http://localhost:3000/#/?export 6/23
9/16/2015 localhost:3000/#/?export What did we learn? SPACE AND TIME ARE REALLY IMPORTANT! http://localhost:3000/#/?export 7/23
9/16/2015 localhost:3000/#/?export Defining our target core user experience Define an area of interest Be able to view imagery in the area over time Be able to filter images by metadata Select and download imagery of interest http://localhost:3000/#/?export 8/23
9/16/2015 localhost:3000/#/?export What does it look like? http://localhost:3000/#/?export 9/23
9/16/2015 localhost:3000/#/?export Search for a location Define an area of interest MANAGE RESET SAVE WORKSPACE 0 scenes in view Welcome to Scenes LOAD A WORKSPACE Seoul in spring Bluffton, Indiana High Altitude No scenes found Nepal Earthquake http://localhost:3000/#/?export 10/23
No scenes found 9/16/2015 localhost:3000/#/?export Show one more workspace Broaden your search to find some Start fresh Basemap Footprints Labels Create a new workspace by finding your area of interest using the tools lat 62.755°, lon 5.625° to the left. Which tools do we use? Define an area of interest to start exploring Jul 05 Jul 12 Jul 19 Jul 26 Aug 02 Aug 09 Aug 16 Aug 23 Aug 30 Show tutorial 8/16/15 - 9/16/15 Last Day Last Week Last Month Last Six Months 1 scene in your cart DOWNLOAD CART The Planet API React / Reflux Openlayers 3 CartoDB And lots of other things too! http://localhost:3000/#/?export 11/23
9/16/2015 localhost:3000/#/?export Planet Labs' REST API Main endpoints: Scenes Mosaics Tiles (scenes and mosaics) Also provides Workspace management Notifications http://localhost:3000/#/?export 12/23
9/16/2015 localhost:3000/#/?export GET /v0/scenes/ortho { "count": 248485, "links": { "next": "https://api.planet.com/v0/scenes/ortho/?next_options", "prev": "https://api.planet.com/v0/scenes/ortho/?prev_options", "self": "https://api.planet.com/v0/scenes/ortho/?self_options", "first": "https://api.planet.com/v0/scenes/ortho/?first_options" }, "type": "FeatureCollection", "features": [{ "geometry": { "coordinates": [ [ [ 118.2596173268622, 43.90046678196599 ], [ 118.23024375959055, http://localhost:3000/#/?export 13/23
9/16/2015 localhost:3000/#/?export 118.23024375959055, 44.001012079878194 ], [ 118.02130239437746, 43.96907020632453 ], GET /v0/scene/[id] Api Docs: https://www.planet.com/docs "gsd": 4.21102057224, "image_quality": "standard", "snr": 101.70912559458553 }, "links": { "full": "https://api.planet.com/v0/scenes/ortho/20150306_022415_0908/full", "self": "https://api.planet.com/v0/scenes/ortho/20150306_022415_0908", "square_thumbnail": "https://api.planet.com/v0/scenes/ortho/20150306_022415_0908/square-thumb" "thumbnail": "https://api.planet.com/v0/scenes/ortho/20150306_022415_0908/thumb" }, "published": "2015-03-15T22:40:13.111413+00:00", "sat": { "alt": 616.276611532, "id": "0908", "lat": 43.9489913571, "lng": 118.244180673, "off_nadir": 0.84527087801144 }, "strip_id": 1425608509.962405, "sun": { http://localhost:3000/#/?export 14/23
9/16/2015 localhost:3000/#/?export "sun": { "altitude": 33.981625460539135, "azimuth": 145.0357748740408, "local_time_of_day": 10.287112044866667 } } Planet client libraries Api Docs: https://www.planet.com/docs Javascript npm install planet-client Python pip install planet On github: https://github.com/planetlabs http://localhost:3000/#/?export 15/23
9/16/2015 localhost:3000/#/?export Implementing real time filtering http://localhost:3000/#/?export 16/23
9/16/2015 localhost:3000/#/?export Problem: Filtering is (relatively) slow. Filtering 10k scenes takes about ~100 msec. This makes the UI unresponsive, since filtering blocks anything else form happening. Solution: move filtering to a web worker. http://localhost:3000/#/?export 17/23
9/16/2015 localhost:3000/#/?export Problem: transferring data between threads is slow! Transferring scene data and indexes is a slow copy operation. Solution: use transferable objects. Geobuf for scenes. Geobuf for scene GeoJSON, ArrayBuffer for index data http://localhost:3000/#/?export 18/23
9/16/2015 localhost:3000/#/?export Further optimization: Incremental updates. We only transfer deltas between scenes and indexes. http://localhost:3000/#/?export 19/23
9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 20/23
9/16/2015 localhost:3000/#/?export Results Able to handle ~20k scenes with good performance. http://localhost:3000/#/?export 21/23
9/16/2015 localhost:3000/#/?export Further improvements Adding geobuf support to the API Move more functionality to the worker. Open Source! http://localhost:3000/#/?export 22/23
9/16/2015 localhost:3000/#/?export Thanks! Questions? http://localhost:3000/#/?export 23/23
Recommend
More recommend