Prepare index variables
The first step to creating a heat risk index is to prepare the input data. You'll use three variables for your index: average summer surface temperature, percent of area without tree cover, and population density. Each of these inputs is derived from ArcGIS Living Atlas data and can be repeated or customized for your own neighborhood or other area of interest.
Add data for the study area
The example heat risk index (HRI) will be calculated for Sevilla, a city in southern Spain. Before processing the data that will comprise the risk index, you'll find and prepare census data for Sevilla. This layer will be used to filter and clip global raster services, and will allow you to create the index within neighborhood-level geometries meaningful to local planning and intervention.
- Start ArcGIS Pro. If prompted, sign in using your licensed ArcGIS organizational account.
Note:
If you don't have access to ArcGIS Pro or an ArcGIS organizational account, see options for software access.
- Under New Project, click Map.

- In the New Project window, for Name, type Sevilla Heat Resilience Index. Click OK.
The project is created. First, you'll add a boundary layer to the map. For this tutorial, you'll use Spanish census section boundaries from ArcGIS Living Atlas.
Tip:
Depending on your goals for the index, different boundaries may be a better choice. For example, if local decisions are made at the neighborhood or city council level, it may be more meaningful to use those boundaries to provide decision makers with specific context. In other cases, if your region doesn't have small enough administrative or census units or if you want to analyze at smaller resolutions, you might consider creating tessellations, or a smaller grid, for analysis. Keep in mind that you'll likely need to add demographic data to whichever geography you choose.
- On the ribbon, click the Map tab. In the Layer group, click the Add Data button.

- In the side menu of the Add Data window, click Portal. Double-click Living Atlas.

- In the search box, type Spain census sections owner:esri_dm and press Enter. Click the Spain Census Section Boundaries feature layer to select it.
Tip:
Adding owner: and the owner name to a search filters search results by a specific owner.

- Click OK.
The layer is added to the map and the map zooms to Spain.
Filter the data to the area of interest
The dataset you added contains census sections for all of Spain. Next, you'll filter the census sections to only show Sevilla.
- In the Contents pane, right-click ESP_StatisticalAreas and choose Attribute Table.

The attribute table opens. The city where each census section is located is listed in the Admin Name field.
- In the attribute table, click Select By Attributes.

The Select By Attributes tool appears.
- In the Select By Attributes tool, build the query Where Admin Name is equal to Sevilla.

- Click OK.
The bottom of the attribute table indicates that 521 sections are selected. You'll save a copy of this filtered layer to your project so that you can work with the data.
- Close the attribute table.
- On the ribbon, click the Analysis tab. In the Geoprocessing group, click Tools.

The Geoprocessing pane appears.
- In the Geoprocessing pane, search for Export Features. In the list of results, click Export Features.

- For Input Features, choose ESP_StatisticalAreas. For Output Feature Class, delete the existing text and type Sevilla_Census_Sections.

- Click Run.
When the tool finishes running, the Sevilla_Census_Sections layer is added to the Contents pane. You can now remove the original census sections layer.
- In the Contents pane, right-click ESP_StatisticalAreas and choose Remove.
Next, you'll symbolize the Sevilla_Census_Sections layer so that you can see it on top of the layers you'll add later.
- For Sevilla_Census_Sections, click the symbol.

The Symbology pane appears, showing a gallery of symbols to choose from.
- In the Symbology pane, on the Gallery tab, under ArcGIS 2D, click Black Outline (1 pt).

The layer also has a default transparency that makes the boundaries difficult to see against the basemap.
- On the ribbon, click the Feature Layer contextual tab. In the Effects group, for Transparency, type 0% and press Enter.

- In the Contents pane, right-click Sevilla_Census_Sections and choose Zoom To Layer.
The map navigates to the area of interest: Sevilla, Spain. You'll use this extent later to clip the raster data for use.

- Close the Symbology pane.
Prepare temperature data
The first variable in your index is average summer surface temperature, which can be derived from global Landsat Level-2 imagery available in ArcGIS Living Atlas. To prepare this input, you'll add the image service to your map and change how it is displayed and filtered. Later, you'll find scenes available for your area of interest, you'll copy the raster locally, and use the Zonal Statistics as Table tool to determine the maximum value within each Sevilla census section.
Tip:
Depending on your study area and available data, you might choose to use a different source for heat data. For example, you might prefer to download Landsat data from the Landsat Explorer app. The app allows you to select and preview scenes before downloading them. Another option is to use high resolution urban heat island data from the National Integrated Heat Health Information Systems (NIHHIS) and Climate Adaptation Planning and Analytics (CAPA) program. NIHHIS-CAPA data is available for specific cities in the United States and around the world who have participated in the heat mapping campaign.
- On the ribbon, click the Map tab. In the Layer group, click the Add Data button.
- In the Add Data window, ensure Living Atlas is selected. Search for Landsat Level-2 owner:esri_imagery and add the Landsat Level-2 imagery layer.

The Landsat Level-2 imagery layer is added to your project. The Level-2 collection of science products has atmospherically corrected surface reflectance and surface temperature data dating to 1982. You'll adjust the Landsat service properties to get only the temperature data you're interested in.
- In the Contents pane, double-click Landsat Level-2.
The Layer Properties window appears.
- In the Layer Properties window, click the Processing Templates tab.
- For Processing Template, choose Surface Temperature (Celsius) for Analysis.

- Click the Mosaic tab. For Mosaic operator, choose Mean.

This service uses a mosaic dataset to manage the decades' worth of scenes. By default, it displays the first scene. Selecting the mean operator will calculate an average temperature value from all the scenes available for your area of interest and based on the filters you'll apply. Next, you'll add a definition query with two arguments: Cloud Cover is less than or equal to 10 percent and scenes were acquired during summer months.
- Click the Definition Query tab. Click New definition query.

- Build the expression Where cloudcover is less than or equal to 0.10.
This query will filter out all scenes with more than 10 percent cloud cover. Clouds and cloud shadows in Landsat scenes adversely impact the results of any analysis.
- Click Add Clause.

- Build the expression And month includes the value(s) 6,7,8.

This clause will include only months that are considered summer months in the northern hemisphere.
- For Query 1, click Apply. At the bottom of the Layer Properties window, click OK.
The service may take a few minutes to update. When it finishes, the scenes may display as a gray rectangle. To visualize the average summer temperatures in the layer, you'll symbolize the raster.
- In the Contents pane, right-click Landsat Level-2 and choose Symbology.
- In the Symbology pane, for Statistics, choose DRA.

DRA is short for dynamic range adjustment, which automatically adjusts your active stretch type as you navigate around your image based on the pixel values in your current display.
- For Color scheme, check Show names. Choose the Inferno color ramp.

The map updates, showing the color scheme you chose.

- Close the Symbology pane.
Copy the relevant scenes
Now that you've set the processing template and filters on the Landsat imagery, you'll copy the scenes of interest to your project.
- In the Contents pane, right-click Landsat Level-2 and choose Attribute Table.
- At the bottom of the attribute table, click the Filter by Extent button.

The table is filtered to show only the scenes available in the map's current extent, the Sevilla region.
- Close the attribute table.
- In the Geoprocessing pane, click the Back button.

- Search for Copy Raster and open the Copy Raster tool.
- For Input Raster, choose Landsat Level-2.
A red X appears next to the Input Raster parameter, indicating the parameter is invalid. The Landsat Imagery service only allows exports of 4000x4000 pixels at a time. Before running this tool, you'll set a processing extent to ensure that the raster export is within these limits.
- For Output Raster Dataset, click the Browse button.

You'll save this raster as a TIFF file, which can't be stored in a geodatabase (the default output location). You'll browse to a different output location.
- In the Output Raster Dataset window, under Project, click Folders. Double-click the Sevilla Heat Resilience Index project folder.
Note:
If you gave your project a different name, the project folder's name will also be different.
- For Name, type Avg_SurfaceTemp_Sevilla.tif.

- Click OK.
- In the Geoprocessing pane, click the Environments tab.

- For Extent, click the Extent of a Layer button and choose Sevilla_Census_Sections.

Setting a processing extent resolves the error condition you saw when you set the input raster.
- Click Run.
The tool runs. When it finishes, the Avg_SurfaceTemp_Sevilla.tif raster is added to the Contents pane and the map.
Note:
You may receive a warning message after the tool completes, stating WARNING 003485: Processing templates will not be saved to the output raster dataset because the input layer already has an active processing template. This warning is expected because only the imagery data gets copied and not any of the service processing templates.
- In the Contents pane, right-click Landsat Level-2 and choose Remove.
The imagery now matches the extent of the Sevilla census sections.

Calculate average temperature
Now that your area of interest's surface temperate raster is copied to a local file, you'll use the Zonal Statistics as Table tool to summarize all the temperature values within each census polygon to determine the average value.
- In the Geoprocessing pane, click the Back button twice. Search for Zonal Statistics as Table and open the Zonal Statistics as Table (Spatial Analyst Tools) tool.
The Zonal Statistics as Table tool calculates statistics of the raster cells within the zones of another dataset. In this case, you'll calculate the Maximum statistic to find the highest average temperature within each census section.
- Enter the following parameters:
- For Input Raster or Feature Zone Data, choose Sevilla_Census_Sections.
- For Zone Field, choose OBJECTID.
- For Input Value Raster, choose Avg_SurfaceTemp_Sevilla.tif.
- For Output Table, type Avg_SurfaceTemp_Sevilla.
- For Statistics Type, choose Mean.

- Click Run.
The Avg_SurfaceTemp_Sevilla table is added to the Contents pane under Standalone Tables.
- In the Contents pane, right-click the Avg_SurfaceTemp_Sevilla table and choose Open.
The table appears.

The MEAN field shows the mean statistic. You'll rename this field for clarity.
- On the ribbon, click the Standalone Table contextual tab. In the Data Design group, click Fields.

- In the Fields table, in the Alias column, double-click MEAN to edit the record. Type Avg Summer Temp (C) and press Enter.

- On the ribbon, in the Manage Edits group, click Save.

- Close the Fields view and the table.
Prepare tree cover data
The second input for the heat risk index is the lack of tree canopy. This input is derived from the European Space Agency WorldCover 2021 Land Cover imagery service in ArcGIS Living Atlas. You'll add the data to the map, reclassify it to only show tree cover, and calculate the amount of tree cover by census section.
Tip:
Depending on your goals for the index, you might choose to use different classification methods or different data. Because the goal of this index is to identify areas for tree planting campaigns, you're reclassifying the land cover layer to show where trees already are. If you were building the index to identify areas for other types of interventions, such as removing impervious surface or creating rain gardens, you may choose to reclassify the land cover data to show how much green space existed by identifying the tree cover, shrubland, and grassland in each census section. Or, you might choose to use a measure of biomass and vegetation health such as the Normalized Difference Vegetation Index (NDVI) or the Soil Adjusted Vegetation Index (SAVI). These measures are included in the Landsat Level-2 service, and they can also be calculated in ArcGIS Pro.
- On the ribbon, click the Map tab. In the Layers group, click the Add Data button.
- From the Living Atlas portal, search for and add the European Space Agency WorldCover 2021 Land Cover layer owned by esri_environment.

The layer is added to the map.

This layer is a global land cover dataset that has 11 land cover classes. Out of these classified pixels, you'll only need those showing tree cover. You'll use the Reclassify tool to isolate only the tree cover pixels.
- In the Geoprocessing pane, click the Back button. Search for Reclassify and open the Reclassify (Spatial Analyst Tools) tool.
- For Input raster, choose European Space Agency WorldCover 2021 Land Cover. Confirm that Reclass field is set to ClassName.
- In the Reclassification table, leave the New value for Tree Cover set to 1. Change all the other New values except for NODATA to 0.

- For Output raster, click the Browse button. Browse to the Sevilla Heat Resilience Index project folder.
- For Name, type Tree_Canopy_Sevilla.tif. Click OK.
To process only the pixels relevant to your area of interest, you'll use the processing extent to clip the raster.
- Click the Environments tab. Under Processing Extent, for Extent, click the Extent of a Layer button and choose Sevilla_Census_Sections.
- Click Run.
When the tool finishes, a raster layer is added to the Contents pane and the map.
- In the Contents pane, right-click European Space Agency WorldCover 2021 Land Cover and choose Remove.
The classified raster is visible on the map.
Note:
Your raster may have different symbology than the example image.

The Tree_Canopy_Sevilla.tif layer has two classes: tree cover and everything else. You can use this raster to calculate the lack of tree cover variable that will be an input to your index.
The lack of tree canopy is calculated using the formula 100 – Percent Tree Canopy.
- In the Geoprocessing pane, click the Back button twice. Search for and open the Zonal Statistics as Table (Spatial Analyst Tools) tool.
This time, you'll use the tool to summarize the number of tree cover pixels within each census polygon. The tool also counts the total number of pixels within each zone (polygon), so you can calculate the percentage of the polygon pixels covered with trees.
- Enter the following parameters:
- For Input Raster or Feature Zone Data, choose Sevilla_Census_Sections.
- For Zone Field, choose OBJECTID.
- For Input Value Raster, choose Tree_Canopy_Sevilla.tif.
- For Output Table, type Tree_Pixels.
- For Statistics Type, choose Sum.
- Click Run
The Tree_Pixels table is added to the Contents pane under Standalone Tables.
Calculate tree cover
The table contains two columns of interest: COUNT, which is the total number of pixels within each polygon zone, and SUM, which is the sum of tree cover pixels. You'll calculate the percent tree cover and percent lacking tree cover for each census polygon using the following formulas:
- PCT_Tree_Cover = (Sum / Count) * 100
- PCT_Lacking = 100 - PCT_Tree_Cover
- Right-click the Tree_Pixels table and choose Open.
- In the attribute table, click Calculate.

Options to calculate a field appear.
- Click the Text Field Type drop-down menu and choose Float (32-bit floating point).

- For Target Field (Existing or New), type Pct_Tree_Cover.
- For Enter an expression to calculate field values, type the expression (!SUM! / !COUNT!) * 100.

- Click the Calculate button.

The new field is added to the end of the attribute table. Next, you'll calculate a second field to show the percent of each census section that is lacking tree cover. First, you'll save your edits before making new ones.
- On the ribbon, click the Edit tab. In the Manage Edits group, click Save.

- In the Save Edits window, click Yes.
- In the table, in the options to calculate a field, change Pct_Tree_Cover to Pct_Lacking. Change the expression to 100 - !Pct_Tree_Cover!.

- Click the Calculate button.
The table now has two new fields, Pct_Tree_Cover and Pct_Lacking. The Pct_Lacking attribute represents the percentage of the census section lacking tree cover and is the second input to the heat resilience index.

- On the ribbon, in the Manage Edits group, click Save. In the Save Edits window, click Yes.
- Close the Tree_Pixels table.
Calculate population density
The final input to the heat risk index is population density. This component of the index will allow you to prioritize action in populated areas where the most people may benefit from the intervention. Instead of adding a new layer, you'll derive the population density input from Spanish census data in the Sevilla_Census_Sections layer.
Tip:
In this tutorial, you're only using a general measure of population density as a means of representing where tree planting campaigns might serve the most people. When building your index, this input likely will need to be more nuanced. Consider adding demographic data to indicate where populations are most vulnerable to heat stress. People who are more vulnerable to heat stress include children and older adults, people with strenuous outdoor jobs, people chronic health conditions, people with disabilities, and people experiencing homelessness.
When selecting demographic variables, it's best practice to work closely with stakeholders to identify their priorities and determine how to represent them in the index. Depending on your local priorities and how many indicators you choose to include, consider making a subindex to represent population and vulnerability in your index.
- In the Contents pane, right-click Sevilla_Census_Sections and choose Attribute Table.
The layer contains attributes for both total population and area in square kilometers. You'll calculate a new field by dividing population by area.
- In the attribute table, click Calculate.
- Click the Text Field Type drop-down menu and choose Float (32-bit floating point).
- For Target Field (Existing or New), type Pop_Density.
- For Enter an expression to calculate field values, copy and paste the expression !TOTPOP_CY! / !AREA!.

Note:
Though the attributes are shown by their aliases, or readable names, in the Fields pane, they populate in the expression using their field name.
- Click the Calculate button.
The Pop_Density field is added to the table.

- On the ribbon, in the Manage Edits group, click Save. In the Save Edits window, click Yes.
The three derived inputs are now ready to be combined into the heat risk index and symbolized on a map. You'll first transfer all the inputs to the Sevilla_Census_Sections layer for processing.
- In the Geoprocessing pane, click the Back button. Search for Join Field and open the Join Field tool.
- Enter the following parameters:
- For Input Table, choose Sevilla_Census_Sections.
- For Input Field, choose OBJECTID.
- For Join Table, choose Avg_SurfaceTemp_Sevilla.
- For Join Field, choose OBJECTID.
- For Transfer Fields, choose Avg Summer Temp (C).

- Click Run.
When the tool finishes running, the Avg Summer Temp (C) field is added to the Sevilla_Census_Sections table.
- In the Join Field pane, change Join Table to Tree_Pixels and change Transfer Fields to Pct_Lacking. Click Run.
Now, all three inputs are in the same table.

- Close the table.
- On the Quick Access Toolbar, click the Save Project button.

The project is saved.
You've prepared the variables you'll use to create your heat index. Next, you'll create the index.
Create a heat risk index
With all the index inputs prepared, you'll create your index. There are many ways to create, combine, and interpret indices based on the purpose; in this tutorial, you'll use the Calculate Composite Index tool. This tool incorporates some data preprocessing and data combination steps to help you choose an index method that fits your data. If you're working with different study areas or variables, adjust your index methods accordingly using the Calculate Composite Index tool documentation and best practices guide.
Understand index inputs
To create an effective index, you'll need to choose what methods to use to preprocess and combine the data. Preprocessing steps in the Calculate Composite Index tool ensure that variables are compatible and can be combined in an index. In order to choose these steps, you first need to understand the distribution of input variables. You can also choose to deal with inconsistencies like skewness and missing values at this stage. To understand the variables, you'll use the Data Engineering view, which has tools for exploring, visualizing, and cleaning your data.
- In the Contents pane, uncheck Tree_Canopy_Sevilla.tif and Avg_SurfaceTemp_Sevilla.tif to turn them off.
- Right-click Sevilla_Census_Sections and choose Data Engineering.
The Data Engineering view opens. You'll view histograms of each of your input variables, symbolize them on the map, and calculate summary statistics to understand the values.
- In the Fields panel, click Pop_Density. Press the Shift key and click Pct_Lacking to select the three index inputs you've prepared.
- Drag the three selected fields into the Statistics panel.

The three fields are added. Next, you'll calculate statistics.
- In the Statistics panel, on the ribbon, click Calculate.

Statistics are calculated for each input, including mean, median, outliers, and skewness. Next, you'll map the inputs and create histograms to understand their distribution.
- In the Fields panel, point to the Pop_Density field and click the Update Symbology button.

The map updates to display the census sections based on their population densities. There are higher density values in smaller census areas near the center of the city, while larger census areas and areas on the outskirts of the city have lower densities.

- In the Statistics panel, for the Pop_Density field, right-click the chart preview and choose Open histogram.

A histogram appears, showing the distribution of the data. The data has a slight positive skew.
- Close the histogram and the Chart_Properties pane. In the Data Engineering view, scroll until you see the Skewness statistic.
The skewness statistic for the Pop_Density field is about 0.83. (Your value may differ slightly.) Values less than -0.5 or greater than 0.5 are generally considered skewed. Having high skewness in a variable can change its impact on the index results. While the Calculate Composite Index tool has preprocessing methods available that can deal with skewness, such as scaling, these methods are applied to every variable used as an input, not just skewed variables. Using the Data Engineering tools to deal with variables ahead of using the composite index tool gives you more control over individual variables. You'll use the Transform Field tool to change the Pop_Density variable to a more normal distribution.
- For the PopDensity field, right-click the Skewness statistic and choose Transform Field.

The Transform Field tool appears.
- In the Transform Field tool, confirm Transformation Method is set to Box-Cox.

You'll accept the rest of the default parameters. The Shift parameter can be used if any values in the input table are negative. The Power parameter can be used to specify the value of the power. If no value is provided, the best approximation of a normal distribution curve will be used and displayed in the geoprocessing messages.
- In the Transform Field tool, click OK.
When the tool finishes running, the new field is added to the Sevilla_Census_Sections table.
- In the Data Engineering view, in the Fields panel, drag Pop_Density_BOX_COX into the Statistics panel. Click Calculate.
The skewness statistic for Pop_Density_BOX_COX is about -0.03, which is closer to a normal distribution. Next, you'll repeat the process to map and transform the Pct_Lacking field, which has a strong negative skew.
- In the Fields panel, point to the Pct_Lacking field and click the Update Symbology button.
The map updates to show census sections by percent of tree cover.

Darker shades of green show areas with a higher percent of land lacking tree cover. Many of the smaller census sections in the downtown area have little tree cover. There are also several large outlying census sections that have little tree cover.
This variable is also highly skewed. You'll use the Transform Field tool again to change the distribution into something closer to a normal distribution.
- For the Pct_Lacking attribute, right-click the chart preview and choose Transform Field.
- In the Transform Field tool, confirm Transformation Method is set to Box-Cox. Click OK.
- In the Data Engineering view, in the Fields panel, drag Pct_Lacking_BOX_COX into the Statistics panel. Click Calculate.
Because the skew was stronger on this field, the transformation resulted in a new skewness statistic of -0.233. Though still somewhat skewed, this value is within the -0.5 to 0.5 range that you're using as a rough approximation of normal distribution.
The final field to map is the Avg Summer Temp (C) field.
- In the Fields panel, point to the Avg Summer Temp (C) field and click the Update Symbology button. Close the Data Engineering view.
The map updates to show census sections by average temperature.

Interestingly, the large outlying census sections appear to have higher temperatures. This pattern could be because of several reasons, such as an artifact of data processing or the size of the sections compared to the smaller downtown sections. For example, high temperatures in the industrial park and warehouse districts may drive up the average value for the entire section.
The Avg Summer Temp (C) already had an acceptable skewness statistic, so you don't need to transform it.
Select index methods
Now that you have a better understanding of the index inputs, you'll choose preprocessing steps and index methods. Preprocessing in the Calculate Composite Index tool focuses on reversing variables to make sure they're consistent in direction and on scaling variables to make sure they're consistent in range and unit. If you're working with different study areas or variables, refer to the Calculate Composite Index tool documentation and best practices guide to choose appropriate preprocessing steps and combination methods.
- In the Geoprocessing pane, click the Back button. Search for and open the Calculate Composite Index tool.
While there are many ways to create indices, you'll use this tool because it combines multiple data processing steps into a single tool and creates a series of charts to help you validate the results of the index tool.
First, you'll add the three inputs you've prepared and set the preprocessing parameters you want to use.
- For Input Table, choose Sevilla_Census_Sections. For Output Features or Table, type Sevilla_HRI_MeanofScaled.
Tip:
It may be beneficial to test several preprocessing and index combination methods. To help differentiate them later, choose an output name that represents the parameters used.
- For Input Variables, click the Add Many button.

- Choose Avg Summer Temp (C), Pop_Density_BOX_COX, and Pct_Lacking_BOX_COX. Click Add.

Note:
If your input variables are listed using field names instead of aliases, click the Field list settings button and choose Show Field Aliases.
Each input has a check box to reverse direction. Depending on how you prepared your input variables, you may need to reverse a variable's direction. To decide whether to reverse a variable, you need to make sure that all high values represent a common outcome for the index. In this case, you prepared all your variables so that high values indicate the census section's benefit from tree planting would be greater, and low values indicate that the census section's benefit would be lower. Because the direction of the values are compatible, you don't have to reverse any of them.
Next, you'll choose how to scale the inputs. Scaling is the method used to standardize all the inputs to a common range. Because you're working with variables with different units and scales, you need to standardize them before you can combine them. For example, it's hard to compare the impacts of a change of one degree Celsius on a census section versus a change of one percent tree coverage. Scaling these variables will map the values to a common range, such as 0 to 1.
Scaling methods depend on your data and your goals for the index. For example, if you're working with very skewed data or the ranks of each variable in the dataset are more important than their actual values, you may choose to use the mean of percentiles, which standardizes values by translating them into percentiles between 0 and 1. Or, if you have a critical value, such as a median housing price, and want your index to identify areas above and below that critical value, you might choose to use the Flag by threshold custom option.
- For Preset Method to Scale and Combine Variables, choose Combine values (Mean of scaled values).
This option sets the Method to Scale Input Variables to Minimum-maximum and the Method to Combine Scaled Variables to Mean. First, input variables are rescaled between 0 and 1, then combined using the mean of the rescaled input variables as the index. This method is appropriate because the scaling process will consider the magnitude of difference between values in the input data, quantifying how much better or worse the census section is in relation to the rest of the values.
Because it uses the minimum and maximum of the dataset to rescale, this method often isn't appropriate for skewed data. If you hadn't transformed the Pop_Density and Pct_Lacking attributes in earlier steps, you'd want to consider a method like mean of percentiles, which preserves the rank of the data but not the magnitude. Methods that preserve rank are useful for creating indices showing where conditions are better or worse, but won't quantify how much better or worse.
- For Method to Scale Input Variables, confirm that Minimum-maximum is chosen. For Method to Combine Scaled Variables, confirm that Mean is chosen.
The next parameter sets the weight of each variable. Variables can be weighted to represent the relative importance of each factor as it contributes to the index.
- Expand the Variable Weights section.
By default, all weights are set to 1, meaning each variable is equally weighted. For this index, you want to focus on planting trees in places where they can directly benefit people, so you'll weight the Pop_Density_BOX_COX variable more than the other two.
- Under Weights, for Pop_Density_BOX_COX, set the Weight to 2.
The Output Settings parameters allow you to choose what to name the index attribute field. You can also choose additional symbolized layers for the tool to generate.
- Expand Output Settings. For Output Index Name, type HRI.

Next, you'll choose settings for the index output. First, you can choose minimum and maximum values for the index range, such as a scale of 1 to 10. This range is optional, but can make values easier to interpret. Then, you can choose additional output layers to give you more ways to assess the results.
- For Output Index Minimum and Maximum Values, set Minimum to 1 and Maximum to 10.
- For Additional Classified Outputs, check the box next to Standard deviation.

- Click Run.
When the tool finishes, the Sevilla_HRI_MeanofScaled group layer is added to the Contents pane and the map.

The group layer contains three layers, one showing the index values using an unclassified color ramp, another showing the index values as percentiles, and the third showing the index values as standard deviation classes. The HRI layer, which is displayed on the map, also contains several charts.
Map and interpret the index
Now that you've created an index, you'll explore and interpret the results. Using the charts and outputs that the composite index tool creates, you can determine whether the index works for your purposes or if you should test additional preprocessing steps and index methods. Once you're comfortable with the results of your index, you'll style it in a way that's easier for others to interpret. The index values you've been looking at are meaningful to you, but likely won't be to others without additional context.
Additionally, taking action based on this index will require more local input and knowledge. For example, what is the budget for the tree planting intervention? What kind of permitting is required, and do communities want trees planted in their neighborhood? Without this kind of direct understanding, it's potentially misleading to produce maps that show interpretations of your index. Instead, you'll use the standard deviation output you produced to classify the census areas as receiving greatest benefit, moderate benefit, and least benefit.
- In the Contents pane, under HRI, right-click Distribution of HRI and choose Open.

The high index values can be interpreted as showing areas that would benefit most from tree planting as a heat resilience intervention. Likewise, the low index values can be interpreted as benefiting least from tree planting as an intervention. This doesn't mean that these areas don't have high summer temperatures or need resilience measures implemented, but that interventions other than tree planting might be considered.
- In the chart pane, click the bar representing the highest index values.

The census sections with the highest index values are selected on the map.
- If necessary, on the map, zoom in to one of the selected census sections. Click census section.
The census section's pop-up appears.

The pop-up shows the overall index score for the census section as well as the scaled values of the variables.
- Optionally, explore the map and histogram to identify census sections with high and low index values.
This index output layer and the accompanying chart are helpful to use if the index values themselves are meaningful to you. For example, if you wanted to target your tree planting campaign in census sections that scored 8 or higher on the index, this histogram is a good starting point.
- Close any open pop-ups, the chart, and the Chart Properties pane. Zoom out to the full extent of the data.
- In the Contents pane, turn off the HRI layer.
The HRI - Percentile layer becomes visible on the map.

- Optionally, use pop-ups and Distribution of HRI - Mean (Percentile) chart to explore the percentiles output.
This output is useful if you care less about the index score and more about the ranking of the section. For example, if you wanted to target your tree planting campaign in census sections that scored in the 95th percentile, then you might use this output.
In this case, because you're making a general index without local input or stakeholder feedback, you'll use the final output, the standard deviation output, to classify the census areas as receiving greatest benefit, moderate benefit, and least benefit. This map should be viewed as a midpoint in your analysis. It can be used to prompt discussion and gather perspective from stakeholders in order to better refine the variables, weights, and methods used.
- In the Contents pane, turn off the HRI - Percentile layer and turn on the HRI - Standard Deviation Classes layer.

- Open the Counts by HRI – Mean (Standard Deviation Classes) chart.

This layer shows the index data symbolized by standard deviation, with the highest index values three standard deviations away from the mean.
- Close the chart and the Chart Properties pane. In the Contents pane, right-click HRI - Standard Deviation Classes and choose Symbology.
The layer is currently symbolized with six classes.
- In the Symbology pane, for Primary symbology, choose Graduated Colors.

- For Field, choose HRI – Mean (Standard Deviation Classes).
- For Classes, choose 3.
These three classes will represent the census areas receiving greatest benefit, moderate benefit, and least benefit.
- Click Color scheme and check Show all. Choose the Brown-Green (3 classes) color scheme.

The map updates with the color scheme you chose.

Next, you'll decide which census areas belong in the three categories you've decided to use. This decision is as subjective as the index creation process and can be adjusted to meet local needs and guidelines.
- In the Classes tab, for the first class, confirm that Upper value is set to ≤ –1. For Label, type Least Benefit.
- For the second class, confirm that Upper value is set to ≤ 1. For Label, type Moderate Benefit.
- For the third class, confirm that Upper value is set to ≤ 3. For Label, type Greatest Benefit.

Depending on your preferred methods for sharing and communicating the results of this index, you could now publish it as a web map or create a map layout to share a printed version. Either way, this map should be viewed as a midpoint, a way to gather community input and perspective before taking action on any tree planting.
- Save the project.
In this tutorial, you created a heat risk index showing where tree planting would be most beneficial at mitigating extreme heat based on population density, lack of existing tree canopy, and average summer surface temperatures.
The resilience index methodology can be replicated for other areas of interest around the world and for different climate hazards, and can include index inputs specific to your community, such as at-risk populations. When creating your own index, make sure to use data preprocessing and index creation methods specific to your data. For more guidance on the Calculate Composite Index tool, use the tool's documentation page and the Creating Composite Indices Using ArcGIS: Best Practices technical paper.
You can find more tutorials in the tutorial gallery.
