47 static const char M[] =
"ossimImageElevationDatabase::open";
51 << M <<
" entered...\n" 52 <<
"\nConnection string: " << connectionString <<
"\n";
59 if ( connectionString.
size() )
126 std::map<ossim_uint64, ossimImageElevationFileEntry>::iterator i =
m_entryMap.begin();
129 if ( (*i).second.m_loadedFlag ==
false )
134 if ( (*i).second.m_rect.isLonLatNan() )
136 if ( h->
open( (*i).second.m_file ) )
144 <<
"ossimImageElevationDatabase::createCell WARN:\nCould not open: " 145 << (*i).second.m_file <<
"\nRemoving file from map!" << std::endl;
148 std::map<ossim_uint64, ossimImageElevationFileEntry>::iterator badIter = i;
162 if ( (*i).second.m_rect.pointWithin(gpt) )
164 if ( h->
isOpen() == false )
166 h->
open( (*i).second.m_file );
178 (*i).second.m_loadedFlag =
true;
218 CellMap::iterator iter = lastAccessedCellIter;
223 if ( iter->second->m_handler->pointHasCoverage(gpt) )
225 result = iter->second->m_handler.get();
231 if ( result.
valid() == false )
236 while ( iter != lastAccessedCellIter)
238 if ( iter->second->m_handler->pointHasCoverage(gpt) )
240 result = iter->second->m_handler.get();
247 if ( result.
valid() )
250 iter->second->updateTimestamp();
255 if ( result.
valid() == false )
297 std::map<ossim_uint64, ossimImageElevationFileEntry>::const_iterator i =
m_entryMap.begin();
300 if ( (*i).second.m_rect.pointWithin(gpt) )
316 std::map<ossim_uint64, ossimImageElevationFileEntry>::const_iterator i =
m_entryMap.begin();
320 subRect = i->second.m_rect;
325 if ( h->
open( i->second.m_file ) )
354 static const char M[] =
"ossimImageElevationDatabase::loadState";
358 << M <<
" entered..." <<
"\nkwl:\n" << kwl <<
"\n";
361 const char* lookup = kwl.
find(prefix,
"type");
364 std::string type = lookup;
365 if ( ( type ==
"image_directory" ) || ( type ==
"ossimImageElevationDatabase" ) )
391 static const char M[] =
"ossimImageElevationDatabase::processFile";
395 << M <<
" entered...\n" <<
"file: " << file <<
"\n";
460 : m_file(copy_this.
m_file),
470 out <<
"\nossimImageElevationDatabase @ "<< (
ossim_uint64)
this <<
"\n" void clear()
Erases the entire container.
virtual bool isSourceEnabled() const
virtual ~ossimImageElevationDatabase()
Protected destructor.
virtual double getHeightAboveMSL(const ossimGpt &)=0
Height access methods:
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Statisfies pure virtual ossimElevSource::getAccuracyLE90.
virtual double getMeanSpacingMeters() const
METHOD: meanSpacingMeters() Implements pure virtual for.
ossimString m_surfaceName
virtual ossimRefPtr< ossimElevCellHandler > getOrCreateCellHandler(const ossimGpt &gpt)
Gets cell for point.
ossimString m_connectionString
void setFileProcessor(ossimFileProcessorInterface *fpi)
Sets ossimFileProcessorInterfacecallback method to process files.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Save the state to a keyword list.
Represents serializable keyword/value map.
virtual bool isOpen() const
const char * find(const char *key) const
double nan()
Method to return ieee floating point double precision NAN.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
virtual void disableSource()
bool m_loadedFlag
True if in ossimElevationCellDatabase::m_cacheMap.
Utility class to walk through directories and get a list of files to process.
virtual void close()
close method.
ossimImageElevationFileEntry()
default constructor
virtual const ossimGrect & getBoundingGndRect() const
METHODS: accuracyLE90(), accuracyCE90() Returns the vertical and horizontal accuracy (90% confidence)...
ossim_uint64 m_lastMapKey
virtual bool pointHasCoverage(const ossimGpt &) const
pointHasCoverage(gpt)
void getBoundingRect(ossimGrect &rect) const
Gets the bounding rectangle/coverage of elevation.
Elevation source for a generic image opened via ossimImageHandler.
std::map< ossim_uint64, ossimImageElevationFileEntry > m_entryMap
ossimRefPtr< ossimGeoid > m_geoid
std::string::size_type size() const
RTTI_DEF1(ossimImageElevationDatabase, "ossimImageElevationDatabase", ossimElevationCellDatabase)
unsigned long long ossim_uint64
virtual ossimRefPtr< ossimElevCellHandler > createCell(const ossimGpt &gpt)
virtual double getHeightAboveEllipsoid(const ossimGpt &)
Get height above ellipsoid for point.
virtual void enableSource()
virtual void processFile(const ossimFilename &file)
ProcessFile method.
ossim_float64 m_meanSpacing
void initializeDefaultFilterList()
Initializes the filter list with a default set of filtered out file names.
ossimGrect m_rect
Bounding rectangle in decimal degrees.
ossimFilename m_file
file name
virtual std::ostream & print(std::ostream &out) const
Outputs theErrorStatus as an ossimErrorCode and an ossimString.
ossim_uint64 m_lastAccessedId
void loadFileMap()
Initializes m_entryMap with all loadable files from m_connectionString.
ossimGrect combine(const ossimGrect &rect) const
ossim_uint32 m_maxOpenCells
virtual double getOffsetFromEllipsoid(const ossimGpt &gpt)
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string's contents...
void flushCacheToMinOpenCells()
virtual bool open(const ossimString &connectionString)
Open a connection to a database.
ossimImageElevationDatabase()
default constructor
virtual bool open(const ossimFilename &file)
Opens a stream to the srtm cell.
std::mutex m_cacheMapMutex
virtual bool pointHasCoverage(const ossimGpt &gpt) const
Satisfies pure virtual ossimElevSource::pointHasCoverage.
virtual double getHeightAboveMSL(const ossimGpt &gpt)
Get height above MSL for point.
void walk(const std::vector< ossimFilename > &files)
Takes an array of files.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
std::basic_ostream< char > ostream
Base class for char output streams.
bool isnan(const float &v)
isnan Test for floating point Not A Number (NAN) value.
virtual bool getAccuracyInfo(ossimElevationAccuracyInfo &info, const ossimGpt &gpt) const