OpenSpeleoLib
OpenSpeleoLib reads, writes, validates, and converts cave-survey data.
GeoJSON conversion
Convert an Ariane TML survey with:
openspeleo convert -i survey.tml -o survey.geojson -f geojson
Shot colors
GeoJSON preserves recorded Ariane shot colors, with survey-color fallback for missing or invalid values. See shot-color export for the normalization, compatibility, and verification contract.
Coordinate safety guard
A connected shot can contain both survey measurements and an explicit geographic
endpoint. During GeoJSON conversion, explicit coordinates remain authoritative,
but OpenSpeleoLib calculates where the shot should end from its length, depth,
azimuth, unit, and magnetic declination. If the supplied and calculated
endpoints differ by more than 500 metres, conversion raises
InconsistentShotCoordinatesError.
For example, synthetic Shot ID 4242 with supplied coordinates (-70, 40) and
a calculated endpoint near (40, -70) produces an error containing:
[Shot ID=4242]: Explicit coordinates are inconsistent with shot measurements
The 500-metre threshold is a fixed catastrophic-data guardrail, not a survey-quality or GPS-accuracy guarantee. Coordinates within the threshold are accepted without certifying their accuracy. Root anchors and connected anchors whose parents cannot be resolved cannot be compared and retain their existing behavior.
The library never swaps coordinates, guesses a correction, or emits a partially
converted GeoJSON document. The CLI calculates and validates the complete
document before opening the output path: a failed conversion does not create a
new output and does not replace an existing output passed with --overwrite.
Correct the source survey and run the conversion again.
Metadata
Release files for openspeleo-lib 0.0.20
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openspeleo_lib-0.0.20.tar.gz | 35.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openspeleo_lib-0.0.20-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 77.1 kB
Release files / openspeleo_lib-0.0.20.tar.gz
| Download URL | openspeleo_lib-0.0.20.tar.gz |
|---|---|
| Size | 35.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
462d1858f11c3e8297c9b4859482ae4613d91cc212f8d784cc5a7965663ee8e0
|
|
BLAKE2b-256 checksum How to use checksums |
63ca07ac0e01f550dab61c452204df84586d1658700dcc8cf6554a648d65738f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency logRelease files / openspeleo_lib-0.0.20-py3-none-any.whl
| Download URL | openspeleo_lib-0.0.20-py3-none-any.whl |
|---|---|
| Size | 41.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ce66e29767f70bba6d80ec82606a3c01584a899f0d6254e6c4df00729041c68b
|
|
BLAKE2b-256 checksum How to use checksums |
5dcd2324e43fa556070de3b7e760e74f2df9f4e790a045eb9c426fe0f09555a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.
Transparency log