{
  "_id": "6a1f1f80b401979e7342018d",
  "Package": "oystermapR",
  "Title": "Predict and Map Oyster Growth Suitability from Environmental\nData",
  "Version": "1.0.0",
  "Authors@R": "person(\"T\", \"Tucker\", email = \"tristantucker48@gmail.com\",\nrole = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"\"))",
  "Description": "Predicts spatial suitability for oyster growth from\nenvironmental survey data using Analytic Hierarchy Process\n(AHP) weighted scoring. Users supply sensor data (ADCP, CTD,\nbathymetric sonar, sidescan), specify a target species, and\nreceive per-location suitability scores, a GeoTIFF heatmap for\nQGIS, contour lines, and a formatted PDF or HTML report.\nSupported species: Ostrea edulis (European Flat Oyster),\nMagallana gigas (Pacific Oyster), Crassostrea angulata\n(Portuguese Oyster), Ostrea stentina (Denticulate Flat Oyster),\nand Ostrea lurida (Olympia Oyster). Includes season-aware\nscoring, tidal height correction, Bayesian tolerance parameter\nupdating from field observations, spatial block\ncross-validation (Roberts et al. 2017), permutation variable\nimportance, wave exposure and sediment stability modules, HAB\nrisk and anthropogenic disturbance scoring with optional live\nICES data integration, hybrid larval dispersal connectivity\nscoring (union-find Gaussian kernel plus optional\nOpenDrift/FVCOM connectivity matrix), and batch multi-species\ncomparison.",
  "License": "MIT + file LICENSE",
  "Encoding": "UTF-8",
  "Roxygen": "list(markdown = TRUE)",
  "RoxygenNote": "7.3.3",
  "Config/pak/sysreqs": "libabsl-dev cmake libgdal-dev gdal-bin libgeos-dev\nlibssl-dev libproj-dev libsqlite3-dev libudunits2-dev",
  "Repository": "https://trissyboats.r-universe.dev",
  "Date/Publication": "2026-05-01 11:15:13 UTC",
  "RemoteUrl": "https://github.com/trissyboats/oystermapr",
  "RemoteRef": "HEAD",
  "RemoteSha": "2e26744637fb401e2e5de5e756232a259a0d6858",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-16 08:06:39 UTC",
    "User": "root"
  },
  "Author": "T Tucker [aut, cre]",
  "Maintainer": "T Tucker <tristantucker48@gmail.com>",
  "MD5sum": "9b7727c5b82b8b23540633d6e7696f4e",
  "_user": "trissyboats",
  "_type": "src",
  "_file": "oystermapR_1.0.0.tar.gz",
  "_fileid": "1f31b048966925dd70cda8910d62a913cf3a6aa4e25fa67dfc5aeaa008128cab",
  "_filesize": 622803,
  "_sha256": "1f31b048966925dd70cda8910d62a913cf3a6aa4e25fa67dfc5aeaa008128cab",
  "_created": "2026-05-16T08:06:39.000Z",
  "_published": "2026-06-02T18:22:56.425Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79142120931,
      "time": 156,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7031840254"
    },
    {
      "job": 79142121487,
      "time": 150,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7031839583"
    },
    {
      "job": 79142121751,
      "time": 158,
      "config": "macos-oldrel-arm64",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7031861436"
    },
    {
      "job": 79142121346,
      "time": 164,
      "config": "macos-release-arm64",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7031860839"
    },
    {
      "job": 79142120450,
      "time": 231,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7031824694"
    },
    {
      "job": 79142120499,
      "time": 156,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7366332102"
    },
    {
      "job": 79142122148,
      "time": 120,
      "config": "windows-devel",
      "r": "4.7.0",
      "check": "NOTE",
      "artifact": "7031836933"
    },
    {
      "job": 79142122244,
      "time": 114,
      "config": "windows-oldrel",
      "r": "4.5.3",
      "check": "NOTE",
      "artifact": "7031836152"
    },
    {
      "job": 79142121408,
      "time": 109,
      "config": "windows-release",
      "r": "4.6.0",
      "check": "NOTE",
      "artifact": "7031835695"
    }
  ],
  "_buildurl": "https://github.com/r-universe/trissyboats/actions/runs/25956841836",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/trissyboats/oystermapr",
  "_commit": {
    "id": "2e26744637fb401e2e5de5e756232a259a0d6858",
    "author": "trissyboats <tristantucker48@gmail.com>",
    "committer": "GitHub <noreply@github.com>",
    "message": "1.1.0 downloadables",
    "time": 1777634113
  },
  "_maintainer": {
    "name": "T Tucker",
    "email": "tristantucker48@gmail.com",
    "login": "trissyboats",
    "uuid": 226574646
  },
  "_registered": true,
  "_dependencies": [
    {
      "package": "R",
      "version": ">= 4.1.0",
      "role": "Depends"
    },
    {
      "package": "dplyr",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "terra",
      "version": ">= 1.7.18",
      "role": "Imports"
    },
    {
      "package": "sf",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "rlang",
      "version": ">= 1.0.0",
      "role": "Imports"
    },
    {
      "package": "cli",
      "version": ">= 3.0.0",
      "role": "Imports"
    },
    {
      "package": "stats",
      "role": "Imports"
    },
    {
      "package": "utils",
      "role": "Imports"
    },
    {
      "package": "ggplot2",
      "version": ">= 3.4.0",
      "role": "Suggests"
    },
    {
      "package": "testthat",
      "version": ">= 3.0.0",
      "role": "Suggests"
    },
    {
      "package": "knitr",
      "role": "Suggests"
    },
    {
      "package": "rmarkdown",
      "version": ">= 2.20",
      "role": "Suggests"
    },
    {
      "package": "tinytex",
      "role": "Suggests"
    },
    {
      "package": "httr",
      "version": ">= 1.4.0",
      "role": "Suggests"
    },
    {
      "package": "jsonlite",
      "version": ">= 1.8.0",
      "role": "Suggests"
    },
    {
      "package": "gstat",
      "version": ">= 2.1.0",
      "role": "Suggests"
    },
    {
      "package": "sp",
      "version": ">= 1.6.0",
      "role": "Suggests"
    },
    {
      "package": "lubridate",
      "version": ">= 1.9.0",
      "role": "Suggests"
    },
    {
      "package": "suncalc",
      "version": ">= 0.5.0",
      "role": "Suggests"
    }
  ],
  "_owner": "trissyboats",
  "_selfowned": true,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-18",
      "n": 28
    }
  ],
  "_tags": [],
  "_stars": 0,
  "_contributors": [
    {
      "user": "trissyboats",
      "count": 27,
      "uuid": 226574646
    }
  ],
  "_userbio": {
    "uuid": 226574646,
    "type": "user",
    "name": "trissyboats"
  },
  "_downloads": {
    "count": 0,
    "source": "https://cranlogs.r-pkg.org/downloads/total/last-month/oystermapR"
  },
  "_devurl": "https://github.com/trissyboats/oystermapr",
  "_searchresults": 9,
  "_rbuild": "4.6.0",
  "_assets": [
    "extra/citation.cff",
    "extra/citation.html",
    "extra/citation.json",
    "extra/citation.txt",
    "extra/contents.json",
    "extra/NEWS.html",
    "extra/NEWS.txt",
    "extra/oystermapR.html",
    "extra/readme.html",
    "extra/readme.md",
    "manual.pdf"
  ],
  "_homeurl": "https://github.com/trissyboats/oystermapr",
  "_realowner": "trissyboats",
  "_cranurl": true,
  "_releases": [
    {
      "version": "1.4.0",
      "date": "2026-05-15"
    }
  ],
  "_exports": [
    "add_intertidal_flag",
    "add_season_column",
    "add_shellfish_classification",
    "add_suitability_ci",
    "analyse_connectivity",
    "assess_gear_feasibility",
    "auto_tidal_correct",
    "check_exclusions",
    "classify_substrate_from_backscatter",
    "compare_species",
    "compare_surveys",
    "composite_seasonal",
    "correct_to_chart_datum",
    "detect_season",
    "estimate_chlorophyll_from_backscatter",
    "estimate_fetch",
    "export_contours",
    "export_geotiff",
    "export_qml_style",
    "fetch_live_environmental_data",
    "generate_report",
    "get_species_tolerances",
    "get_tolerance_posteriors",
    "identify_resilient_sites",
    "interpolate_survey",
    "list_species",
    "load_tolerance_update",
    "merge_sensor_data",
    "oystermapR_help",
    "oystermapR_live_config",
    "parse_opendrift_connectivity",
    "permutation_importance",
    "predict_oyster",
    "project_suitability",
    "qc_survey_data",
    "read_generic_csv",
    "read_nortek_adcp",
    "read_sonar_tif",
    "read_soundings_xyz",
    "reset_tolerance_update",
    "save_tolerance_update",
    "score_anthropogenic_disturbance",
    "score_disease_risk",
    "score_economic_viability",
    "score_hab_risk",
    "score_larval_connectivity",
    "score_locations",
    "score_predation_risk",
    "score_sediment_stability",
    "score_settlement",
    "score_wave_exposure",
    "sensitivity_analysis",
    "smooth_suitability",
    "spatial_block_cv",
    "stack_surveys",
    "tidal_port_info",
    "update_species_tolerances",
    "validate_against_records"
  ],
  "_help": [
    {
      "page": "add_intertidal_flag",
      "title": "Add an intertidal zone flag to a survey dataframe",
      "topics": [
        "add_intertidal_flag"
      ]
    },
    {
      "page": "add_season_column",
      "title": "Detect season for each row in a dataframe",
      "topics": [
        "add_season_column"
      ]
    },
    {
      "page": "add_shellfish_classification",
      "title": "Add shellfish water quality classification to scored result",
      "topics": [
        "add_shellfish_classification"
      ]
    },
    {
      "page": "add_suitability_ci",
      "title": "Add bootstrap confidence intervals to suitability scores",
      "topics": [
        "add_suitability_ci"
      ]
    },
    {
      "page": "analyse_connectivity",
      "title": "Analyse spatial connectivity of suitable habitat cells",
      "topics": [
        "analyse_connectivity"
      ]
    },
    {
      "page": "assess_gear_feasibility",
      "title": "Assess gear deployment feasibility at survey locations",
      "topics": [
        "assess_gear_feasibility"
      ]
    },
    {
      "page": "auto_tidal_correct",
      "title": "Automatically predict and apply tidal correction from harmonic constituents",
      "topics": [
        "auto_tidal_correct"
      ]
    },
    {
      "page": "check_exclusions",
      "title": "Check exclusion criteria for all rows in a dataset",
      "topics": [
        "check_exclusions"
      ]
    },
    {
      "page": "classify_substrate_from_backscatter",
      "title": "Classify seabed substrate hardness from near-seabed ADCP backscatter",
      "topics": [
        "classify_substrate_from_backscatter"
      ]
    },
    {
      "page": "compare_species",
      "title": "Compare suitability across multiple oyster species",
      "topics": [
        "compare_species"
      ]
    },
    {
      "page": "compare_surveys",
      "title": "Compare suitability scores across multiple surveys or monitoring years",
      "topics": [
        "compare_surveys"
      ]
    },
    {
      "page": "composite_seasonal",
      "title": "Combine multi-season survey results into a composite suitability score",
      "topics": [
        "composite_seasonal"
      ]
    },
    {
      "page": "correct_to_chart_datum",
      "title": "Correct survey depths to Chart Datum (LAT)",
      "topics": [
        "correct_to_chart_datum"
      ]
    },
    {
      "page": "detect_season",
      "title": "Detect meteorological season from date and latitude",
      "topics": [
        "detect_season"
      ]
    },
    {
      "page": "estimate_chlorophyll_from_backscatter",
      "title": "Estimate chlorophyll-a concentration from ADCP acoustic backscatter",
      "topics": [
        "estimate_chlorophyll_from_backscatter"
      ]
    },
    {
      "page": "estimate_fetch",
      "title": "Estimate effective fetch from a set of lat/lon points and a bearing",
      "topics": [
        "estimate_fetch"
      ]
    },
    {
      "page": "export_contours",
      "title": "Export optional contour lines as a GeoPackage for QGIS",
      "topics": [
        "export_contours"
      ]
    },
    {
      "page": "export_geotiff",
      "title": "Export suitability scores as a smooth interpolated GeoTIFF heatmap for QGIS",
      "topics": [
        "export_geotiff"
      ]
    },
    {
      "page": "export_qml_style",
      "title": "Export a QGIS colour style (.qml) matching the BioBase orange/red heatmap",
      "topics": [
        "export_qml_style"
      ]
    },
    {
      "page": "fetch_live_environmental_data",
      "title": "Fetch live environmental data for a survey extent",
      "topics": [
        "fetch_live_environmental_data"
      ]
    },
    {
      "page": "generate_report",
      "title": "Generate a formatted survey report from predict_oyster() results",
      "topics": [
        "generate_report"
      ]
    },
    {
      "page": "get_species_tolerances",
      "title": "Get species tolerance parameters",
      "topics": [
        "get_species_tolerances"
      ]
    },
    {
      "page": "get_tolerance_posteriors",
      "title": "Retrieve current posterior tolerance parameters for a species",
      "topics": [
        "get_tolerance_posteriors"
      ]
    },
    {
      "page": "identify_resilient_sites",
      "title": "Identify climate-resilient locations",
      "topics": [
        "identify_resilient_sites"
      ]
    },
    {
      "page": "interpolate_survey",
      "title": "Interpolate survey measurements to a regular grid before scoring",
      "topics": [
        "interpolate_survey"
      ]
    },
    {
      "page": "list_species",
      "title": "List all supported species",
      "topics": [
        "list_species"
      ]
    },
    {
      "page": "load_tolerance_update",
      "title": "Load saved Bayesian tolerance updates into session cache",
      "topics": [
        "load_tolerance_update"
      ]
    },
    {
      "page": "merge_sensor_data",
      "title": "Merge multiple sensor datasets into a single survey table",
      "topics": [
        "merge_sensor_data"
      ]
    },
    {
      "page": "oystermapR_help",
      "title": "Print an interactive getting-started guide for oystermapR",
      "topics": [
        "oystermapR_help"
      ]
    },
    {
      "page": "oystermapR_live_config",
      "title": "Configure live data API credentials for oystermapR",
      "topics": [
        "oystermapR_live_config"
      ]
    },
    {
      "page": "parse_opendrift_connectivity",
      "title": "Parse an OpenDrift particle tracking output into a connectivity matrix",
      "topics": [
        "parse_opendrift_connectivity"
      ]
    },
    {
      "page": "permutation_importance",
      "title": "Permutation variable importance for suitability model",
      "topics": [
        "permutation_importance"
      ]
    },
    {
      "page": "predict_oyster",
      "title": "Predict oyster growth suitability from environmental survey data",
      "topics": [
        "predict_oyster"
      ]
    },
    {
      "page": "project_suitability",
      "title": "Project suitability under future climate scenarios",
      "topics": [
        "project_suitability"
      ]
    },
    {
      "page": "qc_survey_data",
      "title": "Run automated quality control on raw survey data",
      "topics": [
        "qc_survey_data"
      ]
    },
    {
      "page": "read_generic_csv",
      "title": "Read a generic sensor CSV with flexible column mapping",
      "topics": [
        "read_generic_csv"
      ]
    },
    {
      "page": "read_nortek_adcp",
      "title": "Read and process a Nortek Signature 500 ADCP CSV file",
      "topics": [
        "read_nortek_adcp"
      ]
    },
    {
      "page": "read_sonar_tif",
      "title": "Read a bathymetric or sidescan GeoTIFF and convert to oystermapR variables",
      "topics": [
        "read_sonar_tif"
      ]
    },
    {
      "page": "read_soundings_xyz",
      "title": "Read a bathymetric XYZ point cloud and derive depth, slope and roughness",
      "topics": [
        "read_soundings_xyz"
      ]
    },
    {
      "page": "reset_tolerance_update",
      "title": "Reset Bayesian tolerance updates for a species",
      "topics": [
        "reset_tolerance_update"
      ]
    },
    {
      "page": "save_tolerance_update",
      "title": "Save Bayesian tolerance updates to disk",
      "topics": [
        "save_tolerance_update"
      ]
    },
    {
      "page": "score_anthropogenic_disturbance",
      "title": "Score anthropogenic disturbance at survey locations",
      "topics": [
        "score_anthropogenic_disturbance"
      ]
    },
    {
      "page": "score_disease_risk",
      "title": "Score locations for disease and parasite risk",
      "topics": [
        "score_disease_risk"
      ]
    },
    {
      "page": "score_economic_viability",
      "title": "Score economic viability for aquaculture or restoration",
      "topics": [
        "score_economic_viability"
      ]
    },
    {
      "page": "score_hab_risk",
      "title": "Score harmful algal bloom risk at survey locations",
      "topics": [
        "score_hab_risk"
      ]
    },
    {
      "page": "score_larval_connectivity",
      "title": "Score larval dispersal connectivity at survey locations",
      "topics": [
        "score_larval_connectivity"
      ]
    },
    {
      "page": "score_locations",
      "title": "Score all locations in a dataframe",
      "topics": [
        "score_locations"
      ]
    },
    {
      "page": "score_predation_risk",
      "title": "Score predation and bioturbation pressure at survey locations",
      "topics": [
        "score_predation_risk"
      ]
    },
    {
      "page": "score_sediment_stability",
      "title": "Score sediment stability and mobility at survey locations",
      "topics": [
        "score_sediment_stability"
      ]
    },
    {
      "page": "score_settlement",
      "title": "Score locations for spat settlement suitability",
      "topics": [
        "score_settlement"
      ]
    },
    {
      "page": "score_wave_exposure",
      "title": "Score wave exposure from fetch or measured wave height",
      "topics": [
        "score_wave_exposure"
      ]
    },
    {
      "page": "sensitivity_analysis",
      "title": "Partial dependence / sensitivity analysis for a scored variable",
      "topics": [
        "sensitivity_analysis"
      ]
    },
    {
      "page": "smooth_suitability",
      "title": "Apply Gaussian kernel smoothing to suitability scores",
      "topics": [
        "smooth_suitability"
      ]
    },
    {
      "page": "spatial_block_cv",
      "title": "Spatial block cross-validation for suitability model evaluation",
      "topics": [
        "spatial_block_cv"
      ]
    },
    {
      "page": "stack_surveys",
      "title": "Stack multiple survey runs from the same sensor type",
      "topics": [
        "stack_surveys"
      ]
    },
    {
      "page": "tidal_port_info",
      "title": "Look up approximate tidal range for major European survey ports",
      "topics": [
        "tidal_port_info"
      ]
    },
    {
      "page": "update_species_tolerances",
      "title": "Update species tolerance parameters from field observations (Bayesian)",
      "topics": [
        "update_species_tolerances"
      ]
    },
    {
      "page": "validate_against_records",
      "title": "Validate suitability predictions against known presence/absence records",
      "topics": [
        "validate_against_records"
      ]
    }
  ],
  "_readme": "https://github.com/trissyboats/oystermapr/raw/HEAD/README.md",
  "_rundeps": [
    "class",
    "classInt",
    "cli",
    "DBI",
    "dplyr",
    "e1071",
    "generics",
    "glue",
    "KernSmooth",
    "lifecycle",
    "magrittr",
    "MASS",
    "pillar",
    "pkgconfig",
    "proxy",
    "R6",
    "Rcpp",
    "rlang",
    "s2",
    "sf",
    "terra",
    "tibble",
    "tidyselect",
    "units",
    "utf8",
    "vctrs",
    "withr",
    "wk"
  ],
  "_score": 2.6989700043360187,
  "_indexed": true,
  "_nocasepkg": "oystermapr",
  "_universes": [
    "trissyboats"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.0.0",
      "date": "2026-05-16T08:09:07.000Z",
      "distro": "noble",
      "commit": "2e26744637fb401e2e5de5e756232a259a0d6858",
      "fileid": "193baa60be3ddf47617752c0271e05ee98855ad9ba3bdd4903d399ba3dc45040",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/trissyboats/actions/runs/25956841836"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.0.0",
      "date": "2026-05-16T08:08:59.000Z",
      "distro": "noble",
      "commit": "2e26744637fb401e2e5de5e756232a259a0d6858",
      "fileid": "5d541b8e6d2df2d8b74cb6ec90b6dd59878bf523145c81a2b88f9c052f667c2b",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/trissyboats/actions/runs/25956841836"
    },
    {
      "r": "4.5.3",
      "os": "mac",
      "version": "1.0.0",
      "date": "2026-05-16T08:12:50.000Z",
      "commit": "2e26744637fb401e2e5de5e756232a259a0d6858",
      "fileid": "4344b0900887057d65cf1631e7e762309ed5649f3333df8999f80427cd2c90b0",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/trissyboats/actions/runs/25956841836"
    },
    {
      "r": "4.6.0",
      "os": "mac",
      "version": "1.0.0",
      "date": "2026-05-16T08:12:33.000Z",
      "commit": "2e26744637fb401e2e5de5e756232a259a0d6858",
      "fileid": "c4b9d4ededb7e10bede53ba2baaf2e0ea1494b46357c67b366c2867edef5c1ff",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/trissyboats/actions/runs/25956841836"
    },
    {
      "r": "4.7.0",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-05-16T08:08:28.000Z",
      "commit": "2e26744637fb401e2e5de5e756232a259a0d6858",
      "fileid": "d38027662cd0604848ad9ce89c69986d4b43da8217e194f3ff6c1fee7a24243f",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/trissyboats/actions/runs/25956841836"
    },
    {
      "r": "4.5.3",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-05-16T08:08:12.000Z",
      "commit": "2e26744637fb401e2e5de5e756232a259a0d6858",
      "fileid": "18c2a4d44bd6a35f657cd018de84446f83660f49c441cf67ec509094647f2f15",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/trissyboats/actions/runs/25956841836"
    },
    {
      "r": "4.6.0",
      "os": "win",
      "version": "1.0.0",
      "date": "2026-05-16T08:08:03.000Z",
      "commit": "2e26744637fb401e2e5de5e756232a259a0d6858",
      "fileid": "4b28e572302abcb0f1affd9d06819feaba4f6c48dede7b0ebc8ab63c63e1ed1a",
      "status": "success",
      "check": "NOTE",
      "buildurl": "https://github.com/r-universe/trissyboats/actions/runs/25956841836"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.0.0",
      "date": "2026-06-02T18:22:31.000Z",
      "commit": "2e26744637fb401e2e5de5e756232a259a0d6858",
      "fileid": "4fdef4ff7d1fde1fd94768df981cd64477bfa343f5a069ed2fca53bb3eb9d034",
      "status": "success",
      "buildurl": "https://github.com/r-universe/trissyboats/actions/runs/25956841836"
    }
  ]
}