int main(int argc, char **argv) { GDALAllRegister(); try { boost::timer::cpu_timer timer; input_arguments parsed_args; std::string bands_str; boost::program_options::options_description options_all("MODIS to SciDB's Multidimensional Array Conversion Options"); options_all.add_options() ("version", "Prints MODIS to SciDB conversion tool version.\n") ("help", "Prints help message.\n") ("verbose", "Turns on verbose mode: prints timing and some more information about the conversion progress.\n") ("f", boost::program_options::value<std::string>(&parsed_args.source_file_name), "The source HDF file to convert to SciDB's load format.\n") ("o", boost::program_options::value<std::string>(&parsed_args.target_file_name), "The target folder to store SciDB data file.\n") ("t", boost::program_options::value<int16_t>(&parsed_args.time_point)->default_value(-1), "The timeline position for the dataset.\n") ("b", boost::program_options::value<std::string>(&bands_str), "A list of comma separated spectral bands to extract data, starting from 0: \"3,4\".\n") ("co", boost::program_options::value<int32_t>(&parsed_args.column_offset)->default_value(0), "Column offset.\n") ("ro", boost::program_options::value<int32_t>(&parsed_args.row_offset)->default_value(0), "Row offset.\n") ; boost::program_options::variables_map options; boost::program_options::store(boost::program_options::parse_command_line(argc, argv, options_all), options); boost::program_options::notify(options); if(options.count("help")) { std::cout << options_all << std::endl; return EXIT_SUCCESS; } if(options.count("version")) { std::cout << "\n\nmodis2scidb version: " SCIETL_VERSION_STRING "\n" << std::endl; return EXIT_SUCCESS; } parsed_args.verbose = options.count("verbose") ? true : false; parsed_args.bands = modis2scidb::parse_bands(bands_str); valid_args(parsed_args); if(parsed_args.verbose) std::cout << "\nmodis2scidb started\n" << std::endl; convert(parsed_args); if(parsed_args.verbose) std::cout << "\n\nmodis2scidb finished successfully!\n" << std::endl; } catch(const modis2scidb::exception& e) { std::cerr << "\n\nmodis2scidb finished with errors!\n"; if(const std::string* d = boost::get_error_info<modis2scidb::error_description>(e)) std::cerr << "\nThe following error has occurried: " << *d << "\n"; std::cerr << "\nPlease, use 'modis2scidb --help' for help with input parameters. " "If you find it is a bug, please, report it to [email protected].\n" << std::endl; return EXIT_FAILURE; } catch(const std::exception& e) { std::cerr << "\n\nmodis2scidb finished with errors!\n"; if(e.what() != 0) std::cerr << "\nAn unexpected error has occurried: " << e.what() << "\n"; std::cerr << "\nPlease, report it to [email protected].\n" << std::endl; return EXIT_FAILURE; } catch(...) { std::cerr << "\n\nAn unexpected error has occurried with no additional information.\n" << std::endl; return EXIT_FAILURE; } return EXIT_SUCCESS; }
int main(int argc, char **argv) { GDALAllRegister(); try { boost::timer::cpu_timer timer; input_arguments parsed_args; boost::program_options::options_description options_all("Fire Points to SciDB's Multidimensional Array Conversion Options"); options_all.add_options() ("version", "Print Fire Points to SciDB conversion tool version.\n") ("help", "Prints help message.\n") ("verbose", "Turns on verbose mode: prints timing and some more information about the conversion progress.\n") ("f", boost::program_options::value<std::string>(&parsed_args.source_file_name), "The source TIFF file to convert to SciDB's load format.\n") ("o", boost::program_options::value<std::string>(&parsed_args.target_file_name), "The target folder to store SciDB data file.\n") ("t", boost::program_options::value<int16_t>(&parsed_args.time_point), "The timeline position for the dataset.\n") ; boost::program_options::variables_map options; boost::program_options::store(boost::program_options::parse_command_line(argc, argv, options_all), options); boost::program_options::notify(options); if(options.count("help")) { std::cout << options_all << std::endl; return EXIT_SUCCESS; } if(options.count("version")) { std::cout << "\n\nfocos2scidb version: " SCIETL_VERSION_STRING "\n" << std::endl; return EXIT_SUCCESS; } parsed_args.verbose = options.count("verbose") ? true : false; valid_args(parsed_args); if(parsed_args.verbose) std::cout << "\nfocos2scidb started\n" << std::endl; convert(parsed_args); if(parsed_args.verbose) std::cout << "\n\nfocos2scidb finished successfully!\n" << std::endl; } catch(const std::exception& e) { std::cerr << "\n\nfocos2scidb finished with errors!\n"; if(e.what() != 0) std::cerr << "\nAn unexpected error has occurried: " << e.what() << "\n"; std::cerr << "\nPlease, report it to [email protected].\n" << std::endl; return EXIT_FAILURE; } catch(...) { std::cerr << "\n\nAn unexpected error has occurried with no additional information.\n" << std::endl; return EXIT_FAILURE; } return EXIT_SUCCESS; }