deltares-research / netcdf_to_gltf_converter Goto Github PK
View Code? Open in Web Editor NEWA tool that converts D-HYDRO output netCDF data to the glTF format.
License: MIT License
A tool that converts D-HYDRO output netCDF data to the glTF format.
License: MIT License
Related to #25
Add GitHub actions for:
Related to #25
It should be possible to transform our z-coordinates to another coordinate system, e.g. WGS84.
Why: The curvature of the earth is not taken into account in many of our source (netCDF) data while Cesium does project on a curved surface. Converting the z-values to an ellipsoidal height should take care of that.
TODO
crs_transformation
(when making it generic for all the coordinates incl, x,y,z or z_crs_transformation
for only transforming the z-coordinates.Note that #83 should first be implemented before this.
Related to #25
We can use meshkernel or maybe also xugrid for this.
Currently we shift the x- and y-coordinates by substracting the minimal x and y value, respectively, such that the smallest coordinate will be shifted to 0,0.
This setting is enabled when "shift_coordinates": true
in the configuration file.
We want to make it possible that the user can specify the x and y shift in the configuration file (assuming the target coordinate system if specified).
"shift_coordinates"
setting optionalmin
or settings per x/y: "shift_coordinates": "min",
or
"shift_coordinates":
{
"shift_x": 12000,
"shift_y": 99,
},
High water depth: darker blue
Lower water depth: lighter blue
Water depth 0: transparent
Since most/all glTF viewers do not support color animation, would it be possible to create a mesh for each time step, and apply morphtargets to hide/unhide them?
Related to #25
Such that a mesh will not be generated for vertices that have a value below 0.01m for example.
The workflow consists of the following:
Config example:
"shift_coordinates": { --- optional
"crs_transformation": { --- optional
"source_epsg": 7415,
"target_epsg": 4979
},
"shift_x": 51.3,
"shift_y": 3.4,
"shift_z": 40
},
For example, we make one mesh with light blue between 0 and 0.1m, a darker mesh between 0.1m and 0.3 and another darker mesh for every value >0.3m
User can enable or disable
User can set the height
User can set the color
Start using a configuration file.
The provided NetCDF should be able to be read by the converter.
For now it should be able to read:
When integrating in an environment, this would make it easy to cut out some of the submeshes if they lay outside the area to visualize. This would increase rendering performance.
The plane will have the same vertex positions as the data mesh. Rendering one big plan across the scene will lead to weird visual glitches.
"crs_transformation" :
{
"source_crs": 28992,
"target_crs": 4326
},
"crs_transformation" :
{
"source_epsg": 28992,
"target_epsg": 4326
},
Related to #25
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.