User Tools

Site Tools


Creating a Point Cloud

The Workflow

Using the Point Cloud Export tool is very simple.

  1. Locate your project using the Project Folder […] browser.
  2. Select the appropriate Sensor (if not correct already).
  3. Be sure the proper INS Event and STA files have automatically been selected.
  4. Define the Output folder if not where you want it.
  5. Set the appropriate Filter Settings and Output Settings.
  6. Be sure to have the proper Boresight settings entered.
  7. Use the Graphics command to select the output area (or do the whole project by leaving the grid blank).
  8. Convert the point cloud.

Remember, you can always interrupt the process using the Stop command and then resume it at a later time.

The ScanLook Data Structure

ScanLook doesn't have a rigid file and folder structure but it does have some requirements. It does assume all of the files necessary to generate the data are within the project folder tree. This means the INS and raw scan data must be somewhere in this tree. For instance, the trajectory file (which is different for each INS vendor) can be stored in the project folder or even better in a sub-folder such as INS.

Likewise, scan data such as the FARO fls files can be in a sub-folder such as FARO, FOCUS, etc.

The Velodyne data can likewise be stored in a Velodyne folder, HD32, Puck, LiDAR, or other similar folder.

The sta file (station file) associated with the particular sensor must also be somewhere within the project tree.

Here's a simple example.

  • Project Folder
    • Base
    • INS
    • Snoopy
    • Velodyne
    • FARO
    • GoLook
    • Ladybug

In this case, the project folder simply contains folders that contain the real data. Oftentimes we use the Snoopy folder to hold the raw INS data and then use the INS folder to contain the processed trajectory.

The Base folder usually is used to hold the base station data.

The Velodyne, FARO, GoLook, and Ladybug folders hold data from the sensors of the same name.

For a dual same-sensor system you might have a FARO and FARO2 or perhaps a FARO1 and FARO2 folder structure.

Again, the structure is not rigid.

The Point Cloud Export Dialog

The Point Cloud Export dialog is quite simple while at the same time being very powerful. It is broken into several logical groupings for defining input/output files, setting parameters, selecting areas, and generally controlling the export process. Of key importance is the simple fact that there is just one dialog used for all systems regardless of the type of laser scanner(s) used or number of scanners.

Project Settings

The Project Folder is the top of the folder structure that contains the sub-folders containing the scanner data (FARO .fls files or Velodyne .pcap files), INS files (station and event files), imagery (Ladybug or GoLook), control, and other necessary files.

The Scan Data Folder is a sub-folder containing the particular raw scan data (fls, pcap, etc.). If this does not default properly, then it can be manually selected. The folder is also a function of the sensor and sensor position (primary, secondary).

The Output Folder generally defaults to a GeoRef sub-folder within the Scan Data Folder. It can be set manually to almost any location.

The INS Event File should be automatically detected and is a simple text file with or without a header. A little further down there is an example.

For a normal NovAtel INS this file is generally an exported file from NovAtel Inertial Explorer 
(and typically at 200Hz). 

If using NovAtel with an SBAS or RTK solution then the Convert4 program is used to export the INSPVA 
records as an asc (*.asc) file.

If using an OxTS xNav system, then there will generally be a csv file.

If using a VectorNav system, then there will be a gps file.

The STA File is a station file and will most likely be selected automatically. Again, it is possible to change this by a manual selection. In the case of multiple sensors (such as dual FARO's, etc.) it could possibly select the wrong station file so a little bit of caution needs to be exercised in reviewing this field. Be sure that the station file for the sensor and sensor position is correctly selected. The station file contains necessary timing information to synchronize the sensor to the INS.

The Sensor defines the scanner to be processed such as the FARO, Velodyne HD32 ,or Velodyne Puck. When selecting either of the Velodyne scanners must systems will automatically determine if the scanner is a Puck or an HD32 but some older systems may not be able to do so properly. If you have an older system be sure that the proper Velodyne model is selected.

The Sensor Position defines the position of the sensor as the primary or secondary sensor. Primary and secondary are defined during the boresight process and must be maintained throughout the life of the system.

The […] fields are file or folder browser options found in most applications.

The REM button is used to Remove the selected project from the project folder list. This is generally unnecessary as the most-recently-used list will discard the oldest projects eventually anyhow.

The Edit button invokes the system editor for the particular file currently selected.

The sta Data Files

As already mentioned the sta files containing timing information necessary to keep each sensor synchronized with the INS. In a Velodyne sta file the should be timing about every 0.005 seconds. A FARO fls file will have it about every 0.01 seconds. A Ladybug file will generally be 0.33 (3fps), 0.5 (2fps), or 1.0 (1fps) depending upon the frame rate.

The Velodyne sta file will look like this:

$STAINFO Ver 8.30.3124 OEM42GPB NovAtelOem4
Mrk {
Event: "1"
Desc: "Velodyne"
GTim: 88352.0473684 1752

The F3D sta file will look like this:

$STAINFO Ver 8.50.2722 OEM42GPB NovAtelOem4
Mrk {
Event: "1"
GTim: 87814.266008 1752

The INS Data Files

The INS event file may be generated from NovAtel Inertial Explorer (as shown below), directly from the RTK data collected on the sensor, or from a variety of programs depending upon the INS being used.

The NovAtel Inertial Explorer (IE) INS Event file will look like this:

Project: HSD_LL
Program: Inertial Explorer Version 8.50.2722
Profile: State Plane (feet)
Source: GNSS/INS Epochs(Smoothed TC Combined)
Datum: NAD83(CORS96), (processing datum)
Master 1: Name 9398, Status DISABLED
Antenna height 2.000 m, to ARP [TRMR8_GNSS(NONE)]
Position 33 45 16.92932, -118 11 43.68203, -26.521 m (NAD83(CORS96), Ellipsoidal hgt)
Master 2: Name 0028, Status ENABLED
Antenna height 2.000 m, to ARP [TRMR8_GNSS(NONE)]
Position 33 45 49.87779, -118 12 28.00736, -28.820 m (NAD83(CORS96), Ellipsoidal hgt)
Remote: Antenna height 0.000 m, to L1PC [Generic(NONE)]
IMU to GNSS Antenna Lever Arms:
x=0.000, y=-0.284, z=0.191 m (x-right, y-fwd, z-up)
Body to Sensor Rotations:
xRot=0.000, yRot=0.000, zRot=-90.000 degrees (Rotate IMU into Vehicle Frame)
Geoid: Geoid09-CONUS.wpg (Absolute correction)
Map projection Info:
Defined grid: US State Plane, CA Zone 5 (405)
U.S. State Plane for CA Zone 5 (405)
W-P-K Settings:
System: Map (US State Plane, CA Zone 5 (405))
Order: W primary, P secondary, K-tertiary
Axes: x-right, y-forward, z-up
Boresight: Off
Station GPSTime GPST Easting Northing H-MSL Omega Phi Kappa
(sec) week (usft) (usft) (usft) (Deg) (Deg) (Deg)
1135-K 88000.200000 1752 6500608.707640 1732777.008742 36.077 2.6989495702 0.2391428129 200.6097835014
1135-K 88000.205000 1752 6500608.707640 1732777.008742 36.077 2.6989495702 0.2391428129 200.6097835014

Filter Settings

The Filter settings are all entered in whatever the project units are (feet or meters).

The Spatial Filter should generally be selected for the FARO scanner. It does not currently apply to the other scanners.

The Intensity filter should generally NOT be selected. It again applies to the FARO only.

The Distance Filters apply to all scanners and allow the user to eliminate a lot of scanner data based upon distance.

The Max Depth filter discards all points more than the entered value below the scanner. It is not an absolute depth it is relative to the scanner itself.

The Max Height filter discards all points higher than the entered value above the scanner. It is not an absolute measure but is relative to the scanner.

The Max LHS/RHS filters discard all points beyond the range set in the left-hand-side (LHS) or RHS.

The Min/Max Dist. set filters to discard all points within the Min Dist and all points outside the Max Dist.

The Stationary Dist filter sets the minimum distance the vehicle must travel between revolutions of the selected sensor to be included in the output data. If the vehicle does not travel enough then those points in that revolution of the scanner are discarded.

The Advanced button displays the Advanced dialog for more filter options.

Advanced (Filters)

The Distance Filters are identical to the settings already discussed.

The Minimum Distance Filters discard all points less than the particular filter. This allows for the creation of a donut shape by removing what could be the center of the donut (but it doesn't have to be centered).

The Apply Minimum Distance Filters must be checked to enable the minimum distance filters.

The Depth filter discards all points less than the depth entered.

The Height filter discards all points less than the height entered.

The LHS/RHS filter discards all points less than the left-hand (right-hand) side filter.

Output Settings

The Output Settings are used to define the format of the output as LAS, LAZ, e57, or an ascii text file. If ascii is selected then the content can optionally include intensity, time stamp, and RGB color information and a field delimiter can also be chosen (e.g. a comma, space, etc.).

Format can be LAS, LAZ, e57, or text. It can also be a set of laser separated files for multi-laser scanner systems (i.e. single laser heads with multiple lasers, not multiple single laser systems).

If an LAS format is chosen then the output can optionally be saved as a LAZ file. LAZ files are compressed LAS files and save a tremendous amount of space and consequently traffic when moving files.

Keep Input can be used to keep the original format (las or text) while also creating laz files.

The Intensity and Time Stamp fields can optionally be saved in text files. The XYZ point information is always stored.

Alt RGB Files can be used to optionally apply a R, G, B color to the output files for analysis. The files will have intensity and a solid color (either red, green, or blue, alternating per output file).

Delimiter is used with text files to separate columns of data (X, Y, Z). Typically this is just a space or comma.

Split After __ Million Pts allows the user to specify the maximum number of points to be output per file during point cloud generation. This is extremely handy. Rather than creating a single huge file with hundreds of millions or billions of points, by setting the size to 10 (million) the data is broken into files chronologically arranged of roughly 10 million points. Many software packages have file size limitations. Even more, it is often more convenient to push files around that are of moderate size rather than a lot of small files or a single huge file.

Boresight Settings

The boresight values should always be entered (as provide by LIDARUSA) per the instrument selected.

Apply Bore Sight should always be checked. The very rare case would be for some sort of debugging operation. Unchecking this value results in no boresight (or all zeros) being used.

XYZ are the XYZ boresight values in meters for the particular instrument.

OPK are the omega, phi, kappa values in degrees for the particular instrument.

Keep in mind that if you have multiple systems it is highly unlikely, almost impossible, that you will have exactly the same values in any field for any two systems.

Advanced activates an additional small dialog that allows the user to apply minor corrections to the lever arms and orientation without directly changing the initial values.

<insert the Advanced Boresight dialog here>

The top section simply echoes the provided values.

The middle section allows the user to enter minor corrections without directly modifying the original values.

The bottom section shows what the new values would be if saved (overwriting the original values).


Normally this section is unnecessary but not always. For instance, it is possible that the trajectory is in meters and yet the desired output is to be in feet (international or US survey). This section allows for this sort of correction.

Read INS Units simply directs the software to read the specified INS file to see if it can determine the units. Not all INS files contain this information.

Units: <Feet or Meters> displays what is believed to be the INS units.

Match INS Units directs the software to the units specified directly above if checked. If not checked then the combo box below is enabled allowing for selection of the proper units.

Selected Areas (Gridded Display)

This spreadsheet like columnar display allows the user to specify and edit multiple folders of output data for the project. Normally this grid is filled directly from the Graphics button which will be discussed later. This grid allows the user to select subsets of the trajectory for output. The columns consist of a start/stop event pair (as can be found in VelodyneEvents.txt for example), a file name prefix (as Velodyne1_), GPS start/stop times, a length, a selected and shared column, and a line number.

There can be any number of lines in the grid. Each grid should have a distinct line number. The line will be used as the folder name under the Output Folder to contain the generated output files. The files in the folder will be named as Filename (e.g. Velodyne1_) and then _1.las, etc. If the line numbers are not distinct then the filenames should be otherwise the data will overwrite itself (two rows of line 1 Velodyne1_ will result in only one folder with conflicting names that will leave the last file in the victor!).

The start/stop time is helpful, along with the events, to debug particular data areas if necessary.

The Selected column allows the user to turn some rows on or off as may be necessary.

The Shared column allows the row to be pushed or shared to another instrument when changing sensors (e.g. going from a Velodyne to a FARO or Ladybug).

The Selected and Shared check boxes can be used to quickly change all of the rows to match the value specified (by unchecking it, all rows become unchecked or checked when checking it).

Individual rows can be deleted by selecting the leftmost widget per column and then selecting the delete key on the keyboard. Likewise the control and shift keys can be used to multi-select as per a typical Windows operation. The DEL command button can also be clicked on to delete the selected rows.

Individual rows can be entered manually. Typically this would involve entering the start/stop events, the filename, checking the select column and finally entering a unique line number.

The easiest way to enter data into this display is to use the Graphics command described below.


The command buttons include…

Save Default should be used after you have entered your boresight, filters, and output settings. These values will be loaded for each new project as the defaults.

Load Default forces the software to overwrite any current settings with the last saved default settings.

Parameters activates the system specified editor for the sensor xml file. Normally a user would never have to do this as all of the fields are on the dialog already.

Advanced displays a small dialog appropriate for each sensor. Typical parameters that are occasionally use include a world XYZ transform, scale in XY or Z, scale for intensity, restriction of the output by sensor angular limits, and other specific parameters.

<show the FARO & Velodyne Advanced dialogs here.>

Find Stops is a very useful option that only needs to be executed once per INS trajectory. This option forced the software to search the trajectory for places where the vehicle sat still and make a correction if necessary. Not all software handles the stops well in GPS deprived settings or with L1 only receivers. This command will smooth those areas to generate a pleasing trajectory.

Control activates the control dialog which allows for a control point correction to be applied. More details can be found here: Control Point Tool.

Colorize begins the colorization process. At the moment this requires the Ladybug camera system. See The Workflow for details on the colorization workflow.

Graphics brings up another dialog showing the trajectory for the particular sensor. This dialog has a lot of commands on the toolbar and also on the right click menu. One of the most significant features is the right click Boundary command used to select regions of interest that eventually make it to the gridded display discussed above.

Convert does the bulk of the work, finally generating the point cloud with all of the information provided. Once clicked the Stop button will become active and the status fields will begin showing what is going on.

Stop (Resume) allows the user to interrupt processing whether to temporarily suspend the processing until a later time or permanently. Once stopped the user can select Resume, this is possible even after a system shutdown.

Reset Files is used to restart the processing from the point of creating the trajectory (if possible). If the INS data or station files have been changed by a 3rd party software package then it is generally best to use this command to get the latest information into the program and being used.

Close is obviously one way to conveniently exit the software.


If you get an Error Opening *fls file when processing FARO data, check that the DLL's are properly registered. Refer to for details on how to fix that problem.

creating-a-point-cloud.txt · Last modified: 2017/07/25 15:56 by jeff.fagerman