Use the viewshed toolbox in ArcGIS Pro
Calculate visibility from ground-level viewers while buildings and vegetation obstruct the sightline. The terrain model sets the ground elevation, and the surface model supplies the obstructions.
Download the ArcGIS Pro toolboxThe ZIP includes the complete toolbox, field help, backend code and synthetic sample data. The package was tested on ArcGIS Pro 3.7.2. Extract the whole archive before adding the toolbox. Read the package instructions.
Install the toolbox
- Extract the ZIP to a writable folder. Keep toolboxes, backend, docs, requirements-arcgis.txt and sample_data together, and keep the field-help XML beside the .pyt file.
- In ArcGIS Pro, open Project > Package Manager > Environment Manager. Clone the installed arcgispro-py3 environment as modernviewshed-py3, and install the dependencies below from ArcGIS Pro's Python Command Prompt.
- Activate modernviewshed-py3 in Package Manager and restart ArcGIS Pro. Add toolboxes/GlobalMapper251Viewshed.pyt to the Catalog, then open Global Mapper Viewshed.
conda install --name modernviewshed-py3 -c esri "rasterio>=1.3" "numpy>=1.26" "numba>=0.60,<0.66" "pyproj>=3.6"Run the supplied sample
Run the supplied synthetic sample before using project data. Add sample_data/transmitter.shp as a point layer and select its one point.
| Base Elevation Layer (DTM) | sample_data/dtm.tif |
|---|---|
| Obstruction Surface (DSM) | sample_data/dsm.tif |
| DTM Elevation Units and DSM Elevation Units | Meters (m) |
| Transmitter Elevation Relative To | Above Ground |
| Transmitter Elevation | 10 Meters |
| Receiver Elevation (height above ground) | 1 Meters |
| View Radius | 8 Meters |
| Environments > Cell Size | Leave unset for the sample |
| Output Folder and Viewshed Name | Choose a writable folder and a new name |
The sample uses metre coordinates and elevations, with 1 m raster cells. Its settings test the installation and are not recommended settings for a project.
Set up a project
| Base Elevation Layer (DTM) | Use ground elevations to support the transmitter and receivers. |
|---|---|
| Obstruction Surface (DSM) | Use absolute surface elevations that include terrain, buildings and vegetation. A canopy-height raster alone is not a DSM. |
| Transmitter Location (project point) | Select one project point. Its height can be above ground or an absolute elevation, using the selected height reference. |
| Receiver Elevation (height above ground) | Enter the viewer's eye height at each tested location. |
| Environments > Cell Size | Set sample spacing in the DTM's horizontal units. This controls the output lattice. |
| Elevation Layer Sampling (interpolation) | Choose nearest neighbor or bilinear interpolation. This is separate from sample spacing. |
Confirm the horizontal coordinates, vertical reference and elevation units of both rasters before running a project. Entered heights and raster elevations are converted separately. DTM elevations fill DSM NoData gaps, so inspect those gaps when screening by buildings or vegetation is important.
Choose GeoTIFF, visible-area shapefile or file geodatabase output. Each run also records its inputs, units, grid, settings and export paths in JSON. Preserve the run record with the mapped result.
Supported calculations and limits
The supported form evaluates one transmitter with full-circle optical visibility. It uses nearest-neighbor DSM sampling by default and also offers bilinear sampling. The form does not apply curvature or Fresnel corrections.
The toolbox runs the custom Python engine described in the study. It does not call the native ArcGIS viewshed tools, and familiar Global Mapper labels do not establish equivalence with every Global Mapper option.
The DSM treats the modeled surface as opaque and does not resolve openings beneath a tree crown. Check the represented standing conditions and predicted view against site evidence. Software agreement alone does not establish field accuracy.
Read or reproduce the study
The public package supports the tool and its synthetic sample. Reproducing the landscape analyses also requires the controlled-study runner and original raster inputs, which are not included in the download.
The paper and supplementary methods explain the experiments and evidence limits. The maintained source repository requires access.