HOW TO

Calculate wind-induced vibration risk scores for buildings using Arcade in the ArcGIS Enterprise portal and ArcGIS Online

Last Published: March 11, 2025

Summary

Calculating wind-induced vibration risk scores helps evaluate a building's structural integrity, occupant comfort, and long-term maintenance needs. For example, a residential tower near the coast may sway during storms, requiring an assessment to improve stability and safety.

This article describes the workflow to calculate wind-induced vibration risk scores for buildings using Arcade in the ArcGIS Enterprise portal and ArcGIS Online.

Procedure

  1. Log in to the ArcGIS Enterprise portal or ArcGIS Online and click Content > My Content.
  2. Click the hosted feature layer to open the item page.
  3. Add a new string field. Refer to Portal for ArcGIS: Add a field or ArcGIS Online: Add a field for instructions. In this example, a new field, 'Vibration_Risk_Score', is added to the attribute table with three existing fields named 'Building_Height', 'Building_Shape', and 'Wind_Exposure'.
  4. Open the Arcade window. Refer to Portal for ArcGIS: Calculate values for a field from the item page or ArcGIS Online: Calculate values for a field from the item page for instructions.
  5. In the Expression box, specify the following Arcade expression:
    1. Retrieve the building height from the dataset.
var height = $feature["Building_Height"];
  1. Define the shape factor based on the building type.
// Example: 1.2 for rectangular, 1.5 for cylindrical, 1.8 for irregular shapes
var shapeFactor = Decode($feature["Building_Shape"], 
    "Rectangular", 1.2, 
    "Cylindrical", 1.5, 
    "Irregular", 1.8, 
    1.2 // Default value
);
  1. Define the wind exposure factor based on the surrounding environment.
// Example: 1.0 for dense urban, 1.3 for suburban, 1.7 for open terrain
var windExposure = Decode($feature["Wind_Exposure"], 
    "Dense Urban", 1.0, 
    "Suburban", 1.3, 
    "Open Terrain", 1.7, 
    1.3 // Default value
);
  1. Calculate the vibration risk score.
var vibrationRisk = height * shapeFactor * windExposure;
  1. Normalize the risk score to a scale of 0-100.
var normalizedRisk = Min(vibrationRisk, 100);
  1. Return the final vibration risk score.
Round(normalizedRisk, 2);

The code block below shows the example of the full working script:

var height = $feature["Building_Height"];

// Example: 1.2 for rectangular, 1.5 for cylindrical, 1.8 for irregular shapes
var shapeFactor = Decode($feature["Building_Shape"], 
    "Rectangular", 1.2, 
    "Cylindrical", 1.5, 
    "Irregular", 1.8, 
    1.2 // Default value
);

// Example: 1.0 for dense urban, 1.3 for suburban, 1.7 for open terrain
var windExposure = Decode($feature["Wind_Exposure"], 
    "Dense Urban", 1.0, 
    "Suburban", 1.3, 
    "Open Terrain", 1.7, 
    1.3 // Default value
);

var vibrationRisk = height * shapeFactor * windExposure;

var normalizedRisk = Min(vibrationRisk, 100);

Round(normalizedRisk, 2);
  1. Click OK.

The attribute table below shows the calculated vibration risk scores.

The attribute table with the vibration risk scores.

Article ID: 000034888

Software:
  • ArcGIS Online
  • Portal for ArcGIS
  • ArcGIS Enterprise 11 3
  • ArcGIS Enterprise 11 2
  • ArcGIS Enterprise 11 4

Receive notifications and find solutions for new or common issues

Get summarized answers and video solutions from our new AI chatbot.

Download the Esri Support App

Related Information

Discover more on this topic

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options