dwcready

Getting occurrence records out of a shapefile and into GBIF

Shapefile → Darwin Core Archive

What you are seeing — your survey data lives in a shapefile, and GBIF's publishing tools want a Darwin Core Archive.

The short answer

GBIF does not ingest shapefiles. It wants a Darwin Core Archive — a zip holding a delimited text table, a meta.xml describing the columns, and an eml.xml describing the dataset. So the shapefile has to become a table first.

If your features are points, this is mostly mechanical: export the attribute table to CSV with the X and Y as columns, confirm the projection is WGS 84, and you have the raw material for an occurrence table.

If your features are polygons or lines, stop before exporting, because there is a real decision here that no tool should make silently. A Darwin Core occurrence record is a point observation. Reducing a polygon to its centroid invents a coordinate the surveyor never recorded, and it can land outside the polygon entirely for a crescent-shaped site. Darwin Core has footprintWKT for exactly this, and it is the honest field. We refuse non-Point geometries by name rather than centroiding them.

One loss is already baked in by the time you get the file. The shapefile specification caps field names at 10 characters, so any Darwin Core term longer than that was truncated when the shapefile was written, and the original spelling is not recoverable from the file. This is a good reason to confirm columns from their values rather than their headers — of 5,064 already-published records we checked, we confirmed terms this way and still found 4,268 things worth reporting.

What to export

  1. Load the .shp in QGIS and check the layer's CRS against the .prj.
  2. Reproject to EPSG:4326 (WGS 84) if it is anything else. Darwin Core's decimalLatitude and decimalLongitude are defined in WGS 84 and nothing downstream will ask what you meant.
  3. Export → Save Features As → CSV, with Geometry: AS_XY for points, or keeping footprintWKT for polygons.
  4. Record what the survey's positional accuracy actually was, in metres, while you still remember it. It becomes coordinateUncertaintyInMeters, and it is the single most common thing missing from data that has already been published.
Bring us the CSV, not the shapefile

We have no shapefile reader, so there is no point uploading one. Export the attribute table first. Then we will map the columns to Darwin Core by checking their values, build the archive, and list every column we refused to interpret and why — before you submit anything.

Once it is a table, bring it here →

Why we can say that

5,064records already published to GBIF
0findings in GBIF's vocabulary
4,268findings from ours
31.7%came back clean

We audited a file GBIF had already accepted and served. Their validator answers will this load; these had loaded. Figures read from ops/data.json, not typed into this page. We do not issue a rating of any kind — every finding names the rule it applied and where that rule comes from.

Related