Skip to content

Plan Quality Control

Quality control is something we must keep in mind throughout the construction process. We start construction with the road centerline. If we make an error in line construction, this will propagate into larger parts of the plan. Such errors should be detected immediately and corrected before we continue working on the plan.

The GIS collaboration, Competence Network in Buskerud, Vestfold and Telemark, once created a note that dealt with the most important control routines that should be reviewed before delivery to the municipality. These are described in more detail below.

Internal Controls

  • Control A – Road centerline
  • Control B – Parallel lines
  • Control C – Deviations between purpose boundaries and digital property map
  • Control D – Double lines or invalid line geometry
  • Control E – Surface topology
  • Control F – Surface structure
  • Control G – Syntax

These controls are commented below with regard to the functionality in Gemini Terrain.

Control A – Road Centerline

The transition between connected straight lines and arcs must follow mathematical rules for tangent circles.

After the centerline is constructed, it must be checked. In the line geometry dialog, we have a separate column for breaks. Any value in this column indicates the angular difference between the elements. A mathematically correct centerline will not have breaks. Therefore, check that breaks do not occur in the line.

Control B – Parallel Lines

Check that parallels to centerline and purpose boundaries are correct with respect to tangent arc/line. The control can be done as indirect spot checks by generating measurement lines with annotations.

In Gemini Terrain, we can generate annotations with the Generate dimensioning function. First, however, we must create lines normal to the parallels. The lines and control measurements can be created on a separate draft layer since they should not be included in the plan.

Control C – Deviations Between Purpose Boundaries and Digital Property Map

The rules for consistency between the property map (DEK) and the plan should be unambiguous. Where the purpose boundary follows the property boundary, the points and radii should be identical in the land use layer and the layer with property boundaries (which contains data from the cadastre/DEK).

When constructing the plan, the best routine is to use the Copy and Paste functions. Select the lines in the property layer that will form purpose boundaries, select copy objects and then paste them into the land use layer. Be aware that these lines in the plan may be edited at a later time (error during construction or a deliberate action?). We should therefore take spot checks before delivery of the SOSI file.

Control D – Double Lines or Invalid Line Geometry

There should be no double lines within the same layer in the plan.

All surface layers in the plan should have lines in topological form. The Automatic topology cleanup function cleans up the dataset. Run this function on the lines before creating polygons.

The endpoints of the lot boundaries (legal lines) meet the purpose boundaries (form knot points). No openings at the meeting point between the lines should occur. No loose ends should extend from the meeting points. In Gemini Terrain, we can snap lot boundaries to purpose boundaries without simultaneously creating points on the purpose boundaries by holding down the [Ctrl] key. Furthermore, we do not recommend constructing lot boundaries on top of the purpose boundaries, but only where these divide up a purpose area.

Other invalid lines are lines that consist of only one point. These can be removed manually from the list. Sort by length and remove lines with 0 meter length.

Control E – Surface Topology

When control D is error-free, it will be a simple matter to establish surface topology (polygons in Gemini Terrain).

Gemini Terrain's geographic structure is not in complete SOSI form. Among other things, we duplicate data by having both lines and polygons in the application layer. When we have topology in the lines, we can use the Create polygon from lines in application layer function on the toolbar. The polygon will then get the coordinates copied from the lines. Note that the same function on the quick menu (menu that appears when you select an object and right-click) does not create a new polygon, but updates (repolygonizes) the existing one.

Polygon in Gemini Terrain corresponds to FLATE in SOSI. Creation of surfaces according to the SOSI standard is done by Gemini Terrain when we export to SOSI. In addition, the program also creates representation points for the surfaces and inserts all properties associated with them. Note that the Find connections between lines and polygons option must be checked on the application layer for Gemini Terrain to create correct surface structure without double lines.

For us to create surfaces according to the SOSI standard, all polygons must find connection to line objects. When working with a plan, we will always go back and forth between line editing and repolygonization. We often forget to repolygonize after line editing. Gemini Terrain therefore has a separate function that checks the connection between line and polygon objects.

If no connections are found, we get a message about this in a log.

Example:

In this example, we have three lines, id 1, id 2 and id 3. We also have a polygon, id 1. Line 2 does not follow the polygon object. Such a case can easily arise if we edit line 2 without repolygonizing. In this case, an extra point has been inserted in line 2.

Line objects:

Polygon object:

The report can give the following message:

Failed! Polygon 1: Line ids: F 1 3

F marks where the error is located.

Note

If this check fails, we will get many error messages in a subsequent check in SOSI-vis. In other words, there is no point in exporting data to SOSI before the Check polygon<->line connections function in the horizontal list field is OK.

Control F – Surface Structure

The layer with land use and plan area should have exactly the same outer and possibly inner delimitation.

When constructing the plan, the best routine is to use the Copy and Paste functions. Select the outer lines in the land use layer, select copy objects and then paste them into the layer for the plan area. Be aware that these lines in the plan may be edited at a later time (error during construction or a deliberate action?). We should therefore take spot checks before delivery of the SOSI file.

The layer with land use should represent a comprehensive plan layer within the plan's delimitation. Visually check that there are no holes or overlapping polygons.

No objects on the other plan layers should cross the outer delimitation of the plan. Visually check that this is the case.

Control G – Syntax

Coding of plan data must follow the data description in the SOSI standard.

When we enter codes for the properties in the plan, we select legal values from lists that contain the applicable SOSI standard. In Gemini Terrain, it is mostly the object type we get wrong. This is because this list contains all object types in SOSI. We must ensure that we select the correct object type.

The control in SOSI-vis checks all objects against the applicable version of the SOSI standard.

SOSI Control

SOSI-vis with SOSI control is well suited as an independent control of the plan. SOSI control is a program for quality control of geodata in SOSI format. SOSI control can be used to check the format (syntax) and code set. We get help finding errors in the dataset and it makes us more aware of the quality of data files in SOSI format.

When the plan is finished constructed in Gemini Terrain, we recommend the following checks before exporting to SOSI:

  1. Automatic topology cleanup on layers with surfaces
  2. Check of polygon <-> line connections on the same layers
  3. Visual check that all lines, points, texts and polygons have object type

Note

There is no point in running SOSI control before we have at least run the check of polygon and line connections. If we export a SOSI file where this check fails, we will get very many errors in SOSI control.

During installation, we get the two programs SOSI control and SOSI-vis. SOSI-vis is a program that provides a graphical display of files in SOSI format. SOSI control is integrated into SOSI-vis, and it is recommended that we use this combination for the control. We then get graphically demonstrated the objects that contain errors.

SOSI control (it is free) can be downloaded from the Norwegian Mapping Authority's websites.

Procedure

  1. Start SOSI-vis
  2. Select File - Open files...
  3. Navigate to the project directory and open the SOSI file for the plan
  4. Activate the i (information) icon on the toolbar
  5. Click the icon for SOSI control
  6. Check off relevant options
  7. Click the Execute control button
  8. Click Exit and you get a new window with errors and warnings. Double-click on an error and it is also located on the screen. The information window tells, among other things, which group it concerns

You can also have a report file (*.txt) created with the same name as the SOSI file.

Note

Remember to check the following option in SOSI control: "Use object type in double geometry (5.4)", if you have the entire plan in one SOSI file.

On the first plans we run SOSI control, everyone will experience getting error messages. As we become more experienced and familiar with the cause of the error messages, they become fewer and fewer. Below are the most common error messages and warnings in connection with plan proposals described.

Error: No match on object type. Check standard for product.

This message occurs if you have not entered values for OBJTYPE. Go back to Gemini Terrain and enter OBJTYPE where these are missing.

Check the User Documentation or the SOSI standard for an overview of which codes apply to which objects in the plan. In Gemini Terrain, you get all object types in SOSI listed regardless of which layer you have active.

Error .. PLANID missing

We get this error when mandatory properties do not have values. In this case, it is PLANID that is missing. Go back to Gemini Terrain and enter PLANID where these are missing.

Error: Illegal object type used for delimitation of the surface

This error is due to one or more lines that delimit the surface having the wrong OBJTYPE. The dropdown list for OBJTYPE contains all values defined in SOSI. For OBJTYPE, you must in other words know which one to choose on the different plan layers. It is easy to choose the wrong one, but SOSI control will then give a message about this.

Go back to Gemini Terrain and enter the correct OBJTYPE.

Error: Surface delimitation error. Delimitation object type that is not referenced in any surface.

The layers Rp45_Planområde, Rp45_Arealformål, as well as all layers for consideration zones contain both lines and polygons. If a line on one of these layers is not referenced in any surface, we will get a message about it. Typically, this will be small line pieces left over after an automatic topology cleanup.

Error! Different elevation between group nn and mm

This message is due to us having 3D lines (lines with value also for z) with different elevations at the knot points.

Go back to Gemini Terrain and set all lines as 2D lines with unknown elevation. Select all lines in the list and perform the Set as 2D/undefined function on the right mouse button.

Warning! No ...KP, between group nn and group mm.

Where two or more geometry types meet, there should be a knot point (marked with ...KP in the SOSI file).

In Gemini Terrain, there is no property that tells that the point is a knot point. This information is added by the program during export to SOSI.

In principle, you should not get this warning if you have run Automatic topology cleanup, but if this is not the case, you can send the files to our support so we can correct this.

Warning! Similar group information with group nn.

Between two knot points, there should only be one line object when all other properties are the same. In the example below, lines 1, 2, 3 can advantageously be joined.

This is not an error, but more of a note. By joining these line stubs, we reduce the size and complexity of the dataset.