'\" -*- coding: us-ascii -*- .if \n(.g .ds T< \\FC .if \n(.g .ds T> \\F[\n[.fam]] .de URL \\$2 \(la\\$1\(ra\\$3 .. .if \n(.g .mso www.tmac .TH ts2las 1 "16 February 2019" "" "" .SH NAME ts2las \- convert TerraSolid .bin files into LAS files .SH SYNOPSIS 'nh .fi .ad l \fBts2las\fR \kx .if (\nx>(\n(.l/2)) .nr x (\n(.l/5) 'in \n(.iu+\nxu [\fB-h\fR | \fB-i\fR \fIarg\fR [\fB-o\fR \fIarg\fR] [\fB-v\fR] [\fIFiltering options\fR] ] 'in \n(.iu-\nxu .ad b 'hy .SH DESCRIPTION \fBts2las\fR converts TerraSolid .bin files into LAS files with optional output filters. .SH OPTIONS ts2las options: .TP \*(T<\fB\-h\fR\*(T>, \*(T<\fB\-\-help\fR\*(T> Produce help message .TP \*(T<\fB\-i\fR\*(T> \fIarg\fR, \*(T<\fB\-\-input\fR\*(T> \fIarg\fR input TerraSolid .bin file .TP \*(T<\fB\-o\fR\*(T> \fIarg\fR, \*(T<\fB\-\-output\fR\*(T> \fIarg\fR The output .las file (defaults to input filename + .las) .TP \*(T<\fB\-v\fR\*(T>, \*(T<\fB\-\-verbose\fR\*(T> Verbose message output .PP Filtering options: .TP \*(T<\fB\-e\fR\*(T> \fIarg\fR, \*(T<\fB\-\-extent\fR\*(T> \fIarg\fR Extent window that points must fall within to keep. Use a comma-separated or quoted, space-separated list, for example, \*(T<\fB\-e minx, miny, maxx, maxy\fR\*(T> or \*(T<\fB\-e minx, miny, minz, maxx, maxy, maxz\fR\*(T> \*(T<\fB\-e "minx miny minz maxx maxy maxz"\fR\*(T> .TP \*(T<\fB\-\-minx\fR\*(T> \fIarg\fR Extent must be greater than or equal to minx to be kept. \*(T<\fB\-\-minx 1234.0\fR\*(T> .TP \*(T<\fB\-\-miny\fR\*(T> \fIarg\fR Extent must be greater than or equal to miny to be kept. \*(T<\fB\-\-miny 5678.0\fR\*(T> .TP \*(T<\fB\-\-minz\fR\*(T> \fIarg\fR Extent must be greater than or equal to minz to be kept. If maxx and maxy are set but not minz *and maxz, all z values are kept. \*(T<\fB\-\-minz 0.0\fR\*(T> .TP \*(T<\fB\-\-maxx\fR\*(T> \fIarg\fR Extent must be less than or equal to maxx to be kept. \*(T<\fB\-\-maxx 1234.0\fR\*(T> .TP \*(T<\fB\-\-maxy\fR\*(T> \fIarg\fR Extent must be less than or equal to maxy to be kept. \*(T<\fB\-\-maxy 5678.0\fR\*(T> .TP \*(T<\fB\-\-maxz\fR\*(T> \fIarg\fR Extent must be less than or equal to maxz to be kept. If maxx and maxy are set but not maxz *and minz, all z values are kept. \*(T<\fB\-\-maxz 10.0\fR\*(T> .TP \*(T<\fB\-t\fR\*(T> \fIarg\fR, \*(T<\fB\-\-thin\fR\*(T> \fIarg\fR (=0) Simple decimation-style thinning. Thin the file by removing every t'th point from the file. .TP \*(T<\fB\-\-last_return_only\fR\*(T> Keep last returns (cannot be used with \*(T<\fB\-\-first_return_only\fR\*(T>) .TP \*(T<\fB\-\-first_return_only\fR\*(T> Keep first returns (cannot be used with \*(T<\fB\-\-last_return_only\fR\*(T>) .TP \*(T<\fB\-\-keep\-returns\fR\*(T> \fIarg\fR A list of return numbers to keep in the output file: \*(T<\fB\-\-keep\-returns 1 2 3\fR\*(T> .TP \*(T<\fB\-\-drop\-returns\fR\*(T> \fIarg\fR Return numbers to drop. For example, \*(T<\fB\-\-drop\-returns 2 3 4 5\fR\*(T> .TP \*(T<\fB\-\-valid_only\fR\*(T> Keep only valid points .TP \*(T<\fB\-\-keep\-classes\fR\*(T> \fIarg\fR A list of classifications to keep: \*(T<\fB\-\-keep\-classes 2 4 12\fR\*(T> \*(T<\fB\-\-keep\-classes 2\fR\*(T> .TP \*(T<\fB\-\-drop\-classes\fR\*(T> \fIarg\fR A comma-separated list of classifications to drop: \*(T<\fB\-\-drop\-classes 1,7,8\fR\*(T> \*(T<\fB\-\-drop\-classes 2\fR\*(T> .TP \*(T<\fB\-\-keep\-intensity\fR\*(T> \fIarg\fR Range in which to keep intensity. The following expression types are supported: \*(T<\fB\-\-keep\-intensity 0\-100\fR\*(T> \*(T<\fB\-\-keep\-intensity <200\fR\*(T> \*(T<\fB\-\-keep\-intensity >400\fR\*(T> \*(T<\fB\-\-keep\-intensity >=200\fR\*(T> .TP \*(T<\fB\-\-drop\-intensity\fR\*(T> \fIarg\fR Range in which to drop intensity. The following expression types are supported: \*(T<\fB\-\-drop\-intensity <200\fR\*(T> \*(T<\fB\-\-drop\-intensity >400\fR\*(T> \*(T<\fB\-\-drop\-intensity >=200\fR\*(T> .TP \*(T<\fB\-\-keep\-time\fR\*(T> \fIarg\fR Range in which to keep time. The following expression types are supported: \*(T<\fB\-\-keep\-time 413665.2336\-414092.8462\fR\*(T> \*(T<\fB\-\-keep\-time <414094.8462\fR\*(T> \*(T<\fB\-\-keep\-time >413665.2336\fR\*(T> \*(T<\fB\-\-keep\-time >=413665.2336\fR\*(T> .TP \*(T<\fB\-\-drop\-time\fR\*(T> \fIarg\fR Range in which to drop time. The following expression types are supported: \*(T<\fB\-\-drop\-time <413666.2336\fR\*(T> \*(T<\fB\-\-drop\-time >413665.2336\fR\*(T> \*(T<\fB\-\-drop\-time >=413665.2336\fR\*(T> .TP \*(T<\fB\-\-keep\-scan\-angle\fR\*(T> \fIarg\fR Range in which to keep scan angle. The following expression types are supported: \*(T<\fB\-\-keep\-scan\-angle 0\-100\fR\*(T> \*(T<\fB\-\-keep\-scan\-angle <100\fR\*(T> \*(T<\fB\-\-keep\-scan\-angle <=100\fR\*(T> .TP \*(T<\fB\-\-drop\-scan\-angle\fR\*(T> \fIarg\fR Range in which to drop scan angle. The following expression types are supported: \*(T<\fB\-\-drop\-scan\-angle <30\fR\*(T> \*(T<\fB\-\-drop\-scan\-angle >100\fR\*(T> \*(T<\fB\-\-drop\-scan\-angle >=100\fR\*(T> .TP \*(T<\fB\-\-keep\-color\fR\*(T> \fIarg\fR Range in which to keep colors. Define colors as two 3-tuples (R,G,B-R,G,B): \*(T<\fB\-\-keep\-color '0,0,0\-125,125,125'\fR\*(T> .TP \*(T<\fB\-\-drop\-color\fR\*(T> \fIarg\fR Range in which to drop colors. Define colors as two 3-tuples (R,G,B-R,G,B): \*(T<\fB\-\-drop\-color '255,255,255\-65536,65536,65536'\fR\*(T>