Skip to content

ArcPy Orchestration 0.1.0 Documentation

Web-based Python script orchestration with access to an ArcPy environment through ArcGIS Pro.

Executive Summary

Spatial analysts routinely build ArcPy workflows that need to run on a schedule, survive reboots, and be monitored without remoting onto the server each morning. This project is a reference implementation showing how to do that with off-the-shelf, open-source components combined with ArcGIS Pro.

What it delivers

  • A working ArcPy data pipeline (parcels within walking distance of a public park, summarized to an Excel workbook) that runs end-to-end on real Thurston County, WA open data.
  • A web-based orchestration UI built on Dagster — webserver + daemon split with first-class scheduling, sensors, and run observability. The UI lists pipelines, exposes a "run now" button, schedules recurring runs, and streams live logs to the browser.
  • A deployment recipe — IIS as the HTTPS-terminating reverse proxy, Servy as the Windows-service wrapper — for hosting Dagster as a managed background service on any Windows server with ArcGIS Pro installed.
  • A reusable Python package (arcpy_orchestration) demonstrating project conventions for logging, configuration, CRS handling, temporary-FGDB management, and integration with Dagster. Logs from any package module automatically surface in the Dagster UI for the active run.

Who it is for

  • GIS managers evaluating how to move ArcPy work off analyst desktops and into a monitored, scheduled, multi-user environment.
  • Developers looking for a concrete, opinionated example of structuring an ArcPy codebase for production use rather than ad-hoc scripting.

Getting started: production deployment of this project is a multi-step process — it provisions IIS as an HTTPS reverse proxy, clones the ArcGIS Pro arcgispro-py3 conda environment, installs Dagster into the clone, and registers the dagster-webserver and dagster-daemon processes as Windows services via Servy. The complete walkthrough lives in docsrc/mkdocs/dagster_setup_instructions.md. Additionally, an automated PowerShell installer (scripts/setup_dagster.ps1)is included, which performs the same steps end-to-end on an elevated (administrator) PowerShell session.