Prepared by:
Tampa Bay Estuary Program
263 13th Ave. S., Suite 350
St. Petersburg, FL 33701
Prepared for:
Tampa Bay Regional Planning Council &
Tampa Bay Coastal Master Plan Team
4000 Gateway Centre Dr.
Pinellas Park, FL 33782
Submitted to TBRPC: February 2026 (Revised August 2026)
Repository: https://github.com/tbep-tech/tbcmp-analyze
1. Purpose and Scope
This document describes the analytical workflow implemented in the tbcmp-analyze GitHub repository, which serves as the primary codebase supporting the Tampa Bay Coastal Master Plan (TBCMP) Habitat Assessments. The workflow is designed to model and quantify coastal habitat vulnerability and change across the seven-county TBCMP project area—spanning Citrus, Hernando, Hillsborough, Manatee, Pasco, Pinellas, and Sarasota counties—under multiple sea level rise (SLR) scenarios and projection horizons (2050, 2080, and 2100).
The repository houses the converted and refined version of the Habitat Evolution Model (HEM), which extends the Sea Level Affecting Marsh Model (SLAMM v. 6.2) framework. The original model was implemented in ArcGIS ModelBuilder and ArcPython (ArcMap Toolbox v10.7; Sheehan et al. 2015). The workflow described herein represents a complete translation of that model to the open-source R programming environment, enabling reproducible, version-controlled, and automated analyses consistent with TBEP’s open science data management practices (Beck et al. 2021).
2. Repository Architecture, Data and Codebase Organization
The tbcmp-analyze repository is organized following standard R project conventions, with clearly delineated directories for raw data, processed data, analytical scripts, and documentation outputs. The repository is publicly accessible on the TBEP GitHub group page and maintained under version control using Git, with all commits, issues, and changes tracked transparently.
2.1. Directory Structure
The repository contains four primary directories and supporting files that collectively support the full analytical lifecycle from raw data acquisition through final reporting:
- R/ — Contains all analytical scripts constituting the Habitat Evolution Model workflow, organized as a numbered, staged pipeline (01 data preparation through 06 hot spot synthesis) plus supporting helper and reference scripts.
- data-raw/ — Stores unprocessed source data files downloaded or otherwise acquired from external agencies, organized by source (
census/, fgdl/, noaa/, swfwmd/, tbep/), including raster inputs, the SWFWMD/FDEP Drainage Basin Boundaries shapefile, tidal datum tables, and the NHD freshwater layer.
- data/ — Contains processed intermediate and final data products generated by the workflow scripts, including shared reference layers (the filled baseline HEM raster, a 10-m base grid used for resampling, HEM class color and recode lookup tables, and cached county, basin, and coastal-residual geometries). Final tabular and raster products are organized under data/output/ in domain-specific subdirectories:
- output/raster/ — The 36 classified HEM scenario rasters (excluded from version control due to file size; see Section 6.1 for the naming convention).
- output/county_summary/ — Per-scenario CSV summaries of HEM pixel counts by county (from
03_process_tiffs.R).
- output/huc12/ — Per-scenario CSV summaries by NHDPlus HUC12 watershed (from
03b_process_tiffs_huc12.R).
- output/basin/ and output/coastal/ — Per-scenario CSV summaries by SWFWMD/FDEP drainage basin and the offshore “Coastal Waters” residual, respectively (from
03a, 03c, and 04b scripts).
- output/hot_spot/ — V-measure inhomogeneity rasters for each of the 36 scenario comparisons, synthesized mean/median/maximum composite rasters, ArcGIS symbology files, and FEMA repetitive-loss property summaries supporting community exposure overlays.
- output/arcgis_outputs/ — Legacy outputs from the original ArcGIS ModelBuilder implementation (low and high accretion runs), retained for cross-validation against the R implementation.
- docs/ — Hosts rendered HTML reporting outputs, including this document, the publicly accessible HEM Land Use Change Summary by County, the companion HEM Land Use Change Summary by Drainage Basin, scenario-specific V-measure comparison map pages, and a TBCMP habitat vulnerability presentation. County and basin summaries report projected habitat transitions given two land management scenarios, two accretion scenarios, and three SLR scenarios.
- README.md — Primary documentation describing the repository purpose, component scripts, input requirements, and usage instructions
- CONVERSION_SUMMARY.md — Technical summary documenting the conversion of the main Habitat Evolution Model from ArcGIS ModelBuilder to R scripts
- tbcmp-analyze.Rproj — RStudio project file defining the working directory environment
- .gitignore — Version control file specifying files excluded from the repository (e.g., large raster outputs that will remain stored locally when running the scripts)
Version control procedures are applied using Git software, with the repository maintaining the complete record of workflow changes, dataset updates, and analytical refinements over the project lifecycle. Identified issues and required corrections are tracked via GitHub’s issue tracking system, documenting responsible parties, affected files, and implementation timelines, consistent with the protocols described in the TBCMP Technical Strategy.
4. Sea Level Rise Scenarios and Model Time Horizons
The HEM is designed to be executed under multiple SLR scenarios, allowing the TBCMP project team and stakeholders to evaluate a range of plausible future conditions. The current implementation produces projections for three target years — 2050, 2080, and 2100 — representing near-term, later-century, and long-term planning horizons relevant to coastal management decision-making in the Tampa Bay region. Three NOAA SLR curves are evaluated at each horizon year — Intermediate-Low (IntLow), Intermediate (Inter), and Intermediate-High (IntHigh) — as derived for the St. Petersburg tide gauge (Station ID: 8726520). Combined with two marsh accretion scenarios (low accretion, LA; high accretion, HA; see Section 5.2.2) and the two land policy scenarios described below, the full factorial design comprises 12 model realizations per horizon year, or 36 classified scenario rasters in total. This 36-member ensemble forms the basis of all downstream change summaries and hot spot syntheses. Projections are evaluated under two land development protection policy scenarios:
- Protect Developed (PD): Developed land uses are assumed to remain unchanged throughout the projection period, reflecting continued infrastructure maintenance and no planned managed retreat or adaptive redevelopment.
- Allow Migration (AM): Only developed land above the HAT plus projected SLR threshold is protected from inundation; lower-lying “softly” developed areas are allowed to transition to wetland or open water habitats, reflecting a scenario in which some coastal development is gradually surrendered to rising seas.
Model outputs for each year and scenario are summarized in tabular form by county at https://tbep-tech.github.io/tbcmp-analyze/hemchange and by drainage basin at https://tbep-tech.github.io/tbcmp-analyze/hemchange_basins, reporting the area (in acres) of each habitat category under baseline conditions and under each projection. Within each land policy scenario and target year, uncertainty ranges are reported as plus-or-minus standard deviations across the six accretion-by-SLR ensemble members, providing a quantitative characterization of projection uncertainty consistent with the data quality objectives in the TBCMP Technical Strategy. For spatial rollups above the reporting unit level (e.g., HUC8 or domain totals in the basin report), member totals are summed within each ensemble member before the mean and standard deviation are computed, so that reported variability reflects the spread of realized rollup totals rather than pooled unit-level variances.
5. Workflow Components and Script Descriptions
The Habitat Evolution Model and its downstream summary and hot spot analyses are implemented as a numbered, staged R pipeline. Stage 01 prepares base data; Stage 02 executes the HEM proper through a master orchestration script and its helper modules (02_HabitatEvolutionModel_v202512.R); Stage 03 summarizes scenario rasters at three spatial reporting scales (county, HUC12 watershed, and drainage basin, plus the 2025 baseline); Stage 04 assembles change-from-baseline reporting tables; Stage 05 performs V-measure hot spot comparisons for each scenario; and Stage 06 synthesizes the 36 scenario-level hot spot rasters into composite vulnerability surfaces. The scripts are modular by design, allowing individual components to be executed independently for testing and validation. Table 1 provides a summary of each script and its outputs.
5.1. 01_Data_Prep.R — Data Preparation
The data preparation script assembles the full suite of base GIS datasets required by the Habitat Evolution Model. Using the R packages curl and tidycensus, datasets are acquired programmatically from known agency web endpoints where feasible. All raster datasets are spatially constrained to a bounding box encompassing the seven-county coastal project area, inclusive of jurisdictional coastal waters, and saved as local GeoTIFF (.tif) files for subsequent model use. Metadata documentation for each dataset is maintained following the Ecological Metadata Language (EML) standard, consistent with TBEP data management procedures (Beck et al. 2021).
5.2. 02_HabitatEvolutionModel_v202512.R — Master Script
The master orchestration script serves as the primary entry point for full model execution. It reads the SLR scenario table, iterates through each projection year in sequence, and calls all sub-model scripts in the appropriate order: datum adjustment, marsh accretion, freshwater processing, ocean proximity, and habitat reclassification. For each projection year and SLR scenario, the script writes a classified habitat raster (habitat_{year}.tif) to the outputs/ directory. These annual outputs constitute the primary deliverable of the Habitat Evolution Model and serve as inputs to the county-level change analysis reported in the HEM Change Summary (Table 2).
5.2.1. DatumAdjustment_v202512.R — Tidal Datum Adjustment Helper Script
This script reads the tidal datums and SLR scenario tables and calculates adjusted tidal benchmark elevations for each modeled projection year. The seven tidal datums (HAT, MHHW, MHW, MTL, MLHW, MLW, MLLW) are each incremented by the corresponding SLR value, effectively translating the vertical reference frame of the model forward through time. These adjusted datums are passed to the habitat reclassification module to ensure that habitat-elevation relationships are evaluated against the appropriate tidal benchmarks for each future scenario.
5.2.2. MarshAccretion_v202512.R — Marsh Vertical Accretion Helper Script
The marsh accretion module calculates the annual vertical accumulation of sediment and organic matter for tidal wetland habitats, adjusting the DEM surface accordingly before habitat transitions are evaluated. The script supports two accretion methodologies: a constant-rate approach and an elevation-dependent approach, which scales accretion rates based on inundation frequency. Habitat-specific accretion rates are configurable parameters, with default low values of 3.75 mm/year for Juncus marsh, 1.6 mm/year for salt marsh, and 1.6 mm/year for mangroves. High accretion scenarios use 4.0 mm/year for Juncus marsh, 3.0 mm/year for high salt marsh, and 5.0 mm/year for mangroves. The accreted topography surface is saved as an intermediate raster (marshac1_{year}.tif) and used as input to the habitat adjustment module.
5.2.3. Ocean2Beach_v202512.R — Ocean Proximity Analysis Helper Script
This script identifies areas proximate to open ocean or large water bodies that may be subject to beach formation or dune migration under sea level rise. A 500-meter buffer is generated around ocean and estuarine water bodies using the sf package’s st_buffer() function. The resulting ocean proximity mask (oceancheck.tif) is applied during habitat reclassification to enable appropriate conversion of low-elevation coastal areas to beach and dune habitats where conditions are met.
5.2.4. ProcessFreshwater_v202512.R — Freshwater Influence Mask Helper Script
The freshwater processing script creates a binary raster mask (freshwater2.tif) delineating areas under freshwater influence, based on the Florida NHD waterbody polygon layer. Pixels within NHD-defined waterbody features receive a value of 1 (freshwater), while those outside receive a value of 0 (saltwater/estuarine). This differentiation is critical to the habitat reclassification logic, as freshwater influence determines eligibility for specific habitat types: Juncus marsh and tidal flat formation are enabled in freshwater zones, while mangrove establishment is restricted to saltwater-influenced areas.
5.2.5. HabitatAdjustment_v202512.R — Core Habitat Reclassification Helper Script (+ Parts 2 & 3)
The habitat adjustment module constitutes the core scientific logic of the Habitat Evolution Model. Implemented across three script parts due to the complexity of the decision tree, this module reclassifies each habitat pixel based on its adjusted elevation relative to the SLR-modified tidal datums, its proximity to water bodies, its freshwater influence status, and applicable land development protection policies.
The elevation-based habitat zonation follows a hierarchical tidal datum framework:
- Areas above the Highest Astronomical Tide (HAT) + SLR threshold are classified as Upland or Salt Barren, depending on proximity to tidal influence.
- Areas between MHHW and HAT are classified as Salt Barren.
- Areas between MHW and MHHW are classified as High Marsh (salt marsh, 6420).
- Areas between MTL and MHW are classified as Low Marsh (Juncus marsh, 6425, in freshwater zones; High Marsh in saltwater zones).
- Areas between MLHW and MTL are classified as Tidal Flat (6510) in freshwater zones; mangrove (6120) in saltwater zones.
- Areas between MLLW and MLHW support mangrove or Tidal Flat habitats, depending on freshwater influence.
- Areas below MLLW are classified as subtidal Open Water (5400) or Seagrass (9113) where conditions support submerged aquatic vegetation.
Land development protection policies are configurable via the Protect_Developed parameter. When protection is enabled, all developed land use codes (1100, 1200, 1800, 1820, 2100, 2200, 2400, 2550) are preserved in place regardless of inundation status, reflecting the assumption that coastal engineering and infrastructure protection will prevent habitat migration into any developed areas. When protection is disabled, only “softly” developed lands above the HAT + SLR threshold are retained. Otherwise, “softly” developed inundated areas may convert to wetland or open water habitats. The model is run under both Protected Development (PD) and Allowed Migration (AM) scenarios to bound uncertainty in projected habitat outcomes with divergent future land management policies.
5.3. Stage 03 — Multi-Scale Zonal Summaries
The Stage 03 scripts convert the 36 classified scenario rasters into tabular summaries at three complementary spatial reporting scales, each serving different management audiences. All scripts parse the scenario raster filenames (land policy, accretion, SLR scenario, and year; Section 6.1) into metadata columns carried through to the reporting stage.
5.3.1. 03_process_tiffs.R — County Summaries
Reads each scenario raster from data/output/raster/, subsets the full raster extent using county polygons, and summarizes HEM code pixel counts into discrete csv files (data/output/county_summary/) for downstream analysis. It serves as an intermediate step between the raw HEM outputs and the final county-level statistical summaries used to assess coastal habitat changes across the project area.
5.3.2. 03b_process_tiffs_huc12.R — HUC12 Watershed Summaries
Summarizes each scenario raster by NHDPlus HUC12 subwatershed. HUC12 boundaries intersecting the project area are retrieved programmatically using the nhdplusTools package, reprojected to the raster coordinate reference system, and zonal statistics are extracted using exactextractr with partial-cell coverage fractions. Outputs are written to data/output/huc12/. These watershed-scale summaries support alignment with water quality management units used in TBEP and FDEP planning frameworks.
5.3.3. 03c_process_tiffs_basins.R — Drainage Basin Summaries
Summarizes each scenario raster by SWFWMD/FDEP drainage basin, read from a local shapefile (data-raw/swfwmd/Drainage_Basin_Boundaries.shp). Source basin records are dissolved to a stable analysis unit keyed on HUC8, extended HUC (EXTHUC), and basin name — a keying scheme refined iteratively to avoid merging identically-coded basins across unrelated watersheds (e.g., “Direct Runoff to Bay” units that recur across five HUC8s). The dissolved basin geometry is cached (data/tbcmp_basins.Rdata) so that the baseline (03a) and scenario summaries share identical zone definitions.
Two extraction methods are implemented. The default crosstab method rasterizes the basin zones once per raster grid and tabulates zone-by-habitat cell counts using terra::crosstab(), which streams both rasters block-by-block; peak memory remains modest (a few hundred MB) regardless of raster size — a critical consideration given the ~259 million cells in the 2-m project-area rasters. An alternative exact method retains exactextractr partial-cell coverage fractions, tiled to bound memory, for methodological parity with the county and HUC12 summaries. At 2-m resolution against basins of thousands of acres, the two methods differ only by boundary-cell rounding. Outputs are written to data/output/basin/.
5.3.4. 03a_process_baseline.R — Baseline Summaries
Builds the 2025 baseline basin and coastal summaries from the filled current-conditions raster (data/tbcmp_hem_filled.tif), running that single raster through the same zonal machinery as 03c and writing csv output with matching schema and baseline metadata (land_policy = "baseline", year 2025). Deriving the baseline through identical zone geometry (loaded from the 03c cache rather than re-dissolved) prevents silent basin-identifier mismatches that would otherwise corrupt the change-from-baseline joins in Stage 04.
5.4. Stage 04 — Change Summary Reporting
5.4.1. 04_HEM_Change_Summary_by_County.R — County Change Summary
Summarizes HEM outputs as csv files to indicate change from baseline data aggregated by county across the project area. This script takes processed habitat raster tabular data and calculates gains, losses, and net changes in coastal habitat extent (such as seagrass, wetlands, or other mapped habitat types) for each county in the study area, reporting ensemble means plus-or-minus standard deviations across the accretion-by-SLR members within each land policy scenario. Results are summarized into a tabbed html table (hemchange.html) that allows regional comparisons of habitat change over time, supporting reporting and management decisions for the Tampa Bay Coastal Master Plan.
5.4.2. 04b_HEM_Change_Summary_by_Basin.R — Basin Change Summary with Coastal Waters Residual
Produces the companion change summary by drainage basin (hemchange_basins.html). Because the drainage basin layer covers approximately 56% of the project-area raster — with the remaining 44% consisting of open Gulf and unassigned nearshore waters where SLR-driven change in open water and seagrass extent concentrates — the script derives an explicit “Coastal Waters” residual zone via sf::st_difference() between the project area and the basin layer, tiled for memory efficiency, so that no portion of the raster is silently dropped from reporting. Tampa Bay proper and the other embayments are carried within the basin layer itself and are not part of the residual. Basin results are reported at the individual basin, HUC8, and domain levels using flextable-based tables consistent in formatting and habitat category labels with the county report.
5.5. Stage 05 — Hot Spot Analyses
5.5.1. 05_hot_spot_analysis.R — Hot Spot Analysis Workbench
Performs spatial analyses to identify geographic clusters of coastal habitat change between the 2025 baseline and a selected HEM scenario raster. Inputs are resampled to a common 10-m analysis grid (data/tbcmp_base_raster_10m.tif) using mode resampling and reclassified to consolidated HEM categories via a recode lookup table (data/hem_recode.csv). The primary method is the V-measure spatial association technique implemented in the sabre package (Nowosad & Stepinski 2018), which quantifies the spatial inhomogeneity (Rih) between two categorical regionalizations and yields two complementary map products: an existing-conditions vulnerability surface (map1, inhomogeneity from the 2025 baseline perspective) and a future-difference surface (map2, from the projection perspective). The script also generates Sankey diagrams of habitat category transitions using networkD3 and includes exploratory Getis-Ord Gi* spatial autocorrelation statistics via spdep.
5.5.2. 05a_Hot_Spot_Analysis_Loop.R — Batch V-Measure Processing
Automates the V-measure comparison across the full scenario ensemble, looping through all 36 rasters in data/output/raster/ and calculating sabre::vmeasure_calc() between each scenario and the 2025 baseline. The baseline is resampled and reclassified once outside the loop for efficiency. For each scenario, two output rasters are written to data/output/hot_spot/ with names derived from the scenario filename: {scenario}_map1_exist_vuln.tif and {scenario}_map2_future_diff.tif.
5.6. Stage 06 — Hot Spot Composite Synthesis
Six synthesis scripts (06_Hot_Spot_Existing_Vuln_Map1_{Average, Median, Max}.R and 06a_Hot_Spot_Future_Diff_Map2_{Average, Median, Max}.R) stack the 36 scenario-level map1 and map2 rasters and reduce each stack to a single composite surface using the cell-wise mean, median, or maximum. The mean and median composites characterize central-tendency vulnerability across the full scenario ensemble, while the maximum composites represent a worst-case vulnerability envelope in which a cell is flagged if it exhibits high inhomogeneity under any of the 36 policy-accretion-SLR-year combinations. Composite outputs (tbcmp_hot_spot_map1_exist_vuln_{mean, median, max}.tif and the map2 equivalents) are written to data/output/hot_spot/ alongside ArcGIS symbology (.lyrx) files supporting consistent cartographic display by project partners.
5.7. Ancillary Analyses
FL_RepFLossProperties.R summarizes FEMA National Flood Insurance Program (NFIP) multiple-loss property records for the seven project-area counties, tabulating distinct repetitive-loss properties by census tract (data/output/hot_spot/rpfloss_by_tract.csv). This community exposure layer supports joint interpretation of habitat vulnerability hot spots alongside existing flood risk to the built environment, informing the coastal communities assessment component of the TBCMP.
6. Model Outputs and Results Summary
6.1 Primary Output Products
For each combination of land policy, accretion scenario, SLR scenario, and horizon year, the Habitat Evolution Model produces a classified GeoTIFF raster containing predicted habitat type codes for the entire seven-county project area. Scenario rasters follow a standardized naming convention that encodes the scenario metadata parsed by all downstream scripts:
tbcmp_{policy}_{accretion}_{SLR}_{year}.tif
where policy is PD or AM, accretion is LA (low) or HA (high), SLR is IntLow, Inter, or IntHigh, and year is 2050, 2080, or 2100 (e.g., tbcmp_PD_LA_IntHigh_2080.tif). The 36 scenario rasters are stored locally in data/output/raster/ and excluded from version control due to file size. Intermediate raster products, including accreted topography and freshwater masks, are also produced for quality review and diagnostic purposes by model practitioners.
Summary statistics of habitat area by reporting unit, HEM category, projection year, and scenario are compiled and reported through automated HTML reporting products: the county-level summary at https://tbep-tech.github.io/tbcmp-analyze/hemchange and the drainage basin summary (including the Coastal Waters residual) at https://tbep-tech.github.io/tbcmp-analyze/hemchange_basins. These reports are generated using R and re-rendered when updated analytical outputs become available. In addition, the Stage 05–06 hot spot analyses produce V-measure inhomogeneity rasters for each scenario comparison and synthesized mean, median, and worst-case (maximum) composite vulnerability surfaces, along with scenario-specific comparison map pages published in the repository docs/ directory.
6.2 Representative Model Results
Table 2 presents a representative selection of projected habitat areas (in hectares) for the Tampa Bay region under the modeled SLR scenarios, illustrating the magnitude and direction of anticipated habitat transitions. Results span the baseline condition (2025) through projections from 2050 to 2100 under the PD and AM land policy scenarios and the low and high accretion scenarios. As previously reported under accelerating sea level rise (Sheehan et al. 2019), substantial changes in high marsh and seagrass habitats are expected, while mangrove and open water extents are projected to expand significantly in the near-to-mid term before declining at higher SLR increments.
Note: Values represent selected HEM categories aggregated across the project area. PD = Protected Development scenario; AM = Allowed Migration scenario. Full county-level results are available in the online HEM Change Summary report.
7. Technical Requirements and System Configuration
7.1 Software Dependencies
The Habitat Evolution Model requires R version 4.0 or higher and the following R packages:
- terra — Primary raster processing library; replaces ArcGIS Spatial Analyst raster algebra functions.
- sf — Spatial vector operations; replaces arcpy.analysis vector tools.
- tidyverse (including dplyr, tidyr, stringr) — Data manipulation and workflow piping.
- tidycensus — Programmatic access to US Census spatial boundary files.
- curl — Programmatic data download from agency web endpoints.
- here — Working directory management for reproducible file paths.
- tbeptools — TBEP-specific data access and reporting utility functions.
- exactextractr — Zonal statistics with partial-cell coverage fractions (county, HUC12, and optional exact basin summaries).
- nhdplusTools — Programmatic retrieval of NHDPlus HUC12 watershed boundaries.
- flextable / ftExtra — Formatted HTML reporting tables for the county and basin change summaries.
- sabre — V-measure spatial association between regionalizations (hot spot analyses).
- networkD3 — Sankey diagrams of habitat category transitions.
- spdep / spatialEco — Spatial autocorrelation statistics (exploratory Getis-Ord Gi*).
- jsonlite — Parsing FEMA NFIP repetitive-loss property records.
A minimum of 16 GB RAM is required to execute the model across the full seven-county project area, with 32 GB or more recommended for optimal performance. Out of memory errors within the R processing environment may be common on machines with less memory; the basin summary script (03c) specifically implements a block-streaming terra::crosstab() extraction method that keeps peak memory to a few hundred MB against the ~259-million-cell project rasters, and downstream hot spot comparisons are conducted on a resampled 10-m grid for the same reason. GDAL must be installed on the host system, though this requirement is generally satisfied automatically by the terra package installation. Output rasters are written with LZW compression to manage file sizes for the large study area. Most of the rasters produced over the seven county area are too large to directly push to the GitHub repository and are therefore only stored locally (and subsequently ignored in .gitignore files).
7.2 Translation from ArcGIS Model Builder Scripts to Open-Source R
A defining characteristic of this workflow is its complete translation from a proprietary ArcGIS ModelBuilder and ArcPython environment to the open-source R programming language. This translation was conducted to align the model with TBEP’s open science philosophy and to enable version-controlled, automated, and reproducible execution through GitHub Actions. Table 3 summarizes the functional equivalences between ArcGIS operations and their R/terra counterparts implemented in this workflow.
Key behavioral differences between the ArcGIS and R implementations include differences in NoData handling (ArcGIS uses -999 or system NoData; R/terra uses NA), raster algebra broadcasting (explicit vectorization via ifel() in R versus implicit broadcasting in ArcGIS), and vector operations (requiring the sf package in R). The workflow addresses these differences explicitly, with conditional checks for both -999 sentinel values and NA to ensure compatibility with legacy input data formats.
8. Quality Control and Automation
8.1 Codebase Quality Control
Quality control of the analytical codebase follows open-source software development guidelines as adopted by the TBEP (rOpenSci 2024). Code is reviewed for redundancy, computational efficiency, and functional reproducibility. Automated software tests are scripted and executed weekly via GitHub Actions for each new analytical routine added to the repository. Tests verify that individual functions produce expected outputs under defined input conditions, ensuring that code modifications do not inadvertently alter model behavior. Identified defects and required corrections are documented using GitHub’s issue tracking system, with each issue assigned to a responsible team member and linked to the specific file or code line requiring remediation.
8.2 Automation via GitHub Actions
Routine data extraction and analytical updates are automated through GitHub Actions workflows configured in the repository. When updated input datasets become available from source agencies, automated routines can be triggered to re-execute the data preparation and model runs, generating updated output rasters and refreshed HTML reporting products without manual intervention. This automation framework directly supports the annual update cycle described in the TBCMP Technical Strategy and ensures that reporting products remain current with the most recent available land cover and environmental data.
8.3 Version Control and Documentation
All workflow scripts, data processing routines, and output products are maintained under Git version control, with the repository hosted publicly on the TBEP GitHub group page. Repository tags and commits provide a complete, time-stamped record of all workflow changes and dataset updates. Plain text README files accompany all data files and describe dataset provenance, processing steps, and metadata attributes following the Ecological Metadata Language (EML) standard. All data deliverables are structured in non-proprietary, standardized formats (.csv, .tif, .html) to ensure long-term accessibility and interoperability.
9. References
Beck, M.W., Raulerson, G.E., Burke, M.C., Whalen, J., Scolaro, S., & Sherwood, E.T. (2021). Data Management SOP for the Tampa Bay Estuary Program (Technical Report #12-21). Tampa Bay Estuary Program, St. Petersburg, Florida.
Beck, M.W., Robison, D.E., Raulerson, G.E., Burke, M.C., Saarinen, J., Sciarrino, C., Sherwood, E.T., & Tomasko, D.A. (2023). Addressing climate change and development pressures in an urban estuary through habitat restoration planning. Frontiers in Ecology and Evolution, 11, 1070266. <https://doi.org/10.3389/fevo.2023.1070266>
Robison, D., Ries, T., Saarinen, J., Tomasko, D., & Sciarrino, C. (2020). Tampa Bay Estuary Program 2020 Habitat Master Plan Update (Technical Report #07-20). Prepared by Environmental Science Associates for the Tampa Bay Estuary Program. 136 pp. + appendix.
rOpenSci, Anderson, B., Chamberlain, S., DeCicco, L., Gustavsen, J., Krystalli, A., Lepore, M., Mullen, L., Ram, K., Ross, N., Salmon, M., Vidoni, M., Riederer, E., Sparks, A., & Hollister, J. (2024). rOpenSci Packages: Development, Maintenance, and Peer Review (Version 0.9.0). Zenodo. <https://doi.org/10.5281/zenodo.10797633>
Nowosad, J., & Stepinski, T.F. (2018). Spatial association between regionalizations using the information-theoretical V-measure. International Journal of Geographical Information Science, 32(12), 2386–2401. <https://doi.org/10.1080/13658816.2018.1511794>
Sheehan, L., Sherwood, E.T., Moyer, R.P., Radabaugh, K.R., & Simpson, S. (2019). Blue Carbon: an Additional Driver for Restoring and Preserving Ecological Services of Coastal Wetlands in Tampa Bay (Florida, USA). Wetlands, 39, 1317–1328. <https://doi.org/10.1007/s13157-019-01137-y>
Southwest Florida Water Management District. (2025). Land use land cover data. c1990–2023. Available at: <https://data-swfwmd.opendata.arcgis.com/>
Tampa Bay Coastal Master Plan: Technical Strategy, Draft Version 1. (2025). Tampa Bay Regional Planning Council, Pinellas Park, Florida.