Portfolio Home: Joseph C. Dillard Geospatial Project Stack
This repository now includes a GitHub Pages / Jekyll portfolio site for job search visibility, with pages for resume sections, project/repo explanations, architecture diagrams, function screenshots, skills, and contact information. Existing resume files and profile README content remain in place.
Screenshot documentation: Project screenshots
Architecture diagrams: Development and Docker network views
Recent additions: Four recent projects — ArcGIS Enterprise Capacity Planning Model, OSINT Source Library, Open GEOINT Watch, and Atlas / AI Brain. The page includes public descriptions and labels the two private repository links as requiring access.
Link to Download My Resume: GIS Solution Architect 2026
I am building a connected geospatial and GeoAI project stack around a practical operational workflow: check incoming customer data, process imagery or vector data, load accepted layers into spatial services, refresh a live map, and let an analyst use map-aware assistant tools without hiding how the system works. Each repo can be used or extended by itself, but together they show a full path from data handoff to operational map use.
Plain-English flow: the ETL toolkit checks files before they are trusted, the GeoAI platform can turn imagery into GIS-ready detections, the data gateway moves accepted data into PostGIS and announces refresh events, the Status Board displays the operational map through GeoServer/MapLibre, and the MCP/incident analyst projects add explainable map commands and location context.
A Python-based GeoAI workflow platform for turning imagery into GIS-ready detection output. It is aimed at workflows such as road or asset detection, where a user or developer needs more than a model result: they need tiles, vectors, files, API status, and a path into PostGIS or a map.
How it works: FastAPI exposes workflow endpoints, Python handles raster/vector processing, model steps can run through PyTorch/ONNX-style inference, and GeoPandas-style output can be written as GeoPackage or loaded into PostGIS. The basic flow is imagery input, tile/chip preparation, model inference, vectorization, export, then optional database load.
How it fits: this repo produces or prepares spatial intelligence that can be loaded by the data gateway, published through PostGIS/GeoServer, and reviewed in the Status Board map.
Keywords: GeoAI, computer vision, semantic segmentation, PostGIS, GeoPackage, COG, PyTorch, ONNX, GeoPandas
A Grails-based operational map and dashboard for incidents, infrastructure, GeoAI layers, response support, weather context, MGRS workflows, and assistant-driven map tasks. It is the place where the backend pieces become visible to an analyst, operator, or developer.
How it works: the app runs as a Grails web application, uses H2 for the simplest local development path, and can optionally connect to PostGIS and GeoServer. MapLibre renders the browser map, GeoServer can provide WFS/WMS layers, and the app includes tools for layer control, MGRS, drawing, incident plotting, GeoAI requests, Wiki/GeoNames lookup, OpenStreetMap response support, and a reviewed Map Assistant prompt flow.
How it fits: this is the visualization layer for the stack. It consumes spatial services, receives gateway refresh events, and hosts the shared map surface that can call GeoAI, incident, support, and assistant workflows.
Links: Repo · README · Architecture
Keywords: Grails, MapLibre, GeoServer, PostGIS, WFS, dashboard, incident mapping, SignalR, MGRS, response support, map command assistant
A .NET and Python data gateway for moving accepted geospatial data into a live mapping environment. It focuses on the part of the system that often gets hand-waved: registering datasets, tracking ingest jobs, loading spatial data, and telling map clients when a layer should refresh.
How it works: ASP.NET Core provides the API surface, Python worker logic handles file-oriented geospatial processing, PostGIS stores loaded spatial tables, and SignalR-style events notify browser clients that a layer changed. The basic flow is dataset registration, ingest job creation, file validation/load, PostGIS write, then a refresh event to the map.
How it fits: this repo acts as the ingestion and notification layer between validated handoff data and the Status Board map.
Keywords: .NET, ASP.NET Core, SignalR, Python, PostGIS, GeoJSON, Shapefile, GeoPackage, CSV, real-time mapping
A Docker-ready Model Context Protocol services repo for geospatial assistant tools. It gives an AI client or MCP-aware host a controlled way to ask map-related questions without giving the model direct access to the whole application.
How it works: MCP servers expose named tools over stdio. One tool path enriches a latitude/longitude with GeoNames and Wikipedia context. Another incident-analysis path uses selected coordinates and incident data to return nearby incidents, risk context, recommended actions, summaries, and search links. MCP is the tool protocol; the tools can still call normal APIs internally.
How it fits: this repo adds the assistant/tool layer around the map experience while keeping the MCP transport and the internal API calls understandable.
Links: Repo · README · GeoNames/Wikipedia MCP · Incident Analyst MCP
Keywords: MCP, Docker, GeoNames, Wikipedia, incident analysis, map click, geospatial context, tool calling, LLM tools, stdio
Python validation toolkit for checking incoming geospatial files before they are loaded into PostGIS, published through GeoServer, or handed to an application team. The purpose is to catch bad CRS, missing fields, invalid values, geometry problems, and raster-readiness issues before they become map or database problems.
How it works: GeoPandas or Pyogrio can read vector formats such as GeoPackage and Shapefile, raster metadata checks inspect GeoTIFF/COG readiness, configurable rule files define required fields and allowed domain values, and report writers produce batch summaries for customer handoffs. The basic flow is read file, inspect schema/geometry/metadata, apply rules, summarize pass/fail status, then optionally load accepted data into PostGIS.
How it fits: this repo is the data-quality gate before the data gateway loads a layer or before the Status Board depends on it.
Keywords: Python, GeoPandas, Pyogrio, PostGIS, GeoPackage, Shapefile, GeoTIFF, COG readiness, data QA, batch reporting
A user-facing MapLibre incident review and bridge demo for northern New Mexico. It focuses on analyst workflows such as viewing incidents, understanding why an incident is high risk, searching response support, working with MGRS coordinates, and packaging map context for assistant analysis.
How it works: the map uses MapLibre for the browser view, incident data is scored with deterministic rules such as severity, significant-event flag, operational impact, and nearby critical assets, and support lookups use OpenStreetMap-style POI results with local fallback behavior. The assistant boundary is intentionally reviewed: natural-language prompts become structured, allow-listed actions before anything changes on the map.
How it fits: this is the focused incident-analysis workflow that can be folded into the Status Board shared map and supported by the MCP services.
Links: Incident Analyst MCP · Status Board Architecture
Publication note: the standalone bridge/demo repo is currently a local checkout without a public GitHub remote, so the public site links to the related MCP and status-board architecture until that repo is published.
Keywords: MapLibre, MCP bridge, incident review, MGRS, OpenStreetMap, response support, risk scoring, prompt-to-action roadmap
| Link | Notes |
|---|---|
| ArcGIS Architecture Center | Esri’s main architecture reference for ArcGIS system patterns, deployment models, reliability, security, and performance planning. |
| ArcGIS Well-Architected Framework Blog | Overview of Esri’s architecture framework and Architecture Center. |
| ArcGIS Enterprise System Architecture Best Practices | Key planning guidance for ArcGIS Enterprise topology, colocation, load balancing, environment isolation, workload separation, and content delivery. |
| ArcGIS Enterprise Documentation | Main documentation landing page for Enterprise administration, deployment, Portal, Server, Data Store, and Web Adaptors. |
| ArcGIS Enterprise: Architecting Your Deployment PDF | Useful architecture whitepaper for planning Enterprise deployments, scaling, and component layout. |
| ArcGIS Enterprise SDK | SDK for extending ArcGIS Enterprise services using SOEs, SOIs, service interceptors, and custom data feeds. |
| ArcGIS Enterprise Security Best Practices | Hardening reference for certificates, tokens, permissions, services directory, standardized queries, and access controls. |
| Link | Notes |
|---|---|
| Esri Developer Documentation | Main landing page for ArcGIS developer APIs, SDKs, services, and location platform documentation. |
| ArcGIS Maps SDK for JavaScript | Primary SDK for custom 2D/3D web mapping apps, feature layers, map services, widgets/components, and web GIS integration. |
| ArcGIS API for Python | Python automation for ArcGIS Online / Enterprise administration, content management, publishing, analysis, spatial data science, and notebooks. |
| ArcGIS REST APIs | Core reference for Feature Services, Map Services, Image Services, Portal, Server Admin, replicas, sync, tokens, and service automation. |
| Feature Service REST API | Important for editing/querying feature layers, tables, sync workflows, replicas, hosted layers, and enterprise feature services. |
| ArcGIS API for Python Samples | Notebook examples for administration, deep learning, content cloning, analysis, imagery, and automation workflows. |
| Esri GitHub | Esri sample code, SDK examples, open-source utilities, and developer resources. |
| ArcGIS Python API GitHub | Source repository and samples for ArcGIS API for Python. |
| ArcGIS Maps SDK for JavaScript Resources | JavaScript SDK templates and examples for modern front-end frameworks. |
| Link | Notes |
|---|---|
| Esri GeoAI Overview | Esri overview of GeoAI for extracting, classifying, detecting, predicting, and analyzing spatial patterns. |
| GeoAI in ArcGIS Pro | ArcGIS Pro GeoAI concepts: imagery AI, feature/tabular ML, text analysis, prediction, classification, object detection, and spatial AI. |
| ArcGIS Pro GeoAI Toolbox | Tool reference for using/training AI models against geospatial, tabular, imagery, text, and embedding data. |
| ArcGIS API for Python Deep Learning Setup | Deep learning dependency setup for ArcGIS API for Python. |
| Esri Deep Learning Frameworks | Esri deep learning framework installers for ArcGIS Pro / ArcGIS Python environments. |
| ArcGIS Python Deep Learning Samples | Examples for object detection, feature extraction, imagery classification, and model deployment with ArcGIS. |
| Use Third-Party Language Models with ArcGIS | Reference for integrating third-party LLMs with ArcGIS GeoAI text analysis workflows. |
| Agentic Mapping Apps with ArcGIS Maps SDK for JavaScript | AI-driven / natural-language mapping application patterns using ArcGIS Maps SDK components. |
| Link | Notes |
|---|---|
| OSGeo | Open Source Geospatial Foundation; major hub for open geospatial projects, standards, and community software. |
| OSGeo Projects | Directory of OSGeo and community geospatial projects. |
| QGIS | Open-source desktop GIS for cartography, editing, analysis, plugins, processing models, and spatial data workflows. |
| QGIS Documentation | Official QGIS user manual, training manual, server docs, and processing documentation. |
| PyQGIS API | Python API for automating and extending QGIS. |
| GeoServer | Java-based open-source server for publishing geospatial data with OGC services such as WMS, WFS, WCS, WMTS, and OGC API support. |
| GeoServer User Manual | GeoServer installation, data publishing, styling, REST API, security, GeoWebCache, and production configuration. |
| PostGIS | Spatial extension for PostgreSQL; core open-source spatial database technology for storing, indexing, and querying geometry/geography data. |
| PostGIS Documentation | Official PostGIS manuals, reference docs, tips, and training materials. |
| GDAL | Core raster/vector translation and processing library used across much of the GIS ecosystem. |
| PROJ | Coordinate transformation and CRS engine used by many GIS tools. |
| Link | Notes |
|---|---|
| GeoPandas | Python library that extends pandas with geospatial data types and spatial operations. |
| GeoPandas GitHub | Source repository for GeoPandas. |
| Shapely | Python geometry operations library built on GEOS; used heavily with GeoPandas. |
| PyProj | Python interface to PROJ for coordinate transformations. |
| Rasterio | Python library for reading/writing raster data using GDAL concepts with a Pythonic API. |
| Fiona | Python library for reading/writing vector data using GDAL/OGR. |
| Pyogrio | Fast vector I/O library used by modern GeoPandas workflows. |
| Xarray | Useful for multidimensional raster, climate, temporal, and array-based geospatial datasets. |
| Dask | Parallel/distributed Python compute; useful for large raster and GeoAI processing pipelines. |
| Link | Notes |
|---|---|
| MapLibre GL JS | Open-source WebGL vector tile mapping library for interactive browser maps. |
| OpenLayers | Feature-rich open-source JavaScript mapping library for web GIS applications. |
| Leaflet | Lightweight open-source JavaScript library for mobile-friendly interactive maps. |
| pygeoapi | Python implementation of OGC API standards for publishing geospatial data through RESTful APIs. |
| OGC API Standards | Modern REST-style standards for geospatial features, tiles, maps, records, processes, and coverages. |
| OpenMapTiles | Open-source tooling and schema for vector tiles and basemap generation. |
| Martin Tile Server | Fast vector tile server for PostGIS, MBTiles, and PMTiles. |
| PMTiles | Single-file cloud-friendly archive format for tiled map data. |
| Link | Notes |
|---|---|
| TorchGeo | PyTorch domain library for geospatial datasets, samplers, transforms, and pretrained models. |
| TorchGeo GitHub | Source repository for TorchGeo. |
| Raster Vision | Open-source geospatial deep learning framework for chip classification, object detection, and semantic segmentation. |
| Raster Vision GitHub | Source repository for Raster Vision. |
| Segment Anything Model - SAM | General segmentation model that can be adapted for geospatial imagery workflows. |
| Prithvi Geospatial AI Foundation Model | NASA/IBM geospatial foundation model for Earth observation use cases. |
| Hugging Face Geospatial Models | Searchable model hub for geospatial, imagery, segmentation, and remote sensing models. |
| Microsoft Planetary Computer | Cloud-hosted planetary-scale geospatial data catalog and APIs. |
| Google Earth Engine | Planetary-scale remote sensing analysis platform. |
| Link | Notes |
|---|---|
| STAC Specification | SpatioTemporal Asset Catalog standard for describing and indexing imagery, rasters, point clouds, and other spatiotemporal assets. |
| STAC GitHub | Source repository for the STAC specification. |
| Cloud Optimized GeoTIFF | Cloud-native GeoTIFF layout optimized for HTTP range requests and scalable raster access. |
| TiTiler | FastAPI-based dynamic tile server for COG, STAC, MosaicJSON, and cloud-hosted raster data. |
| COG Validator | Utility for validating Cloud Optimized GeoTIFF structure. |
| Zarr | Chunked array storage format useful for multidimensional scientific and raster data. |
| Kerchunk | Reference-based access to large scientific datasets without converting entire files. |
- Enterprise GIS architecture and ArcGIS Enterprise deployment patterns
- ArcGIS Server, Portal, Data Store, Web Adaptors, load balancing, and high availability
- Feature services, map services, image services, replicas, sync, and offline workflows
- ArcGIS REST API automation and Python-based administration
- GeoAI for imagery classification, object detection, segmentation, feature extraction, and predictive analysis
- Open-source GIS stacks using QGIS, GeoServer, PostGIS, GDAL, GeoPandas, and MapLibre
- Cloud-native geospatial formats: COG, STAC, PMTiles, Zarr
- Utility GIS, mobile GIS, enterprise geodatabases, and spatial data engineering
Repository-specific coding and validation instructions are in AGENTS.md. See COPYRIGHT.md for ownership, licensing scope, and third-party notices. Original Joseph Dillard material is reserved unless a more specific existing license applies; this repository does not grant a general open-source license.
