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