OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Static Public Member Functions | Static Protected Attributes | List of all members
ossimElevationDatabaseFactory Class Reference

This is our default elevation factory in the ossim core. More...

#include <ossimElevationDatabaseFactory.h>

Inheritance diagram for ossimElevationDatabaseFactory:
ossimElevationDatabaseFactoryBase ossimObjectFactory ossimObject ossimReferenced

Public Member Functions

 ossimElevationDatabaseFactory ()
 
ossimElevationDatabasecreateDatabase (const ossimString &typeName) const
 
ossimElevationDatabasecreateDatabase (const ossimKeywordlist &kwl, const char *prefix=0) const
 
virtual ossimElevationDatabaseopen (const ossimString &connectionString) const
 
virtual void getTypeNameList (std::vector< ossimString > &typeList) const
 
- Public Member Functions inherited from ossimElevationDatabaseFactoryBase
virtual ossimObjectcreateObject (const ossimString &typeName) const
 Creates an object given a type name. More...
 
virtual ossimObjectcreateObject (const ossimKeywordlist &kwl, const char *prefix=0) const
 Creates and object given a keyword list. More...
 
- Public Member Functions inherited from ossimObjectFactory
virtual ~ossimObjectFactory ()
 
- Public Member Functions inherited from ossimObject
 ossimObject ()
 
virtual ~ossimObject ()
 
virtual ossimObjectdup () const
 
virtual ossimString getShortName () const
 
virtual ossimString getLongName () const
 
virtual ossimString getDescription () const
 
virtual ossimString getClassName () const
 
virtual RTTItypeid getType () const
 
virtual bool canCastTo (ossimObject *obj) const
 
virtual bool canCastTo (const RTTItypeid &id) const
 
virtual bool canCastTo (const ossimString &parentClassName) const
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 
virtual std::ostream & print (std::ostream &out) const
 Generic print method. More...
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
 
virtual void accept (ossimVisitor &visitor)
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 

Static Public Member Functions

static ossimElevationDatabaseFactoryinstance ()
 

Static Protected Attributes

static ossimElevationDatabaseFactorym_instance = 0
 

Additional Inherited Members

- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 

Detailed Description

This is our default elevation factory in the ossim core.

It supports general_raster, general imagery, DTED and SRTM directory layouts.

Example DTED Keywordlist:

elevation_manager.elevation_source1.type: dted_directory
elevation_manager.elevation_source1.connection_string: /data/elevation/dted/level0
elevation_manager.elevation_source1.min_open_cells: 5
elevation_manager.elevation_source1.max_open_cells: 25
elevation_manager.elevation_source1.enabled: true
elevation_manager.elevation_source1.memory_map_cells: true

Note: only use memory_map_cells to true if they are small files. DTED0 is small so we set it to true. Where the dted file tree has the form: <rootdir>/w056/n49.dt0

Example General Raster directory:

elevation_manager.elevation_source2.type: general_raster_directory
elevation_manager.elevation_source2.connection_string: /data/tutorial/data/elevation/general_raster_pk_90m
elevation_manager.elevation_source2.min_open_cells: 25
elevation_manager.elevation_source2.max_open_cells: 50
elevation_manager.elevation_source2.enabled: false
elevation_manager.elevation_source2.memory_map_cells: false

where the directory is a flat directory with general raster files

Example SRTM directory:

elevation_manager.elevation_source10.type: srtm_directory
elevation_manager.elevation_source10.connection_string: /Volumes/DataDrive/data/elevation/srtm1/
elevation_manager.elevation_source10.min_open_cells: 25
elevation_manager.elevation_source10.max_open_cells: 50
elevation_manager.elevation_source10.memory_map_cells: false
elevation_manager.elevation_source10.enabled: true

where the directory has files of the form N39W112.hgt and are 1x1 degree cells

Example image directory format:

elevation_manager.elevation_source20.type: image_directory
elevation_manager.elevation_source20.connection_string: /data/elevation/image
elevation_manager.elevation_source20.min_open_cells: 25
elevation_manager.elevation_source20.max_open_cells: 50
elevation_manager.elevation_source20.memory_map_cells: false
elevation_manager.elevation_source20.enabled: false

where the directory can have any image the ossim supports and is a flat directory

Definition at line 57 of file ossimElevationDatabaseFactory.h.

Constructor & Destructor Documentation

◆ ossimElevationDatabaseFactory()

ossimElevationDatabaseFactory::ossimElevationDatabaseFactory ( )
inline

Definition at line 60 of file ossimElevationDatabaseFactory.h.

Referenced by instance().

61  {
62  m_instance = this;
63  }
static ossimElevationDatabaseFactory * m_instance

Member Function Documentation

◆ createDatabase() [1/2]

ossimElevationDatabase * ossimElevationDatabaseFactory::createDatabase ( const ossimString typeName) const
virtual
Parameters
typeNameis the type name of the database you wish to create.
Returns
the elevation database or null otherwise

Implements ossimElevationDatabaseFactoryBase.

Definition at line 20 of file ossimElevationDatabaseFactory.cpp.

References STATIC_TYPE_NAME.

Referenced by createDatabase().

21 {
22  if((typeName == STATIC_TYPE_NAME(ossimDtedElevationDatabase)) ||
23  (typeName == "dted")||
24  (typeName == "dted_directory"))
25 
26  {
27  return new ossimDtedElevationDatabase();
28  }
29  else if((typeName == STATIC_TYPE_NAME(ossimSrtmElevationDatabase)) ||
30  (typeName == "srtm")||
31  (typeName == "srtm_directory"))
32 
33  {
34  return new ossimSrtmElevationDatabase();
35  }
37  (typeName == "general_raster")||
38  (typeName == "general_raster_directory"))
39 
40  {
42  }
43  else if( (typeName == "ossimImageElevationDatabase") ||
44  (typeName == "image_directory"))
45 
46  {
47  return new ossimImageElevationDatabase();
48  }
49 
50  return 0;
51 }
#define STATIC_TYPE_NAME(T)
Definition: ossimRtti.h:325
The DTED elevation data base is also an elevation source but allows one to point to an file based ele...

◆ createDatabase() [2/2]

ossimElevationDatabase * ossimElevationDatabaseFactory::createDatabase ( const ossimKeywordlist kwl,
const char *  prefix = 0 
) const
virtual
Parameters
kwlkewyord list that has state information about how to create a database
prefixprefix key to use when loading the state information.
Returns
the elevation database or null otherwise

Implements ossimElevationDatabaseFactoryBase.

Definition at line 53 of file ossimElevationDatabaseFactory.cpp.

References createDatabase(), ossimString::empty(), ossimKeywordlist::find(), ossimElevationDatabase::loadState(), ossimRefPtr< T >::release(), ossimKeywordNames::TYPE_KW, and ossimRefPtr< T >::valid().

55 {
57  ossimString type = kwl.find(prefix, ossimKeywordNames::TYPE_KW);
58  if(!type.empty())
59  {
60  result = createDatabase(type);
61  if(result.valid())
62  {
63  if(!result->loadState(kwl, prefix))
64  {
65  result = 0;
66  }
67  }
68  }
69 
70  return result.release();
71 }
bool valid() const
Definition: ossimRefPtr.h:75
const char * find(const char *key) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
static const char * TYPE_KW
T * release()
Definition: ossimRefPtr.h:93
ossimElevationDatabase * createDatabase(const ossimString &typeName) const
bool empty() const
Definition: ossimString.h:411

◆ getTypeNameList()

void ossimElevationDatabaseFactory::getTypeNameList ( std::vector< ossimString > &  typeList) const
virtual
Parameters
typeListappends to the typeList all the type names this factory supports

Implements ossimObjectFactory.

Definition at line 106 of file ossimElevationDatabaseFactory.cpp.

References STATIC_TYPE_NAME.

107 {
108  typeList.push_back(STATIC_TYPE_NAME(ossimDtedElevationDatabase));
109  typeList.push_back(STATIC_TYPE_NAME(ossimSrtmElevationDatabase));
111  typeList.push_back(STATIC_TYPE_NAME(ossimImageElevationDatabase));
112 }
#define STATIC_TYPE_NAME(T)
Definition: ossimRtti.h:325
The DTED elevation data base is also an elevation source but allows one to point to an file based ele...

◆ instance()

ossimElevationDatabaseFactory * ossimElevationDatabaseFactory::instance ( )
static
Returns
a singleton instance of this factory

Definition at line 10 of file ossimElevationDatabaseFactory.cpp.

References m_instance, and ossimElevationDatabaseFactory().

Referenced by ossimElevationDatabaseRegistry::instance().

11 {
12  if(!m_instance)
13  {
15  }
16 
17  return m_instance;
18 }
static ossimElevationDatabaseFactory * m_instance

◆ open()

ossimElevationDatabase * ossimElevationDatabaseFactory::open ( const ossimString connectionString) const
virtual
Parameters
connectionStringused to determine which database can support that connection.
Returns
the elevation database or null otherwise

Implements ossimElevationDatabaseFactoryBase.

Definition at line 73 of file ossimElevationDatabaseFactory.cpp.

References ossimFilename::isFile(), ossimElevationDatabase::open(), and ossimRefPtr< T >::release().

74 {
76  do
77  {
78  result = new ossimDtedElevationDatabase();
79  if (result->open(connectionString))
80  break;
81 
82  result = new ossimSrtmElevationDatabase;
83  if (result->open(connectionString))
84  break;
85 
87  if (result->open(connectionString))
88  break;
89 
90  // This method will only open individual image files for use as dems. It will not utilize the
91  // file walker to search over directories:
92  ossimFilename filename (connectionString);
93  if (filename.isFile())
94  {
95  result = new ossimImageElevationDatabase;
96  if (result->open(connectionString))
97  break;
98  }
99 
100  result = 0;
101  } while (0);
102 
103  return result.release();
104 }
T * release()
Definition: ossimRefPtr.h:93
The DTED elevation data base is also an elevation source but allows one to point to an file based ele...
virtual bool open(const ossimString &connectionString)=0
Open a connection to a database.

Member Data Documentation

◆ m_instance

ossimElevationDatabaseFactory * ossimElevationDatabaseFactory::m_instance = 0
staticprotected

Definition at line 99 of file ossimElevationDatabaseFactory.h.

Referenced by instance().


The documentation for this class was generated from the following files: