|
|
A lot of changes were made to input data types and formats. As a result, your existing workflow might not work out of the box. Here you can find a list of the most important changes, why they were made and how to get started with BASEmesh v2.
|
|
|
|
|
|
If you want to skip the details, you can jump straight to the [FAQ](#faq).
|
|
|
|
|
|
## Missing features
|
|
|
|
|
|
A number of features have not made it into this release of BASEmesh v2. Here is a brief overview of any v1 features that are not yet available in BASEmesh v2:
|
|
|
|
|
|
| Tool | Feature | Note |
|
|
|
|:-----------------:|:---------------------|:-----------------------------------------------------------------|
|
|
|
| Elevation meshing | Custom mesh domain | Stability and performance concerns when trimming large data sets |
|
|
|
| Quality meshing | Dividing constraints | There may be some changes to the way dividing constraints work |
|
|
|
| Quality meshing | Custom triangle args | - |
|
|
|
| Quality meshing | Custom mesh domain | Stability and performance concerns when trimming large data sets |
|
|
|
|
|
|
## Elevation meshing
|
|
|
|
|
|
### Input data
|
|
|
|
|
|
The elevation meshing utility now prefers 3D lines as its primary input data. Auxiliary elevation points are still available, but mostly serve to "pad out" the areas in-between the break lines. For simple use-cases, the input line segments should be sufficient.
|
|
|
|
|
|
Layers containing 2D geometries will not be displayed in the drop-down menus.
|
|
|
|
|
|
If you want to convert your 2D input data to 3D, you can use the '*Convert legacy layer (Point)*' and '*Convert legacy layer (Line)*' algorithms in the QGIS 3 processing toolbox.
|
|
|
|
|
|
### Mesh domain / boundary
|
|
|
|
|
|
The mesh boundary has been done away with as it was a great source of problems when interpolating. The polygon was mostly a visual aid, internally it was converted to an outline and merged with the existing line segments.
|
|
|
|
|
|
If you only intend to use a single elevation source for mesh interpolation (more on that later), you can use the '*Keep convex hull*' option. This will create a number of unneeded boundary triangles, but it does not require any additional inputs layers or work. Additionally, this allows the generation of elevation meshes using only point data.
|
|
|
|
|
|
To get a concave elevation mesh, add the boundary outline to your input line segments layer.
|
|
|
|
|
|
> **Note:** There will be a new version of the mesh boundary polygon in the future. This version will not be required to match any existing geometries and will be used to trim the input data.
|
|
|
>
|
|
|
> Due to stability and performance issues, this feature has been deferred for the time being.
|
|
|
|
|
|
## Quality meshing
|
|
|
|
|
|
### String definitions
|
|
|
|
|
|
The string definition tool has been merged into the quality meshing utility to simplify the workflow.
|
|
|
|
|
|
The layer used to define the string definitions will implicitly be merged into the existing break lines. The string definitions do not have to be added to the break lines themselves.
|
|
|
|
|
|
After meshing, the input string definitions are re-evaluated and any mesh nodes on the string definition line will be added to the corresponding string definition.
|
|
|
|
|
|
> **Performance tip:** After meshing, all mesh nodes have to be checked for coincidence with the string definition lines. It is therefore highly advisable to use a single-segment line spanning the entire cross section, rather than multiple short, collinear line segments.
|
|
|
|
|
|
## Mesh interpolation
|
|
|
|
|
|
The mesh interpolation utility now has two modes: '*Basic*' and '*Advanced*'.
|
|
|
|
|
|
### Basic mode
|
|
|
|
|
|
This works much like the original mesh interpolator did; the quality mesh gets meshed with a single data source, either a raster layer or an elevation layer.
|
|
|
|
|
|
### Advanced mode
|
|
|
|
|
|
This mode supports interpolation with any number of source layers. Any available layers are added to the right list, the ones to use are chosen by dragging them into the left list. The order of the items in the left list determines the hierarchy of the elevation sources (higher priority elevation sources are placed further up the list).
|
|
|
|
|
|
During interpolation, each mesh node is processed to determine its new elevation. First, the topmost elevation source is queried for the given point.
|
|
|
|
|
|
If it succeeds at providing elevation at this point, it will return a valid elevation, which is then applied to the node. If it fails, the process is repeated with the next elevation source in the list. This is repeated until either an elevation source returns a valid elevation, or until the list of elevation sources is exhausted.
|
|
|
|
|
|
## FAQ
|
|
|
|
|
|
### What happened to mesh boundaries?
|
|
|
|
|
|
The BASEmesh v1 implementation of mesh boundaries only added the boundary polygon outline to the list of break lines. They have been replaced with three different boundary strategies, two of which are currently available:
|
|
|
|
|
|
* If you only intend to use a single elevation mesh as your interpolation source, you can use '*Keep convex hull*'.
|
|
|
* For a behaviour identical to the original mesh boundary polygon, add its outline to the input line segments layer and choose '*Shrink to segments*'.
|
|
|
|
|
|
### Why won't my layers show up in the elevation meshing input?
|
|
|
|
|
|
The new elevation meshing utility uses 3D input layers. Any layers containing 2D geometries will not be available in the drop-down menu.
|
|
|
|
|
|
To convert your 2D input data to 3D layers, use the '*Convert legacy layer (Point)*' and '*Convert legacy layer (Line)*' algorithms in the QGIS 3 processing toolbox.
|
|
|
|
|
|
### Why does this feel slow?
|
|
|
|
|
|
The current release is mostly meant show feature implementation progress and ensure the data model is up to the task. While some operations have been sped up significantly, other tasks have become more computationally expensive.
|
|
|
|
|
|
The next major update will focus on bringing in the big performance improvements using C extensions, multithreading support and other optimisations. This update is tracked as part of the %"Beta performance update" milestone.
|
|
|
|
|
|
### Why is the GUI still freezing?
|
|
|
|
|
|
All computations are currently being performed in the same thread as the GUI is updated, preventing the GUI from responding until execution is complete.
|
|
|
|
|
|
This will be addressed as part of the next major update. For details, check out issue #21.
|
|
|
|
|
|
### Where can I report bugs or request a feature?
|
|
|
|
|
|
Visit the [repository issues](https://git.ee.ethz.ch/basemesh/basemesh-v2/issues) for bug reports, feature requests and other issues. |
|
|
\ No newline at end of file |