本文整理汇总了C++中LASreadOpener类的典型用法代码示例。如果您正苦于以下问题:C++ LASreadOpener类的具体用法?C++ LASreadOpener怎么用?C++ LASreadOpener使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了LASreadOpener类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main()
{
//las testing tooo....
LASreadOpener lasreadopener;
LASreader * lasreader;
lasreadopener.set_file_name(las_path);
lasreader = lasreadopener.open();
if(!lasreader){
PyErr_SetString(PyExc_IOError, "Could not open lidar file.");
return NULL;
}
while(lasreader->read_point())
{
//printf("%u of %u\n", pcnt++, npts);
if(lasreader->point.classification != 1)
continue;
double x_coord = (lasreader->point.x * lasreader->point.quantizer->x_scale_factor) + lasreader->point.quantizer->x_offset;
double y_coord = (lasreader->point.y * lasreader->point.quantizer->y_scale_factor) + lasreader->point.quantizer->y_offset;
double z_coord = (lasreader->point.z * lasreader->point.quantizer->z_scale_factor) + lasreader->point.quantizer->z_offset;
printf("(%lf, %lf, %lf)(%lf, %lf, %lf)", x_coord, y_coord, z_coord,
lasreader->point.x, lasreader->point.quantizer->x_scale_factor,lasreader->point.quantizer->x_offset);
}
lasreader->close();
delete lasreader;
/*
int j;
for(j = 0; j < 10000; j++)
{
List *
float_list = initList();
int i;
for(i = 0; i < 100; i++)
{
float fdata = (float) i;
float * data = (float *) malloc(sizeof(float));
*data = fdata;
if(!addFront(float_list, data)){
printf("Error\n");
return 0;
}
}
freeList(float_list);
}
return 1;
*/
}
示例2: fprintf
BOOL PULSEreaderLAS::open(const char* file_name, U32 io_buffer_size)
{
if (file_name == 0)
{
fprintf(stderr,"ERROR: file name pointer is zero\n");
return FALSE;
}
// close an existing lasreader
if (lasreader)
{
lasreader->close();
delete lasreader;
lasreader = 0;
}
// open the lasreader
LASreadOpener lasreadopener;
lasreadopener.set_file_name(file_name);
lasreader = lasreadopener.open();
if (lasreader == 0)
{
fprintf(stderr,"ERROR: cannot open file '%s'\n", file_name);
return FALSE;
}
// make sure the LAS file has pulse data
if (lasreader->header.point_data_format != 4 && lasreader->header.point_data_format != 5)
{
fprintf(stderr,"ERROR: file '%s' contains points of type %d without waveforms\n", file_name, lasreader->header.point_data_format);
return FALSE;
}
last_gps_time = 0.0;
// check if the LAS file also has waves data
laswaveform13reader = lasreadopener.open_waveform13(&lasreader->header);
if (laswaveform13reader == 0)
{
fprintf(stderr,"WARNING: cannot open the waves of file '%s'.\n", file_name);
}
return open();
}
示例3: main
int main(int argc, char *argv[])
{
int i;
#ifdef COMPILE_WITH_GUI
bool gui = false;
#endif
#ifdef COMPILE_WITH_MULTI_CORE
I32 cores = 1;
#endif
bool verbose = false;
bool report_diff = true;
bool report_diff_diff = false;
bool report_x = true;
bool report_y = true;
bool report_z = true;
bool report_gps = false;
bool report_rgb = false;
bool output = false;
U32 report_lines = 20;
U32 array_max = 5000000;
bool projection_was_set = false;
double start_time = 0;
double full_start_time = 0;
LASreadOpener lasreadopener;
GeoProjectionConverter geoprojectionconverter;
LASwriteOpener laswriteopener;
if (argc == 1)
{
#ifdef COMPILE_WITH_GUI
return lasprecision_gui(argc, argv, 0);
#else
fprintf(stderr,"lasprecision.exe is better run in the command line\n");
char file_name[256];
fprintf(stderr,"enter input file: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.set_file_name(file_name);
fprintf(stderr,"enter output file: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
laswriteopener.set_file_name(file_name);
#endif
}
else
{
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '–') argv[i][0] = '-';
if (strcmp(argv[i],"-o") == 0 || strcmp(argv[i],"-olas") == 0 || strcmp(argv[i],"-olaz") == 0 || strcmp(argv[i],"-obin") == 0 || strcmp(argv[i],"-otxt") == 0 || strcmp(argv[i],"-reoffset") == 0 || strcmp(argv[i],"-rescale") == 0)
{
output = true;
break;
}
}
if (!geoprojectionconverter.parse(argc, argv)) byebye(true);
if (!lasreadopener.parse(argc, argv)) byebye(true);
if (!laswriteopener.parse(argc, argv)) byebye(true);
}
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '\0')
{
continue;
}
else if (strcmp(argv[i],"-h") == 0 || strcmp(argv[i],"-help") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
usage();
}
else if (strcmp(argv[i],"-v") == 0 || strcmp(argv[i],"-verbose") == 0)
{
verbose = true;
}
else if (strcmp(argv[i],"-version") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
byebye();
}
else if (strcmp(argv[i],"-gui") == 0)
{
#ifdef COMPILE_WITH_GUI
gui = true;
#else
fprintf(stderr, "WARNING: not compiled with GUI support. ignoring '-gui' ...\n");
#endif
}
else if (strcmp(argv[i],"-cores") == 0)
{
#ifdef COMPILE_WITH_MULTI_CORE
if ((i+1) >= argc)
{
fprintf(stderr,"ERROR: '%s' needs 1 argument: number\n", argv[i]);
usage(true);
}
argv[i][0] = '\0';
i++;
cores = atoi(argv[i]);
argv[i][0] = '\0';
#else
//.........这里部分代码省略.........
示例4: main
int main(int argc, char *argv[])
{
int i;
#ifdef COMPILE_WITH_GUI
bool gui = false;
#endif
#ifdef COMPILE_WITH_MULTI_CORE
I32 cores = 1;
#endif
bool verbose = false;
F32 tile_size = 0.0f;
U32 threshold = 1000;
U32 minimum_points = 100000;
I32 maximum_intervals = -20;
BOOL append = FALSE;
F64 start_time = 0.0;
F64 total_start_time = 0.0;
LASreadOpener lasreadopener;
if (argc == 1)
{
#ifdef COMPILE_WITH_GUI
return lasindex_gui(argc, argv, 0);
#else
fprintf(stderr,"lasindex.exe is better run in the command line or via the lastool.exe GUI\n");
char file_name[256];
fprintf(stderr,"enter input file: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.set_file_name(file_name);
#endif
}
else
{
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '–') argv[i][0] = '-';
}
if (!lasreadopener.parse(argc, argv)) byebye(true);
}
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '\0')
{
continue;
}
else if (strcmp(argv[i],"-h") == 0 || strcmp(argv[i],"-help") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
usage();
}
else if (strcmp(argv[i],"-v") == 0 || strcmp(argv[i],"-verbose") == 0)
{
verbose = true;
}
else if (strcmp(argv[i],"-version") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
byebye();
}
else if (strcmp(argv[i],"-gui") == 0)
{
#ifdef COMPILE_WITH_GUI
gui = true;
#else
fprintf(stderr, "WARNING: not compiled with GUI support. ignoring '-gui' ...\n");
#endif
}
else if (strcmp(argv[i],"-cores") == 0)
{
#ifdef COMPILE_WITH_MULTI_CORE
if ((i+1) >= argc)
{
fprintf(stderr,"ERROR: '%s' needs 1 argument: number\n", argv[i]);
usage(true);
}
argv[i][0] = '\0';
i++;
cores = atoi(argv[i]);
argv[i][0] = '\0';
#else
fprintf(stderr, "WARNING: not compiled with multi-core batching. ignoring '-cores' ...\n");
i++;
#endif
}
else if (strcmp(argv[i],"-tile_size") == 0)
{
if ((i+1) >= argc)
{
fprintf(stderr,"ERROR: '%s' needs 1 argument: size\n", argv[i]);
byebye(true);
}
i++;
tile_size = (F32)atof(argv[i]);
}
else if (strcmp(argv[i],"-maximum") == 0)
{
if ((i+1) >= argc)
{
//.........这里部分代码省略.........
示例5: main
int main(int argc, char *argv[])
{
int i,j;
#ifdef COMPILE_WITH_GUI
bool gui = false;
#endif
bool verbose = false;
int shutup = 5;
int random_seeks = 0;
double start_time = 0.0;
LASreadOpener lasreadopener;
LASwriteOpener laswriteopener;
if (argc == 1)
{
#ifdef COMPILE_WITH_GUI
return lasdiff_gui(argc, argv, 0);
#else
char file_name[256];
fprintf(stderr,"lasdiff.exe is better run in the command line\n");
fprintf(stderr,"enter input file1: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.set_file_name(file_name);
fprintf(stderr,"enter input file2: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.set_file_name(file_name);
#endif
}
else
{
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '–') argv[i][0] = '-';
}
if (!lasreadopener.parse(argc, argv)) byebye(true);
if (!laswriteopener.parse(argc, argv)) byebye(true);
}
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '\0')
{
continue;
}
else if (strcmp(argv[i],"-h") == 0 || strcmp(argv[i],"-help") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
usage();
}
else if (strcmp(argv[i],"-v") == 0 || strcmp(argv[i],"-verbose") == 0)
{
verbose = true;
}
else if (strcmp(argv[i],"-version") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
byebye();
}
else if (strcmp(argv[i],"-gui") == 0)
{
#ifdef COMPILE_WITH_GUI
gui = true;
#else
fprintf(stderr, "WARNING: not compiled with GUI support. ignoring '-gui' ...\n");
#endif
}
else if (strcmp(argv[i],"-random_seeks") == 0)
{
random_seeks = 10;
}
else if (strcmp(argv[i],"-shutup") == 0)
{
i++;
shutup = atoi(argv[i]);;
}
else if ((argv[i][0] != '-') && (lasreadopener.get_file_name_number() == 0))
{
lasreadopener.add_file_name(argv[i]);
argv[i][0] = '\0';
}
else
{
fprintf(stderr, "ERROR: cannot understand argument '%s'\n", argv[i]);
byebye(true);
}
}
#ifdef COMPILE_WITH_GUI
if (gui)
{
return lasdiff_gui(argc, argv, &lasreadopener);
}
#endif
if (!lasreadopener.active())
{
fprintf (stderr, "ERROR: no input specified\n");
byebye(true, argc==1);
}
//.........这里部分代码省略.........
示例6: main
int main(int argc, char *argv[])
{
int i;
#ifdef COMPILE_WITH_GUI
bool gui = false;
#endif
bool verbose = false;
bool keep_lastiling = false;
U32 chopchop = 0;
bool projection_was_set = false;
double start_time = 0;
LASreadOpener lasreadopener;
GeoProjectionConverter geoprojectionconverter;
LASwriteOpener laswriteopener;
if (argc == 1)
{
#ifdef COMPILE_WITH_GUI
return lasmerge_gui(argc, argv, 0);
#else
fprintf(stderr,"%s is better run in the command line\n", argv[0]);
char file_name[256];
fprintf(stderr,"enter input file 1: ");
fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.add_file_name(file_name);
fprintf(stderr,"enter input file 2: ");
fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.add_file_name(file_name);
fprintf(stderr,"enter output file: ");
fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
laswriteopener.set_file_name(file_name);
#endif
}
else
{
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '–') argv[i][0] = '-';
}
if (!geoprojectionconverter.parse(argc, argv)) byebye(true);
if (!lasreadopener.parse(argc, argv)) byebye(true);
if (!laswriteopener.parse(argc, argv)) byebye(true);
}
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '\0')
{
continue;
}
else if (strcmp(argv[i],"-h") == 0 || strcmp(argv[i],"-help") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
usage();
}
else if (strcmp(argv[i],"-v") == 0 || strcmp(argv[i],"-verbose") == 0)
{
verbose = true;
}
else if (strcmp(argv[i],"-version") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
byebye();
}
else if (strcmp(argv[i],"-gui") == 0)
{
#ifdef COMPILE_WITH_GUI
gui = true;
#else
fprintf(stderr, "WARNING: not compiled with GUI support. ignoring '-gui' ...\n");
#endif
}
else if (strcmp(argv[i],"-split") == 0)
{
if ((i+1) >= argc)
{
fprintf(stderr,"ERROR: '%s' needs 1 argument: size\n", argv[i]);
byebye(true);
}
i++;
chopchop = atoi(argv[i]);
}
else if (strcmp(argv[i],"-keep_lastiling") == 0)
{
keep_lastiling = true;
}
else if ((argv[i][0] != '-') && (lasreadopener.get_file_name_number() == 0))
{
lasreadopener.add_file_name(argv[i]);
argv[i][0] = '\0';
}
else
{
fprintf(stderr, "ERROR: cannot understand argument '%s'\n", argv[i]);
byebye(true);
}
//.........这里部分代码省略.........
示例7: mexFunction
//.........这里部分代码省略.........
argv[0] = "LASreader";
for (i = 1; i < argc; i++)
argv[i] = (char *)mxArrayToString(prhs[i+n_arg_no_char-1]);
}
for (i = 1; i < argc; i++) {
if (argv[i][0] == '-') {
switch (argv[i][1]) {
case 'A':
angle = atof(&argv[i][2]);
break;
case 'B':
get_BB_only = TRUE;
break;
case 'C':
classif = atoi(&argv[i][2]);
break;
case 'D':
if (argv[i][2])
srcID = atoi(&argv[i][2]);
else
scanD = TRUE;
break;
case 'I':
intens = atoi(&argv[i][2]);
break;
case 'N':
nRet = atoi(&argv[i][2]);
break;
case 'R':
if (decode_R (argv[i], &west, &east, &south, &north, &z_min, &z_max))
mexErrMsgTxt("Error decoding -R option!");
got_R = TRUE;
break;
case 'S':
scanC = TRUE;
break;
case 'V':
verbose = TRUE;
break;
}
}
}
LASreadOpener lasreadopener;
lasreadopener.set_merged(FALSE);
lasreadopener.set_populate_header(FALSE);
lasreadopener.set_file_name(fname);
LASreader *lasreader = lasreadopener.open();
if (!lasreader) mexErrMsgTxt("LASREADER Error! could not open lasreader!");
LASheader *header = &(lasreader->header);
if (!header) mexErrMsgTxt("LASREADER: Unable to fetch header for file");
if (get_BB_only && (scanC || scanD) )
mexPrintf("LASREADER WARNING: option -B takes precedence over -C or -D\n");
else if (scanC && scanD)
mexPrintf("LASREADER WARNING: option -C takes precedence over -D\n");
if (get_BB_only) {
plhs[0] = mxCreateDoubleMatrix(1, 6, mxREAL);
bbox = mxGetPr(plhs[0]);
bbox[0] = header->min_x; bbox[1] = header->max_x;
bbox[2] = header->min_y; bbox[3] = header->max_y;
bbox[4] = header->min_z; bbox[5] = header->max_z;
return;
}
if (verbose) print_header(header, FALSE);
if (!(scanC || scanD)) {
if ((got_R + nRet + intens + classif + angle + srcID) == 0)
plain_xyz(plhs, lasreader, header->number_of_point_records);
else
conditional_xyz(plhs, lasreader, header, angle, classif,
intens, nRet, srcID, got_R, west, east, south, north, z_min, z_max);
}
else if (scanC) /* Scan file for a list of different classifications */
get_classification_list ( plhs, lasreader);
else if (scanD) /* Scan file for a list of different Source IDs */
get_ID_list ( plhs, lasreader);
if (nlhs == 2) {
plhs[1] = mxCreateDoubleMatrix(1, 6, mxREAL);
bbox = mxGetPr(plhs[1]);
bbox[0] = header->min_x; bbox[1] = header->max_x;
bbox[2] = header->min_y; bbox[3] = header->max_y;
bbox[4] = header->min_z; bbox[5] = header->max_z;
}
// close the reader
lasreader->close();
delete lasreader;
return;
}
示例8: main
int main(int argc, char *argv[])
{
int i;
BOOL verbose = TRUE;
BOOL very_verbose = TRUE;
F64 start_time = 0.0;
F64 full_start_time = 0.0;
const CHAR* xml_output_file = 0;
BOOL one_report_per_file = FALSE;
U32 num_pass = 0;
U32 num_fail = 0;
U32 num_warning = 0;
fprintf(stderr, "This is version '%s' of the LAS validator. Please contact\n", "GRiD-1");
fprintf(stderr, "me at '[email protected]' if you disagree with\n");
fprintf(stderr, "validation reports, want additional checks, or find bugs as\n");
fprintf(stderr, "the software is still under development. Your feedback will\n");
fprintf(stderr, "help to finish it sooner.\n");
LASreadOpener lasreadopener;
if (argc == 1)
{
fprintf(stderr,"lasvalidate.exe is best run with arguments in the command line\n");
char file_name[256];
fprintf(stderr,"enter input LAS file name: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.set_file_name(file_name);
fprintf(stderr,"enter output XML file name: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
xml_output_file = strdup(file_name);
}
for (i = 1; i < argc; i++)
{
if (strcmp(argv[i],"-version") == 0)
{
fprintf(stderr, "\nlasvalidate %d with LASread (v %d.%d %d) and LAScheck (v %d.%d %d) by rapidlasso GmbH\n", VALIDATE_VERSION, LASREAD_VERSION_MAJOR, LASREAD_VERSION_MINOR, LASREAD_BUILD_DATE, LASCHECK_VERSION_MAJOR, LASCHECK_VERSION_MINOR, LASCHECK_BUILD_DATE);
byebye(LAS_VALIDATE_SUCCESS);
}
else if (strcmp(argv[i],"-h") == 0 || strcmp(argv[i],"-help") == 0)
{
lasreadopener.usage();
usage(LAS_VALIDATE_SUCCESS);
}
else if (strcmp(argv[i],"-v") == 0 || strcmp(argv[i],"-verbose") == 0)
{
verbose = TRUE;
}
else if (strcmp(argv[i],"-vv") == 0 || strcmp(argv[i],"-very_verbose") == 0)
{
verbose = TRUE;
very_verbose = TRUE;
}
else if (strcmp(argv[i],"-i") == 0)
{
if ((i+1) >= argc)
{
fprintf(stderr,"ERROR: '%s' needs at least 1 argument: file_name or wild_card\n", argv[i]);
usage(LAS_VALIDATE_WRONG_COMMAND_LINE_SYNTAX);
}
i+=1;
do
{
lasreadopener.add_file_name(argv[i]);
i+=1;
} while (i < argc && *argv[i] != '-');
i-=1;
}
else if (strcmp(argv[i],"-irec") == 0)
{
if ((i+1) >= argc)
{
fprintf(stderr,"ERROR: '%s' needs at least 1 argument: directory_name\n", argv[i]);
usage(LAS_VALIDATE_WRONG_COMMAND_LINE_SYNTAX);
}
i+=1;
do
{
lasreadopener.add_directory(argv[i], TRUE);
i+=1;
} while (i < argc && *argv[i] != '-');
i-=1;
}
else if (strcmp(argv[i],"-stdin") == 0)
{
lasreadopener.set_piped(TRUE);
}
else if (strcmp(argv[i],"-lof") == 0)
{
if ((i+1) >= argc)
{
fprintf(stderr,"ERROR: '%s' needs 1 argument: list_of_files\n", argv[i]);
usage(LAS_VALIDATE_WRONG_COMMAND_LINE_SYNTAX);
}
FILE* file = fopen(argv[i+1], "r");
if (file == 0)
{
fprintf(stderr, "ERROR: cannot open '%s'\n", argv[i+1]);
return FALSE;
//.........这里部分代码省略.........
示例9: main
int main(int argc, char *argv[])
{
int i;
#ifdef COMPILE_WITH_GUI
bool gui = false;
#endif
#ifdef COMPILE_WITH_MULTI_CORE
I32 cores = 1;
#endif
bool diff = false;
bool verbose = false;
CHAR separator_sign = ' ';
CHAR* separator = "space";
bool opts = false;
bool optx = false;
CHAR header_comment_sign = '\0';
CHAR* parse_string = 0;
CHAR* extra_string = 0;
CHAR printstring[512];
double start_time = 0.0;
LASreadOpener lasreadopener;
LASwriteOpener laswriteopener;
laswriteopener.set_format("txt");
if (argc == 1)
{
#ifdef COMPILE_WITH_GUI
return las2txt_gui(argc, argv, 0);
#else
fprintf(stderr,"las2txt.exe is better run in the command line or via the lastool.exe GUI\n");
CHAR file_name[256];
fprintf(stderr,"enter input file: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.set_file_name(file_name);
fprintf(stderr,"enter output file: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
laswriteopener.set_file_name(file_name);
#endif
}
else
{
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '–') argv[i][0] = '-';
if (strcmp(argv[i],"-opts") == 0)
{
opts = TRUE;
*argv[i]='\0';
}
else if (strcmp(argv[i],"-optx") == 0)
{
optx = TRUE;
*argv[i]='\0';
}
}
if (!lasreadopener.parse(argc, argv)) byebye(true);
if (!laswriteopener.parse(argc, argv)) byebye(true);
}
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '\0')
{
continue;
}
else if (strcmp(argv[i],"-h") == 0 || strcmp(argv[i],"-help") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
usage();
}
else if (strcmp(argv[i],"-v") == 0 || strcmp(argv[i],"-verbose") == 0)
{
verbose = true;
}
else if (strcmp(argv[i],"-version") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
byebye();
}
else if (strcmp(argv[i],"-gui") == 0)
{
#ifdef COMPILE_WITH_GUI
gui = true;
#else
fprintf(stderr, "WARNING: not compiled with GUI support. ignoring '-gui' ...\n");
#endif
}
else if (strcmp(argv[i],"-cores") == 0)
{
#ifdef COMPILE_WITH_MULTI_CORE
if ((i+1) >= argc)
{
fprintf(stderr,"ERROR: '%s' needs 1 argument: number\n", argv[i]);
usage(true);
}
argv[i][0] = '\0';
i++;
cores = atoi(argv[i]);
//.........这里部分代码省略.........
示例10: main
int main(int argc, char *argv[])
{
MPI_Init(&argc, &argv);
int i;
#ifdef COMPILE_WITH_GUI
bool gui = false;
#endif
bool verbose = false;
bool keep_lastiling = false;
U32 chopchop = 0;
bool projection_was_set = false;
double start_time = 0;
LASreadOpener lasreadopener;
GeoProjectionConverter geoprojectionconverter;
LASwriteOpener laswriteopener;
if (argc == 1)
{
#ifdef COMPILE_WITH_GUI
return lasmerge_gui(argc, argv, 0);
#else
fprintf(stderr,"%s is better run in the command line\n", argv[0]);
char file_name[256];
fprintf(stderr,"enter input file 1: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.add_file_name(file_name);
fprintf(stderr,"enter input file 2: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.add_file_name(file_name);
fprintf(stderr,"enter output file: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
laswriteopener.set_file_name(file_name);
#endif
}
else
{
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '�') argv[i][0] = '-';
}
if (!geoprojectionconverter.parse(argc, argv)) byebye(true);
if (!lasreadopener.parse(argc, argv)) byebye(true);
if (lasreadopener.get_file_name_number()<2)
{
fprintf(stderr,"Must specify more than one input file.\n");
byebye(true); // only support merging more than one file
}
if (!laswriteopener.parse(argc, argv)) byebye(true);
}
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '\0')
{
continue;
}
else if (strcmp(argv[i],"-h") == 0 || strcmp(argv[i],"-help") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
usage();
}
else if (strcmp(argv[i],"-v") == 0 || strcmp(argv[i],"-verbose") == 0)
{
verbose = true;
}
else if (strcmp(argv[i],"-version") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
byebye();
}
else if (strcmp(argv[i],"-gui") == 0)
{
#ifdef COMPILE_WITH_GUI
gui = true;
#else
fprintf(stderr, "WARNING: not compiled with GUI support. ignoring '-gui' ...\n");
#endif
}
else if (strcmp(argv[i],"-split") == 0)
{
if ((i+1) >= argc)
{
fprintf(stderr,"ERROR: '%s' needs 1 argument: size\n", argv[i]);
byebye(true);
}
i++;
chopchop = atoi(argv[i]);
}
else if (strcmp(argv[i],"-keep_lastiling") == 0)
{
keep_lastiling = true;
}
else if ((argv[i][0] != '-') && (lasreadopener.get_file_name_number() == 0))
{
lasreadopener.add_file_name(argv[i]);
argv[i][0] = '\0';
}
//.........这里部分代码省略.........
示例11: Psum
//.........这里部分代码省略.........
bbox.extendBy(P);
Psum += P;
if(readCount < nextStore)
continue;
++storeCount;
// Store the point
*position++ = P - offset;
*intensity++ = buf->getFieldAs<uint16_t>(pdal::Dimension::Id::Intensity, i);
*returnNumber++ = buf->getFieldAs<uint8_t>(pdal::Dimension::Id::ReturnNumber, i);
*numReturns++ = buf->getFieldAs<uint8_t>(pdal::Dimension::Id::NumberOfReturns, i);
*pointSourceId++ = buf->getFieldAs<uint8_t>(pdal::Dimension::Id::PointSourceId, i);
*classification++ = buf->getFieldAs<uint8_t>(pdal::Dimension::Id::Classification, i);
// Extract point RGB
if (hasColor)
{
*color++ = buf->getFieldAs<uint16_t>(pdal::Dimension::Id::Red, i);
*color++ = buf->getFieldAs<uint16_t>(pdal::Dimension::Id::Green, i);
*color++ = buf->getFieldAs<uint16_t>(pdal::Dimension::Id::Blue, i);
}
// Figure out which point will be the next stored point.
nextDecimateBlock += decimate;
nextStore = nextDecimateBlock;
if(decimate > 1)
{
// Randomize selected point within block to avoid repeated patterns
nextStore += (qrand() % decimate);
if(nextDecimateBlock <= totalPoints && nextStore > totalPoints)
nextStore = totalPoints;
}
}
emit loadProgress(100*readCount/totalPoints);
}
#else
LASreadOpener lasReadOpener;
#ifdef _WIN32
// Hack: liblas doesn't like forward slashes as path separators on windows
fileName = fileName.replace('/', '\\');
#endif
lasReadOpener.set_file_name(fileName.toLatin1().constData());
std::unique_ptr<LASreader> lasReader(lasReadOpener.open());
if(!lasReader)
{
g_logger.error("Couldn't open file \"%s\"", fileName);
return false;
}
//std::ofstream dumpFile("points.txt");
// Figure out how much to decimate the point cloud.
totalPoints = std::max<uint64_t>(lasReader->header.extended_number_of_point_records,
lasReader->header.number_of_point_records);
size_t decimate = totalPoints == 0 ? 1 : 1 + (totalPoints - 1) / maxPointCount;
if(decimate > 1)
{
g_logger.info("Decimating \"%s\" by factor of %d",
fileName.toStdString(), decimate);
}
npoints = (totalPoints + decimate - 1) / decimate;
offset = V3d(lasReader->header.min_x, lasReader->header.min_y, 0);
// Attempt to place all data on the same vertical scale, but allow other
// offsets if the magnitude of z is too large (and we would therefore loose
// noticable precision by storing the data as floats)
if (fabs(lasReader->header.min_z) > 10000)
offset.z = lasReader->header.min_z;
fields.push_back(GeomField(TypeSpec::vec3float32(), "position", npoints));
fields.push_back(GeomField(TypeSpec::uint16_i(), "intensity", npoints));
示例12: append
BOOL LASindex::append(const char* file_name) const
{
#ifdef LASZIPDLL_EXPORTS
return FALSE;
#else
LASreadOpener lasreadopener;
if (file_name == 0) return FALSE;
// open reader
LASreader* lasreader = lasreadopener.open(file_name);
if (lasreader == 0) return FALSE;
if (lasreader->header.laszip == 0) return FALSE;
// close reader
lasreader->close();
FILE* file = fopen(file_name, "rb");
ByteStreamIn* bytestreamin = 0;
if (IS_LITTLE_ENDIAN())
bytestreamin = new ByteStreamInFileLE(file);
else
bytestreamin = new ByteStreamInFileBE(file);
// maybe write LASindex EVLR start position into LASzip VLR
I64 offset_laz_vlr = -1;
// where to write LASindex EVLR that will contain the LAX file
I64 number_of_special_evlrs = lasreader->header.laszip->number_of_special_evlrs;
I64 offset_to_special_evlrs = lasreader->header.laszip->offset_to_special_evlrs;
if ((number_of_special_evlrs == -1) && (offset_to_special_evlrs == -1))
{
bytestreamin->seekEnd();
number_of_special_evlrs = 1;
offset_to_special_evlrs = bytestreamin->tell();
// find LASzip VLR
I64 total = lasreader->header.header_size + 2;
U32 number_of_variable_length_records = lasreader->header.number_of_variable_length_records + 1 + (lasreader->header.vlr_lastiling != 0) + (lasreader->header.vlr_lasoriginal != 0);
for (U32 u = 0; u < number_of_variable_length_records; u++)
{
bytestreamin->seek(total);
CHAR user_id[16];
try {
bytestreamin->getBytes((U8*)user_id, 16);
}
catch(...)
{
fprintf(stderr,"ERROR: reading header.vlrs[%d].user_id\n", u);
return FALSE;
}
if (strcmp(user_id, "laszip encoded") == 0)
{
offset_laz_vlr = bytestreamin->tell() - 18;
break;
}
U16 record_id;
try {
bytestreamin->get16bitsLE((U8*)&record_id);
}
catch(...)
{
fprintf(stderr,"ERROR: reading header.vlrs[%d].record_id\n", u);
return FALSE;
}
U16 record_length_after_header;
try {
bytestreamin->get16bitsLE((U8*)&record_length_after_header);
}
catch(...)
{
fprintf(stderr,"ERROR: reading header.vlrs[%d].record_length_after_header\n", u);
return FALSE;
}
total += (54 + record_length_after_header);
}
if (number_of_special_evlrs == -1) return FALSE;
}
delete bytestreamin;
fclose(file);
ByteStreamOut* bytestreamout;
file = fopen(file_name, "rb+");
if (IS_LITTLE_ENDIAN())
bytestreamout = new ByteStreamOutFileLE(file);
else
bytestreamout = new ByteStreamOutFileBE(file);
bytestreamout->seek(offset_to_special_evlrs);
LASevlr lax_evlr;
//.........这里部分代码省略.........
示例13: main
int main(int argc, char *argv[])
{
int i;
bool dry = false;
#ifdef COMPILE_WITH_GUI
bool gui = false;
#endif
#ifdef COMPILE_WITH_MULTI_CORE
I32 cores = 1;
#endif
bool verbose = false;
bool waveform = false;
bool waveform_with_map = false;
bool report_file_size = false;
I32 end_of_points = -1;
bool projection_was_set = false;
bool lax = false;
U32 tile_size = 100;
U32 threshold = 1000;
U32 minimum_points = 100000;
I32 maximum_intervals = -20;
double start_time = 0.0;
LASreadOpener lasreadopener;
GeoProjectionConverter geoprojectionconverter;
LASwriteOpener laswriteopener;
if (argc == 1)
{
#ifdef COMPILE_WITH_GUI
return laszip_gui(argc, argv, 0);
#else
fprintf(stderr,"laszip.exe is better run in the command line or via the lastool.exe GUI\n");
char file_name[256];
fprintf(stderr,"enter input file: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.set_file_name(file_name);
fprintf(stderr,"enter output file: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
laswriteopener.set_file_name(file_name);
#endif
}
else
{
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '–') argv[i][0] = '-';
}
if (!geoprojectionconverter.parse(argc, argv)) byebye(true);
if (!lasreadopener.parse(argc, argv)) byebye(true);
if (!laswriteopener.parse(argc, argv)) byebye(true);
}
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '\0')
{
continue;
}
else if (strcmp(argv[i],"-h") == 0 || strcmp(argv[i],"-help") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
usage();
}
else if (strcmp(argv[i],"-v") == 0 || strcmp(argv[i],"-verbose") == 0)
{
verbose = true;
}
else if (strcmp(argv[i],"-version") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
byebye();
}
else if (strcmp(argv[i],"-gui") == 0)
{
#ifdef COMPILE_WITH_GUI
gui = true;
#else
fprintf(stderr, "WARNING: not compiled with GUI support. ignoring '-gui' ...\n");
#endif
}
else if (strcmp(argv[i],"-cores") == 0)
{
#ifdef COMPILE_WITH_MULTI_CORE
if ((i+1) >= argc)
{
fprintf(stderr,"ERROR: '%s' needs 1 argument: number\n", argv[i]);
usage(true);
}
argv[i][0] = '\0';
i++;
cores = atoi(argv[i]);
argv[i][0] = '\0';
#else
fprintf(stderr, "WARNING: not compiled with multi-core batching. ignoring '-cores' ...\n");
#endif
}
else if (strcmp(argv[i],"-dry") == 0)
{
dry = true;
//.........这里部分代码省略.........
示例14: main
int main(int argc, char *argv[])
{
int i;
int is_mpi = 1;
int debug = 0;
bool verbose = false;
bool force = false;
// fixed header changes
int set_version_major = -1;
int set_version_minor = -1;
int set_point_data_format = -1;
int set_point_data_record_length = -1;
int set_gps_time_endcoding = -1;
// variable header changes
bool remove_extra_header = false;
bool remove_all_variable_length_records = false;
int remove_variable_length_record = -1;
int remove_variable_length_record_from = -1;
int remove_variable_length_record_to = -1;
bool remove_tiling_vlr = false;
bool remove_original_vlr = false;
// extract a subsequence
//unsigned int subsequence_start = 0;
//unsigned int subsequence_stop = U32_MAX;
I64 subsequence_start = 0;
I64 subsequence_stop = I64_MAX;
// fix files with corrupt points
bool clip_to_bounding_box = false;
double start_time = 0;
time_t wall_start_time;
time_t wall_end_time;
LASreadOpener lasreadopener;
//if(is_mpi)lasreadopener.setIsMpi(TRUE);
GeoProjectionConverter geoprojectionconverter;
LASwriteOpener laswriteopener;
if(is_mpi)laswriteopener.setIsMpi(TRUE);
int process_count = 1;
int rank = 0;
start_time = taketime();
time(&wall_start_time);
if (is_mpi){
MPI_Init(&argc,&argv);
MPI_Comm_size(MPI_COMM_WORLD,&process_count);
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
if(debug) printf ("MPI task %d has started...\n", rank);
}
if (argc == 1)
{
fprintf(stderr,"las2las.exe is better run in the command line or via the lastool.exe GUI\n");
char file_name[256];
fprintf(stderr,"enter input file: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.set_file_name(file_name);
fprintf(stderr,"enter output file: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
laswriteopener.set_file_name(file_name);
}
else
{
for (i = 1; i < argc; i++)
{
//if (argv[i][0] == '�') argv[i][0] = '-';
if (strcmp(argv[i],"-week_to_adjusted") == 0)
{
set_gps_time_endcoding = 1;
}
else if (strcmp(argv[i],"-adjusted_to_week") == 0)
{
set_gps_time_endcoding = 0;
}
}
if (!geoprojectionconverter.parse(argc, argv)) byebye(true);
if (!lasreadopener.parse(argc, argv)) byebye(true);
if (!laswriteopener.parse(argc, argv)) byebye(true);
}
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '\0')
{
continue;
}
else if (strcmp(argv[i],"-h") == 0 || strcmp(argv[i],"-help") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
usage();
}
else if (strcmp(argv[i],"-v") == 0 || strcmp(argv[i],"-verbose") == 0)
{
verbose = true;
//.........这里部分代码省略.........
示例15: main
int main(int argc, char *argv[])
{
int i;
#ifdef COMPILE_WITH_GUI
bool gui = false;
#endif
#ifdef COMPILE_WITH_MULTI_CORE
I32 cores = 1;
#endif
bool verbose = false;
bool force = false;
// fixed header changes
int set_version_major = -1;
int set_version_minor = -1;
int set_point_data_format = -1;
int set_point_data_record_length = -1;
int set_gps_time_endcoding = -1;
// variable header changes
bool remove_extra_header = false;
bool remove_all_variable_length_records = false;
int remove_variable_length_record = -1;
bool remove_tiling_vlr = false;
bool remove_original_vlr = false;
// extract a subsequence
unsigned int subsequence_start = 0;
unsigned int subsequence_stop = U32_MAX;
// fix files with corrupt points
bool clip_to_bounding_box = false;
double start_time = 0;
LASreadOpener lasreadopener;
GeoProjectionConverter geoprojectionconverter;
LASwriteOpener laswriteopener;
if (argc == 1)
{
#ifdef COMPILE_WITH_GUI
return las2las_gui(argc, argv, 0);
#else
fprintf(stderr,"las2las.exe is better run in the command line or via the lastool.exe GUI\n");
char file_name[256];
fprintf(stderr,"enter input file: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
lasreadopener.set_file_name(file_name);
fprintf(stderr,"enter output file: "); fgets(file_name, 256, stdin);
file_name[strlen(file_name)-1] = '\0';
laswriteopener.set_file_name(file_name);
#endif
}
else
{
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '–') argv[i][0] = '-';
if (strcmp(argv[i],"-week_to_adjusted") == 0)
{
set_gps_time_endcoding = 1;
}
else if (strcmp(argv[i],"-adjusted_to_week") == 0)
{
set_gps_time_endcoding = 0;
}
}
if (!geoprojectionconverter.parse(argc, argv)) byebye(true);
if (!lasreadopener.parse(argc, argv)) byebye(true);
if (!laswriteopener.parse(argc, argv)) byebye(true);
}
for (i = 1; i < argc; i++)
{
if (argv[i][0] == '\0')
{
continue;
}
else if (strcmp(argv[i],"-h") == 0 || strcmp(argv[i],"-help") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
usage();
}
else if (strcmp(argv[i],"-v") == 0 || strcmp(argv[i],"-verbose") == 0)
{
verbose = true;
}
else if (strcmp(argv[i],"-version") == 0)
{
fprintf(stderr, "LAStools (by [email protected]) version %d\n", LAS_TOOLS_VERSION);
byebye();
}
else if (strcmp(argv[i],"-gui") == 0)
{
#ifdef COMPILE_WITH_GUI
gui = true;
#else
fprintf(stderr, "WARNING: not compiled with GUI support. ignoring '-gui' ...\n");
#endif
}
else if (strcmp(argv[i],"-cores") == 0)
{
#ifdef COMPILE_WITH_MULTI_CORE
if ((i+1) >= argc)
//.........这里部分代码省略.........