{"id":178290,"name":"oceandatr","description":"Aims to provide simple functions for creating data for conducting a spatial conservation prioritization for large scale areas of the ocean, specifically offshore areas.","url":"https://github.com/emlab-ucsb/oceandatr","last_synced_at":"2026-08-05T13:03:30.619Z","repository":{"id":187605433,"uuid":"553991729","full_name":"emlab-ucsb/oceandatr","owner":"emlab-ucsb","description":"R package for acquiring, processing, standardizing, and analysing marine data","archived":false,"fork":false,"pushed_at":"2026-07-03T01:44:58.000Z","size":1140968,"stargazers_count":6,"open_issues_count":8,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-07-16T03:05:12.941Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://emlab-ucsb.github.io/oceandatr/","language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/emlab-ucsb.png","metadata":{"files":{"readme":"README.Rmd","changelog":"NEWS.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-10-19T04:35:25.000Z","updated_at":"2026-07-03T00:35:19.000Z","dependencies_parsed_at":"2023-08-11T11:54:56.888Z","dependency_job_id":"d3b9bacb-e0a0-4b36-afa3-d0a732275792","html_url":"https://github.com/emlab-ucsb/oceandatr","commit_stats":{"total_commits":226,"total_committers":4,"mean_commits":56.5,"dds":0.5176991150442478,"last_synced_commit":"1145ded27666df5c8682e0811b50f9953213e798"},"previous_names":["emlab-ucsb/offshoredatr"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/emlab-ucsb/oceandatr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emlab-ucsb%2Foceandatr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emlab-ucsb%2Foceandatr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emlab-ucsb%2Foceandatr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emlab-ucsb%2Foceandatr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emlab-ucsb","download_url":"https://codeload.github.com/emlab-ucsb/oceandatr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/emlab-ucsb%2Foceandatr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36311804,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-08-05T02:00:06.619Z","response_time":104,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"emlab-ucsb","name":"emLab","uuid":"48566538","kind":"organization","description":"The Environmental Markets Lab (emLab) is an interdisciplinary team of scientists based at the University of California Santa Barbara.","email":null,"website":"http://emlab.ucsb.edu","location":"Santa Barbara, CA","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/48566538?v=4","repositories_count":19,"last_synced_at":"2023-03-07T20:37:39.229Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/emlab-ucsb","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-17T16:55:52.072Z","updated_at":"2023-03-07T20:37:39.237Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emlab-ucsb","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/emlab-ucsb/repositories"},"packages":[],"commits":{"id":1468200,"full_name":"emlab-ucsb/oceandatr","default_branch":"main","total_commits":334,"total_committers":3,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":111.33333333333333,"dds":0.26047904191616766,"past_year_total_commits":75,"past_year_total_committers":1,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":75.0,"past_year_dds":0.0,"last_synced_at":"2026-07-21T11:44:03.120Z","last_synced_commit":"350518a3a0657d07fef379fc00c215913e3e5e95","created_at":"2024-01-25T00:16:30.169Z","updated_at":"2026-07-21T11:44:03.093Z","committers":[{"name":"Jason Flower","email":"jflowernet@aim.com","login":"jflowernet","count":247},{"name":"Echelle Burns","email":"echelle.burns@gmail.com","login":"echelleburns","count":86},{"name":"Jason Everett","email":"jaseeverett@gmail.com","login":"jaseeverett","count":1}],"past_year_committers":[{"name":"Jason Flower","email":"jflowernet@aim.com","login":"jflowernet","count":75}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/emlab-ucsb%2Foceandatr/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-05T00:00:08.443Z","repositories_count":6576374,"commits_count":909507489,"contributors_count":38346522,"owners_count":1313997,"committers_count":3263078,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"emlab-ucsb/oceandatr","html_url":"https://github.com/emlab-ucsb/oceandatr","last_synced_at":"2026-07-03T21:01:31.877Z","status":"active","issues_count":47,"pull_requests_count":30,"avg_time_to_close_issue":3226176.34375,"avg_time_to_close_pull_request":16404.275862068967,"issues_closed_count":32,"pull_requests_closed_count":29,"pull_request_authors_count":2,"issue_authors_count":4,"avg_comments_per_issue":1.5106382978723405,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":28,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":3,"past_year_pull_requests_count":7,"past_year_avg_time_to_close_issue":1645625.0,"past_year_avg_time_to_close_pull_request":48839.0,"past_year_issues_closed_count":1,"past_year_pull_requests_closed_count":7,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":0.3333333333333333,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":7,"created_at":"2024-01-25T00:16:30.960Z","updated_at":"2026-07-03T21:01:31.878Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/emlab-ucsb%2Foceandatr","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/emlab-ucsb%2Foceandatr/issues","issue_labels_count":{"documentation":9,"enhancement":3,"good first issue":1,"bug":1},"pull_request_labels_count":{},"issue_author_associations_count":{"CONTRIBUTOR":21,"MEMBER":19,"COLLABORATOR":7},"pull_request_author_associations_count":{"MEMBER":28,"COLLABORATOR":2},"issue_authors":{"echelleburns":21,"jflowernet":19,"jaseeverett":6,"jeffreyhanson":1},"pull_request_authors":{"jflowernet":28,"jaseeverett":2},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-08-05T00:00:19.964Z","repositories_count":14829752,"issues_count":30504475,"pull_requests_count":100847028,"authors_count":11389829,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"COLLABORATOR":2,"MEMBER":1},"past_year_pull_request_author_associations_count":{"MEMBER":7},"past_year_issue_authors":{"jaseeverett":2,"jflowernet":1},"past_year_pull_request_authors":{"jflowernet":7},"maintainers":[{"login":"jflowernet","count":47,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jflowernet"},{"login":"jaseeverett","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jaseeverett"},{"login":"jeffreyhanson","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jeffreyhanson"}],"active_maintainers":[{"login":"jflowernet","count":8,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jflowernet"},{"login":"jaseeverett","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jaseeverett"}]},"events":{"total":{"DeleteEvent":12,"PullRequestEvent":19,"ForkEvent":2,"IssuesEvent":12,"WatchEvent":2,"IssueCommentEvent":2,"PushEvent":82,"CreateEvent":12},"last_year":{"DeleteEvent":5,"PullRequestEvent":5,"ForkEvent":1,"WatchEvent":1,"IssueCommentEvent":1,"PushEvent":40,"CreateEvent":3}},"keywords":[],"dependencies":[{"ecosystem":"cran","filepath":"DESCRIPTION","sha":null,"kind":"manifest","created_at":"2023-08-11T11:54:54.026Z","updated_at":"2023-08-11T11:54:54.026Z","repository_link":"https://github.com/emlab-ucsb/oceandatr/blob/main/DESCRIPTION","dependencies":[{"id":12517562347,"package_name":"R","ecosystem":"cran","requirements":"\u003e= 2.10","direct":true,"kind":"depends","optional":false},{"id":12517562348,"package_name":"magrittr","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":12517562349,"package_name":"mregions2","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":12517562701,"package_name":"sf","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":12517562702,"package_name":"terra","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":12517562752,"package_name":"dplyr","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":12517562753,"package_name":"tidyr","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":12517562754,"package_name":"exactextractr","ecosystem":"cran","requirements":"*","direct":true,"kind":"imports","optional":false},{"id":12517562758,"package_name":"testthat","ecosystem":"cran","requirements":"\u003e= 3.0.0","direct":true,"kind":"suggests","optional":false}]}],"score":3.737669618283368,"created_at":"2024-01-25T00:07:13.667Z","updated_at":"2026-08-05T13:03:30.622Z","avatar_url":"https://github.com/emlab-ucsb.png","language":"R","category":"Biosphere","sub_category":"Conservation and Restoration","monthly_downloads":0,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"---\noutput: github_document\n---\n\n\u003c!-- README.md is generated from README.Rmd. Please edit that file --\u003e\n\n```{r, include = FALSE}\n#for cropping whitespace from around figures, use crop = TRUE\nknitr::knit_hooks$set(crop = knitr::hook_pdfcrop)\n\nknitr::opts_chunk$set(\n  collapse = TRUE,\n  comment = \"#\u003e\",\n  fig.path = \"man/figures/README-\",\n  fig.align = \"center\",\n  fig.width = 7, \n  fig.height = 5,\n  crop = TRUE\n\n)\ndevtools::load_all()\n```\n\n# oceandatr \u003ca href=\"https://emlab-ucsb.github.io/oceandatr/\"\u003e\u003cimg src=\"man/figures/logo.png\" align=\"right\" height=\"139\" alt=\"oceandatr website\" /\u003e\u003c/a\u003e\n\n\u003c!-- badges: start --\u003e\n[![R-CMD-check](https://github.com/emlab-ucsb/oceandatr/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/emlab-ucsb/oceandatr/actions/workflows/R-CMD-check.yaml)\n[![Codecov test coverage](https://codecov.io/gh/emlab-ucsb/oceandatr/graph/badge.svg)](https://app.codecov.io/gh/emlab-ucsb/oceandatr)\n\u003c!-- badges: end --\u003e\n\n`oceandatr` provides simple functions for acquiring, processing and gridding ocean data.\n\nFish images in logo modified from original by Tracey Saxby, [Integration and Application Network](https://ian.umces.edu/media-library)\n\n## Installation\n\nYou can install oceandatr from [GitHub](https://github.com/) with:\n\n```{r, eval = FALSE}\nif (!require(pak)) install.packages(\"pak\")\n\npak::pkg_install(\"emlab-ucsb/oceandatr\")\n```\n\nA Linux user reported having to manually install the `rdflib` and `redland` packages that are required for `mregions2`, which is used by `oceandatr`. If you get an error message regarding those packages or the `librdf0-dev` library, try installing that library from the command line, e.g. on Ubuntu `apt install librdf0-dev`, then running `install.packages(c(\"rdflib\", \"redland\"))` in R.\n\n# Getting gridded ocean data\n\n```{r eval=FALSE}\n#load oceandatr package\nlibrary(oceandatr)\n```\n\n### Obtain an EEZ for an area of interest\n\nFirst we need a boundary for the area we are interested in. We can use the `get_boundary()` function, to get a boundary for land or ocean. In this example we will get Bermuda's Exclusive Economic Zone (EEZ)\n\n```{r area_of_interest}\nbermuda_eez \u003c- get_boundary(name = \"Bermuda\")\n\n#plot to check we have Bermuda's EEZ\nplot(bermuda_eez[1], col = \"lightblue\", main=NULL, axes=TRUE)\n```\n\n## Get a grid\n\nWe are going to get gridded data. To create a grid for Bermuda, we use `get_grid()`. We need to provide a suitable projection for the area we are interested in, https://projectionwizard.org is useful for this purpose. Standard projections used for countries can also be found at https://epsg.io/ by searching with country name. For spatial planning, equal area projections are normally best.\n\nThe bounding box coordinates for the area of interest can be found using `sf::st_bbox(bermuda_eez)` and these can then be used to generate the coordinate reference system (CRS) on [projection wizard](https://projectionwizard.org)\n\nThe coordinates above should be entered as the 'Geographic extent' and the map should then have a box drawn around the bounding box of the area of interest. The projection can then be copied and pasted from the pop-up box when clicking on 'WKT' or 'PROJ'. For brevity, we are using the PROJ string, but WKT is now [generally preferred](https://inbo.github.io/tutorials/tutorials/spatial_crs_coding/). The projection needs to be placed in quotation marks as follows:\n\n```{r projection}\nprojection_bermuda \u003c- '+proj=laea +lon_0=-64.8108333 +lat_0=32.3571917 +datum=WGS84 +units=m +no_defs'\n```\n\nWe can now create a grid for Bermuda's EEZ using `get_grid()`. Along with the projection we found above, we will need to set a resolution: how wide and high will each grid cell be, in this case in metres. The units will depend on your crs and can be found using e.g. `sf::st_crs(projection_bermuda, parameters = TRUE)$units_gdal`\n\n```{r bermuda-grid, warning=FALSE}\nbermuda_grid \u003c- get_grid(boundary = bermuda_eez, resolution = 5000, crs = projection_bermuda)\n\n#project the eez into same projection as grid for plotting\nbermuda_eez_projected \u003c- bermuda_eez |\u003e \n  sf::st_transform(crs = projection_bermuda) |\u003e \n  sf::st_geometry()\n\n#plot the grid\nterra::plot(bermuda_grid, col = \"gold3\", axes = FALSE, legend = FALSE)\nplot(bermuda_eez_projected, add=TRUE)\n```\n\nThe raster covers Bermuda's EEZ. The grid cells would be too small to see if we plotted them, but here is a coarser grid (lower resolution) visualized so we can see what the grid cells look like.\n\n```{r grid_cells}\nbermuda_grid_coarse \u003c- get_grid(boundary = bermuda_eez, resolution = 20000, crs = projection_bermuda)\n\nplot(bermuda_eez_projected, axes = FALSE)\nterra::plot(terra::as.polygons(bermuda_grid_coarse, dissolve = FALSE), add=TRUE)\n```\n\n## Get bathymetry\n\nNow we have a grid, we can get some data. A key piece of data is bathymetry. If the user has bathymetry data for their area of interest already, they can pass the file path to this function and it will grid the data using the supplied spatial grid. If no file path is provided, the function will extract bathymetry data for the area from the [GEBCO 2026 global terrain model](https://www.gebco.net).\n\n```{r bathymetry}\nbathymetry \u003c- get_bathymetry(spatial_grid = bermuda_grid, classify_bathymetry = FALSE)\n\nterra::plot(bathymetry, col = hcl.colors(n=255, \"Blues\"), axes = FALSE) \nplot(bermuda_eez_projected, add=TRUE)\n```\n\n### Depth classification\n\nThe ocean can be classified into 5 depth zones:\n\n* Continental Shelf: 0 - 200 m depth\n* Upper Bathyal: 200 - 800 m depth\n* Lower Bathyal: 800 - 3500 m depth\n* Abyssal: 3500 - 6500 m depth\n* Hadal: 6500+ m depth\n\nWe can get the depth zones for Bermuda simply by setting the `classify_bathymetry` argument in `get_bathymetry` to `TRUE`.\n\n```{r depth_classification}\ndepth_zones \u003c- get_bathymetry(spatial_grid = bermuda_grid, classify_bathymetry = TRUE)\n\n#value of 1 indicates that depth zone is present\nterra::plot(depth_zones, col = c(\"grey60\", \"navyblue\"), axes = FALSE, fun = function(){terra::lines(terra::vect(bermuda_eez_projected))})\n```\n\n## Get geomorphological data\n\nThe seafloor has its own valleys, plains and other geomorphological features just as on land. These data come from [Harris et al. 2014, Geomorphology of the Oceans](https://doi.org/10.1016/j.margeo.2014.01.011) and are available for download from https://www.bluehabitats.org, but all but depth classifications (which can be created using `get_bathymetry()`) and seamounts (which can be retrieved from a more recent dataset using `get_seamounts()`) are included in this package. \n\n```{r geomorphology, warning=FALSE, message=FALSE}\ngeomorphology \u003c- get_geomorphology(spatial_grid = bermuda_grid) |\u003e \n  remove_empty_layers() #can remove any empty layers so we don't have so many layers to plot\n\n#brown colour indicates that geomorphological feature is present\nterra::plot(geomorphology, col = data.frame(c(0,1), c(\"grey60\", \"sienna\")), axes = FALSE, legend = FALSE, fun = function(){terra::lines(terra::vect(bermuda_eez_projected))})\n```\n\n## Get knolls data\n\nKnolls are another geomorphological feature, which are 'small' seamounts, classified as seamounts between 200 and 1000m higher than the surrounding seafloor [Morato et al. 2008](https://doi.org/10.3354/meps07268). Data are the knoll base area data from [Yesson et al. 2011]( https://doi.org/10.1016/j.dsr.2011.02.004).\n\n```{r knolls, warning=FALSE, message=FALSE}\nknolls \u003c- get_knolls(spatial_grid = bermuda_grid)\n\n#value of 1 indicates that knolls are present\nterra::plot(knolls, col = c(\"grey60\", \"grey20\"), axes = FALSE)\nplot(bermuda_eez_projected, add=TRUE)\n```\n\n## Get seamount areas\n\nSeamounts, classified as peaks at least 1000m higher than the surrounding seafloor [Morato et al. 2008](https://doi.org/10.3354/meps07268). These data are from [Yesson et al. 2021](https://doi.org/10.14324/111.444/ucloe.000030). Each peak is buffered to the distance specified in the function call. The units of the buffer are in the same units as the spatial grid, which can be checked using, e.g. `sf::st_crs(bermuda_grid, parameters = TRUE)$units_gdal`\n\n```{r seamounts, warning=FALSE, message=FALSE}\n#spatial grid units are metres, so set buffer to 30000 m = 30 km\nseamounts \u003c- get_seamounts(spatial_grid = bermuda_grid, buffer = 30000)\n\n#value of 1 indicates that seamount is present\nterra::plot(seamounts, col = c( \"grey60\", \"saddlebrown\"), axes = FALSE)\nplot(bermuda_eez_projected, add=TRUE)\n```\n\n## Habitat suitability models\n\nRetrieve habitat suitability data for 3 deep water coral groups:\n\n* Antipatharia: Habitats associated with increased biodiversity in both invertebrate and vertebrate species; global distributions were modeled by [Yesson et al. (2017)](https://doi.org/10.1016/j.dsr2.2015.12.004)\n* Cold water coral: Important habitats and nursery areas for many species; global distributions were modeled by [Davies and Guinotte (2011)](https://doi.org/10.1371/journal.pone.0018483)\n* Octocoral: Important habitats for invertebrates, groundfish, rockfish and other species; global distributions were modeled by [Yesson et al. (2012)](https://doi.org/10.1111/j.1365-2699.2011.02681.x)\n\n\n```{r coral_habitat, warning=FALSE, message=FALSE}\ncoral_habitat \u003c- get_coral_habitat(spatial_grid = bermuda_grid)\n\n#show the seamounts areas on the plot: coral habitat is often on seamounts which are shallower than surrounding ocean floor\n\n#value of 1 indicates that coral is present\nterra::plot(coral_habitat, col = c(\"grey60\", \"coral\"), axes = FALSE, fun = function()terra::lines(terra::as.polygons(seamounts, dissolve = TRUE), col = \"orangered4\"))\n```\n\n## Environmental Zones\n\nBioregions are often included in spatial planning, but available bioregional classifications are either too coarse or too detailed to be useful for planning at the EEZ level. Borrowing methods from [Magris et al. 2020](https://doi.org/10.1111/ddi.13183), we use spatial clustering of biophysical environmental data from [Bio-Oracle](https://bio-oracle.org/), to create 'environmental zones'. Biophysical conditions within a environmental zone are more similar than areas outside that zone, though the differences may be small. Diagnostic boxplots and a PCA will be shown if `show_plots = TRUE`. All the biophysical data are ocean surface data for the period 2010 - 2020:\n\n* Chlorophyll concentration (mean, mg/ m3)\n* Dissolved oxygen concentration (mean)\n* Nitrate concentration (mean, mmol/ m3)\n* pH (mean)\n* Phosphate concentration (mean, mmol/ m3)\n* total Phytoplankton (primary productivity; mean, mmol/ m3)\n* Salinity (mean)\n* Sea surface temperature (max, degree C)\n* Sea surface temperature (mean, degree C)\n* Sea surface temperature (min, degree C)\n* Silicate concentration (mean, mmol/ m3)\n\n```{r environmental_zones, warning=FALSE, message=FALSE}\n#set number of clusters to 3 to reduce runtime and memory usage\nenviro_zones \u003c- get_enviro_zones(spatial_grid = bermuda_grid, show_plots = TRUE, num_clusters = 3)\n```\n\n\n```{r enviro_zones_maps, warning=FALSE, message=FALSE}\n#value of 1 indicates that environmental zone is present\nterra::plot(enviro_zones, col = c(\"grey60\", \"forestgreen\"), axes = FALSE, fun = function(){terra::lines(terra::vect(bermuda_eez_projected))})\n```\n","funding_links":[],"readme_doi_urls":["https://doi.org/10.1016/j.margeo.2014.01.011","https://doi.org/10.3354/meps07268","https://doi.org/10.1016/j.dsr.2011.02.004","https://doi.org/10.14324/111.444/ucloe.000030","https://doi.org/10.1016/j.dsr2.2015.12.004","https://doi.org/10.1371/journal.pone.0018483","https://doi.org/10.1111/j.1365-2699.2011.02681.x","https://doi.org/10.1111/ddi.13183"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/178290","html_url":"https://ost.ecosyste.ms/projects/178290"}