Esri Landscape Modeler Application

Screenshot of Landscape Modeler

This week the Landscape Modeler application that was previewed at the International User Conference in June has hit the ArcGIS Marketplace.

Landscape Modeler is a web application that allows users to perform fast weighted overlay analysis at multiple scales or over a large area. This is ideal when there are multiple users that want to develop their ideas about suitability analysis models and share their results with each other.

You can find out more about Landscape Modeler listing on ArcGIS Marketplace (don’t worry, it’s free to any user with an ArcGIS Online organizational account). However, I wanted to mention a few things that I find interesting about this application from a developer’s perspective.

 

Powered by Raster Functions

ArcGIS for Server image service raster functions are what makes it possible to perform this kind of fast suitability analysis over the web. Users that have done this kind of analysis with desktop tools will know that it would have taken hours to process nationwide data sets at source resolution. The hack is that image services process raster functions only at the resolution of the output image that will be returned to the browser. This means that users can explore their model results and each pan or zoom operation only processes the pixels needed.

The stand-alone library at the heart of the application provides a UI for manipulating weighted overlay raster function parameters. The charts demonstrate how to apply a raster function to the compute histograms capabilities of an image service to get at the analytical data behind the map. These show the power of raster functions, but there is more that I would have liked to incorporate, such as the ability at 10.2 to define raster functions on the client side (instead of just sending parameters to predefined raster function chains on the server).

Test Driven (Mostly)

Recently I’ve been using the Karma runner to test my JavaScript code, and Landscape Modeler is the first production application to release with my tests in tow. Unfortunately, there’s not great coverage, there’s only tests for the parts that I wrote, and not even all of those. Still, the tests cover the library at the core of the app, and I’m glad they’re there whenever I need to make low level changes.

Unlike the example I posted to GitHub a while back, which shows how to use Karma and Jasmine with the ArcGIS API for JavaScript, Landscape Modeler uses Karma with Mocha because of Mocha’s simple support for asynchronous tests.

Ideas are Meant to be Shared

Landscape Modeler leverages ArcGIS Online as a portal to store model results and share them with other users. Models are stored as web maps, so they can be viewed in ArcGIS Online or in ArcGIS for Desktop, and if other users open a model within the Landscape Modeler application, they will be able to save their own copy and modify the model parameters.

If you’re new to the portal API, then the portal controls in Landscape Modeler demonstrate ways to go beyond just querying and loading items – there is also some basic code that demonstrates how to save items to the portal. There is a lot more that could be done here, especially with regard to sharing items, but it’s a start.

Let’s Work Together

As a developer, one of my favorite things about Landscape Modeler is that the source code is available on GitHub. The version of Landscape Modeler hosted on ArcGIS Online highlights the kinds of analysis that can be done with the ready-to-use landscape layers on ArcGIS Online. With access to the source code, developers can adapt the application to incorporate other data sets and perform other kinds of suitability analysis.

Landscape Modeler demonstrates ways that a JavaScript developer can get started using raster functions to perform fast suitability analysis, or to use a portal to let users find, save, and share analysis results over the web. However, the application only scratches the surface of what can be done in these areas. We’ve got a lot of ideas about what kind of enhancements would make it easier for people to perform fast suitability analysis over the web, but we’d love to hear your ideas as well.

Related Links