Tutorials and Tools

Python in Jupyter Notebooks Exercises

These exercises can be used to get started with Python for GIS in a Jupyter Notebook environment, starting from introductory Python, and progressing through Numpy, Pandas, geopandas and arcpy geoprocessing, with both open-source and Esri-based methods. 

Download the exercise html pages here: https://sfsu.box.com/v/SFSUGIScPythonTutorials.

A pdf version with code results:https://gis.sfsu.edu/sites/default/files/documents/PythonExercises_resu…

Data folder:  https://sfsu.box.com/s/s8f4c1gw9lohi1k0211w9025yj5dd1ha


Python Script Geoprocessing Tools

By Jerry Davis, SFSU Institute for GIScience.


  1. Download and extract the zip file.
  2. Add the toolbox to ArcToolbox in ArcMap or ArcCatalog.
  3. Optionally, test with sample data in the ToolData Folder.


Line Slope View

LineSlope Tool

Creates line segments with line slopes from existing polylines.

LineSlope Tool Documentation

3D Lines

Survey Tools

Converts surveyed XYZM and NEZM points into 3D polylines and 3D points.

Survey Tools Documentation

Stratified Unaligned Sample Points

Systematic Stratified Unaligned Sample Tool

Creates a systematic stratified unaligned sample of points for polygons.

SSUS Tool Documentation

Surface model that represents ruggedness of terrain

Ruggedness Tool

Creates a surface from an elevation raster representing ruggedness of terrain. Works with all ArcGIS friendly raster formats except Personal Geodatabase.



Model Builder

Get DEM Units Tool

To create polylines coded with their linear slope, from 3D polylines.




Maximum Flow created using Hypsometry Tool

Hypsometry Tool

Converts surveyed XYZM and NEZM points into 3D polylines and 3D points.

Hypsometry Tool Documentation

Download Area Gradient Tool (older ArcGIS version)