How to read the map
The map lists open subsurface datasets: wells, seismic, horizons, production. Each one is described by a record that repeats what its publisher says. This page explains the level next to each dataset, how to take a layer into your own tools, and how to add a dataset.
The levels
Every dataset carries a level. A tool sets it by checking the dataset; nobody types it by hand. The levels are a ladder: a dataset reaches a level only after it has passed every level below.
| Level | What it means | Who checks it |
|---|---|---|
| L0 listed | A record exists with the publisher, the place to get the data and the licence, as the publisher states them. | a contributor, by pull request |
| L1 reachable | The publisher's page for the dataset answers. | the verifier, over the network |
| L2 checksummed | The files have been fetched and hashed, and the licence text has been saved. | the verifier |
| L3 outlined | The wellbores and survey outlines on the map were read from the data itself. | the outline extractor |
| L4 converted | The data has been read into a standard form, with a record of what was kept and what was lost. | the Ophiolite readers |
stale next to a level means the last check is more than 30 days old. The level was true then; it may not be now.
A dashed outline is a placeholder drawn by hand to show roughly where the data lies. It is not taken from the data, and it keeps the dataset at L1 or below. A blue dashed rectangle is the area the record states, not the data's real footprint. Green circles are wellbores; where they are dense they are grouped into one circle with a count until you zoom in.
Taking a layer into your own tools
Every outline on the map is in one GeoJSON file, in longitude and latitude (EPSG:4326). Each
feature has a record_id that names the dataset it belongs to. The detail panel on the map
shows these three cards for the dataset you selected; here they are for Volve.
record_id.
https://opensubsurfacedata.org/data/outlines.geojson
import json, urllib.request
fc = json.load(urllib.request.urlopen("https://opensubsurfacedata.org/data/outlines.geojson"))
mine = [f for f in fc["features"] if f["properties"]["record_id"] == "equinor/volve"]
print(len(mine), "features")import json, urllib.request
recs = json.load(urllib.request.urlopen("https://opensubsurfacedata.org/data/records.json"))["records"]
volve = next(r for r in recs if r["id"] == "equinor/volve")
print(volve["origin"]["url"], "|", volve["licence"]["name"])
Fetching the files by a manifest, and reading them straight into Ophiolite, are planned but not built yet.
The licence rule
The publisher's page is the authority. A record repeats what the publisher says about the
licence, including unknown when the publisher does not say. Nothing on this site is legal
advice. Before you use or share a dataset, read the licence on the publisher's own page.
Adding a dataset
- Copy
records/_template.yamltorecords/<publisher>/<dataset>.yamlin the repository. - Fill in only what the publisher states.
unknownis a fine answer for a licence field. - Open a pull request. The check validates the record and tries the publisher's page, and a reviewer compares the licence fields with that page.
An outline can be added the same way, under outlines/. See
CONTRIBUTING.md.