Epost

Hvordan lage en 3D batymetrisk havbunnsmodell fra QGIS

Denne veiledningen forklarer hvordan batymetriske dybdekurver fra Kartverket kan konverteres til en kontinuerlig 3D-modell av havbunnen ved hjelp av QGIS.

Arbeidsflyten transformerer dybdekoter til en rasterbasert høydemodell som representerer havbunnens morfologi. Resultatet kan brukes til visualisering og romlig analyse i verktøy som Blender eller digitale tvillingmiljøer.

Resultat

Result:
En kontinuerlig 3D havbunnsmodell eksportert som GeoTIFF DEM, med valgfritt høydekart egnet for 3D-visualisering og displacement-arbeidsmetoder..

Eksempel:
Vis interaktiv 3D havbunn eksempel →

⚠️ Bruksområder

Kun for visualiseringsformål

Arbeidsflyten beskrevet i denne artikkelen er utelukkende ment for visualisering, konseptuell analyse og generell romlig forståelse av havbunnsforhold. Genererte 3D-modeller skal ikke benyttes til navigasjon, maritime operasjoner, ingeniørfaglige beslutninger, mudringsplanlegging, bygge- og anleggsarbeid eller andre sikkerhetskritiske vurderinger. Modellene erstatter ikke hydrografiske undersøkelser, offisielle sjøkart eller godkjente dybdemålinger.

Steg 1 — Opprett arbeidsområde (Project Extent)

Et dedikert arbeidsområde sikrer at alle eksporterte datasett får identisk geografisk utstrekning. Dette garanterer korrekt justering mellom:

  • Høydedata
  • Teksturer
  • Shapefiler
  • GeoJSON-eksporter
  • 3D-modeller

Opprett Shapefile-lag

Layer → Create Layer → New Shapefile Layer

Innstillinger:

  • Geometri: Polygon
  • CRS: EPSG:25835 — ETRS89 / UTM sone 35N
  • Eksempelnavn: Extent-locations.shp

Klikk OK.

Tegn arbeidsområdet

  • Velg shapefile-laget
  • Aktiver Toggle Editing
  • Velg Add Polygon Feature
  • Tegn avgrensningen for prosjektområdet
  • Lagre endringer
Important: ⚠️ Dette polygonet skal brukes som eksportområde gjennom hele arbeidsflyten for å unngå feiljusterte datasett senere.

Steg 2 — Last inn batymetriske dybdekurver

Legg til Dybdekurve fra Kartverket / Geonorge WFS-tjenesten.
All prosessering bør utføres på lokalt lagrede data — ikke direkte fra WFS.

Eksporter kurver lokalt

Høyreklikk laget →
Export → Save Features As

Innstillinger:

  • Format: GeoPackage
  • CRS: EPSG:25835
  • Filnavn: depth_contours.gpkg
  • Eksportfelt: dybde
  • Geometry type: Automatic
  • Aktiver Include Z-dimension
  • Extent: Arbeidspolygon (Steg 1)

Click OK.

Tip: Lokal eksport gir betydelig bedre ytelse under interpolasjon.

Steg 3 — Konverter dybde til havbunnshøyde

Batymetridata representerer dybde under havnivå og må konverteres til negative høydeverdier.

Høyreklikk laget →
Attribute Table → Field Calculator

Opprett nytt felt:

  • Navn: depth_neg
  • Type: Decimal number (real)

Uttrykk:

– «DYBDE»

Klikk OK, aktiver redigering og lagre, eller (CTRL + E).

Steg 4 — Legg til kystlinje som begrensning

Kystlinjen definerer havnivået under interpolasjon.
Legg til Kystkontur fra samme WFS-tjeneste.

Eksporter kystlinje

Høyreklikk laget → Save Features As

  • Format: GeoPackage
  • CRS: EPSG:25835
  • Filnavn: coastline.gpkg
  • Extent: Arbeidspolygon

Klikk OK.

Definer havnivå

Åpne Attribute Table → Field Calculator
Opprett felt:

  • Navn: depth_neg
  • Type: Decimal number

Uttrykk:

0

Lagre endringer, eller (CTRL + E)

Kystlinjen representerer nå havnivå og forhindrer interpolasjonsartefakter nær land.

Steg 5 — Slå sammen input-lag

TIN-interpolasjon krever ett samlet høydedatasett.
Åpne:

Processing Toolbox → Merge Vector Layers

Input:

  • depth_contours
  • coastline
  • Output: seabed_input.gpkg


Klikk Run.

Resultat.

Steg 6 — TIN-interpolasjon (Kjerneprosess)

Åpne:
Processing Toolbox → TIN Interpolation

Innstillinger:

  • Vector layer: seabed_input
  • Attribute: depth_neg
  • Type: Structure lines
  • Method: Linear

Sett arbeidsutstrekning
Begrens interpolasjonen til prosjektpolygonet fra Steg 1.

Pixel Size

Pixel Size X = 5 Pixel Size Y = 5
Tip: Dersom rasteret blir ekstremt stort, er pixel-størrelsen for lav. 5 meter gir vanligvis god balanse mellom detaljnivå og Blender-ytelse.

Output Raster
Lagre som: heightmap_interpolations.tif

Klikk Run.
Resultatet er en kontinuerlig høydemodell av havbunnen.

Steg 7 — Valgfritt: Klargjør heightmap for Blender

For displacement-arbeidsflyter i Blender (uten BlenderGIS) bør høydeverdier normaliseres.

Åpne:
Raster → Raster Calculator

Uttrykk:

(«heightmap_interpolations@1» + 100) / 100

Output: seabed_normalized.tif

Normalisering konverterer høydeverdier til et 0–1-område kompatibelt med 3D-displacement.

Arbeidsflyt – oversikt

Batymetriske kurver → Negative høydeverdier → Kystlinje = havnivå → Sammenslåing av lag → TIN-interpolasjon → Havbunn DEM → (Valgfritt) normalisering → 3D-visualisering

Sluttresultat

Den genererte DEM-modellen gir en realistisk representasjon av havbunnens morfologi, egnet for:

  • havnevisualisering
  • planleggingsdiskusjoner
  • digitale tvillingmiljøer
  • konseptpresentasjoner

Avsluttening

Å generere en 3D batymetrisk modell fra kotedata gir en praktisk metode for å forstå undervannsterreng uten behov for spesialisert måleprogramvare eller komplekse prosesseringskjeder.

Ved å kombinere åpne batymetriske datasett med QGIS-interpolasjon kan havbunnsdata transformeres til en kontinuerlig 3D-overflate egnet for visualisering, planlegging og digitale tvillinger.

Selv om arbeidsflyten er utviklet for visualisering fremfor operasjonell presisjon, gjør den det mulig for interessenter å raskt forstå romlige sammenhenger under havnivå — og støtter kommunikasjon, konseptutvikling og tidligfaseanalyse.

Konsistent prosjektutstrekning, korrekt koordinatsystem og riktig begrenset interpolasjon er nøkkelfaktorene for stabile og gjenbrukbare havbunnsmodeller.

Den ferdige GeoTIFF-DEM-filen eller normaliserte heightmapen kan integreres i:

  • Blender/Unreal
  • Webbaserte 3D visere feks
    • Webgl + Threejs
    • 3D Vista/Pano2VR
    • +++
  • Interaktiv demonstrasjoner/presentasjoner.

Tor-Verner