A BROWSER FOR THE PLANET PLANET LABS' SCENE EXPLORER A. Isaacs - - - PowerPoint PPT Presentation

a browser for the planet
SMART_READER_LITE
LIVE PREVIEW

A BROWSER FOR THE PLANET PLANET LABS' SCENE EXPLORER A. Isaacs - - - PowerPoint PPT Presentation

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 ?


slide-1
SLIDE 1 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 1/23

A BROWSER FOR THE PLANET

PLANET LABS' SCENE EXPLORER

  • A. Isaacs - T. Schaub

Planet Labs Apps Team

slide-2
SLIDE 2 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 2/23

What are we trying to do ?

Planet's Mission 1: Image the whole world every day

slide-3
SLIDE 3 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 3/23
slide-4
SLIDE 4 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 4/23

Doves orbit the earth in 90 minutes. They capture scenes that cover between 30 and 300 km , and each satellite captures hundreds per pass. We have 30 in operation today and 150 are planned for 2016.

2

That sounds like a lot of imagery! How do we let people find images they care about?

slide-5
SLIDE 5 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 5/23

SCENES EXPLORER!

Let's try to build a tool that makes it easy to browse this huge image library.

slide-6
SLIDE 6 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 6/23

Iterations, Iterations.

slide-7
SLIDE 7 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 7/23

What did we learn?

SPACE AND TIME ARE REALLY IMPORTANT!

slide-8
SLIDE 8 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 8/23

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

slide-9
SLIDE 9 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 9/23

What does it look like?

slide-10
SLIDE 10 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 10/23

No scenes found

0 scenes in view

Welcome to Scenes

LOAD A WORKSPACE Seoul in spring Bluffton, Indiana High Altitude Nepal Earthquake MANAGE RESET SAVE WORKSPACE Search for a location

Define an area of interest

  

slide-11
SLIDE 11 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 11/23

Basemap

Footprints Labels

lat 62.755°, lon 5.625°

No scenes found

Broaden your search to find some 1 scene in your cart

DOWNLOAD CART

Show one more workspace

Start fresh

Create a new workspace by finding your area of interest using the tools to the left. Show tutorial 

Jul 05 Jul 12 Jul 19 Jul 26 Aug 02 Aug 09 Aug 16 Aug 23 Aug 30

8/16/15 - 9/16/15

Last Day Last Week Last Month Last Six Months

Define an area of interest to start exploring

Which tools do we use?

The Planet API React / Reflux Openlayers 3 CartoDB And lots of other things too!

slide-12
SLIDE 12 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 12/23

Planet Labs' REST API

Main endpoints: Scenes Mosaics Tiles (scenes and mosaics) Also provides Workspace management Notifications

slide-13
SLIDE 13 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 13/23

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,

slide-14
SLIDE 14 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 14/23

Api Docs: https://www.planet.com/docs

118.23024375959055, 44.001012079878194 ], [ 118.02130239437746, 43.96907020632453 ],

GET /v0/scene/[id]

"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": {

slide-15
SLIDE 15 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 15/23

Api Docs: https://www.planet.com/docs

"sun": { "altitude": 33.981625460539135, "azimuth": 145.0357748740408, "local_time_of_day": 10.287112044866667 } }

Planet client libraries

Javascript npm install planet-client Python pip install planet

On github: https://github.com/planetlabs

slide-16
SLIDE 16 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 16/23

Implementing real time filtering

slide-17
SLIDE 17 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 17/23

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.

slide-18
SLIDE 18 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 18/23

Problem: transferring data between threads is slow!

Transferring scene data and indexes is a slow copy operation.

Solution: use transferable

  • bjects. Geobuf for scenes.

Geobuf for scene GeoJSON, ArrayBuffer for index data

slide-19
SLIDE 19 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 19/23

Further optimization: Incremental updates.

We only transfer deltas between scenes and indexes.

slide-20
SLIDE 20 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 20/23
slide-21
SLIDE 21 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 21/23

Results

Able to handle ~20k scenes with good performance.

slide-22
SLIDE 22 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 22/23

Further improvements

Adding geobuf support to the API Move more functionality to the worker. Open Source!

slide-23
SLIDE 23 9/16/2015 localhost:3000/#/?export http://localhost:3000/#/?export 23/23

Thanks! Questions?