std::string StageFactory::inferReaderDriver(const std::string& filename, pdal::Options& options) { std::string ext = boost::filesystem::extension(filename); pdal::Option& fn = options.getOptionByRef("filename"); fn.setValue<std::string>(filename); std::map<std::string, std::string> drivers; drivers["las"] = "drivers.las.reader"; drivers["laz"] = "drivers.las.reader"; drivers["bin"] = "drivers.terrasolid.reader"; drivers["qi"] = "drivers.qfit.reader"; drivers["xml"] = "drivers.pipeline.reader"; drivers["nitf"] = "drivers.nitf.reader"; drivers["ntf"] = "drivers.nitf.reader"; drivers["bpf"] = "drivers.bpf.reader"; drivers["sbet"] = "drivers.sbet.reader"; if (boost::algorithm::iequals(filename, "STDIN")) { return drivers["xml"]; } if (ext == "") return ""; ext = ext.substr(1, ext.length()-1); if (ext == "") return ""; boost::to_lower(ext); std::string driver = drivers[ext]; return driver; // will be "" if not found }
std::string AppSupport::inferReaderDriver(const std::string& filename, pdal::Options& options) { std::string ext = boost::filesystem::extension(filename); if (ext == "") return ""; ext = ext.substr(1, ext.length()-1); if (ext == "") return ""; boost::to_lower(ext); pdal::Option& fn = options.getOptionByRef("filename"); fn.setValue<std::string>(filename); // maybe this should live in StageFactory? std::map<std::string, std::string> drivers; drivers["las"] = "drivers.las.reader"; drivers["laz"] = "drivers.las.reader"; drivers["bin"] = "drivers.terrasolid.reader"; drivers["qi"] = "drivers.qfit.reader"; drivers["xml"] = "drivers.pipeline.reader"; drivers["nitf"] = "drivers.nitf.reader"; drivers["ntf"] = "drivers.nitf.reader"; std::string driver = drivers[ext]; return driver; // will be "" if not found }