{
  "_id": "6a1f29a8b401979e73424143",
  "Package": "oystermapR",
  "Title": "Predict and Map Oyster Growth Suitability from Environmental\nData",
  "Version": "1.4.0",
  "Authors@R": "person(\"T\", \"Tucker\", email = \"tristantucker48@gmail.com\",\nrole = c(\"aut\", \"cre\"),\ncomment = c(ORCID = \"0009-0008-5190-6423\"))",
  "Description": "Predicts spatial suitability for oyster growth from\nenvironmental survey data using Analytic Hierarchy Process\n(AHP) weighted scoring. Users supply sensor data from Acoustic\nDoppler Current Profilers (ADCP),\nConductivity-Temperature-Depth (CTD) sensors, bathymetric\nsonar, and sidescan sonar, specify a target species, and\nreceive per-location suitability scores, a 'GeoTIFF' heatmap\nfor 'QGIS', contour lines, and a formatted PDF or HTML report.\nSupports fourteen species across global aquaculture regions,\nincluding Ostrea edulis, Magallana gigas, Crassostrea\nvirginica, Crassostrea hongkongensis, and ten further species;\nsee list_species(). Includes season-aware scoring, tidal height\ncorrection, Bayesian tolerance parameter updating from field\nobservations, spatial block cross-validation (Roberts et al.,\n2017, <doi:10.1111/ecog.02881>), permutation variable\nimportance, wave exposure and sediment stability modules,\nHarmful Algal Bloom (HAB) risk and anthropogenic disturbance\nscoring with optional live International Council for the\nExploration of the Sea (ICES) data integration, hybrid larval\ndispersal connectivity scoring (union-find Gaussian kernel plus\noptional 'OpenDrift' or Finite Volume Community Ocean Model\n('FVCOM') connectivity matrix), and batch multi-species\ncomparison.",
  "License": "GPL (>= 3)",
  "URL": "https://github.com/trissyboats/oystermapR",
  "BugReports": "https://github.com/trissyboats/oystermapR/issues",
  "Encoding": "UTF-8",
  "Language": "en-US",
  "VignetteBuilder": "knitr",
  "RoxygenNote": "7.3.3",
  "NeedsCompilation": "no",
  "Packaged": {
    "Date": "2026-05-15 22:04:59 UTC",
    "User": "root"
  },
  "Author": "T Tucker [aut, cre] (ORCID:\n<https://orcid.org/0009-0008-5190-6423>)",
  "Maintainer": "T Tucker <tristantucker48@gmail.com>",
  "Repository": "https://cran.r-universe.dev",
  "Date/Publication": "2026-05-15 21:32:10 UTC",
  "RemoteUrl": "https://github.com/cran/oystermapR",
  "RemoteRef": "HEAD",
  "RemoteSha": "e45d6be13986251c2da7ec0909bc8a6270c71e7c",
  "MD5sum": "dca705f9c363ddc2ed743c434e79792b",
  "_user": "cran",
  "_type": "src",
  "_file": "oystermapR_1.4.0.tar.gz",
  "_fileid": "674d28377c5592da63985415d9605eeaadc747fdf146963affa57262948db43e",
  "_filesize": 742137,
  "_sha256": "674d28377c5592da63985415d9605eeaadc747fdf146963affa57262948db43e",
  "_created": "2026-05-15T22:04:59.000Z",
  "_published": "2026-06-02T19:06:16.942Z",
  "_distro": "noble",
  "_jobs": [
    {
      "job": 79150375901,
      "time": 161,
      "config": "linux-devel-x86_64",
      "r": "4.7.0",
      "check": "OK",
      "artifact": "7027400622"
    },
    {
      "job": 79150376200,
      "time": 165,
      "config": "linux-release-x86_64",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7027401411"
    },
    {
      "job": 79150375274,
      "time": 241,
      "config": "source",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7027366327"
    },
    {
      "job": 79150375602,
      "time": 143,
      "config": "wasm-release",
      "r": "4.6.0",
      "check": "OK",
      "artifact": "7367279974"
    }
  ],
  "_buildurl": "https://github.com/r-universe/cran/actions/runs/25943499442",
  "_status": "success",
  "_host": "GitHub-Actions",
  "_upstream": "https://github.com/cran/oystermapR",
  "_commit": {
    "id": "e45d6be13986251c2da7ec0909bc8a6270c71e7c",
    "author": "T Tucker <tristantucker48@gmail.com>",
    "committer": "cran-robot <csardi.gabor+cran@gmail.com>",
    "message": "version 1.4.0\n",
    "time": 1778880730
  },
  "_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": "ncdf4",
      "version": ">= 1.19",
      "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"
    },
    {
      "package": "oce",
      "version": ">= 1.7.0",
      "role": "Suggests"
    }
  ],
  "_owner": "cran",
  "_selfowned": false,
  "_usedby": 0,
  "_updates": [
    {
      "week": "2026-20",
      "n": 1
    }
  ],
  "_tags": [
    {
      "name": "1.4.0",
      "date": "2026-05-15"
    }
  ],
  "_stars": 0,
  "_contributors": [
    {
      "user": "trissyboats",
      "count": 1,
      "uuid": 226574646
    }
  ],
  "_userbio": {
    "uuid": 6899542,
    "type": "organization",
    "name": "cran",
    "description": "Unofficial read-only mirror of all CRAN R packages"
  },
  "_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"
  ],
  "_cranurl": false,
  "_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",
    "generate_summary_pdf",
    "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_aanderaa_csv",
    "read_generic_csv",
    "read_nortek_adcp",
    "read_nortek_aquadopp",
    "read_rdi_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": "generate_summary_pdf",
      "title": "Generate a compact printable PDF summary of oystermapR results",
      "topics": [
        "generate_summary_pdf"
      ]
    },
    {
      "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_aanderaa_csv",
      "title": "Read an Aanderaa RCM current meter CSV export",
      "topics": [
        "read_aanderaa_csv"
      ]
    },
    {
      "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_nortek_aquadopp",
      "title": "Read a Nortek Aquadopp Profiler ASCII export",
      "topics": [
        "read_nortek_aquadopp"
      ]
    },
    {
      "page": "read_rdi_adcp",
      "title": "Read a Teledyne RDI ADCP binary file (PD0 format)",
      "topics": [
        "read_rdi_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/cran/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"
  ],
  "_vignettes": [
    {
      "source": "example-bay-survey.Rmd",
      "filename": "example-bay-survey.html",
      "title": "Complete survey workflow: Example Bay",
      "engine": "knitr::rmarkdown",
      "headings": [
        "Overview",
        "Survey context",
        "Step 1: Load ADCP data",
        "Step 2: Load bathymetric soundings",
        "Step 3: Load CTD water-quality data",
        "Step 4: Merge all sensor datasets",
        "Step 5: Quality control",
        "Step 6: Predict suitability",
        "Step 7: Risk and disturbance scoring",
        "Step 8: Export GeoTIFF for QGIS",
        "Inspecting component scores",
        "Next steps",
        "Session info"
      ],
      "created": "2026-05-15 21:32:10",
      "modified": "2026-05-15 21:32:10",
      "commits": 1
    }
  ],
  "_score": 2.6989700043360187,
  "_indexed": true,
  "_nocasepkg": "oystermapr",
  "_universes": [
    "cran",
    "trissyboats"
  ],
  "_binaries": [
    {
      "r": "4.7.0",
      "os": "linux",
      "version": "1.4.0",
      "date": "2026-05-15T22:07:25.000Z",
      "distro": "noble",
      "commit": "e45d6be13986251c2da7ec0909bc8a6270c71e7c",
      "fileid": "9ca5d0503cc44ffd5b1a8cd20c888c065dee1178468e3c2dfd118399f883bfcb",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/25943499442"
    },
    {
      "r": "4.6.0",
      "os": "linux",
      "version": "1.4.0",
      "date": "2026-05-15T22:07:25.000Z",
      "distro": "noble",
      "commit": "e45d6be13986251c2da7ec0909bc8a6270c71e7c",
      "fileid": "5d5f7484e5c2e10d5c6e7d5f4636e71b09412faa850c600ddfeddcaa68351e16",
      "status": "success",
      "check": "OK",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/25943499442"
    },
    {
      "r": "4.6.0",
      "os": "wasm",
      "version": "1.4.0",
      "date": "2026-06-02T19:05:59.000Z",
      "commit": "e45d6be13986251c2da7ec0909bc8a6270c71e7c",
      "fileid": "3a62cb4f3f50d2e984b76934abc008a9c26398788a2771ab5e6910a83ad67bc7",
      "status": "success",
      "buildurl": "https://github.com/r-universe/cran/actions/runs/25943499442"
    }
  ]
}