Generates 3D web versions of geoscience models primarily for AuScope Geomodels website (https://geomodels.auscope.org.au)
The source code for the front-end of AuScope Geomodels is here
- Install Python v3.9 or higher (https://www.python.org/)
- Install PDM (https://pdm.fming.dev/latest/) and jq (https://jqlang.github.io/jq/)
NB: pyassimp requires the assimp shared library which may need to be compiled and installed separately
- Clone and compile collada2gltf (https://github.com/KhronosGroup/COLLADA2GLTF)
- Set 'COLLADA2GLTF_BIN' environment variable to point to the path where 'COLLADA2GLTF-bin' resides, e.g.
export COLLADA2GLTF_BIN=/home/fred/github/COLLADA2GLTF/build/
- Clone this repository (i.e. geomodel-2-3dweb)
- 'pdm install' will install the python library dependencies
- 'eval $(pdm venv activate)' will start a Python env, 'deactivate' to exit
- 'pdm run $SHELL' will run the Python env in a new shell
- Accepted formats:
- GOCAD (*.ts *.pl *.vs *.wl *.vo *.sg *.gp)
- XYZV (X-coord Y-coord Z-coord value, space separated, one quadtuple per line, used for geophysics volumes)
Run conv_webasset.py. You must give it either a GOCAD file or the directory where the GOCAD files reside, plus a conversion parameter file. This README explains the format of the conversion parameter file.
e.g.
pdm run $SHELL
cd scripts
./conv_webasset.py gocad.ts config.json
where a simple config.json could look like this:
{
"ModelProperties": {
"crs": "EPSG:28352",
"name": "Any Name",
"modelUrlPath": "path",
"init_cam_dist": 0.0,
"proj4_defn": "+proj=utm +zone=52 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs"
},
"GroupStructure": {}
}
Use the '-g' flag to generate COLLADA files
batch_proc.py is a simple batch script used to convert the GOCAD models for the website.
make_boreholes.py is a script to create a database of NVCL borehole objects to display within the model. See this README for more information.
All tests
cd test
./run_test.sh
Regression tests
pdm run $SHELL
cd test/regression
./run_reg.sh
Triggers: manual dispatch, push to master
Function:
- Make Python API directory
- Make borehole database
- Make Python package state files
- All outputs are exported as artifacts
Triggers: push to master
Function:
- Make models 3d web assets
- Web assets are exported as artifacts
Triggers: Push to a release tag
Function:
- Creates a backend release
- Adds the files from the latest successful 'Build API Backend' action to the release
NB: After running this release the 'Release Models Backend' action (below) can be run to add model web assets to the release
Triggers: Manual dispatch on provided tag
Function:
- Add model web assets from the latest successful 'Build Models Backend' action to the release
Triggers: dynamic
Function:
- Creates documentation deployed to https://auscope.github.io/geomodel-2-3dweb/
Triggers: Push to master, pull_request to master
Function:
- Runs all the unit and regression tests
- Tag with "PORTAL_RELEASE_YYYYMMDD" annotated tag
git tag -a PORTAL_RELEASE_20241223 -m "December 2024 Release"
git push --tags origin master
- The 'Release API Backend' action will create a release at this tag
- Once step 2 is complete, run the 'Release Models Backend' action inputting the tag name
- The 'Release Models Backend' action will build all the model files and insert them into the release
Autogenerated Source Code Documentation is available here
Please see README file for documentation generation details.
Funding provided by AuScope Pty Ltd
SKUA/GOCAD software from the Paradigm Academic Software Program was used to view some types of GOCAD object files and produce sample GOCAD OBJECT files used for testing
Please cite as:
Fazio, Vincent; Woodcock, Robert (2024): AuScope 3D Geological Models Portal. v1. CSIRO. Service Collection. http://hdl.handle.net/102.100.100/609085?index=1