Bivariate Mapping

09-09-2015 09:38 AM
New Contributor III
3 2 2,554

Bivariate legends are something that ESRI doesn't do very well.  So since we wanted to generate bivariate legends we had to get a little creative.  Using some creative ModelBu ilder tools you can create a bivariate legend within your map fairly simply using this model:Bivariate Model.gif

Basically using the Fishnet tool you can create your two dimensional grid in a user defined location on the map.  Then reclass the two input raster layers using the Slice tool and the number of columns used in the fishnet tool.  Next multiply one of the variables by 10 and add the two raster layers together.  Convert them to polygons and merge the fishnet and the converted polygons and dissolve.

The bivarate tool interface is fairly easy to set up and can be run by anyone with the tool:

Bivariate Tool Interface.gif

The Fishnet is a little tricky but if you use the Identify tool you can click the location for the upper left as the Fishnet Origin Coordinate, then the Y-Axis Coordinate is the same X location as the Fishnet Origin Coordinate and the Y Coordinate is a value higher than the Y Coordinate of the Fishnet Origin Coordinate value.  To set the Opposite Corner of the Fishnet you can use the Identify tool to find the coordinates for the lower right location of your bivariate fishnet grid.  Next select the first and second variable raster layers.  I would suggest using the Natural Breaks or the Equal Area options for the Slice tools depending on your data distribution and how you want it to look like combined.  Then set your output feature class and you are all set!

I have two examples both of which are published to ArcGIS server with an annotation layer that allows for text to be displayed along with the bivariate legend.

The first is within the Web App Builder

ArcGIS Web Application and notice that if you select any of the squares or the areas on the map it will highlight all similar values.  This helps immensely with complex legends with so many colors.

The second is in Scene

Bivariate Application Example2.gif

Attached you will find the mxd, model and 4 class layer symbology if you would like to try it out.

New Contributor

Hi Connor,

I'm trying to use this tool for my project. It implies a few changes directly within the model, but it's not too much.

I'd like to get a better understanding of the process, especially this part: " Next multiply one of the variables by 10 and add the two raster layers together. " Did you do it based on a source? What is the rationale?

If I end up using this tool, I will acknowledge you in the article.



New Contributor III

Hi François,

Sorry to take so long in response! the rationale for multiplying by 10 is to retain the two values in the output raster.  Say if you had a raster with potential values of 1-9 and a second raster with potential values of 1-9 if you multiply one of the rasters by 10 to have values from 10-90 and then add the two rasters together you would end up with values between 1-90 retaining the values of both rasters.  For example:  Raster 1 value: 3 + Raster 2 value 7 = 37.  Having both values in the single added raster allows the code to create the bivariate legend.  Let me know if you have additional questions.