/Automate-Spatial-MCDA

Automate the process of Spatial Multi-Criteria Decision Analysis for housing development targeting Urban Planners. This project is focused on obtaining suitable sites for housing development based on accessibility levels to various facilities like Medical Centers, Fire Stations, Schools, Transit, Parks, Grocery Stores using ArcGIS Pro SDK

Primary LanguageC#Apache License 2.0Apache-2.0

Automating Spatial Multi Criteria Decision Analysis using ArcGIS Pro SDK

Theme: Housing Sites Selection based on accessibility levels to basic facilities

Cite as

Mendadhala, R. V. G. (2018). Automating Spatial Multi Criteria Decision Analysis (MCDA) of Housing Development Sites in Richardson, TX using ArcGIS Pro SDK for Microsoft. Net-An Accessibility Level Perspective (Version 1.0.0) [Computer software]. http://dx.doi.org/10.13140/RG.2.2.26958.59200

Migration to Pro 3.0 and forward compatibility

ArcGIS Pro 3.0 is a breaking change release, which brought a major architectural change. Installing ArcGIS Pro 3.0 requires .NET 6 Desktop Runtime x64 which can be downloaded here. The current add-in can be migrated to Pro 3.0 by following the migration docs ArcGIS-Pro-SDK Migration.

Table of Contents

MCDA Intro:

Multi-Criteria decision analysis is one of the most powerful technique in evaluating and comparing multiple criteria for arriving at a solution. MCDA can also applied in Geospatial world for making some crucial location based decisions. As a part of this project, I have used MCDA for choosing sites for the housing development based on accessibility levels to basic facilities like Grocery Stores, Medical Facilities, Fire Stations, Schools, Parks, Transit Stations.

AHP Intro and ArcGIS Pro Integration:

One of the first algorithms introduced in MCDA was Analytical Hierarchy Process (AHP) by Thomas Saaty in 1980.Since the AHP algorithm involves several matrix computations which can be laborious without excel, I have developed this add-in which can be integrated with ArcGIS Pro for performing suitability analysis and also extending it with Sensitivity Analysis.

Installation Process:

Clone/download the repo and look for MyAHP.esriAddinX and double click on it for installation.

The add-in should be in installed in "C:\Users{username}\Documents\ArcGIS\AddIns
This should add the add-in and make an Add-in tab in your ArcGIS Pro.

Once the add-in is installed, it should show up in your ArcGIS Pro Add-in Manager.

When you navigate to ArcGIS Pro add-in tab at the top

Click on the Add-in and you see the following screenshot

Note that the raster layers may differ depending on what are open in your project. Only those raster layers which are active (visible and checked) in the Table of contents will be ready for analysis.

Requirements:

  • ArcGIS Pro 2.5
  • .Net Target Framework 4.8
  • Visual Studio 2017 or 2019
  • ArcGIS Pro Spatial Analyst Extension or License

Some Important Considerations:

When we are performing MCDA in GIS, since we are comparing various criteria it is often better to use the Feature/Raster Layers on a uniform scale rather than a varying scale. Hence normalization is performed (ex: 0 to 1 , 1 to 100). In order to minimize the manual intervention of the user with default geoprocessing tools in ArcGIS Pro, we have integrated these reclassification values into the code which can be changed as per your normalization scale. For this project, the normalization scale is chosen as (0 to 1) for the raster layers and also when performing raster reclassification the following ranges were considered which again can be customized in the code again as per user requirements.

  • 0-0.6 -> 1 (Less Suitable)
  • 0.6-0.8 -> 2 (Moderately Suitable)
  • 0.8-1 -> 3 (Highly Suitable)

Implementation and Workflow:

At a high level overview the workflow is divided into three stages namely Data Preparation, AHP algorithm implementation, Sensitivity Analysis

Data Preparation Stage:

  • Eucledian distance rasters were generated from the criteria feature classes (Transit,Medical..etc)
  • Normalization of these rasters was performed using Raster Calculator (0 to 1)
  • Since we have 6 rasters to perform this functionality on, we have utilized model builder/python arcpy module to automate this entire process.
  • The normalized rasters were feeded as inputs to the AHP-addin

AHP Algorithm implementation:

  • AHP pairwise comparison is performed with chosen criteria.
  • The weights and consistency ratio (CR) is calculated.
  • Using these weights internally weighted sum and raster reclassification is done.
  • Suitability Map is generated for the base run with your reclassified values.
  • Here it would 1, 2 and 3 as described in the considerations section.

Sensitivity Analysis:

Sensitivity Analysis is a powerful alternative for incorporating uncertainities into decision making process. It showcases the impact of changing criteria weights on the resultant output from model in spatial dimension.

  • To perform sensitivity analysis, we choose a main criterion and then number of simulations.
  • The main criterion weight is increased/decreased as per number of simulations
  • For example if 4 simulations are chosen, we compute 1% increase, 1% decrease, 2% increase, 2% decrease on the actual weight of the main criterion.
  • The remaining criterion weights are adjusted accordingly to sum up these weights to be 1.
  • Finally save your weights and perform change detection in your suitability area.

How to incorporate this addin to your workflow?

  • Decide on your theme for applying AHP.
  • Decide the normalization scale for your rasters before feeding in.
  • Decide the reclassification values for your rasters.
  • Decide the number of simulations to be performed (In this project 2,4,8,10 are provided)
  • Edit the reclassification values and simulations as per your requirements in the code.

Documentation-Presentation-AddinDemo

  • For better understanding of this project, please review the AHP algorithm, process and computation methodology. In addition, feel free to explore the documentation and presentation of this project in the docs folder

View AHP-Addin Demo here

AHP-Video

The screenshots shown may be slightly different from the demo, as the demo was made with version 1.0

Contributions-Improvements-Bugs

Feel free to report any bugs you encounter while using this add-in. If you are interested in optimizing the code-base for this add-in and make it better in terms performance, please contact me at rvg296@gmail.com, so I can add you to the contributor list for collaboration. Any pull requests are reviewed carefully and suggestions are accepted.