Voxelmodellen in QGIS

Ik heb wat hulp nodig bij het gebruiken van 3D voxelmodellen in QGIS (als het überhaupt al mogelijk is om voxelmodellen in QGIS te gebruiken). De datasets die ik wens te gebruiken betreffen de zoet-zout verdeling in Zeeland (FRESHEM Zeeland), en datasets over de ondergrond (REGIS II en GeoTOP, via dinoloket). Alle datasets zijn voxelmodellen, met een resolutie van 50x50x0.5m (xyz).

In de bijgevoegde figuren zijn 3D visualaties hiervan te zien. De 3D-visualisatie van FRESHEM is gemaakt in iMod, en degene van GeoTOP in subsurfaceviewer. (kan schijnbaar maar 1 afbeelding toevoegen)

Het probleem waar ik mee zit gaat over het verwerken en processen van de data. Ik wil namelijk de link leggen tussen zoet-zout in de ondergrond, met de aanwezige (hydro)geologische lagen. Zodra ik FRESHEM data importeer in QGIS (als .asc bestand) verdwijnt de z-coördinaat, en blijven alleen de xy rasters over.

In het kort dus de vraag; heeft iemand ervaring met het gebruik van voxelmodellen in QGIS?

Bij voorbaat dank!

1 like

Weinig goede ervaring met 3D in Qgis en een koppeling naar BIM (3D CAD). Ik heb het licht nog niet gezien :wink: Bij voorkeur gebruik ik Cloudcompare om puntenwolk modellen te bewerken. Plakken knippen, manipulieren en exporteren. Check dit filmpje, gemaakt met de animatie functie in CloudCompare

Momenteel werk ik aan een QGIS-plugin die voxel-data moet kunnen opslaan en bewerken. Is nogal specifiek en ik vond geen standaardformaat dat dit zou moeten kunnen. Ik ben nu voor een gpkg met gejoinde tabellen gegaan, heb dus min of meer een eigen voxeldataformaat gemaakt. In de toekomst is er wel een export naar een echt 3d formaat gepland, om de data in andere 3d-omgevingen te kunnen gebruiken.

De plugin laat nu de data alleennog in 2D zien, met z-slider waarmee je de diepte instelt.

Zijn er trouwens open standaarden voor voxels? Ik kon dat niet echt vinden.

1 like

netCDF?

Ja dat wordt het exportformaat waarschijnlijk. :+1: Maar leek niet volledig te voldoen voor deze toepassing.

“Link leggen” interpreteer ik hier als analyse en niet zozeer weergave. In dat geval hoef je natuurlijk niet “echt” 3D te werken en kan 2DH ook volstaan.

Wellicht kun je uit de voeten met de WFS service van FRESHEM, die voor elke rastercel een volledige lijst geeft met dieptes tegen saliniteit. Waarmee feitelijk alle info die je van een voxel verwacht bekend is.

De grafiek van een punt of profiel in de FRESHEM-viewer maakt gebruik van precies die informatie.

Marco

2 likes

Een voorbeeld van de data die de WFS-service teruggeeft (1 cel):

{
   "type":"FeatureCollection",
   "features":[
      {
         "type":"Feature",
         "id":"profielen.400154",
         "geometry":{
            "type":"MultiPoint",
            "coordinates":[
               [
                  47975,
                  396675
               ]
            ]
         },
         "geometry_name":"wkb_geometry",
         "properties":{
            "z":"[-14.25, -13.75, -13.25, -12.75, -12.25, -11.75, -11.25, -10.75, -10.25, -9.75, -9.25, -8.75, -8.25, -7.75, -7.25, -6.75, -6.25, -5.75, -5.25, -4.75, -4.25, -3.75, -3.25]",
            "chloride_laag":"[15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000]",
            "chloride_midden":"[15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000]",
            "chloride_hoog":"[15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000, 15000]"
         },
         "bbox":[
            47975,
            396675,
            47975,
            396675
         ]
      }
   ],
   "totalFeatures":1,
   "numberMatched":1,
   "numberReturned":1,
   "timeStamp":"2022-04-11T10:25:33.502Z",
   "crs":{
      "type":"name",
      "properties":{
         "name":"urn:ogc:def:crs:EPSG::28992"
      }
   },
   "bbox":[
      47975,
      396675,
      47975,
      396675
   ]
}

Het gaat inderdaad om een analyse. Het 3D is dan ook meer voor de visualisatie, terwijl de analyse gewoon per laag kan gebeuren. Is er dan nog iets speciaals aan 2DH (ten opzichte van 2D)? Ik ben namelijk niet bekend met die term.

Verder kan ik de WFS service van FRESHEM niet vinden via bijvoorbeeld het nationaal georegister, of open data portaal zeeland.

De beschrijving die u geeft is volgens mij wel waar ik naar op zoek ben, dus lijkt mij de WFS service erg handig.

Bedankt alvast!

Groet,

Arnoud

2DH is een korte manier van schrijven van het volgende:

  • positionering of het vlak 1 2D (zoals we gewend zijn)
  • hoogte (of diepte) info als attribuut

De WFS service van FRESHEM kun je natuurlijk vinden via de viewer (evt “onderwaterscherm” van chrome gebruiken). Deze roept hem aan. Wel is die service wat nukkig want het capabilities document lijkt niet opvraagbaar. Gelukkig kun je via de requests die de viewer doet bij het maken van een profiel (weer het onderwaterscherm via ctrl-shift-i gebruiken) makkelijk uitvogelen hoe de data opgevraagd moet worden.

groet, MArco

2 likes

Qua standaarden: OGC 3DTiles [1]. Komt m.i. oorspronkelijk van CesiumJS [2]. En Oslandia lijkt met een QGIS Plugin voor 3DTiles bezig te zijn. [3].
(Of zit ik er helemaal naast?)

[1] 3D Tiles - Open Geospatial Consortium
[2] 3D Tiles – Cesium
[3] What about 3D in QGIS ? news from 3DTiles – Oslandia

Voor voxels wil je geen 3D tiles gebruiken denk ik, omdat het een soort raster data is.

Dat klopt m.i. niet helemaal. Er zijn meerdere formats voor OGC 3D Tiles, zie de standaard. Ik zie het als een soort Vector tiles, bevatten evt 3D-Features, maar goed, de oorspronkelijke vraag gaat wat naar de achtergrond. Ik zou wel altijd eerst m.n. OGC standaarden bekijken voor ik zelf een formaat definieer.