raster analysis in the browser brendan collins, blue raster llc

20
Raster Analysis in the Browser Brendan Collins, Blue Raster LLC

Upload: walker-finnemore

Post on 15-Dec-2015

227 views

Category:

Documents


0 download

TRANSCRIPT

Raster Analysis in the BrowserBrendan Collins, Blue Raster LLC

Rasters…

• Elevation• Slope

• Rainfall• Temperature

Anatomy of the Web Map

Client Application(Firefox / IE/ Chrome)

Spati

al Da

ta /

Querie

s

Mapping Server(ArcGIS Server)

Application Server(IIS / Apache)

Flash / JS / HTML

client provides parameters.

server returns results.

Server-side Solution

Client Application(Firefox / IE/ Chrome)

Serv

er d

oes t

he w

ork

Mapping Server(ArcGIS Server)

Application Server(IIS / Apache)

The client provides parameters and

the server returns results.

Client-side Solution

Client Application(Firefox / IE / Chrome)

User

’s Co

mpu

ter D

oes t

he

Wor

k

Mapping Server(ArcGIS Server)

Application Server(IIS / Apache)

The client does the analysis and

the server provides source data.

Client-side Raster Analysis Needs…

• Source Data – (PNG / JPG)– PNG for rasters classified into discrete classes– JPEG for smooth continuous surfaces– Common screen size = 1024 x 768 = 786,432– Suitability Analysis of 10 Layers = 8 Megapixels

Transferring Source Data…

• Continuous Data– JPEG with 60% compression– Note min/max of each dataset– Stretch dataset from black to white

Transferring Source Data…

• Discrete Data (Soil Type)– PNG8 or PNG24– ***Symbolize data with known values***

32 Classes of ColorClass Hex ArcMap Client-side

1 0x7 7 0.031252 0xf 15 0.06253 0x17 23 0.093754 0x1f 31 0.1255 0x27 39 0.156256 0x2f 47 0.1875…30 0xef 239 0.937531 0xf7 247 0.9687532 0xff 255 1.0

Start with Grayscales

Start with grayscales…

Red Channel = Green Channel = Blue Channel

Red Channel = Elevation; Green Channel = Slope;Blue Channel = Drainage;

Red = Soil Type; Green = Soil Acidity;Blue = Soil Depth;

Merging Images Python

Client-side Raster Analysis Needs…

• Ability to run analysis–Access to individual pixels–Logic to evaluate pixel values–Raw speed

Access to individual pixels

• Flash – Pixel Bender or Bitmap API• Javascript – Ext JS 4 w/Pixel Bender• Silverlight – Pixel Shader

• I recommend Flash/Flex with Pixel Bender

Pixel Bender Kernel Language

• Override a single function (evaluatePixel)– Executes in CPU / GPU

• Simple Syntax but Limited Expressiveness – No Arrays– No Custom Functions– boolean, float, pixel, and image data types

Map Algebra Expression

Be kind to your Kernel

Thank You

[email protected]