8_WhereCampPresentat.. - Kelso Cartography

berserkarithmeticInternet και Εφαρμογές Web

14 Δεκ 2013 (πριν από 3 χρόνια και 9 μήνες)

104 εμφανίσεις

Raster Analysis in the Browser

Brendan Collins, Blue Raster LLC

Rasters…


Elevation


Slope


Rainfall


Temperature

Anatomy of the Web Map

Client Application

(Firefox / IE/ Chrome)

Mapping Server

(ArcGIS Server)

Application Server

(IIS / Apache)

client provides
parameters.


server returns
results.

Server
-
side Solution

Client Application

(Firefox / IE/ Chrome)

Mapping Server

(ArcGIS Server)

Application Server

(IIS / Apache)

The client provides
parameters and


t
he server
returns results.

Client
-
side Solution

Client Application

(Firefox / IE / Chrome)

Mapping Server

(ArcGIS Server)

Application Server

(IIS / Apache)

The client does
the analysis and

t
he 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 Color

Class

Hex
ArcMap

Client
-
side


1

0x7
7

0.03125

2

0xf 15 0.0625

3

0x17 23 0.09375

4

0x1f 31 0.125

5

0x27 39 0.15625

6

0x2f 47 0.1875



30

0xef 239 0.9375

31

0xf7 247 0.96875

32

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



bcollins@blueraster.com