Skip to main content

lithovox-exports

Zet de voxelmodellen die LithoVox levert (corridormodellen, .nc) om naar invoer voor je eigen software: D-Stability, XSLOPE, DXF en CSV per dwarsdoorsnede, en GLB, 3D Tiles en LAZ voor het hele model. Daarnaast maakt het pakket figuren (kaart, doorsnede, grondkolom) en geeft het de grondopbouw op elk punt als een virtuele boring.

Uitgebreide, uitgelegde voorbeelden staan in het notebook notebooks/voorbeelden.ipynb.

Installatie

pip install lithovox-exports

of, in een uv-project, uv add lithovox-exports. Python 3.12 of nieuwer.

Snel aan de slag

from lithovox_exports import Model

model = Model("model.nc")
print(model.name, model.length, model.crs, model.soils)

# De dwarsdoorsnede bij metrering 250 m, als D-Stability-model
doorsnede = model.cross_section(250)
doorsnede.to_dstability("km0.250.stix")

Het model

Een corridormodel volgt een referentielijn: s is de metrering (m langs de lijn), d de afstand tot de lijn (m, negatief buitenwaarts, positief binnenwaarts) en z de hoogte.

model.length            # lengte van de referentielijn (m)
model.offsets           # (buitenrand, binnenrand) in m tot de lijn
model.heights           # onder- en bovenkant van het grid
model.voxel_size        # (langs, dwars, hoog) in m
model.crs               # bijvoorbeeld "EPSG:28992"
model.vertical_datum    # bijvoorbeeld "NAP", of None als het onbekend is
model.soils             # namen van de grondsoorten, in de volgorde van hun codes
model.colors            # kleur per grondsoort
model.plot_map(chainages=[250, 500])   # kaart met de plekken van doorsneden

Dwarsdoorsneden

Een dwarsdoorsnede ligt haaks op de referentielijn, bij de modelkolom die het dichtst bij de gevraagde metrering ligt. De grenzen tussen grondsoorten worden uit de voxels opgespoord en gladgemaakt tot polygonen die hun punten precies met hun buren delen en geen gaten hebben (zoals D-Stability vereist).

doorsnede = model.cross_section(250)                # gladgemaakte grenzen
trap = model.cross_section(250, smoothing=0)        # de trap van de voxels

doorsnede.to_dstability("km0.250.stix")   # D-Stability
doorsnede.to_xslope("km0.250.zip")        # XSLOPE: .xlsx + kleuren, gezipt
doorsnede.to_xslope("km0.250.xlsx")       # of de .xlsx met *_styles.json ernaast
doorsnede.to_dxf("km0.250.dxf")           # DXF (GEO5, CAD)
doorsnede.to_csv("km0.250.csv")           # hoekpunten van de polygonen
doorsnede.plot()                          # figuur (matplotlib)

Om de 50 m langs het hele model:

for doorsnede in model.cross_sections(every=50):
    doorsnede.to_dstability(f"{doorsnede.label}.stix")   # km0.000.stix, km0.050.stix, ...

Eigen grondsoorten en parameters (D-Stability, XSLOPE)

Standaard hebben de grondsoorten alleen een naam. Geef een D-Stability-bestand met je grondsoortenbibliotheek mee om die grondsoorten en parameters te gebruiken. Een modelgrondsoort krijgt de bibliotheekgrondsoort met dezelfde code of naam (hoofdletters, spaties, _ en - maken niet uit), of de grondsoort die je in mapping noemt (naam van de modelgrondsoort → code in de bibliotheek; None voor geen):

doorsnede.to_dstability(
    "km0.250.stix",
    soils="mijn_grondsoorten.stix",
    mapping={"hollandveen": "VEEN", "jonge_zeeklei_na": "KLEI"},
)
doorsnede.to_xslope("km0.250.zip", soils="mijn_grondsoorten.stix", mapping={"hollandveen": "VEEN"})

Heb je de grondsoorten van het model in LithoVox Soils gekoppeld, geef dan het .lvs-bestand (LithoVox soils) mee dat het schrijft. Daarin staan de koppeling en de parameters samen, dus mapping is niet nodig (geef je die toch, dan vult hij de koppeling aan of vervangt hij delen ervan):

doorsnede.to_dstability("km0.250.stix", soils="reflijn_kruin.lvs")

Is het .lvs gemaakt voor een ander model, of een andere versie ervan (het bestand noemt wanneer LithoVox het model maakte en de controlesom van het .nc), dan krijg je een waarschuwing.

XSLOPE-materialen krijgen de volumegewichten en, bij Mohr-Coulomb, c en phi. Waterspanningen, belastingen, mesh en rekeninstellingen vul je altijd zelf in.

Grondopbouw op een punt

kolom = model.soil_column(250, 10)          # metrering 250 m, 10 m binnenwaarts
kolom = model.soil_column_at(x, y)          # op wereldcoördinaten
for laag in kolom.layers:
    print(laag.top, laag.bottom, laag.soil)
kolom.plot(colors=model.colors)

Het hele model

model.to_glb("model.glb")      # 3D-mesh, bijvoorbeeld Blender of een 3D-viewer
model.to_tiles("tiles.zip")    # OGC 3D Tiles (3d/tileset.json), bijvoorbeeld Cesium, ArcGIS
model.to_laz("model.laz")      # puntenwolk, bijvoorbeeld QGIS, ArcGIS

Elk neemt voxel_width en voxel_height (m; standaard 1,0 en 0,2): het model wordt getoond met voxels van ongeveer die grootte, die elk de grondsoort krijgen die de meeste van hun modelvoxels hebben. Grotere voxels geven kleinere bestanden. Het model wordt in brokken gelezen, dus ook grote modellen passen in het geheugen.

Coördinaten

  • Doorsneden: x is de afstand tot de referentielijn (m, positief binnenwaarts), z de hoogte. doorsnede.start en doorsnede.end geven de wereldcoördinaten van de uiteinden.
  • Het hele model en de grondkolommen: het coördinatenstelsel van het model (model.crs). De GLB is in lokale meters rond een oorsprong die in zijn extras staat. De LAZ heeft een punt per voxel met klasse 64 + de code van de grondsoort (model.soils[code]).
  • 3D Tiles rekent met ellipsoïdische hoogtes. Bij een onbekend verticaal datum wordt de modelhoogte daarvoor genomen; het model ligt dan horizontaal goed maar kan verticaal afwijken ("accurate": false in tileset.json).

Opdrachtregel

lithovox-exports info model.nc
lithovox-exports doorsnede model.nc 250 km0.250.stix --grondsoorten mijn_grondsoorten.stix
lithovox-exports doorsnede model.nc 250 km0.250.stix --grondsoorten reflijn_kruin.lvs
lithovox-exports model model.nc model.laz --breedte 2 --hoogte 0.5

Het formaat volgt uit de extensie: .stix, .xlsx, .zip (XSLOPE), .dxf, .csv of .png voor een doorsnede; .glb, .laz of .zip (3D Tiles) voor het hele model.

Meer

doorsnede.polygons bevat de grondpolygonen zelf (soil is een index in model.soils, points de omtrek als (x, z)), model.metadata alle metadata van het model en model.grid het grid, als je zelf een export wilt maken.

Vragen, of een formaat dat je mist: lithovox@pm.me, https://www.lithovox.com.

Metadata

Release files for lithovox-exports 0.2.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lithovox-exports 0.2.4
File Size Uploaded Provenance Actions
lithovox_exports-0.2.4.tar.gz 86.1 kB With provenance Details for lithovox_exports-0.2.4.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for lithovox-exports 0.2.4
File Interpreter ABI Platform Actions
lithovox_exports-0.2.4-py3-none-any.whl Python 3 none any Details for lithovox_exports-0.2.4-py3-none-any.whl

Total release size: 177.4 kB

Release files / lithovox_exports-0.2.4.tar.gz

Download URL lithovox_exports-0.2.4.tar.gz
Size 86.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ec25135ae7e6adca7bab0e9d263c058ab7ef78323bf2559de3079feb6686e19b
BLAKE2b-256 checksum
How to use checksums
c1ea71af5c9fde44253a0d1fc8af5cdea70a6bbbcf5fa687b252875a3d1aeaf1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 2, 2026.

Transparency log

Release files / lithovox_exports-0.2.4-py3-none-any.whl

Download URL lithovox_exports-0.2.4-py3-none-any.whl
Size 91.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d3835d27dc769d2e7760aaeef4ce3dfbf0cf7d79d88ae18dbb5e1fb6dae16b93
BLAKE2b-256 checksum
How to use checksums
32f7ad2d34a66078c8d6358b4960b025b7dcc7372170587c2e217df86c0aa405
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 2, 2026.

Transparency log

Security for lithovox-exports 0.2.4

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for lithovox_exports-0.2.4.tar.gz

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 Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page