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.

Heat Risk Assessment Agent Based Model

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

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

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)

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

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