
Florida Artificial Reef Deployments
reefs.RdA cleaned snapshot of the artificial reef deployments published by the Florida Fish and Wildlife Conservation Commission (FWC), one row per deployment. Every row FWC publishes is kept, including rows whose deployment date is only partly known.
Format
A data frame with 4,548 rows and 21 variables:
- deploy_id
Character. FWC deployment identifier, unique across the file. A two-letter county prefix and a number, such as
"BA0621".- county
Character. Florida county responsible for the reef site. 34 counties appear.
- deploy_date
Date. Date of deployment,
NAunlessdate_precisionis"day".- date_precision
Factor with levels
"day","month","year","before", and"unknown". How much of the deployment date FWC recorded.- deploy_year
Integer. Year of deployment.
NAwhendate_precisionis"before"or"unknown".- deploy_month
Integer, 1 to 12. Month of deployment.
NAunlessdate_precisionis"day"or"month".- deploy_before
Integer. Year the deployment is known to predate. Set only when
date_precisionis"before".- deployment_name
Character. Name FWC gives the deployment, often a memorial name or the name of a scuttled vessel.
- description
Character. Free-text description of the material placed, as recorded by FWC.
- primary_material
Character. FWC's material description, left exactly as recorded. It is not a controlled vocabulary: roughly 1,500 distinct strings appear. Use
material_categoryto group deployments.- material_category
Character. FWC's own grouping of the material into
"Concrete","Metal","Module","Other","Rock", or"Vessel".- tons
Numeric. Tons of material deployed.
NAwhere not recorded.- relief
Numeric. Vertical relief above the seafloor, in feet.
- depth
Numeric. Water depth at the site, in feet.
- jurisdiction
Character.
"State"or"Federal"waters.- coast
Character.
"Gulf"or"Atlantic".- lat_dm
Character. Latitude in degrees and decimal minutes, as published, such as
"30° 06.466' N". This is the form marine chartplotters expect.- long_dm
Character. Longitude in degrees and decimal minutes, as published.
- lat_dd
Numeric. Latitude in decimal degrees.
- long_dd
Numeric. Longitude in decimal degrees, negative west of the prime meridian.
- location_accuracy
Character. FWC's rating of positional accuracy:
"High","Medium", or"Low". Reef material can move, degrade, or become buried, and some historical positions have never been verified.
Source
Florida Fish and Wildlife Conservation Commission, Division of Marine Fisheries Management, Artificial Reef Program. Built from layer 12, Artificial Reef Locations in Florida, of https://gis.myfwc.com/mapping/rest/services/Open_Data/Artificial_Reef_Locations_in_Florida/MapServer, last edited 2026-05-13.
Details
FWC records deployment dates at four levels of precision, carried in
date_precision, and leaves a fifth group undated. deploy_date is
filled in only when the source gives a full calendar date; missing
days and months are not invented. Use deploy_year, deploy_month,
and deploy_before to work with the partial dates:
"day"Full date.
deploy_date,deploy_year, anddeploy_monthare all set. 4,226 rows."month"Month and year known, day unknown.
deploy_dateisNA. 10 rows."year"Year known only.
deploy_dateanddeploy_monthareNA. 269 rows."before"Deployed at some point before a stated year, carried in
deploy_before. All other date fields areNA. 26 rows."unknown"No deployment date recorded at all. Every date field is
NA. 17 rows, all of them early deployments that the printed FWC lists describe as "Pre-1970".
A tonnage of 0 in the source means "not recorded" rather than a
zero-ton deployment, and is stored as NA. Large tonnages are real:
they come from mitigation boulder fields, bridge demolitions, and
scuttled ships.
relief and depth are in feet.
The date FWC last edited any record in this snapshot is stored on the
data frame, so the vintage travels with the data:
attr(reefs, "snapshot_date").
Source and cleaning
reefs is a cleaned copy of what the FWC feature service returns
rather than a reworking of it. All 4,548 deployments are kept and no
row is filtered. The build script is data-raw/reefs.R, which is not
installed with the package; the download and the cleaning it calls are
the same internal code fetch_reefs() uses, so the snapshot and a
live fetch cannot drift apart.
The service publishes these fields: DeployID, County, DDate,
DeployDate, Description, Name, MatDescrip, MatCat,
Tonnage, Relief, Depth, Jurisdiction, Coast, Lat_DM,
Long_DM, Lat_DD, Long_DD, and LocAccuracy, alongside internal
identifiers and geometry that are not carried over.
Four changes are applied:
Field names are converted to snake_case, and a few are renamed for clarity:
Namebecomesdeployment_name,MatDescripbecomesprimary_material,MatCatbecomesmaterial_category, andTonnagebecomestons.DDate, an integer of the formyyyymmddthat uses00and99as sentinels for unknown parts, becomesdeploy_dateplusdate_precision,deploy_year,deploy_month, anddeploy_before.A recorded tonnage of 0 becomes
NA, affecting 1,162 rows.LocAccuracy, coded 1 to 3, is spelled out as"Low","Medium", and"High", matching FWC's own printed lists.
Rows are sorted by deploy_id. Nothing else is touched:
primary_material and the degrees-and-minutes coordinate strings are
left exactly as the service returns them.
Comparison with the published Excel list
FWC also distributes an Excel list of the same deployments. The two agree on every deployment, on all coordinates, and on tonnage, relief, depth, county, coast, jurisdiction, and accuracy. They differ in three small ways, all of which favour the service:
The service keeps inch marks that the spreadsheet drops, so a material reads
Piling 3-6" X 12" X 12"rather thanPiling 3-6' X 12 X 12. This affects 24 rows.The service carries
material_category, which the spreadsheet has no equivalent for.The spreadsheet records 17 early deployments as
Pre-1970, where the service gives no date at all. Those rows appear here withdate_precisionof"unknown". This is the one respect in which the spreadsheet holds more information.
Examples
str(reefs)
#> 'data.frame': 4548 obs. of 21 variables:
#> $ deploy_id : chr "BA0001" "BA0002" "BA0003" "BA0004" ...
#> $ county : chr "Bay" "Bay" "Bay" "Bay" ...
#> $ deploy_date : Date, format: NA NA ...
#> $ date_precision : Factor w/ 5 levels "day","month",..: 5 5 5 5 5 3 3 1 1 1 ...
#> $ deploy_year : int NA NA NA NA NA 1970 1975 1977 1978 1978 ...
#> $ deploy_month : int NA NA NA NA NA NA NA 9 7 7 ...
#> $ deploy_before : int NA NA NA NA NA NA NA NA NA NA ...
#> $ deployment_name : chr "Elvira" "Life Boats (Bay)" "Navy Barge" "Davis Barge" ...
#> $ description : chr "The \"Elvira\", About 200 Feet West of The PCMI Barge" "7 Lifeboats, Tied Together" "Navy Barge" "Davis Barge" ...
#> $ primary_material : chr "Vessel 70'" "Lifeboats" "Barge" "Barge" ...
#> $ material_category: chr "Vessel" "Vessel" "Vessel" "Vessel" ...
#> $ tons : num NA NA NA NA NA NA 355 NA NA NA ...
#> $ relief : num 0 0 0 0 0 6 30 20 25 8 ...
#> $ depth : num 70 25 42 55 20 70 190 72 65 74 ...
#> $ jurisdiction : chr "State" "State" "State" "State" ...
#> $ coast : chr "Gulf" "Gulf" "Gulf" "Gulf" ...
#> $ lat_dm : chr "30° 06.694' N" "30° 06.948' N" "30° 04.455' N" "30° 00.454' N" ...
#> $ long_dm : chr "85° 49.799' W" "85° 42.347' W" "85° 42.365' W" "85° 36.472' W" ...
#> $ lat_dd : num 30.1 30.1 30.1 30 30.1 ...
#> $ long_dd : num -85.8 -85.7 -85.7 -85.6 -85.7 ...
#> $ location_accuracy: chr "Low" "Low" "High" "Low" ...
#> - attr(*, "snapshot_date")= Date[1:1], format: "2026-05-13"
attr(reefs, "snapshot_date")
#> [1] "2026-05-13"
table(reefs$coast, reefs$jurisdiction)
#>
#> Federal State
#> Atlantic 758 530
#> Gulf 1213 2047
# What the reefs are made of
sort(table(reefs$material_category), decreasing = TRUE)
#>
#> Module Concrete Vessel Metal Rock Other
#> 2006 1448 572 281 161 80
# How much of the deployment date is known
table(reefs$date_precision)
#>
#> day month year before unknown
#> 4226 10 269 26 17
# Deployments with a full date, most recent first
dated <- reefs[reefs$date_precision == "day", ]
head(dated[order(dated$deploy_date, decreasing = TRUE), c(
"deploy_id", "deploy_date", "county", "material_category"
)])
#> deploy_id deploy_date county material_category
#> 1277 DA0278 2026-04-19 Miami-Dade Module
#> 2284 LE0139 2026-04-06 Lee Concrete
#> 4146 ST0260 2026-03-30 Sarasota Module
#> 3113 OK0549 2026-03-23 Okaloosa Vessel
#> 4145 ST0259 2026-03-23 Sarasota Module
#> 4147 ST0261 2026-03-23 Sarasota Module