Leveraging Image Services in JavaScript/HTML5 Applications. Wenxue Ju, Hong Xu

Similar documents
Application Development Using Image Services Web APIs. Hong Xu, Wenxue Ju

Introduction to Imagery and Raster Data in ArcGIS

Scientific Data Management and Dissemination

ArcGIS Platform. An Integrated System. Portal

Managing Imagery and Raster Data in ArcGIS

Advanced Image Management using the Mosaic Dataset

NetCDF and HDF Data in ArcGIS

Enterprise Image Management. An Esri White Paper November 2015

INTEROPERABLE IMAGE DATA ACCESS THROUGH ARCGIS SERVER

Publishing Hosted 3D Feature Layers. An Esri White Paper September 2015

Visualizing Data: Scalable Interactivity

Introduce Web3D Development and Visualization. Moxie Zhang Esri R&D Center Beijing

Managing Lidar (and other point cloud) Data. Lindsay Weitz Cody Benkelman

Jozef Matula. Visualisation Team Leader IBL Software Engineering. 13 th ECMWF MetOps Workshop, 31 th Oct - 4 th Nov 2011, Reading, United Kingdom

Best Practices for Sharing Imagery using Amazon Web Services. Peter Becker

Server GIS. What Server GIS software do we provide?

Big Data Volume & velocity data management with ERDAS APOLLO. Alain Kabamba Hexagon Geospatial

Visualizing Multi-Dimensional WMS within ArcGIS For JavaScript API

ArcGIS Pro. James Tedrick, Esri

Enterprise Architectures for Large Tiled Basemap Projects. Tommy Fauvell

ArcGIS ArcMap: Printing, Exporting, and ArcPress

Interactive visualization of big data

Data source, type, and file naming convention

Adobe Marketing Cloud Sharpening images in Scene7 Publishing System and on Image Server

Raster Tutorial. Copyright Esri All rights reserved.

Trial version of GADD Dashboards Builder

Today's Topics. COMP 388/441: Human-Computer Interaction. simple 2D plotting. 1D techniques. Ancient plotting techniques. Data Visualization:

ArcGIS Server mashups

ArcGIS Web App Builder (AWAB) In BETA. John Bocan MES/DoIT

CRMS Website Training

GIS Beyond the Basics: Web Maps and File Sharing Services

Five Steps to Better Performance

Cloud-based Geospatial Data services and analysis

LAR-IAC4 Status and User Group Meeting. October 8, 2015

ArcGIS. Image Server tutorial

MMGD0203 Multimedia Design MMGD0203 MULTIMEDIA DESIGN. Chapter 3 Graphics and Animations

Visualizing a Neo4j Graph Database with KeyLines

Web-Based Enterprise Data Visualization a 3D Approach. Oleg Kachirski, Black and Veatch

Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy

MassArt Studio Foundation: Visual Language Digital Media Cookbook, Fall 2013

Petroleum Web Applications to Support your Business. David Jacob & Vanessa Ramirez Esri Natural Resources Team

MrSID Plug-in for 3D Analyst

Working with Temporal Data

IDL. Get the answers you need from your data. IDL

ERDAS IMAGINE The world s most widely-used remote sensing software package

Visualizing an OrientDB Graph Database with KeyLines

MAIN_SNP_TOPO.dgm_2m

California Department of Fish and Game (Wildlife) GIS Data and Services

What's new in gvsig Desktop 2.0

ART 170: Web Design 1

Embracing ArcGIS for Local Government. Robert Parsons Delaware County, Ohio Auditor s Office Steve Koenig Bruce Harris & Associates

Scott Moore, Esri April 4, Intermountain, Great Falls, MT

A Proposal for OpenEXR Color Management

Upgrade to Microsoft Web Applications

SQL Server 2005 Reporting Services (SSRS)

Visualization. For Novices. ( Ted Hall ) University of Michigan 3D Lab Digital Media Commons, Library

Aspose.Cells Product Family

Enterprise Data Visualization and BI Dashboard

Vendor briefing Business Intelligence and Analytics Platforms Gartner 15 capabilities

ArcGIS 10.1 Web Apps and APIs. John Hasthorpe & Kai Hübner

Building and Deploying Web Applications

Vector Web Mapping Past, Present and Future. Jing Wang MRF Geosystems Corporation

SAP Business One and SAP HANA

Digital image processing

Chaco: A Plotting Package for Scientists and Engineers. David C. Morrill Enthought, Inc.

MD imap 2.0 THE NEXT GENERATION OF MARYLAND S ENTERPRISE GIS. Esri MUG Conference Baltimore, MD December 3,

Lecture 8. Online GIS

Mobile Solutions in ArcGIS. Justin Fan

GeoManitoba Spatial Data Infrastructure Update. Presented by: Jim Aberdeen Shawn Cruise

Note: Hands On workshops are Bring Your Own Laptop (BYOL), unless otherwise noted. Some workshops are Bring Your Own Mobile Device(BYOD).

Computers Are Your Future Eleventh Edition Chapter 5: Application Software: Tools for Productivity

Tutorial 3 - Map Symbology in ArcGIS

Questions and Answers

Brett Gaines Senior Consultant, CGI Federal Geospatial and Data Analytics Lead Developer

Sisense. Product Highlights.

JavaFX Session Agenda

GIS Databases With focused on ArcSDE

Enabling High-Quality Printing in Web Applications with ArcGIS for Server. Craig Williams Scott Moore

What's new in ArcGIS 10.4

Mine Water Truck Tracking Rio Tinto Kennecott Copper TERESA COCKAYNE ENVIRONMENTAL, LAND, & WATER RTKC JULY 23, 2015

Understanding and Implementing ArcGIS. Image Server

Visualization with ParaView. Greg Johnson

3D Analysis and Surface Modeling

The following was presented at DMT 14 (June 1-4, 2014, Newark, DE).

GIS Data in ArcGIS. Pay Attention to Data!!!

Copyright 2013 Splunk Inc. Introducing Splunk 6

What is GIS. What is GIS? University of Tsukuba. What do you image of GIS? Copyright(C) ESRI Japan Corporation. All rights reserved.

Tutorial 8 Raster Data Analysis

MAY 18, 2015 ARCGIS FOR SERVER FUNCTIONALITY MATRIX

Building & Developing the Environmental

NetCDF in QGIS tutorial

Programming in HTML5 with JavaScript and CSS3

Fireworks CS4 Tutorial Part 1: Intro

Using PCI Geomatics Software with Oracle 10g Spatial and GeoRaster A PCI Geomatics Whitepaper

_ LUCIADRIA PRODUCT DATA SHEET

ArcGIS Server Performance and Scalability Optimization and Testing. Andrew Sakowicz

Alexander Wood is a Senior So/ware Engineer at Analy5cal Graphics Inc (AGI). At AGI, he is a contributor to Cesium and Technical Lead on the STK

Best Practices for Dashboard Design with SAP BusinessObjects Design Studio

Reviewer s Guide. Morpheus Photo Animation Suite. Screenshots. Tutorial. Included in the Reviewer s Guide:

Transcription:

Leveraging Image Services in JavaScript/HTML5 Applications Wenxue Ju, Hong Xu

Schedule Image service introduction Web applications with image services - Server side image processing - Client side image processing - Multidimensional data Summary and tips

What is an Image Service? A service that shares raster data and processing capabilities through ArcGIS Server and Portal - Visualization - Processing and analysis Supports many clients - Desktop, mobile, WMS/WCS/WTS - Web, REST, etc Portal Server

Image Service Sources Image services can be published from raster datasets and mosaic datasets Raster datasets Mosaic datasets Multidimensional mosaic dataset

Raster Functions Define process algorithms - Terrain analysis (slope, hillshade, aspect, curvature) - Raster analysis (Local function : A + B, A > B, etc) - Image processing (NDVI, pansharpen, image classification, etc) Process on-the-fly Can be chained and avoid intermediate results Stored as.rft.xml (RFT) and register with image service NDVI Orthorectification Stretch Pansharpen Composite Bands

Image Service Capabilities Visualization - Speed up with cached image service Image catalog and search services Server side processing - Well-known server raster functions - Register RFT with image service - Process on server and deliver in JPEG, TIFF, PNG, etc Client side processing - Server can deliver raw data in LERC format, - ArcGIS JavaScript decodes LERC

Javascript Web APIs for Accessing Image Services ArcGISImageServiceLayer Server side processing, transfer data in PNG, JPEG, TIFF, etc RasterLayer (beta) Server side processing, transfer data in LERC format, support client side processing ArcGISImageServiceVectorLayer Transfer data in LERC, pixel filtering and draw vector symbols ArcGISTiledMapServiceLayer Retrieve and display cached image tiles

Sample Applications Flood risk analysis (RasterLayer + ArcGISImageServiceLayer) Avalanche risk analysis (RasterLayer + ArcGISImageServiceLayer + WebGL) Pixel charting (RasterLayer ) Visualize multidimensional data (ArcGISImageServiceLayer) Visualize wind using vector symbol (ArcGISImageServiceVectorLayer)

Server Side Processing Process data on server using raster function - Built-in raster functions - RFTs Transmit processed and compressed data Fast per request Leverage the well established RFT - Written in C++ and extensible through python or COM JPEG, PNG, TIFF, LERC, etc Server Raster Data RFT

Server Side Processing - APIs ArcGISImageServiceLayer RasterLayer MosaicRule RenderingRule ImageServiceParameters RasterFunction var rasterfunction = new esri.layers.rasterfunction(); rasterfunction.functionname = "Hillshade"; var arguments = {}; arguments.azimuth = 315; arguments.altitude = 45; arguments.zfactor = 1; rasterfunction.arguments = arguments; rasterfunction.variablename = "Raster"; imageservicelayer.setrenderingrule(rasterfunction);

Avalanche Risk Analysis and Flood Risk Demos Service: elevation

Client Side Processing Pixel Filter Retrieve raw data in LERC format Responsive interactive processing - Javascript (simple task) or WebGL (complicated) Developer needs to know processing algorithms PixelBlock LERC Server Raster Data RFT

Canvas var c=document.getelementbyid( canvas"); var ctx=c.getcontext("2d"); //web-gl, experimental-webgl var imgdata=ctx.createimagedata(width,height); var data = imgdata.data; for (var i=0; i < data.length; i++) { data[i*4+0]=100; //red data[i*4+1]=255; //greeen data[i*4+2]=100; //blue data[i*4+3]=255; //alpha 0 ~255 (255 is transparent) } ctx.putimagedata(imgdata,width,height); UInt8clampedArray

Client Side Processing - APIs RasterLayer setpicxelfilter PixelBlock var israsterlayer = new RasterLayer(isUrl, { opacity: 1, pixelfilter: maskpixels }); function maskpixels(pixeldata) { var pixelblock = pixeldata.pixelblock; var pixels = pixelblock.pixels; var mask = pixelblock.mask; var numpixels = pixelblock.width * pixelblock.height; for (var i = 0; i < numpixels; i++) { mask[i] = (p1[i] >= Math.floor(currentMin) && p1[i] <= Math.floor(currentMax))? 1 : 0; } return pixeldata; }

Explore Information with Scatter Plot and Pie Chart Services: landsat NLCD (National Land Cover Data)

Multidimensional Data Image Services Variables and dimensions (time and vertical) - Sea temperature captured from time [t1, t2, t3] and depth at [-10, -20] - Humidity and wind every 3 hours t=7 MultidimensionInfo - - { Variables : [ } - name - unit -.] - dimensions [ ] t=6 141 241 341 441 142 242 342 442131 231 331 431 143 243 343 443 132 232 332 432121 221 321 421 133 233 333 433 122 222 322 422111 211 311 411 123 223 323 423 112 212 312 412 113 213 313 413 t=5

Multidimensional Data - APIs ArcGISImageServiceLayer setmosaicrule(mr) MosaicRule multidimensionaldefinition RasterLayer ArcGISImageServiceVectorLayer getmultidimensionalinfo MultidimensionalDefinition DimensionalDefinition var mr = new MosaicRule(); var mdmd = []; mdmd.push(new DimensionalDefinition({ variablename: "Salinity", dimensionname: "StdZ", values: [-20] })); mr.multidimensionaldefinition = mdmd; islayer.setmosaicrule(mr)

Multidimensional Data Multi-dimension Slider Widget mdslider = new MdSlider({ map: mymap, dimension: depth, layout: MdSlider.LAYOUT_VERTICAL, thumbcount: 1, showplaybutton: true }, "mdslider"); mdslider.startup();

Multidimensional Data Web Viewer Multidimensional Filter to access variables at given time and vertical dimension values Multi-dimension Slider to visualize data at given depth and animate

Visualize Sea Temperature Time [69] Vertical dimension [40] and profile

Visualize Image Services with Vector Symbols

Visualize Raster Data with Vector Symbols Tile size Service data type = esriimageservicedatatype-magdir Style Built-in class breaks: STYLE_WIND_BARB STYLE_SINGLE_ARROWS STYLE_CLASSIFIED_ARROW STYLE_BEAUFORT_KN STYLE_BEAUFORT_FEET STYLE_BEAUFORT_MILE STYLE_BEAUFORT_KM STYLE_BEAUFORT_METER STYLE_OCEAN_CURRENT_M STYLE_OCEAN_CURRENT_KN STYLE_SCALAR

Visualize Image Service with Vector Symbols ArcGISImageServiceVectorLayer VectorFieldRender setrenderer setmosaicrule MosaicRule setpixelfilter(func(pixeldata)) Var isvectorlayer = new ArcGISImageServiceVectorLayer(isUrl, { imageserviceparameters: params, symboltilesize: 60, rendererstyle: "single_arrow }); var renderer = new VectorFieldRenderer({ style: VectorFieldRenderer.STYLE_BEAUFORT_KN, visualvariables: visualvariables, flowrepresentation: VectorFieldRenderer.FLOW_FROM }); isvectorlayer.setrenderer(renderer);

Web Viewer with Vector Symbol

Wind Map from Image Service Service: NDFD_wind on http://sampleserver6.arcgisonline.com

Tips/Summary Server side processing in general - Rich built-in raster functions - Written in c++, efficiently - Data to transfer is smaller Client side processing for apps that require instant responsiveness Combine server side and client side processing - Use RasterLayer Use ArcGISTiledMapServiceLayer to access the cached image service tiles Use ArcGISImageServiceVectorLayer to draw with vector symbols - Create mosaic dataset with 32 bit float type

Rate This Session www.esri.com/ratemydevsummitsession More samples and API reference: https://developers.arcgis.com/javascript