{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2025.2.2"}, "schedule": {"url": "https://talks.osgeo.org/foss4g-na-2026/schedule/", "version": "0.1", "base_url": "https://talks.osgeo.org", "conference": {"acronym": "foss4g-na-2026", "title": "FOSS4G NA 2026", "start": "2026-11-02", "end": "2026-11-04", "daysCount": 3, "timeslot_duration": "00:05", "time_zone_name": "PST8PDT", "colors": {"primary": "#1B4864"}, "rooms": [{"name": "Tofanelli", "slug": "457-tofanelli", "guid": "02837b07-66ee-5041-88bb-da6d81d0fafb", "description": null, "capacity": 48}, {"name": "Bataglieri", "slug": "458-bataglieri", "guid": "68a9e6c8-384d-5428-b3ea-56984cce208e", "description": null, "capacity": 46}, {"name": "Compagno", "slug": "459-compagno", "guid": "44990d1a-f5a0-5441-ba92-adae8fece902", "description": null, "capacity": 42}, {"name": "Bondi", "slug": "460-bondi", "guid": "86983a6e-ac62-5f58-99de-0909594d7e65", "description": null, "capacity": 42}, {"name": "Beavis", "slug": "461-beavis", "guid": "3c757e9f-353c-5004-aeb9-dc0c50d2cae0", "description": null, "capacity": 42}, {"name": "Gardenia", "slug": "462-gardenia", "guid": "42324606-682c-5a27-ba1f-ea42317646c1", "description": null, "capacity": 375}, {"name": "Carr", "slug": "463-carr", "guid": "977c9557-9a9d-540e-8c47-e81c9211ccbc", "description": null, "capacity": 45}], "tracks": [{"name": "Business of Open Source", "slug": "423-business-of-open-source", "color": "#E69F00"}, {"name": "Technical", "slug": "426-technical", "color": "#0072B2"}, {"name": "Application", "slug": "427-application", "color": "#009E73"}, {"name": "Community of Practice", "slug": "428-community-of-practice", "color": "#CC79A7"}], "days": [{"index": 1, "date": "2026-11-02", "day_start": "2026-11-02T04:00:00-08:00", "day_end": "2026-11-03T03:59:00-08:00", "rooms": {"Tofanelli": [{"guid": "0e983d66-a1fb-5140-9bab-0f1ea8eba765", "code": "A838QC", "id": 5945, "logo": null, "date": "2026-11-02T09:00:00-08:00", "start": "09:00", "duration": "03:00", "room": "Tofanelli", "slug": "foss4g-na-2026-5945-exploring-cloud-native-geospatial-data-formats-hands-on-with-vectors", "url": "https://talks.osgeo.org/foss4g-na-2026/talk/A838QC/", "title": "Exploring Cloud Native Geospatial Data Formats: Hands-on with Vectors", "subtitle": "", "track": "Technical", "type": "Pre-Conference Workshop", "language": "en", "abstract": "Dig into geospatial vector formats\u2014including GeoJSON, WKT/WKB, and cloud-native GeoParquet\u2014using Python to see in detail how vector features are stored in each format and to understand what cloud-native means for vector data.", "description": "Cloud-native geospatial is all the rage these days, and for good reason. As data sizes grow, layer counts increase, and analytical methods become more complex, the traditional download-to-the-desktop approach is often becoming untenable. It's no surprise then that users are turning to cloud-based tools to scale their analyses. But as we transition away from opening whole files to now grabbing ranges of bytes off remote servers it seems all the more important to understand exactly how cloud-native data formats actually store data and what tools are doing to access it.\r\n\r\nThis workshop aims to dig into how cloud-native geospatial data formats are enabling new operational paradigms, with a particular focus on (Geo)Parquet. Participants do not need an existing familiarity: we'll work together to develop a understanding of the concepts behind Parquet, starting with GeoJSON, roughly as follows:\r\n\r\n* GeoJSON: what is it, what does it represent, and how it is not cloud-native\r\n* Well-Known Text/Binary (WKT/WKB): how these vector formats work and why they are important in (Geo)Parquet\r\n* (Geo)Parquet: how does parquet store data, how geo maps into that paradigm, and what it takes to read some subset of data from a parquet table\r\n\r\nThe content of this workshop aims to be not only theoretical but practical: a strong goal is to be as hands-on with these formats in Python. We'll eschew common tools, opting to take a more manual approach. An educationally-focused Parquet library will provide a view into the process of reading Parquet files, their metadata, and techniques used to performantly run queries. Throughout, we'll be building up working understanding of what common higher-level tooling does under the hood and abstracts away from users.", "recording_license": "", "do_not_record": false, "persons": [{"code": "8TAMEN", "name": "Jarrett Keifer", "avatar": "https://talks.osgeo.org/media/avatars/IMG_7316_crop_a35B92h.jpeg", "biography": "Jarrett Keifer is a Senior Geospatial Software Engineer at Element 84, a commercial geospatial consultancy that uses open-source to build effective customer solutions. His interests include education and outreach, geospatial data formats, and high-performance systems/network programming. He enjoys designing systems to operate at scale, particularly to support remote sensing data processing and earth science applications, and has over ten years of experience contributing to open source projects.", "public_name": "Jarrett Keifer", "guid": "a96982f6-47e9-53fd-9d40-f07ed7f44fa6", "url": "https://talks.osgeo.org/foss4g-na-2026/speaker/8TAMEN/"}], "links": [], "feedback_url": "https://talks.osgeo.org/foss4g-na-2026/talk/A838QC/feedback/", "origin_url": "https://talks.osgeo.org/foss4g-na-2026/talk/A838QC/", "attachments": []}], "Bataglieri": [{"guid": "be9ca205-370a-5428-8642-5d0d986789a4", "code": "TMNUK8", "id": 5897, "logo": null, "date": "2026-11-02T13:00:00-08:00", "start": "13:00", "duration": "03:00", "room": "Bataglieri", "slug": "foss4g-na-2026-5897-qgis-map-design-fundamentals", "url": "https://talks.osgeo.org/foss4g-na-2026/talk/TMNUK8/", "title": "QGIS Map Design Fundamentals", "subtitle": "", "track": "Application", "type": "Pre-Conference Workshop", "language": "en", "abstract": "Learn design principles to make maps that communicate well. This workshop is divided into two sections. The first covers concepts and approaches to designing maps. The second will provide hands-on experience making a map in QGIS.", "description": "Communicating clearly with maps requires a specific set of skills that is distinct from other forms of communication. In this workshop, we'll learn strategies and steps to take in making maps that not only look good but communicate well.  We\u2019ll learn approaches and guidelines for creating professional quality maps using QGIS and practice a workflow that can be applied to other graphical GIS programs or even non-map figures.\r\n\r\nKey Concepts:\r\n - Minimize. Keep only what's absolutely necessary.\r\n - Tell the Story. What do I want my reader to learn from this map? How does it support the claims I make in my text? What story should my map tell?\r\n - Communication. Does my map communicate well?\r\n\r\nThis workshop is divided into two sections. The first covers concepts and approaches to designing maps. The second will provide hands-on experience making a map in QGIS.  Participants are encouraged to bring examples from their own work for discussion.", "recording_license": "", "do_not_record": false, "persons": [{"code": "3VFHGJ", "name": "Michele Tobias", "avatar": "https://talks.osgeo.org/media/avatars/3VFHGJ_rplosXj.webp", "biography": "Michele Tobias holds a PhD in geography from University of California Davis, as well as an MS from University of Michigan, and a BA from UCLA. She has worked at the UC Davis Library for the past decade as a geospatial data scientist helping researchers with their data needs.  Her personal research interests include using open source tools to understand California's sandy beach vegetation and geomorphology. She also has an interest in using her geospatial skills to help underserved research communities. Michele has served on the board of directors for OSGeo (international) and Technocation (OSGeo US), as well as arts non-profit organizations, and is a founding member and coordinator of #maptimeDavis.", "public_name": "Michele Tobias", "guid": "6cd76ee9-accd-57ac-9dc2-33641753994a", "url": "https://talks.osgeo.org/foss4g-na-2026/speaker/3VFHGJ/"}], "links": [], "feedback_url": "https://talks.osgeo.org/foss4g-na-2026/talk/TMNUK8/feedback/", "origin_url": "https://talks.osgeo.org/foss4g-na-2026/talk/TMNUK8/", "attachments": []}], "Compagno": [{"guid": "07e21757-985c-52e1-8afa-550e32daf5bd", "code": "BUKH7L", "id": 5972, "logo": null, "date": "2026-11-02T09:00:00-08:00", "start": "09:00", "duration": "03:00", "room": "Compagno", "slug": "foss4g-na-2026-5972-open-methods-for-disaggregating-commodity-flows", "url": "https://talks.osgeo.org/foss4g-na-2026/talk/BUKH7L/", "title": "Open Methods for Disaggregating Commodity Flows", "subtitle": "", "track": "Technical", "type": "Pre-Conference Workshop", "language": "en", "abstract": "Current commodity flow datasets are highly aggregated, limiting local analysis. This workshop teaches open disaggregation methods so participants can generate county- and commodity-level estimates from coarse data using transparent, reproducible workflows.", "description": "Commodity flow datasets are essential for freight planning, infrastructure investment, and economic analysis. The Freight Analysis Framework (FAF) provides flows between large regions with relatively detailed commodity classifications. The FAF5 experimental county-level dataset offers finer geographic detail but simplifies commodities into broad groups. Analysts must often choose between geographic detail and commodity detail, and disaggregation methods are needed to bridge that gap.\r\n\r\nIn this workshop, participants will combine these datasets to produce flows with both detailed geography and commodity resolution using open, reproducible disaggregation methods. We will also incorporate additional open data, such as county-level agricultural production, to support more informed and defensible disaggregation.\r\n\r\n## Data Structure and Constraints\r\nParticipants will begin by examining the structure and limitations of aggregated datasets, focusing on how FAF zones, commodity groupings, and modal categories constrain local analysis. Participants will then construct spatial crosswalks that connect FAF zones to counties. The session will demonstrate how to manage one-to-many relationships, handle incomplete mappings, and ensure that flows are consistently distributed across spatial units.\r\n\r\n## Disaggregation Methods\r\nThe core of the workshop focuses on disaggregation methods. Participants will apply proportional and weighted allocation techniques to translate FAF flows into county-level estimates. These methods are implemented separately by transportation mode, allowing participants to treat truck and rail flows differently. Commodity group disaggregation is then introduced, where broad categories such as agriculture are broken into more specific components using additional data sources.\r\n\r\n## External Data Integration\r\nA major component of the workflow is the integration of external data to improve disaggregation. Participants will use county-level agricultural production data and apply transparent conversion factors to transform production measures into comparable units. These data are used to estimate commodity shares at both local and regional scales. The resulting shares are then applied to disaggregated flows to derive more detailed commodity-specific estimates, such as specific crop flows.\r\n\r\n## Hands-On Workflow\r\nThe hands-on portion of the workshop closely follows a complete working example. Throughout the process, participants will work with open-source tools including Python, Pandas, and GeoPandas in guided Jupyter notebooks. They will clean and standardize raw data, build crosswalks, apply allocation methods, and generate mapped outputs. Visualization steps will demonstrate how disaggregated flows can be interpreted at both FAF and county levels, highlighting differences between total flows, agricultural flows, and commodity-specific estimates.\r\n\r\n## Outcomes\r\nBy the end of the workshop, participants will be able to construct reproducible workflows that transform aggregated commodity flow datasets into detailed, location-specific estimates. They will gain experience in building spatial crosswalks, applying defensible allocation methods, integrating external datasets, and producing outputs that support planning and analysis. The methods presented are broadly transferable to transportation, agriculture, energy, and economic applications where data must be translated across spatial or categorical scales.\r\n\r\nThis workshop emphasizes transparency and adaptability, giving participants the tools and understanding needed to extend these methods to their own regions, datasets, and analytical questions.", "recording_license": "", "do_not_record": false, "persons": [{"code": "FH8G3W", "name": "JJ Paul", "avatar": "https://talks.osgeo.org/media/avatars/FH8G3W_5wSgiPx.webp", "biography": "JJ is a spatial data science lead with SRF Consulting. His work focuses on streamlining data workflows to support development, infrastructure, and transportation planning efforts. JJ is currently pursuing a Ph.D. in Spatial Information Engineering at the University of Maine, where his research focuses on the analysis of real-time phenomena.", "public_name": "JJ Paul", "guid": "dbfe8a18-33a4-555f-a81d-511d6a49eb50", "url": "https://talks.osgeo.org/foss4g-na-2026/speaker/FH8G3W/"}], "links": [], "feedback_url": "https://talks.osgeo.org/foss4g-na-2026/talk/BUKH7L/feedback/", "origin_url": "https://talks.osgeo.org/foss4g-na-2026/talk/BUKH7L/", "attachments": []}, {"guid": "031902ac-5b42-5476-a606-f6bf07d6a75e", "code": "37RMTT", "id": 5964, "logo": null, "date": "2026-11-02T13:00:00-08:00", "start": "13:00", "duration": "03:00", "room": "Compagno", "slug": "foss4g-na-2026-5964-mastering-reproducible-geospatial-environments-with-nix", "url": "https://talks.osgeo.org/foss4g-na-2026/talk/37RMTT/", "title": "Mastering Reproducible Geospatial Environments with Nix", "subtitle": "", "track": "Application", "type": "Pre-Conference Workshop", "language": "en", "abstract": "End \"dependency hell\" in geospatial projects. This hands-on workshop introduces the Nix package manager to build deterministic, immutable development environments. Learn to version-control your entire software stack to ensure perfect reproducibility across local, cloud, and production infrastructure.", "description": "Geospatial development often relies on complex, interdependent software stacks involving tools like GDAL, GEOS, PROJ, and various language such as Python R, Rust, C, C++ etc. Maintaining these environments across different machines, CI/CD pipelines, and server clusters is a notorious source of friction the \"it works on my machine\" problem. This workshop aims to teach participants on how to use the Nix package manager to solve these challenges through a purely functional approach to software management.\r\n\r\nWorkshop Objectives:\r\n\r\nBy the end of this session, participants will be able to:\r\n\r\n- Understand the Nix Model: Move beyond imperative package installation (e.g., apt, pip, uv, conda) to a declarative model where the environment is defined as code.\r\n\r\n- Achieve Determinism: Create environments that are identical across all machines, regardless of the host operating system or existing library versions.\r\n\r\n- Manage Dependencies: Utilize the Nix Store to isolate tools, allowing multiple, conflicting versions of libraries (such as different GDAL versions) to coexist without interference.\r\n\r\n- Implement Nix Flakes: Build modern, reproducible project shells that can be shared and deployed instantly by other developers.\r\n\r\nAgenda:\r\n\r\nPart 1: The Problem Space (30 mins): We will explore common pitfalls in geospatial environment management and demonstrate how Nix\u2019s unique cryptographic hash-based approach prevents configuration drift.\r\n\r\nPart 2: Declarative Foundations (60 mins): Hands-on practice creating flake.nix files. Participants will define a standard geospatial stack including Python, Jupyter, and core C libraries (GDAL/PROJ).\r\n\r\nPart 3: Advanced Workflows (60 mins): How to integrate Nix with existing geospatial tools and building OCI images. We will demonstrate how to transition from local development to production-ready deployments.\r\n\r\nPart 4: Q&A and Community Best Practices (30 mins): Discussion on scaling Nix within teams and contributing to the nixpkgs geospatial ecosystem.\r\n\r\nTarget Audience:\r\nThis workshop is designed for GIS developers, geospatial data scientists, and DevOps engineers who manage complex spatial software stacks. While basic command-line proficiency is expected, no prior experience with Nix is required.", "recording_license": "", "do_not_record": false, "persons": [{"code": "D8MH8F", "name": "Pratyush Kumar Das", "avatar": "https://talks.osgeo.org/media/avatars/D8MH8F_6ujW0E6.webp", "biography": "", "public_name": "Pratyush Kumar Das", "guid": "25cc7c47-037a-5650-9422-29d42c3dde3c", "url": "https://talks.osgeo.org/foss4g-na-2026/speaker/D8MH8F/"}], "links": [], "feedback_url": "https://talks.osgeo.org/foss4g-na-2026/talk/37RMTT/feedback/", "origin_url": "https://talks.osgeo.org/foss4g-na-2026/talk/37RMTT/", "attachments": []}], "Bondi": [{"guid": "6cfbd07d-18a3-59fb-ac26-a5ffab56c475", "code": "LTKTCN", "id": 6026, "logo": null, "date": "2026-11-02T09:00:00-08:00", "start": "09:00", "duration": "03:00", "room": "Bondi", "slug": "foss4g-na-2026-6026-detecting-mapping-and-taxonomically-classifying-trees-using-rgb-drone-imagery", "url": "https://talks.osgeo.org/foss4g-na-2026/talk/LTKTCN/", "title": "Detecting, mapping, and taxonomically classifying trees using RGB drone imagery", "subtitle": "", "track": "Application", "type": "Pre-Conference Workshop", "language": "en", "abstract": "Use recently developed Open Forest Observatory tools to process forest imagery from low-cost drones into tree-level maps, including species predictions from computer vision applied to raw drone images, and evaluate results against ground reference data.", "description": "Recent technological advancements in uncrewed aerial vehicles (\u201cUAVs\u201d or \u201cdrones\u201d), computer vision, and image processing have opened a new era in which forests can be mapped at the individual tree level across broad extents using imagery from low-cost consumer drones. The Open Forest Observatory (OFO), based at the University of California Davis, has developed a set of open-source software tools that make it easy for forest scientists and practitioners to employ advanced image and geospatial data processing algorithms to detect individual trees in drone imagery, map them geospatially, classify their health status and species using computer vision, and evaluate the accuracy of the predictions against co-located ground-based inventory data. This workshop will guide participants through a forest mapping and accuracy assessment workflow via a series of hands-on computer activities employing OFO tools and external open-source software packages. Participants will have the option to use each tool via command-line commands or in Python via Jupyter notebooks.\r\n\r\nThe workshop will begin with a drone-derived forest imagery dataset already processed using structure-from-motion photogrammetry into key products: an orthomosaic, a canopy height model, a 3D mesh model, the estimated camera lens calibration, and the estimated pose of the camera for each photo. The workshop will apply the following OFO tools in sequence, with each segment including a conceptual discussion followed by a hands-on walkthrough. \r\n\r\nTree Detection Framework (TDF): This Python package provides a standardized user interface to a range of existing models and algorithms for individual tree detection from drone-derived photogrammetry products. When applying tree detection to geospatial data, large orthomosaics must be split into small \"chips\" for input to the computer vision model, and the resulting chip-level predictions must be reassembled. TDF provides this \"geospatial boilerplate\" functionality via a standardized interface in which the user specifies chip resolution, dimensions, and stride the same way regardless of which tree detector they use. It also implements a popular geometric algorithm for detecting treetops as local maxima in a canopy height model, via the same interface, enabling easy and rigorous intercomparison. Participants will use TDF to run multiple approaches for detecting and delineating individual trees from the drone-derived orthomosaic and/or canopy height model.\r\n\r\nGeograypher: When classifying tree species from drone imagery using computer vision models, the most common approach is to use the orthomosaic, which provides a single top-down view of each tree. This approach ignores the wealth of information in the raw drone images, which are highly overlapping and therefore provide numerous distinct views of each tree from different angles. However, drone images are not geospatial data products, and there is no direct way to translate the locations of tree crowns in raw drone images into precise geospatial polygons. Geograypher fills this gap. It leverages the fact that when you know the precise position and orientation of the drone camera, along with the camera's lens model, each pixel in a raw drone image can be translated into a 3D geospatial ray. Combined with the 3D mesh model derived from photogrammetry, these rays can be translated into precise geospatial points. Geograypher employs these concepts, drawing on computer graphics principles, to render geospatial information onto raw drone images and project information from those images into geospatial coordinates. Participants will use Geograypher to render geospatial drone-detected tree crowns onto raw drone images and produce a cropped chip for each view of each tree to supply to a computer vision model.\r\n\r\nTree Classification Framework: This tool provides a simple interface for loading a pre-trained computer vision classification model and running it to predict the class (e.g., species or health status) of trees in images cropped to the tree crown. Participants will use this tool to access pre-trained OFO species classification and health status (live/dead) computer vision models and apply them to the cropped tree images produced in the previous step in order to obtain predicted classes for each geospatial tree crown polygon. \r\n\r\nTree Registration and Matching (TRAM): The gold standard for drone-based tree mapping accuracy assessment is comparison against manual ground-based geospatial forest inventory data. However, due to systematic (site-level) and random (tree-level) geospatial mapping errors, drone and ground datasets never precisely align. TRAM identifies the optimal x-y shift to apply to a ground-based tree map to align it with a drone-derived map. It also applies heuristics to determine which trees from the drone-derived map match which trees from the ground-based map, enabling computation of accuracy statistics such as precision, recall, and F-score. Participants will use TRAM to evaluate their drone-derived tree maps against co-located OFO ground reference data.", "recording_license": "", "do_not_record": false, "persons": [{"code": "989VZB", "name": "Derek Young", "avatar": "https://talks.osgeo.org/media/avatars/aa3e8357a5789d34aa7c892fb91215d5_mxw6Psk.jpg", "biography": "", "public_name": "Derek Young", "guid": "fcb8d1c1-1427-5a42-be35-fd2759add7c7", "url": "https://talks.osgeo.org/foss4g-na-2026/speaker/989VZB/"}, {"code": "AFMWL7", "name": "David Russell", "avatar": "https://talks.osgeo.org/media/avatars/AFMWL7_NmAhfQQ.webp", "biography": "I am a Spatial Data Scientist at UC Davis. My work focuses on developing open-source tools to help land managers and ecologists understand forests using data from drones and other low-cost sensors.", "public_name": "David Russell", "guid": "4f263753-4f12-5ae2-b3e2-9010fdd25ba8", "url": "https://talks.osgeo.org/foss4g-na-2026/speaker/AFMWL7/"}], "links": [], "feedback_url": "https://talks.osgeo.org/foss4g-na-2026/talk/LTKTCN/feedback/", "origin_url": "https://talks.osgeo.org/foss4g-na-2026/talk/LTKTCN/", "attachments": []}, {"guid": "62d08cb6-f621-5388-b1cd-f871cf60adfb", "code": "QK3P7B", "id": 5950, "logo": null, "date": "2026-11-02T13:00:00-08:00", "start": "13:00", "duration": "03:00", "room": "Bondi", "slug": "foss4g-na-2026-5950-geohazard-change-detection-for-emergency-management-with-grass", "url": "https://talks.osgeo.org/foss4g-na-2026/talk/QK3P7B/", "title": "Geohazard Change Detection for Emergency Management with GRASS", "subtitle": "", "track": "Technical", "type": "Pre-Conference Workshop", "language": "en", "abstract": "Repeat lidar and photogrammetry reveal how geohazards reshape terrain, but raster differencing may confuse noise with real change. In this hands-on workshop, emergency managers and analysts build robust, uncertainty-aware change detection workflows in GRASS using Hurricane Helene data.", "description": "Geomorphic change detection is a foundational tool for identifying and mitigating landscape hazards. Repeat LiDAR and structure-from-motion (SfM) photogrammetry are now routine across federal, state, and local programs, so analysts increasingly hold sequential topographic observations that span the timescale of extreme events. The hard part is turning those observations into defensible measurements of change. Errors in vertical accuracy, horizontal co-registration, interpolation, and resolution mismatch all propagate into topographic derivatives, and a naive DEM of Difference can present measurement noise as though it were a real geomorphic signal. In hazard work, where the result may inform where people rebuild or how a watershed is managed, that distinction matters.\r\n\r\nDuring this workshop we will build a robust, reproducible change detection workflow in GRASS, with every participant running the analysis on their own laptop. We start from the most common approach, the DEM of Difference, and use it to make its limitations concrete: how vertical uncertainty sets a minimum level of detection, why spatial autocorrelation of error complicates simple thresholds, and why co-registration is often the single largest source of apparent change. From there we work through the methods GRASS provides for managing and propagating uncertainty across a sequence of assets, including spatially variable error models, masking strategies, and the temporal framework for organizing and querying multi-date observations.\r\n\r\nThe session is anchored by two case studies from recent disaster responses. The first is post-hurricane terrain change in the southern Appalachians following Hurricane Helene, where extreme flooding and landslides reshaped channels and hillslopes across the Blue Ridge Escarpment. The second is post-fire landscape response, where loss of vegetation and soil structure drives erosion, debris flow initiation, and altered hydrologic behavior. Participants run each workflow end to end, from raw inputs through co-registration, differencing, uncertainty thresholding, and interpretation, using real LiDAR and photogrammetry rather than toy data.\r\n\r\nBy the end, participants will have computed a DEM of Difference and identified where and why it misleads; estimated a minimum level of detection and applied spatially variable, rather than uniform, uncertainty thresholds; diagnosed and corrected co-registration error as a distinct source of apparent change; organized and queried multi-date observations with the GRASS temporal framework; and run both the hurricane and fire workflows end to end.", "recording_license": "", "do_not_record": false, "persons": [{"code": "MNZCFR", "name": "Corey White", "avatar": "https://talks.osgeo.org/media/avatars/MNZCFR_SEiK80A.webp", "biography": "Corey White is a Geospatial Research Software Engineer at the Center for Geospatial Analytics at North Carolina State University and the founder and CEO of OpenPlains Inc. He is a core contributor to GRASS, where he develops and maintains tools and addons spanning terrain, hydrologic, and time-series analysis. His research centers on terrain analysis, hydrologic modeling, and topographic change detection, including multi-temporal change detection across the Blue Ridge Escarpment following Hurricane Helene, the body of work that motivates this workshop. He teaches graduate courses in geospatial modeling and UAS mapping at NC State and regularly leads open-source geospatial training for research and professional audiences.", "public_name": "Corey White", "guid": "53e74328-b50b-536d-9423-b18ddf65b421", "url": "https://talks.osgeo.org/foss4g-na-2026/speaker/MNZCFR/"}], "links": [], "feedback_url": "https://talks.osgeo.org/foss4g-na-2026/talk/QK3P7B/feedback/", "origin_url": "https://talks.osgeo.org/foss4g-na-2026/talk/QK3P7B/", "attachments": []}], "Beavis": [{"guid": "b55e3750-5426-5223-9623-142644b34de1", "code": "NYKALL", "id": 6053, "logo": null, "date": "2026-11-02T09:00:00-08:00", "start": "09:00", "duration": "03:00", "room": "Beavis", "slug": "foss4g-na-2026-6053-routes-to-safety-a-wildfire-evacuation-map-from-open-data", "url": "https://talks.osgeo.org/foss4g-na-2026/talk/NYKALL/", "title": "Routes to Safety: A Wildfire Evacuation Map from Open Data", "subtitle": "", "track": "Application", "type": "Pre-Conference Workshop", "language": "en", "abstract": "Build a wildfire-evacuation map for a Sacramento-area community, then compute its routes to safety, all on your laptop. One open pipeline runs from DuckDB and Overture through Planetiler tiles and MapLibre to live OSRM routing.", "description": "When a wildfire moves toward a town, two questions decide what happens next. Where are the safe places, and how do people reach them in time? This workshop builds a working answer to both for a Sacramento-area community, on your laptop, with open data and tools. By the end you will have one map of the streets, water, and designated shelters, plus routes that send each neighborhood to the shelter it can reach fastest by road. Most open-mapping workshops stop at the rendered map. Here you also compute over it, so one extract becomes both a basemap and live evacuation routes in one sitting.\r\n\r\nYou start by cloning a public git repository with the scripts and instructions you need. The workshop runs in three steps, each feeding the next. ***First, gather the source datasets.*** With DuckDB and spatial SQL you pull the community's roads and candidate shelters (schools, community centers, fairgrounds) from Overture Maps and OpenStreetMap-derived GeoParquet, with no database server. ***Second, make the basemap.*** Planetiler turns that extract into your own vector tiles, you package them as one PMTiles file and render and restyle them in MapLibre GL JS, again with no server. ***Third, compute and visualize the routes.*** OSRM finds the path to the nearest shelter and renders it as an interactive route layer. Drag the start and end markers to re-route, with popups showing each route's travel time. Exercises run on the roads, rivers, and wildfire-prone terrain of Northern California.\r\n\r\nRouting is the part most mapping workshops leave out, so we go beyond a single line between two points. You use OSRM's distance matrix to find which shelter is closest by road, which is often not the one that looks nearest on the map. An optional stretch draws the area within a fifteen-minute drive of a shelter.\r\n\r\nThis is a follow-along lab rather than a lecture, paced for a mixed-skill room. You build one stage in full, your own tiles with Planetiler, and run the query and routing over pre-built artifacts, so everyone completes the pipeline. OSRM runs as query-and-draw over a graph we ship ready-made; building it yourself is optional. Two instructors circulate for hands-on help throughout.\r\n\r\nAfter the workshop, participants will be able to:\r\n- Pull a region of Overture and OSM-derived GeoParquet and query it with DuckDB spatial SQL.\r\n- Build a vector tileset with Planetiler, package it as PMTiles, and render and restyle it in MapLibre GL JS.\r\n- Compute routes and travel times with OSRM and render them as a route layer over the basemap.\r\n- Use an interactive map tool to route any neighborhood to its closest safety point.\r\n- Re-run the whole workflow from a version-pinned repository and adapt it to a different community or hazard.\r\n\r\nPrerequisites are light. You need a laptop running macOS, Windows, or Linux. Comfort using the command line helps but is not required; every command is written and explained. No prior GIS, cartography, vector-tile, or routing experience is assumed. A week before the workshop we send a setup checklist for Planetiler's JDK and OSRM's Docker on all three operating systems, plus a pre-clipped data bundle. Setting up ahead of time is vital; the session goes straight into building.\r\n\r\nSchedule (180 minutes)\r\n0:00\u20130:15  ***Setup and welcome.*** Everyone runs one short DuckDB query to confirm their setup while instructors help anyone who needs it.\r\n0:15\u20130:30  ***The problem and the plan.*** A short framing of the evacuation question and a live demo.\r\n0:30\u20131:10  ***Extract the data (hands-on).*** Pull the area's Overture and OSM-derived data with DuckDB, then filter roads and shelters with spatial SQL. Two short exercises.\r\n1:10\u20131:20  ***Break and catch-up buffer.***\r\n1:20\u20132:05  ***Build the basemap (the main build).*** Run Planetiler to your own PMTiles, serve them locally, render in MapLibre GL JS, and restyle the hazard and water layers. A pre-built PMTiles file is the fallback.\r\n2:05\u20132:35  ***Compute the routes (hands-on).*** Route a neighborhood to its nearest shelter with OSRM and confirm the closest by road. Optional stretch, a fifteen-minute reachability area.\r\n2:35\u20133:00  ***Reproduce, adapt, and scale (discussion).*** Pin versions and re-run, swap in a different community or hazard, and see how the pipeline scales from a laptop to a planet. Questions throughout.\r\n\r\nEverything runs on open source over open data. The stack is DuckDB, Planetiler, PMTiles, MapLibre GL JS, OSRM, Overture Maps, and OpenStreetMap. You leave with a cloned, runnable, version-pinned repository, and can point the same pipeline at your own town or hazard, anything needing fast, self-hosted maps and routing you own outright.", "recording_license": "", "do_not_record": false, "persons": [{"code": "HARBR9", "name": "Vishal Kumar", "avatar": "https://talks.osgeo.org/media/avatars/HARBR9_4tPQ1fb.webp", "biography": "Senior Software Engineering Leader at Amazon Maps, leading geospatial data pipelines for last-mile delivery. Leads adoption of OSM-derived datasets, Overture, and open-source GIS tools within Amazon. Tech lead for Amazon's visual and routing artifact generation.", "public_name": "Vishal Kumar", "guid": "9ab601f8-968f-5480-9049-2d3cf8bdd773", "url": "https://talks.osgeo.org/foss4g-na-2026/speaker/HARBR9/"}, {"code": "PKGENN", "name": "Shaishav Mahendrakumar Maisuria", "avatar": "https://talks.osgeo.org/media/avatars/PKGENN_8gxT30K.webp", "biography": "", "public_name": "Shaishav Mahendrakumar Maisuria", "guid": "a2c94bea-4ed9-580f-9149-3676bf162ecd", "url": "https://talks.osgeo.org/foss4g-na-2026/speaker/PKGENN/"}], "links": [{"title": "Workshop GitHub repository", "url": "https://github.com/vishal4c/routes-to-safety-workshop", "type": "related"}], "feedback_url": "https://talks.osgeo.org/foss4g-na-2026/talk/NYKALL/feedback/", "origin_url": "https://talks.osgeo.org/foss4g-na-2026/talk/NYKALL/", "attachments": []}, {"guid": "4e27b59e-cb49-5653-ab9e-46518eea6adc", "code": "NLDTEB", "id": 5943, "logo": null, "date": "2026-11-02T13:00:00-08:00", "start": "13:00", "duration": "03:00", "room": "Beavis", "slug": "foss4g-na-2026-5943-make-fema-flood-maps-cloud-native-a-geoparquet-duckdb-pipeline", "url": "https://talks.osgeo.org/foss4g-na-2026/talk/NLDTEB/", "title": "Make FEMA Flood Maps Cloud-Native: A GeoParquet + DuckDB Pipeline", "subtitle": "", "track": "Technical", "type": "Pre-Conference Workshop", "language": "en", "abstract": "Hazard datasets are critical and exhausting to work with: shapefiles, oversized polygons, per county distribution. This workshop walks through a pattern that turns this kind of data into a clean, query-optimized GeoParquet asset \u2014 using DuckDB, Python, and object storage.", "description": "Participants will: Stream NFHL shapefile ZIPs from FEMA directly into a per-source GeoParquet archive \u2014 no intermediate disk conversions, through a python GDAL script (explained). Normalize disparate schemas to a unified flood layer using a YAML-driven mapping pattern. Apply a Python subdivide (recursive bbox bisection capped at N vertices per row) to make spatial joins and rendering an order of magnitude faster. Land everything in DuckDB with an RTree index, validate, and benchmark. Explore and analyze the content.\r\nRe-export production-grade GeoParquet: ZSTD compression, Hilbert sort, partitioning by state, with bbox covering for predicate pushdown. Serve the result directly from object storage to a web map. The session is opinionated and surfaces the rough edges: shapefile encoding traps, subdivide trade-offs, GeoParquet writer disagreements, and where DuckDB's spatial extension still leaves gaps. Attendees leave with a working repository, a benchmarked dataset, and a reusable pattern for any messy public geospatial source. \r\nLearning outcomes Build a reproducible ingest \u2192 normalize \u2192 Geotransform \u2192 publish pipeline with DuckDB and Python. Tune GeoParquet output: compression, spatial sorting, partitioning, bbox covering, RTree. \r\nPrerequisites SQL and Python fluency. Laptop with a recent DuckDB (spatial, httpfs) and uv or pip. Optional: an S3 / Cloudflare R2 bucket for the serving section.", "recording_license": "", "do_not_record": false, "persons": [{"code": "8Z7RXZ", "name": "GUILLAUME SUEUR", "avatar": "https://talks.osgeo.org/media/avatars/8Z7RXZ_Ns3wKHB.webp", "biography": "I am an independent GIS consultant and the founder of Geomermaids, with over 20 years of geospatial experience spanning national and regional spatial data infrastructure projects in France and consulting work now based near Boston. I am a long-time open source advocate, focused on cloud-native and the emerging geospatial stacks. My current work centers on building lean, automatable spatial data pipelines and helping teams move heavy geospatial workloads onto modern, open formats.", "public_name": "GUILLAUME SUEUR", "guid": "594eb6c6-21df-5153-8bbf-11c725fdae5d", "url": "https://talks.osgeo.org/foss4g-na-2026/speaker/8Z7RXZ/"}], "links": [], "feedback_url": "https://talks.osgeo.org/foss4g-na-2026/talk/NLDTEB/feedback/", "origin_url": "https://talks.osgeo.org/foss4g-na-2026/talk/NLDTEB/", "attachments": []}], "Carr": [{"guid": "333ca10f-622d-51e3-ba4d-b3cac83f8e35", "code": "J3WEC9", "id": 6027, "logo": null, "date": "2026-11-02T09:00:00-08:00", "start": "09:00", "duration": "03:00", "room": "Carr", "slug": "foss4g-na-2026-6027-wrangling-uncomfortably-large-spatial-data-with-python-and-sedonadb", "url": "https://talks.osgeo.org/foss4g-na-2026/talk/J3WEC9/", "title": "Wrangling uncomfortably large spatial data with Python and SedonaDB", "subtitle": "", "track": "Technical", "type": "Pre-Conference Workshop", "language": "en", "abstract": "Learn how analytical databases make the most of your laptop to make existing workflows faster and larger workflows possible using SedonaDB, a database built for spatial from the ground up.", "description": "It\u2019s not just you\u2026working with large spatial datasets in Python is awkward. Examples include data that is too big to fit into memory, too big to fit comfortably on a local hard drive, or takes minutes to even load into Python using existing tools. If you\u2019re working with spatial data in Python and have waited more than 10 seconds for something to finish, this workshop is for you (and, spoiler alert: you may be waiting too long).\r\n\r\nLaunched in September 2025, SedonaDB is an analytical database engine built on DataFusion that integrates spatial concepts from its internals (e.g., native data types, joins, and statistics handling) to its interface (e.g., where documentation for hundreds of spatial functions is built in to the interface). SedonaDB offers a cohesive set of principles across Python, R, and SQL designed for compatibility with existing tools (e.g., PostGIS, GeoPandas, GDAL, DuckDB) to facilitate knowledge transfer from both geo-native and database-native users alike.\r\n\r\nThis workshop is geared towards participants that have familiarity with Python that are interested in learning spatial database and cloud native concepts to work with spatial data that is just a little too big to be comfortable on their laptop. We will cover the building blocks of analytical databases (e.g., tables, joins, scalar functions, and aggregate functions) and how spatial extensions implement them to effectively utilize all of the processors and all of the memory available on your laptop using hands-on examples against real data.\r\n\r\nWe will use SedonaDB in the workshop as a teaching tool, but will also include a short module ensuring the concepts we apply can be transferred to similar tools such as PostGIS, DuckDB and Apache Sedona for Spark, which all implement a similar mapping of spatial concepts to analytical database implementations.", "recording_license": "", "do_not_record": false, "persons": [{"code": "BZTXF8", "name": "Dewey Dunnington", "avatar": "https://talks.osgeo.org/media/avatars/BZTXF8_LVLbwwc.webp", "biography": "Dewey Dunnington (Ph.D., P.Geo.) is a software engineer and geoscientist based in Winnipeg, Manitoba. As a software engineer he works on scaling spatial data science using Apache Sedona and Apache Arrow at Wherobots. Dewey is a co-creator of GeoArrow, nanoarrow, and a contributor to the Arrow Database Connectivity (ADBC) project. As a geoscientist, he has worked in contaminated site remediation, taught Applied Geomorphology, and has authored more than a dozen articles on lake water and sediment geochemistry. Dewey is an Apache Arrow and Apache Sedona Project Management Committee member, an RStudio-certified tidyverse instructor, an NSERC Postgraduate Scholarship (Doctoral) recipient, and maintainer of dozens of R, Python, C, and C++ libraries at the intersection of geoscience, geospatial data, and enterprise data connectivity.", "public_name": "Dewey Dunnington", "guid": "605d74d7-026a-5904-bd91-19cd4718cba7", "url": "https://talks.osgeo.org/foss4g-na-2026/speaker/BZTXF8/"}], "links": [], "feedback_url": "https://talks.osgeo.org/foss4g-na-2026/talk/J3WEC9/feedback/", "origin_url": "https://talks.osgeo.org/foss4g-na-2026/talk/J3WEC9/", "attachments": []}, {"guid": "6a84e1cf-0bad-5c99-9938-13b4014222c3", "code": "PHNTJY", "id": 5998, "logo": null, "date": "2026-11-02T13:00:00-08:00", "start": "13:00", "duration": "03:00", "room": "Carr", "slug": "foss4g-na-2026-5998-building-geospatially-aware-llm-agents-with-graphs-and-dggs", "url": "https://talks.osgeo.org/foss4g-na-2026/talk/PHNTJY/", "title": "Building Geospatially Aware LLM Agents with Graphs and DGGS", "subtitle": "", "track": "Technical", "type": "Pre-Conference Workshop", "language": "en", "abstract": "Attendees will build two complementary approaches for enabling geospatial awareness in LLMs: Geo-GraphRAGs for analyzing networks of features and DGGS-based methods for integrating aggregate and statistical data, and how they work together.", "description": "LLMs lack intrinsic geospatial awareness and do not maintain structured knowledge of geographic features, spatial relationships, or domain-specific dependencies. As a result, they cannot reliably reason about how disruptions propagate through interconnected spatial systems, such as transportation networks, health service accessibility, school catchments, or infrastructure dependencies during floods, wildfires, and other natural hazards. This limitation is especially important for disaster response and resilience planning, where decision-makers need to understand not only where an event is occurring, but also which people, services, facilities, and infrastructure systems may be affected. While LLMs are powerful tools for synthesizing text, they require external geospatial structures to reason over spatial networks, semantic relationships, and aggregate spatial data.\r\n\r\nIn this hands-on workshop, participants will build a geospatially aware LLM application from the ground up using open-source tools. They will create a Spatial Knowledge Graph (SKG) using Apache Jena to model networks of geographic features and their relationships, then use it to develop a Geo-GraphRAG pipeline that enables an LLM agent to translate natural-language questions into GeoSPARQL queries. This approach provides transparent, traceable answers grounded in real geospatial data, making it well suited for disaster scenarios where users need to ask questions such as which facilities are downstream of a flood event, which communities may lose access to critical services, or which transportation links are most important for response operations.\r\n\r\nParticipants will also learn how Discrete Global Grid Systems (DGGS) enable the integration of aggregate and statistical data across domains by aligning datasets to a common spatial reference. Using open-source DGGS tooling such as DGGAL, participants will build an LLM agent capable of generating both GeoSPARQL queries over feature networks and DGGS API calls using CQL2. The workshop will explore how semantic feature networks relate to DGGS zones, and how these two approaches can be combined to support richer forms of geospatial reasoning for resilience analysis, including the integration of hazard exposure, population statistics, infrastructure vulnerability, and service accessibility.\r\n\r\nThis workshop builds on our FOSS4G North America 2025 session by adding DGGS-based methods for integrating aggregate and statistical data. It demonstrates how complementary RAG structures are suited to different kinds of geospatial reasoning: graph-based RAG for reasoning over networks of features and relationships, and DGGS-based approaches for reasoning over gridded, aggregate, and statistical data. By the end of the session, participants will understand how spatial knowledge graphs and grid systems can work together to bring geospatial reasoning to AI systems, with direct relevance to disaster response, resilience, and risk-informed planning.", "recording_license": "", "do_not_record": false, "persons": [{"code": "RBXJPQ", "name": "Nathan McEachen", "avatar": "https://talks.osgeo.org/media/avatars/RBXJPQ_4QEkqiu.webp", "biography": "Nathan McEachen is the founder, CEO, and CTO of TerraFrame, which specializes in supporting ministries of health and national spatial data infrastructures by building geospatial knowledge infrastructures with open-source GIS, remote sensing, and interoperability solutions. He obtained his master\u2019s degree in computer science from Colorado State University in the United States. He is academically published in the fields of software testing, model-driven engineering, disease intervention, and spatial information sciences. Nathan is involved with the Open Geospatial Consortium and HL7 to help align standards development, enabling more automated data integration across sectors to bring geospatial awareness to LLMs.", "public_name": "Nathan McEachen", "guid": "9b59bb14-7a26-5b98-bc45-b5467649ff9d", "url": "https://talks.osgeo.org/foss4g-na-2026/speaker/RBXJPQ/"}], "links": [], "feedback_url": "https://talks.osgeo.org/foss4g-na-2026/talk/PHNTJY/feedback/", "origin_url": "https://talks.osgeo.org/foss4g-na-2026/talk/PHNTJY/", "attachments": []}]}}, {"index": 2, "date": "2026-11-03", "day_start": "2026-11-03T04:00:00-08:00", "day_end": "2026-11-04T03:59:00-08:00", "rooms": {}}, {"index": 3, "date": "2026-11-04", "day_start": "2026-11-04T04:00:00-08:00", "day_end": "2026-11-05T03:59:00-08:00", "rooms": {}}]}}}