Global Mapper 25.1 Viewshed - ArcGIS Pro toolbox Install 1. Extract the complete archive to a folder ArcGIS Pro can read. Keep toolboxes, backend, docs, requirements-arcgis.txt, and sample_data together. 2. In ArcGIS Pro, open Project > Package Manager > Environment Manager. Clone the installed version's arcgispro-py3 environment as modernviewshed-py3. Preserve the default environment. 3. Open ArcGIS Pro's Python Command Prompt. Install the versions declared in requirements-arcgis.txt into the clone, retaining its ArcGIS package pins: conda install --name modernviewshed-py3 -c esri "rasterio>=1.3" "numpy>=1.26" "numba>=0.60,<0.66" "pyproj>=3.6" 4. Return to Project > Package Manager. Select modernviewshed-py3 under Activate Environment, then restart ArcGIS Pro. 5. Add toolboxes/GlobalMapper251Viewshed.pyt to the ArcGIS Pro Catalog. Open Global Mapper Viewshed and run the supplied sample before project data. Sample run Add sample_data/dtm.tif and sample_data/dsm.tif. Add sample_data/transmitter.shp as a point layer and select its one point. The sample rasters use EPSG:32618, metre horizontal and elevation units, and 1 m cells. Set DTM Elevation Units and DSM Elevation Units to Meters (m). Choose Above Ground for Transmitter Elevation Relative To, 10 Meters for Transmitter Elevation, 1 Meters for Receiver Elevation (height above ground), and 8 Meters for View Radius. Leave Environments > Cell Size unset to use DTM sample spacing. Choose an output format, then set a writable Output Folder and Viewshed Name. Global Mapper terminology Base Elevation Layer (DTM) supplies ground elevations for the transmitter and receivers. Obstruction Surface (DSM) supplies terrain, buildings, and vegetation that block the view. In visual-impact work, Transmitter Location (project point) is the tower or other project point, and Receiver Elevation (height above ground) is the viewer's eye height. Sample Spacing is set in Environments > Cell Size. Elevation Layer Sampling (interpolation) is a separate choice of nearest neighbor or bilinear sampling. Keep GlobalMapper251Viewshed.DTMDSMViewshed.pyt.xml beside the .pyt file for field help. See docs/global-mapper-25-1-gui.md for the control comparison and the supported options. Runtime and dependencies The form uses ArcPy and the Python standard library. It launches the included backend through ArcGIS Pro's installed propy.bat, which selects the active environment. Each run reports the backend Python executable. The maintained form explicitly requests parallel Numba execution. Automatic raster elevation units select unit detection; advanced interfaces expose a separate AUTO backend setting. The retained package sample passed on ArcGIS Pro 3.7.2 with Python 3.13.13 and Numba 0.65.1 in the gmviewshed-py3 clone. Small-grid controls establish compiled execution and sample correctness; they do not establish large-DEM or end-to-end performance. The included workflow guides cover licensing, units, and run paths. The public download contains the operational toolbox and synthetic examples. It does not contain the landscape study inputs. No project software license has been declared; the website illustration has separate license terms. Package contents PACKAGE-MANIFEST.json records each payload path, role, origin, byte count, and SHA-256. The manifest excludes its own hash. The sample files are synthetic qualification inputs. Current instructions and research https://testing-lidar-viewsheds.netlify.app/toolbox/ https://testing-lidar-viewsheds.netlify.app/article/