Using ModelBuilder to Create a Replicable Workflow to Identify Potential Archaeological Dig Sites
Problem Description
During the Battle of Gettysburg in 1963, surgical units set up mobile field hospitals close to the fighting so they could treat the wounded quickly. The location of these camps depended on practical needs. Wagons carried the wounded, so camps had to be near roads. Surgeons needed fresh water for cleaning wounds and caring for patients, so campus were usually also near streams. Surgeons also liked to be close to residential settlements, where they could find shelter, supplies, and buildings to use.
The aim of this project was to use GIS to create a replicable workflow to find the most likely locations of these historic surgical camps. The results could help archaeologists and historians decide where to look for physical artifacts. Specifically, this analysis looked for the largest single area that met all six of these criteria: 1) within 200 ft. of a stream, 2) within 300 ft. of a road, 3) within 2,000 ft. of a battle zone, or inside one, 4) within 200 ft. of a previously discovered artifact, 5) within 2,000 ft. of a residential area, but not inside it, and 6) on flat terrain.
Analysis Procedures
For this project, I built a replicable workflow in ArcGIS Pro ModelBuilder (Figure 1). In the model, blue ovals represent input data, yellow boxes represent geoprocessing steps, and green ovals represent the criteria layers and outputs. The model used six input datasets provided by the instructor: streams, modern roads, the Gettysburg battlefield boundaries, previously discovered artifacts, historic lands, and soils.
To complete the analysis, first, I used the “Buffer” tool to create the various buffers for my input data based on the site criteria, above. Then, I selected residential parcels from the Historic Lands layer to identify residential proximity. Next, I selected soil polygons with the flattest slope class to represent terrain suitable for setting up a surgical camp. Then, I intersected all six criteria layers, which produced polygons that met every criteria. Lastly, I dissolved the intersected polygons into separate contiguous features and calculated the area of each one to identify the largest single suitable site.

Figure 1. ArcGIS Pro ModelBuilder workflow for identifying potential mobile army surgical units in Gettysburg.

Figure 2. Suitable locations for Civil War mobile army surgical units near Gettysburg.
Results
The overlay results found several areas across Gettysburg that met all six criteria. The red circle in Figure 2 (below) marks the largest contiguous area that meets every requirement of the site suitability analysis. That area is the most likely location for a Civil War mobile surgical unit and the best place to focus future archaeological surveys. The orange circles identify other potential dig sites which meet the outlined criteria.
Reflection
In this project, I used a multi-criteria suitability analysis to identify likely locations of Civil War surgical camps as potential archaeological dig sites at Gettysburg. The most difficult part was translating the written criteria into exact geoprocessing steps. For the rule “near but not inside residential areas,” I needed an outside-only buffer, because a standard buffer would have wrongly counted residential land as suitable. I also learned that the order of steps matters. Without the dissolve step, contiguous sites would have stayed split into pieces, and I could not have found the largest area.
Overall, this project showed me the importance of having a clear plan before starting a geoprocessing task. ArcGIS Pro ModelBuilder helped me organize my analysis into concrete, sequential steps and made the workflow transparent and reproducible. The model diagram provides a record of my methods, which makes it easier to explain to others and to check for errors. I plan to use this model-first approach in future spatial analyses.
Coding Custom Web Mapping Applications in HTML and JavaScript
Problem Description
Configurable application builders such as ArcGIS Experience Builder are useful tools to easily build web apps, but they limit how much the author can control an app’s layout, widgets, and behavior. The goal of this project was to write web mapping applications in HTML and JavaScript using the ArcGIS Maps SDK for JavaScript, then host them on my own web server. The final product was a public, code-based app that loaded my hosted George Washington Birthplace National Monument (GEWA) web map and added a basemap picker, a repositioned legend, and configured pop-ups.
Analysis Procedures
I developed this project in HTML and JavaScript using the ArcGIS Maps SDK for JavaScript, working through a series of Esri developer tutorials that built from basic concepts a complete, deployed application. I used an online code editor, CodePen, to write and test my code, which made it easy to make changes, find errors, and immediately see results. I wrote applications that loaded the SDK from Esri’s CDN, authenticated access to Esri’s basemap and location services with an API key, and created the map, view, layers, and widgets as separate objects using JavaScript. I also created point, line, and polygon graphics with custom symbols and coded pop-up templates that displayed feature attributes. Additionally, I connected my coding applications to existing ArcGIS Online content by loading web maps through their item IDs (i.e., through REST services). This allowed me to use the hosted layers, symbology, and settings I already set up in ArcGIS Online without needing to redefine them.
For the final application, I reused and adapted my earlier code to display my publicly shared George Washington Birthplace National Monument (GEWA) web map. I customized the interface by programming to add a basemap picker and a left-docked legend, and I configured pop-ups for the building layer. I then deployed the application as an .html file on my virtual server’s IIS web root, which made it a standalone web app that anyone could open by URL.

Figure 1. Screenshot of the GEWA app developed using HTML/JavaScript.
Results
The finished GEWA app was a single HTML/JavaScript file served from my web server. It rendered the hosted park layers over an Esri topographic basemap and included a basemap picker, a legend docked on the left, and configured building pop-ups.
Reflection
In this project, I moved from configuring web apps through a graphical interface, such as ArcGIS Experience Builder, to writing them myself in HTML and JavaScript. Building the apps step by step showed me how a web mapping app can be created using programming. Small code changes, such as adding a widget to the view’s UI or changing its position, directly controlled how users interact with the app. The biggest lesson I learned was how much code can be reused when the data and the app are kept separate. Because the application I developed loaded its content by item ID, the symbology and pop-ups I set up in ArcGIS Online came through automatically. Programming the custom web application gave me more control over the layout and behavior than an app builder typically allows.