Setting up for merging last and current scan's, and having archive and chunks

This commit is contained in:
AdenKoperczak 2025-03-30 13:18:04 -04:00
parent fc83a7a36f
commit a754d66844
No known key found for this signature in database
GPG key ID: 9843017036F62EE7
8 changed files with 143 additions and 23 deletions

View file

@ -51,6 +51,7 @@ public:
std::shared_ptr<wsr88d::NexradFile>
LoadObjectByTime(std::chrono::system_clock::time_point time) override;
std::shared_ptr<wsr88d::NexradFile> LoadLatestObject() override;
std::shared_ptr<wsr88d::NexradFile> LoadSecondLatestObject() override;
std::pair<size_t, size_t> Refresh() override;
void RequestAvailableProducts() override;

View file

@ -49,6 +49,7 @@ public:
std::shared_ptr<wsr88d::NexradFile>
LoadObjectByTime(std::chrono::system_clock::time_point time) override;
std::shared_ptr<wsr88d::NexradFile> LoadLatestObject() override;
std::shared_ptr<wsr88d::NexradFile> LoadSecondLatestObject() override;
std::pair<size_t, size_t> Refresh() override;
protected:

View file

@ -106,6 +106,15 @@ public:
virtual std::shared_ptr<wsr88d::NexradFile>
LoadLatestObject() = 0;
/**
* Loads the second NEXRAD file object
*
* @return NEXRAD data
*/
virtual std::shared_ptr<wsr88d::NexradFile>
LoadSecondLatestObject() = 0;
/**
* Lists NEXRAD objects for the current date, and adds them to the cache. If
* no objects have been added to the cache for the current date, the previous

View file

@ -27,6 +27,9 @@ public:
static std::shared_ptr<NexradDataProvider>
CreateLevel2DataProvider(const std::string& radarSite);
static std::shared_ptr<NexradDataProvider>
CreateLevel2ChunksDataProvider(const std::string& radarSite);
static std::shared_ptr<NexradDataProvider>
CreateLevel3DataProvider(const std::string& radarSite,
const std::string& product);

View file

@ -603,7 +603,13 @@ AwsLevel2ChunksDataProvider::LoadObjectByTime(
std::shared_ptr<wsr88d::NexradFile>
AwsLevel2ChunksDataProvider::LoadLatestObject()
{
return LoadObjectByTime(FindLatestTime());
return p->currentScan_.nexradFile_;
}
std::shared_ptr<wsr88d::NexradFile>
AwsLevel2ChunksDataProvider::LoadSecondLatestObject()
{
return p->lastScan_.nexradFile_;
}
int AwsLevel2ChunksDataProvider::Impl::GetScanNumber(const std::string& prefix)

View file

@ -351,6 +351,12 @@ std::shared_ptr<wsr88d::NexradFile> AwsNexradDataProvider::LoadLatestObject()
return LoadObjectByKey(FindLatestKey());
}
std::shared_ptr<wsr88d::NexradFile>
AwsNexradDataProvider::LoadSecondLatestObject()
{
return nullptr;
}
std::pair<size_t, size_t> AwsNexradDataProvider::Refresh()
{
using namespace std::chrono;

View file

@ -1,5 +1,5 @@
#include <scwx/provider/nexrad_data_provider_factory.hpp>
//#include <scwx/provider/aws_level2_data_provider.hpp>
#include <scwx/provider/aws_level2_data_provider.hpp>
#include <scwx/provider/aws_level2_chunks_data_provider.hpp>
#include <scwx/provider/aws_level3_data_provider.hpp>
@ -14,6 +14,13 @@ static const std::string logPrefix_ =
std::shared_ptr<NexradDataProvider>
NexradDataProviderFactory::CreateLevel2DataProvider(
const std::string& radarSite)
{
return std::make_unique<AwsLevel2DataProvider>(radarSite);
}
std::shared_ptr<NexradDataProvider>
NexradDataProviderFactory::CreateLevel2ChunksDataProvider(
const std::string& radarSite)
{
return std::make_unique<AwsLevel2ChunksDataProvider>(radarSite);
}