CityGRID® Shaper
What is...
...an Alphashape?
Alphashapes are polygon boundarys of planes. These planes are extracted from pointcloud points that have a specified maximum distance from each other. The Alphashapes are approximated boundaries for those planes. Alphashapes are necessary for the Interesection Lines. Two (intersecting) Alphashapes that are in a specified distance to each other create an Intersection Line on their calculated intersection. Editing Alphashapes (deleting, adding or moving their vertices) has a direct effect on the extent of an Intersection Line. If theoretically interesecting Alphashapes are too far apart, they will not create an Intersection Line. Alphashapes are only allowed to overlap to a certain degree for them to create a valid Intersection Line. If the overlap is too high, the Intersection Line will not be valid. Ideally there is close to no overlap, but they are very close together. Alphashapes can be activated, deactivated, created, deleted and edited.
...an Intersection Line?
Intersection Lines are the direct result of two theoretically intersecting Alphashapes. Intersection Lines are used for the Smart Preview and it’s face generation. Editing an Intersection Line (moving it’s vertices along the defined direction) has a direct effect on the Smart Preview and the derived faces. The length of an Intersection Line can also be controlled with the editing of an Alphashape. Intersection Lines can have different states. A candidate (red by default) is the automatically generated line at the intersection of two alphashapes. Editing a red line will have an effect on the later derived faces. A used line (blue by default) is used for the smart preview, and a preview of the would-be faces will be generated. Blue lines can not be edited. You can either ignore the preview by moving away with the mouse, then the faces will be discarded. Or you can accept the preview with a mouseclick, the lines will turn green. The Preview can still be edited by editing the lines or outlines, which we will cover later. An accepted line (green by default) is a intersection line, where the derived faces have been accepted by the user. By editing the green lines the created faces will also be adjusted. Finished lines (black by default) lock the Faces of the Smart Preview. It is not possible to edit black intersection lines. Red and green Intersection Lines can be edited (in their length), deactivated (they will turn grey and will not be used anymore) and (re-)activated. They can not be be created or deleted directly, only by manipulating their underlying Alphashape.
...a Baseline?
A Baseline is the product of an accepted intersection line and the theoretic intersection between it’s alphashape and the (by default not visible) baseplane (Consult manual for Information about baseplanes.). A simple saddle roof has two baselines. Baselines also have different states according to their intersection lines and can be edited in the same states. They can be moved (confined to their plane) and divided into different segments, that can be moved indepently (confined to their plane). They can not be created or deleted directly, nor activated or deactivated, only by manipulating their intersection line. Connected baselines are „bound“ to each other by default. If you move one, you move also the other connected ones. In two cases you can overrule these bindings. a) Click the checked button Bindings b) divide a baseline to move the segments independently.
...an Outline?
A polygon. When the alphashape is the automatically derived boundary of a plane, an outline is its userdefined or usercreated boundary and can be a better fit to the plane than the Alphashape. In the Smart Preview, every used plane has an Alphashape as well as an Outline. The outline is created, when the user accepts the smart preview of an Intersection Line. When Outlines are edited (delete/add/move vertices) they have a direct effect on the derived faces, whereas when Alphashapes are edited, they have a direct effect on the Intersection Lines and a indirect effect on the faces. Editing existing outlines should only be done as a last step before finishing a building, because a user edited outline always overrules Alphashapes and it’s derivates. So the correct order is:
- Start and accept Smart Preview
- Edit Intersection Lines or Alphashapes
- Accept new Smart Preview
- Edit outlines if necessary.
Editing outlines can be necessary in some cases because Alphashapes and their derived lines have strict rules to follow. (for example a baseline can not be longer than it’s intersection line, perpendicularity, etc.) When roofs are not perpendicular, or the eave is longer than the ridge it is necessary to work with the outlines of the planes. But you should not try to edit the intersection/baselines or the alphashape AFTER editing the outline, since this might lead to unwanted behaviour and faces. Outlines can also be used where there is only one alphashape, so no intersection line is created (i.e. flat roofs). In those instances outlines of those single alphashapes can be created and forced into the same plane. - Finish building
What possibilities are there to create and edit Alphashapes and why should I do that?
In general Alphashapes are created when you first set up your Shaper project, but depending on the quality of the pointcloud and your settings, there might be problems.In some cases you might be wondering, why the Smart Preview only shows a part of the building even if you see the whole building in the pointcloud.
Turn on the Alphashapes. In these cases you will notice, that some points are not surrounded by a polygon, they are „unassigned“. Some of those might be outliers and can not be part of a useful plane whatsoever, but some of them would make very essential planes.
Turn on the lines.You will see red Intersection Line candidates popping up, wherever two Alphashapes fulfill the requirements (sufficiently close to each other, but not too much overlap).Where you don’t have an Alphashape surrounding the points, there will be no Intersection Line, which would be necessary to create the faces in the Smart Preview. Since you can not just „add“ intersection lines, you have to add Alphashapes instead to create the Intersection Lines. You can do this in more then one way (also apart from processing the whole dataset with different settings):
- Hold Ctrl to select single points that will define the plane for your future alphashape (at least three). Clicking on the last one twice (You will see a differnt symbol in the mousecursor to close the polygon) will create an Alphashape.
- Hold Shift to select a number of unassigned points around the cursor, scroll the mousewheel to extend or shrink your selection radius, move your mouse around to select different points. Leftclicking will lock the selection and create a new alphashape polygon.
- With a click of your mousewheel before leftclicking (still holding down Shift) you can lock in the first selection of points, move to another area with your mouse, and add some more points, to refine your plane definition. Leftclick after and you will have a bigger polygon. In some instances you will immediatly see a new Intersection Line, in some other cases you will need another Alphashape for the intersection. You also can create a small Alphashape but refine it by editing the vertices.
Note: You are editing the EXTENT of the plane boundary, not it’s DIRECTION. - Holding Shift over unassigned points close to a baseline will create an Alphashape that uses not only the points but also the baseline for it’s plane. The Alphashape will have the same length as the used Baseline. This will ensure parallelism in the Smart Preview. Again, you can change the use of the Baseline in these cases, by scrolling the mousewheel. When you shrink the radius enough, the Baseline will not be used, only the selected points.
Sometimes you might not be happy with an automatically created Alphashape because you can see in the pointcloud and the z difference within the assigned points, that it created one Alphashape, where there should be two (so two planes).You can correct that either by changing the calculation settings, and recalculate the part of that dataset or the whole dataset. As you can imagine, this might take a long time, depending on the size of your dataset. Also, if you are satisfied with the majority of the automatically extracted Alphashapes, and you have a few ill fitting ones, you might prefer to just correct those few instead of recalculating the whole dataset. Instead you can split the Alphashapes, horizontally, vertically, or completely userdefined. The originally assigned points will be reassigned to better fitting Alphashapes, new Intersection Lines will be created.This can also go the other way around. Where you had two Alphashapes but you can see, that they are basically in the same plane, you can merge them and create one long intersection line, instead of two short ones.
What do I have to do before I can create a project?
Data preparation is key:
- checking (and if necessary adjusting/reprojecting) the spatial reference systems of images, point clouds, optional data (footprints, terrain model) with FME. Make sure all the data uses the same CRS!
- converting orthophoto geotiff to tif with world file (FME) (currently sometimes still necessary, in future Geotiff should no longer be a problem)
- checking the aerial images (nadir and oblique). Nadir images sometimes have 4 bands (RGBA or RGBI). Batch conversion of all images (nadir and oblique) to RGB jpg. This eliminates additional bands and ignores potentially unreadable tiff definitions for CityGRID. (Built-in function for Irfanview)
- convert the orientation file of the aerial images (.prj, .xml, .txt) to CityGRID XML with the CityGRID Orientation Tool
- analyse the pointcloud data
- on which class are the buildings if the data is classified? FME Inspector or Workbench for more detailed analysis).
- Reduce the pointcloud if not classified by
- Classifying with 3rd party software (i.e. Pointcloud technologies)
- Removing terrain and vegetation points (with an infrared band in the imagery you will be able to classify vegetation more confidently)
- Filter the pointcloud. Ideally the points are equally distributed 20-30 points per m2. Consider smaller planes and details
- Use buffered building footprints to only use the building points
- Reduce the size of the pointcloud by using a smaller region polygon
- note: Optional data can also be added to the project later (DTM and footprints)
- optional: creation of a region shapefile based on the building footprints. Polygons along streets (QGIS or ArcGIS). Create one shapefile per polygon/region. Consider the sensible size of projects.
- optional: convert terrain model to CityGRID xml and split by region (FME Workspace, ask for at UVM Systems)
- optional: Split footprint data by region (FME), footprint region-shapefiles.
- start wizard, one project for each region
What kind of pointcloud data can I use?
Ideally the building class of a classified LiDAR pointcloud. If this is not possible, because your pointcloud is the result of image matching adjust the pointcloud (and your expectations).
- Reduce the size of your project area
- Consider classifying with 3rd party software (i.e. Pointcloud technologies)
- Remove terrain and vegetation points
- Filter the pointcloud. Ideally the points are equally distributed 20-30 points per m2
- Use buffered building footprints to only use the building points
Can I add Intersection lines manually?
Intersection Lines are the result of intersecting planes (Alphashapes). Baselines are the results of the intersection between Alphashapes and Baseplane. If you need an Intersection Line, where there currently is none, you can add new alphashapes or edit existing alphashapes so they create valid Intersection Lines.
How can I bend an intersection line?
Intersection lines are created by the intersecting planes and obey strict criteria. You can adjust their length by moving their end vertices or editing the involved Alphashapes. Bending them however, contradicts Shaper's mode of operation.
How to change the angle of an intersection line?
Intersection lines are created by the intersecting planes and obey strict criteria. You can adjust their length by moving their end vertices or editing the involved Alphashapes.
How to shorten/divide an intersection line?
To shorten an intersection line it’s end vertices can be moved along it’s vector and thus adjusted in length.
How can you add alphashapes?
In Alphashape Editing Mode with Ctrl, Shift or Shift and mouse wheel (see info box in the respective tool). Tip: Deactivate assigned points so that only points that are not yet assigned to a plane are displayed. This allows the Alphashape to be defined more precisely.
How can you divide Alphashapes?
In Alphashape Editing Mode. Select an alphashape to activate the corresponding buttons.
Can alphashapes be combined/merged?
Yes, in Alphashape Editing Mode. Select an Alphashape to activate the corresonding buttons.
How to raise or lower the position of Alphashapes?
Alphashapes are defined and locked by the position of their plane. Only their extent can be changed by moving, adding or deleting vertices.
Alphashapes are correct, but there are still no Intersections Lines. How can I fix this?
Via the Intersection Line processing parameters buffer width and overlaps. Changing these parameters controls how many intersection lines are displayed.
- Buffer width: What is the maximum distance between Alphashapes in order to generate a valid Intersection Line? Increasing the value increases the tolerance.
- Overlaps: What is the maximum percentage of alphashapes that may overlap to generate valid Intersection Lines? Increasing the value increases the tolerance.
Tip: Geometrically correcting overlaps by editing the Alphashapes is usually the more precise method of resolving ambiguous situations.
When do I use the Baseplane Editing Mode?
In principle, the Baseplane is automatically set by the lowest point of the Alphashapes involved in an active Smart Preview. The Baseplane controls how high the Baselines are set. With the Baseplane editing mode, a Baseplane can be set manually, either at any point or through the lowest point of any plane. However, the automatically set Baseplane is correct for 99% of situations, so it is currently hardly necessary to set it manually. In the future, however, there may be more functions in this mode