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.
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.
.shp in QGIS and check the layer's CRS against the .prj.decimalLatitude and decimalLongitude are defined in WGS 84 and nothing downstream will ask what you meant.footprintWKT for polygons.coordinateUncertaintyInMeters, and it is the single most common thing missing from data that has already been published.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 →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.