You may encounter this error message when importing a pts file into the PointCloud window or when running the PCI convertor.
Users who have reported this issue were working with files from a Topcon scanner. The issue may be caused by a missing "intensity" field in the scan data. The pts format can take a number of forms as shown in the snippet from the help files below:
PTS Format
The PTS format is an ASCII Space or Tab delimited format that can be used to import points into PointCloud CAD. The PTS format has the following format:
<number of points>
<x> <y> <z> <intensity>
<x> <y> <z> <intensity>
...
Intensity
Intensity is either a short int in the range (-4096, 4095) or a float (with a decimal point) in the range (0.0, 1.0).
If your file has no intensity values, set it to 0.0.
Color & Normals
You can optionally include color or normal as follows, the following line formats are allowed:
x y z i r g b
x y z i nx ny nz
x y z i r g b nx ny nz
nx, ny, nz are a normal in float (must include a decimal)
r g b is a color where each element is an integer in the range 0...255
Note
- The following fields are mandatory and must be present: x, y, z, i
- Order is important for color and normals if you include both.
- Currently normals are ignored by PointCloud CAD.
- For best performance, we suggest converting PTS files to PCI.
If the file is not too large it can be opened in Excel or Notepad so you can see what information is available. The example below shows what the top of a pts file with the format "x y z i r g b" should look like:
The total number of points is shown in blue
The intensity column is shown in red. The intensity value can vary for each point but here it does not vary.
1120
9951.905187 10027.38497 166.398199 1000 33 8 0
9962.221888 10028.44407 170.043101 1000 132 61 16
9951.212888 10027.11137 166.700098 1000 0 0 0
9951.107587 10027.06307 166.493102 1000 25 0 0
9957.974488 10028.19287 169.551001 1000 107 28 8
9959.574788 10026.98447 168.022002 1000 132 69 0
9958.832788 10027.77967 166.595099 1000 173 89 16
9958.672387 10027.67347 169.488001 1000 173 85 16
But below is what it did look like when it was exported from the scanner software. This version will give you an error message:
1120
9951.905187 10027.38497 166.398199 33 8 0
9962.221888 10028.44407 170.043101 132 61 16
9951.212888 10027.11137 166.700098 0 0 0
9951.107587 10027.06307 166.493102 25 0 0
9957.974488 10028.19287 169.551001 107 28 8
9959.574788 10026.98447 168.022002 132 69 0
9958.832788 10027.77967 166.595099 173 89 16
9958.672387 10027.67347 169.488001 173 85 16
If it is not possible to configure the scanning software to output an intensity value it is possible to use Excel to insert a placeholder of any value for the intensity field:
1. open a blank Excel spreadsheet
2. drag and drop the pts or txt file into the top left cell
3. that should populate the spreadsheet with each field in its own column:
4. add a new column between C and D
5. enter 1000 (intensity values can be between (-4096, 4095) in the first row of the new column
6. Pick on the "1000" so that it is surrounded by a rectangle and then double click the bottom right corner of the rectangle so it fills the whole column with "1000" to the bottom of the document
7. save this file and change the extension to pts
This pts file will open in the PointCloud without conversion, but for better performance you should convert it to PCI
James Johnston
Comments