Ben Landers Portfolio - Projects

Projects

A showcase of geospatial data science and software development projects demonstrating expertise in spatial analysis, web development, and systems programming.

Click a project title to expand its details.

Building Classification for Emergency Management

  • Remote Sensing
  • Machine Learning
  • Geospatial Analysis
  • Python

Project Overview:

Developed a machine learning pipeline to automatically classify 136,534 Minneapolis building footprints into three FEMA Public Assistance Program categories (residential, commercial, public) using multi-modal remote sensing data. The system achieves 96.79% accuracy and is designed to accelerate disaster response resource allocation.

Technical Implementation:

  • Language: Python
  • Key Libraries: scikit-learn, XGBoost, GeoPandas, Rasterio, Rasterstats, Shapely
  • Data Sources: NAIP (0.3m resolution), Sentinel-2 (10–20m), Microsoft US Building Footprints, Hennepin County parcels
  • GIS Integration: ArcGIS Pro, ESRI Story Map

Project Components:

  • Feature Engineering: Engineered 23 features across four categories — NAIP spectral (9), Sentinel-2 spectral (8), morphological (4), and spatial context (2)
  • Ground Truth Labeling: Two-stage hierarchical labeling from Hennepin County parcel data using ownership keywords and land use codes
  • Class Imbalance Handling: Applied class weighting (up to 24x for minority classes), improving public building recall from 36% to 81%
  • Model Comparison: Trained and evaluated Random Forest, Linear SVM, and XGBoost; Random Forest selected with 96.79% test accuracy
  • Spatial Outputs: Exported classified buildings as GeoPackage and Shapefile for downstream GIS analysis

Key Findings:

  • Coarse-resolution Sentinel-2 neighborhood context (37% feature importance) vastly outweighed fine-resolution NAIP roof detail (2.4%), showing building type is driven more by location than appearance
  • Building size and shape (area, perimeter, compactness) accounted for 27% of model importance
  • Unweighted models hit 97% accuracy but only 36% recall on public buildings; class weighting recovered 81% recall with only a 0.23% accuracy trade-off

Key Skills Demonstrated: Multi-source remote sensing data integration, supervised machine learning and model selection, class imbalance mitigation, zonal statistics and spatial feature extraction, geospatial data processing at scale (136k+ features), scientific communication via ESRI Story Map

View the full ESRI Story Map →

Heat Risk Assessment Agent Based Model

  • Geospatial Analysis
  • Agent-Based Modeling
  • Database Design
  • Python
  • SQL

Project Overview:

Developed a comprehensive heat risk assessment model to identify vulnerable populations and high-risk areas for heat-related health issues.

Technical Implementation:

  • Language: Python
  • Key Libraries: GeoPandas, Pandas, NumPy, spatial analysis libraries
  • Database: SQL for data management
  • Visualization: Interactive maps and dashboards in ArcGIS

Project Components:

  • Data Cleaning: Processed and standardized datasets from multiple sources
  • QAQC: Validated data accuracy and completeness
  • Model Development: Built risk assessment model combining environmental and demographic factors
  • Visualization: Created compelling visualizations to communicate heat risk findings
  • SQL Integration: Implemented SQL database for efficient data storage and querying

Key Skills Demonstrated: Multi-source data integration, spatial modeling and analysis, team collaboration on complex geospatial project, database design and management, scientific communication

Suitable - Suitability Analysis Web Application

  • Web Application Development
  • Multi-Criteria Analysis
  • Geospatial Analysis
  • Python

Project Overview:

Developed Suitable, an interactive web application that allows users to perform multi-criteria suitability analysis on their own geospatial datasets through an intuitive interface, without requiring GIS expertise or coding knowledge.

Technical Implementation:

  • Framework: Streamlit (Python web framework)
  • Key Libraries: GeoPandas, Pandas, NumPy, Folium (Leaflet.js wrapper), Streamlit-Folium
  • Architecture: Object-oriented design with modular components

Application Components:

  • Models: Project class (manages overall analysis project state), Criterion class (represents individual suitability criteria)
  • Components: DataLoader (handles uploading and processing of geospatial files), SuitabilityAnalyzer (performs multi-criteria analysis), ResultsExporter (exports analysis results to various formats)
  • Utilities: file_utils (file validation and geodataframe handling), map_utils (interactive map display and layer management), boundary_utils (study area boundary processing)

Key Features:

  • File Upload support for shapefiles, GeoJSON, and other vector formats
  • Custom study area boundary definition
  • Criterion Builder to add multiple criteria, define scoring methods, and assign weights
  • Interactive Map with real-time visualization of input datasets and results
  • Results Export to shapefiles or GeoJSON
  • Session Management to save and restore project state

Key Skills Demonstrated: Full-stack web development with Streamlit, object-oriented programming in Python, interactive web mapping with Folium, user experience (UX) design, software architecture and modular design, geospatial data processing and analysis

GeoChat - Conversational GIS Interface

  • Natural Language Processing
  • API Integration
  • Interactive Mapping
  • Python

Project Overview:

Created GeoChat, a Jupyter notebook-based application providing a natural language interface for geospatial data interaction. Users can perform common GIS operations through conversational commands rather than specialized syntax.

Technical Implementation:

  • Platform: Jupyter Notebook
  • Key Libraries: GeoPandas, Folium, ipywidgets, Shapely, Pandas, NumPy, Matplotlib, Requests
  • APIs: OpenStreetMap (Nominatim), Overpass API, OSRM (Open Source Routing Machine)

Core Capabilities:

  • Data Management: Load existing files, download files from web URLs, list available datasets
  • Location-Based Features: Navigate to locations with natural language, find points of interest near locations
  • Spatial Analysis: Create buffers around features, calculate areas of geographic regions, measure distances between locations, get driving directions
  • Visualization: Interactive map display with automatic updates, points of interest mapping with appropriate icons, route visualization for driving directions

Example Commands: "go to New York City", "show parks", "calculate area", "buffer by 5 km", "measure distance from Denver to Seattle", "show route from Miami to Orlando"

Key Skills Demonstrated: Natural language processing (pattern matching, intent recognition), API integration (OpenStreetMap, Overpass, OSRM), interactive widget development with ipywidgets, user interface design for non-technical users, geospatial analysis automation, making GIS accessible to broader audiences

SynerGIS - Parallel Spatial Join Library (Rust)

  • Systems Programming
  • Parallel Computing
  • Python Interoperability
  • Rust
  • Python

Project Overview:

Developed SynerGIS, a high-performance Rust library for parallel spatial join operations, designed to be called from Python. The project demonstrates performance optimization through parallelization and low-level systems programming.

Technical Implementation:

  • Language: Rust
  • Python Binding: PyO3 (Rust-Python interoperability)
  • Key Libraries: geo and geo-types (geometric operations), rayon (data parallelism), rstar (R-tree spatial indexing), criterion (benchmarking)

Key Features:

  • Parallel Spatial Joins: Leverages multi-core CPUs for significant performance gains
  • R-tree Indexing: Uses spatial indexing (rstar) for efficient spatial queries
  • Memory Efficiency: Low-level memory management in Rust
  • Python Interoperability: Seamless integration with Python geospatial workflows via PyO3

Use Cases: Large-scale spatial join operations, performance-critical geospatial analysis, integration into Python data science workflows

Key Skills Demonstrated: Systems programming in Rust, parallel computing and concurrency, spatial algorithms and data structures (R-trees), cross-language interoperability (Rust-Python), performance optimization and benchmarking, low-level memory management, high-performance computing for geospatial applications

Minneapolis Neighborhoods Amenities Dashboard

  • Web GIS
  • Data Visualization
  • Automated Data Collection
  • Python
  • ArcGIS

Project Overview:

Created an interactive ArcGIS Dashboard providing a comprehensive view of all Minneapolis neighborhoods and their associated amenities to help users explore family-friendly, lively, and quiet areas.

Technical Implementation:

  • Platform: ArcGIS Online Dashboard
  • Data Source: OpenStreetMap via Overpass API
  • Processing: Python (ArcPy, Jupyter Notebook)
  • Key Libraries: arcpy, requests, geopandas

Amenity Categories: Bars, Restaurants, Cafes, Arts Centers, Music Venues, Schools, Kindergartens, Community Centers, Parks, Gyms

Key Features:

  • Interactive Map: Users can click on neighborhoods to see contained amenities
  • Amenity Details: Click on individual points to learn more about specific locations
  • Zoom Functionality: Explore specific neighborhoods in detail
  • Filtering: Filter by neighborhood characteristics
  • Comprehensive Coverage: All Minneapolis neighborhoods included

Key Skills Demonstrated: Web GIS dashboard design, API integration (Overpass API for OpenStreetMap data), Python automation with ArcPy, spatial analysis and geoprocessing, user-centered design for interactive mapping