200 likes | 359 Views
Raster Analysis in the Browser Brendan Collins, Blue Raster LLC. Rasters…. Elevation Slope Rainfall Temperature. Anatomy of the Web Map. client provides parameters. server returns results. Server-side Solution. The client provides parameters and. t he server returns results.
E N D
Raster Analysis in the BrowserBrendan Collins, Blue Raster LLC
Rasters… • Elevation • Slope • Rainfall • Temperature
Anatomy of the Web Map client provides parameters. server returns results.
Server-side Solution The client provides parameters and the server returns results.
Client-side Solution 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.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 = Elevation; Green Channel = Slope; Blue Channel = Drainage;
Red = Soil Type; Green = Soil Acidity; Blue = Soil Depth;
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