Exemple #1
0
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;
}
Exemple #2
0
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;
}