| 335 | } |
| 336 | |
| 337 | void StacReader::Private::initializeArgs() |
| 338 | { |
| 339 | m_itemFilters = std::make_unique<Item::Filters>(); |
| 340 | m_catFilters = std::make_unique<Catalog::Filters>(); |
| 341 | m_colFilters = std::make_unique<Catalog::Filters>(); |
| 342 | m_icFilters = std::make_unique<ItemCollection::Filters>(); |
| 343 | |
| 344 | log()->get(LogLevel::Debug) << "Filters: " << std::endl; |
| 345 | if (!m_args->items.empty()) |
| 346 | { |
| 347 | std::string itIdStr = listStr("Item Ids", m_args->items); |
| 348 | log()->get(LogLevel::Debug) << itIdStr; |
| 349 | |
| 350 | m_itemFilters->ids = m_args->items; |
| 351 | } |
| 352 | |
| 353 | if (!m_args->catalogs.empty()) |
| 354 | { |
| 355 | std::string caIdStr = listStr("Catalog Ids", m_args->catalogs); |
| 356 | log()->get(LogLevel::Debug) << caIdStr; |
| 357 | |
| 358 | m_catFilters->ids = m_args->catalogs; |
| 359 | } |
| 360 | |
| 361 | if (!m_args->collections.empty()) |
| 362 | { |
| 363 | std::string coIdStr = listStr("Collection Ids", m_args->collections); |
| 364 | log()->get(LogLevel::Debug) << coIdStr; |
| 365 | |
| 366 | m_itemFilters->collections = m_args->collections; |
| 367 | m_colFilters->ids = m_args->collections; |
| 368 | } |
| 369 | |
| 370 | |
| 371 | if (!m_args->dates.empty()) |
| 372 | { |
| 373 | log()->get(LogLevel::Debug) << |
| 374 | "Dates: " << m_args->dates << std::endl; |
| 375 | |
| 376 | for (auto& datepair: m_args->dates) |
| 377 | { |
| 378 | if (datepair.size() != 2 || |
| 379 | datepair.type() != NL::detail::value_t::array) |
| 380 | { |
| 381 | throw pdal_error("User defined dates (" + datepair.dump() + |
| 382 | ") must be a range of [min, max]."); |
| 383 | } |
| 384 | |
| 385 | try |
| 386 | { |
| 387 | std::string minDate(datepair[0].get<std::string>()); |
| 388 | std::string maxDate(datepair[1].get<std::string>()); |
| 389 | |
| 390 | std::time_t minTime = StacUtils::getStacTime(minDate); |
| 391 | std::time_t maxTime = StacUtils::getStacTime(maxDate); |
| 392 | if (minTime > maxTime) |
| 393 | log()->get(LogLevel::Warning) << "Min date (" << minDate << |
| 394 | ") is greater than Max date (" << maxDate << ")."; |
no test coverage detected