You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Spun out of #187 (add IGSN physical samples to the map). Before implementing, we probed
the live DataCite API (2026-07-01) to size the IGSN/PhysicalObject corpus and understand
its metadata quality. The numbers show the full corpus cannot be ingested as individual
map markers and needs a dedicated scaling strategy. This issue records the research and
the candidate approaches so the initial implementation can stay scoped to a bounded subset.
Corpus size (DataCite types.resourceTypeGeneral:PhysicalObject)
Metric
Count
Total PhysicalObject records
16.1 M
…with geoLocations
15.0 M (93%)
…with geoLocationPoint
13.4 M
…with geoLocationBox / geoLocationPolygon
3 / 0
geoLocations, place-name only (no point)
1.6 M
Geometry is essentially all points (geoLocations[].geoLocationPoint.{pointLatitude, pointLongitude}); boxes/polygons are negligible. Temporal coverage via dates[]
(dateType:"Collected").
By publisher
Publisher
PhysicalObject records
Coords in DataCite?
Related identifiers
Geoscience Australia
7.35 M
(mostly points)
not assessed
SESAR
5.83 M
✅ geoLocationPoint (~93%)
✅ real values (13 k with DOI links)
GFZ Data Services
38 k
❌ none (geoLocations: [] for all)
❌ target value null
GFZ caveat: GFZ sample coordinates are not in DataCite — they are only
server-rendered in the GFZ IGSN HTML landing page
(dataservices.gfz-potsdam.de/igsn/esg/index.php?igsn=<IGSN>). A 40-page sample showed
~65% with real coords, ~35% "N/A". Harvesting GFZ therefore requires HTML scraping.
Sample ↔ work relationship metadata
DataCite relatedIdentifiers is the source of truth: 57,610 PhysicalObjects have IsCitedBy/IsReferencedBy → DOI (SESAR ~13 k). Targets include papers and datasets.
Scholix / Scholexplorer: returned 0 links even for samples DataCite marks as cited —
poorly populated for IGSN.
OpenAlex: indexes some samples as type other but with 0 referenced/related works and
no geo.
OpenAIRE Graph API: knows samples but relationship extraction is unclear and the
endpoint was flaky (503s); redundant with DataCite.
Candidate approaches for the full corpus
Server-side aggregation / clustering (primary). Store samples but serve the map
aggregated density (server-side clustering, heatmap, or vector tiles) instead of
per-sample markers; drill down to individual points only at high zoom. Most infra work
(new storage + tile/aggregation endpoint) but the only approach that scales to millions.
Live bbox-proxy overlay (no DB storage). Query DataCite live for the current viewport
above a zoom threshold; show points on demand; store nothing. Keeps DB/map light, always
fresh, but couples the map to DataCite availability.
Bounded harvested subset. Ingest only a filtered slice (one provider, a study region,
a date range, or only samples that link to a publication) so counts stay in the thousands
and the existing map/API/feeds work unchanged. (This is what Add samples from IGSN to the map #187's initial implementation
uses.)
Only samples linked to existing works. Harvest just the samples referenced by
publications already in OPTIMAP (via DataCite relatedIdentifiers). Tiny counts; ties
into work↔work relationship linking.
Context
Spun out of #187 (add IGSN physical samples to the map). Before implementing, we probed
the live DataCite API (2026-07-01) to size the IGSN/
PhysicalObjectcorpus and understandits metadata quality. The numbers show the full corpus cannot be ingested as individual
map markers and needs a dedicated scaling strategy. This issue records the research and
the candidate approaches so the initial implementation can stay scoped to a bounded subset.
Corpus size (DataCite
types.resourceTypeGeneral:PhysicalObject)PhysicalObjectrecordsgeoLocationsgeoLocationPointgeoLocationBox/geoLocationPolygonGeometry is essentially all points (
geoLocations[].geoLocationPoint.{pointLatitude, pointLongitude}); boxes/polygons are negligible. Temporal coverage viadates[](
dateType:"Collected").By publisher
geoLocationPoint(~93%)geoLocations: []for all)nullGFZ caveat: GFZ sample coordinates are not in DataCite — they are only
server-rendered in the GFZ IGSN HTML landing page
(
dataservices.gfz-potsdam.de/igsn/esg/index.php?igsn=<IGSN>). A 40-page sample showed~65% with real coords, ~35% "N/A". Harvesting GFZ therefore requires HTML scraping.
Sample ↔ work relationship metadata
relatedIdentifiersis the source of truth: 57,610 PhysicalObjects haveIsCitedBy/IsReferencedBy→ DOI (SESAR ~13 k). Targets include papers and datasets.poorly populated for IGSN.
otherbut with 0 referenced/related works andno geo.
endpoint was flaky (503s); redundant with DataCite.
Candidate approaches for the full corpus
aggregated density (server-side clustering, heatmap, or vector tiles) instead of
per-sample markers; drill down to individual points only at high zoom. Most infra work
(new storage + tile/aggregation endpoint) but the only approach that scales to millions.
above a zoom threshold; show points on demand; store nothing. Keeps DB/map light, always
fresh, but couples the map to DataCite availability.
a date range, or only samples that link to a publication) so counts stay in the thousands
and the existing map/API/feeds work unchanged. (This is what Add samples from IGSN to the map #187's initial implementation
uses.)
publications already in OPTIMAP (via DataCite
relatedIdentifiers). Tiny counts; tiesinto work↔work relationship linking.
Suggested next steps
before any large ingest.