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

#include <ossimSpaceImagingGeom.h>

Public Member Functions

 ossimSpaceImagingGeom (const ossimFilename &file, const char *prefix=0)
 
 ossimSpaceImagingGeom ()
 
void setGeometry (const ossimFilename &file)
 
void setGeometry (const ossimKeywordlist &kwl)
 
void exportToOssim (ossimKeywordlist &kwl, const char *prefix=0) const
 
ossimString spaceImagingToOssimKeyword (const ossimString &spaceImagingKeyword) const
 
ossimString spaceImagingToOssimValue (const ossimString &spaceImagingKeyword, const ossimString &spaceImagingValue) const
 
ossimString getBandName () const
 
ossimFilename getFilename () const
 
ossimString getProducer () const
 

Static Public Attributes

static const char * SIG_PRODUCER_KW = "Producer"
 
static const char * SIG_PROJECT_NAME_KW = "Project Name"
 
static const char * SIG_FILENAME_KW = "Filename"
 
static const char * SIG_BAND_KW = "Band"
 
static const char * SIG_BITS_PER_PIXEL_KW = "Bits/Pixel"
 
static const char * SIG_NUMBER_OF_BANDS_KW = "Number of Bands"
 
static const char * SIG_DATUM_KW = "Datum"
 
static const char * SIG_PROJECTION_KW = "Projection"
 
static const char * SIG_SELECTED_PROJECTION_KW = "Selected Projection"
 
static const char * SIG_ZONE_KW = "Zone"
 
static const char * SIG_UL_EASTING_KW = "UL Map X (Easting)"
 
static const char * SIG_UL_NORTHING_KW = "UL Map Y (Northing)"
 
static const char * SIG_PIXEL_SIZE_X_KW = "Pixel Size X"
 
static const char * SIG_PIXEL_SIZE_Y_KW = "Pixel Size Y"
 
static const char * SIG_COLUMNS_KW = "Columns"
 
static const char * SIG_ROWS_KW = "Rows"
 

Protected Attributes

ossimKeywordlist theSpaceImagingGeometry
 
ossimString thePrefix
 

Detailed Description

Definition at line 19 of file ossimSpaceImagingGeom.h.

Constructor & Destructor Documentation

◆ ossimSpaceImagingGeom() [1/2]

ossimSpaceImagingGeom::ossimSpaceImagingGeom ( const ossimFilename file,
const char *  prefix = 0 
)

Definition at line 38 of file ossimSpaceImagingGeom.cpp.

40 {
41  setGeometry(file);
42  thePrefix = prefix;
43 }
void setGeometry(const ossimFilename &file)

◆ ossimSpaceImagingGeom() [2/2]

ossimSpaceImagingGeom::ossimSpaceImagingGeom ( )

Definition at line 34 of file ossimSpaceImagingGeom.cpp.

35 {
36 }

Member Function Documentation

◆ exportToOssim()

void ossimSpaceImagingGeom::exportToOssim ( ossimKeywordlist kwl,
const char *  prefix = 0 
) const

Definition at line 59 of file ossimSpaceImagingGeom.cpp.

References ossimKeywordlist::add(), and ossimString::c_str().

Referenced by ossimMapProjectionFactory::createProjection().

61 {
63  ossimKeywordlist::KeywordMap::const_iterator node = geomMap.begin();
64 
65  while(node != geomMap.end())
66  {
67  ossimString keyword = spaceImagingToOssimKeyword((*node).first);
68  ossimString value = spaceImagingToOssimValue((*node).first,
69  (*node).second);
70  if(keyword != "")
71  {
72  kwl.add(prefix,
73  keyword.c_str(),
74  value.c_str(),
75  true);
76  }
77  ++node;
78  }
79 }
ossimKeywordlist theSpaceImagingGeometry
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
ossimString spaceImagingToOssimValue(const ossimString &spaceImagingKeyword, const ossimString &spaceImagingValue) const
std::map< std::string, std::string > KeywordMap
ossimString spaceImagingToOssimKeyword(const ossimString &spaceImagingKeyword) const
const ossimKeywordlist::KeywordMap & getMap() const
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396

◆ getBandName()

ossimString ossimSpaceImagingGeom::getBandName ( ) const

Definition at line 258 of file ossimSpaceImagingGeom.cpp.

References ossimString::find().

259 {
261 }
static const char * SIG_BAND_KW
const char * find(const char *key) const
ossimKeywordlist theSpaceImagingGeometry

◆ getFilename()

ossimFilename ossimSpaceImagingGeom::getFilename ( ) const

Definition at line 263 of file ossimSpaceImagingGeom.cpp.

References ossimString::find().

264 {
266 }
static const char * SIG_FILENAME_KW
const char * find(const char *key) const
ossimKeywordlist theSpaceImagingGeometry

◆ getProducer()

ossimString ossimSpaceImagingGeom::getProducer ( ) const

Definition at line 268 of file ossimSpaceImagingGeom.cpp.

References ossimString::find().

269 {
271 }
const char * find(const char *key) const
ossimKeywordlist theSpaceImagingGeometry
static const char * SIG_PRODUCER_KW

◆ setGeometry() [1/2]

void ossimSpaceImagingGeom::setGeometry ( const ossimFilename file)

Definition at line 45 of file ossimSpaceImagingGeom.cpp.

References ossimString::c_str().

Referenced by ossimMapProjectionFactory::createProjection().

46 {
48 
50 }
bool addFile(const char *file)
ossimKeywordlist theSpaceImagingGeometry
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396

◆ setGeometry() [2/2]

void ossimSpaceImagingGeom::setGeometry ( const ossimKeywordlist kwl)

Definition at line 52 of file ossimSpaceImagingGeom.cpp.

53 {
55 
57 }
ossimKeywordlist theSpaceImagingGeometry

◆ spaceImagingToOssimKeyword()

ossimString ossimSpaceImagingGeom::spaceImagingToOssimKeyword ( const ossimString spaceImagingKeyword) const

Definition at line 81 of file ossimSpaceImagingGeom.cpp.

References ossimKeywordNames::DATUM_KW, ossimKeywordNames::METERS_PER_PIXEL_X_KW, ossimKeywordNames::METERS_PER_PIXEL_Y_KW, ossimKeywordNames::NUMBER_BANDS_KW, ossimKeywordNames::NUMBER_LINES_KW, ossimKeywordNames::NUMBER_SAMPLES_KW, ossimKeywordNames::TIE_POINT_EASTING_KW, ossimKeywordNames::TIE_POINT_NORTHING_KW, ossimKeywordNames::TYPE_KW, and ossimKeywordNames::ZONE_KW.

82 {
83  if(spaceImagingKeyword == SIG_NUMBER_OF_BANDS_KW)
84  {
86  }
87  else if(spaceImagingKeyword == SIG_DATUM_KW)
88  {
90  }
91  else if((spaceImagingKeyword == SIG_PROJECTION_KW)||
92  (spaceImagingKeyword == SIG_SELECTED_PROJECTION_KW))
93  {
95  }
96  else if(spaceImagingKeyword == SIG_ZONE_KW)
97  {
99  }
100  else if(spaceImagingKeyword == SIG_UL_EASTING_KW)
101  {
103  }
104  else if(spaceImagingKeyword == SIG_UL_NORTHING_KW)
105  {
107  }
108  else if(spaceImagingKeyword == SIG_PIXEL_SIZE_X_KW)
109  {
111  }
112  else if(spaceImagingKeyword == SIG_PIXEL_SIZE_Y_KW)
113  {
115  }
116  else if(spaceImagingKeyword == SIG_COLUMNS_KW)
117  {
119  }
120  else if(spaceImagingKeyword == SIG_ROWS_KW)
121  {
123  }
124 
125  return ossimString("");
126 }
static const char * SIG_COLUMNS_KW
static const char * DATUM_KW
static const char * SIG_DATUM_KW
static const char * SIG_SELECTED_PROJECTION_KW
static const char * NUMBER_LINES_KW
static const char * SIG_NUMBER_OF_BANDS_KW
static const char * SIG_PIXEL_SIZE_Y_KW
static const char * METERS_PER_PIXEL_Y_KW
static const char * TYPE_KW
static const char * TIE_POINT_NORTHING_KW
static const char * ZONE_KW
static const char * TIE_POINT_EASTING_KW
static const char * SIG_PIXEL_SIZE_X_KW
static const char * NUMBER_BANDS_KW
static const char * SIG_ROWS_KW
static const char * SIG_PROJECTION_KW
static const char * SIG_ZONE_KW
static const char * SIG_UL_EASTING_KW
static const char * METERS_PER_PIXEL_X_KW
static const char * SIG_UL_NORTHING_KW
static const char * NUMBER_SAMPLES_KW

◆ spaceImagingToOssimValue()

ossimString ossimSpaceImagingGeom::spaceImagingToOssimValue ( const ossimString spaceImagingKeyword,
const ossimString spaceImagingValue 
) const

Definition at line 128 of file ossimSpaceImagingGeom.cpp.

References ossimString::c_str(), ossimString::find(), ossimNotify(), ossimNotifyLevel_WARN, ossimString::trim(), and ossimString::upcase().

131 {
132  const char* value = theSpaceImagingGeometry.find(thePrefix.c_str(),
133  spaceImagingKeyword.c_str());
134 
135  if(!value) return ossimString("");
136 
137  if(spaceImagingKeyword == SIG_DATUM_KW)
138  {
139  // better to have a lut for this. For now I'll put it
140  // here. As the list gets larger let's move it to a
141  // lut then.
142  ossimString datum = value;
143  datum = datum.trim().upcase();
144 
145  if( datum == "WGS84")
146  {
147  return ossimString("WGE");
148  }
149  }
150  else if((spaceImagingKeyword == SIG_PROJECTION_KW)||
151  (spaceImagingKeyword == SIG_SELECTED_PROJECTION_KW))
152  {
153  ossimString proj = value;
154  proj = proj.trim().upcase();
155 
156  if(proj == "UNIVERSAL TRANSVERSE MERCATOR")
157  {
158  return ossimString("ossimUtmProjection");
159  }
160  else
161  {
162  ossimNotify(ossimNotifyLevel_WARN) << "WARNING ossimSpaceImagingGeom::spaceImagingToOssimValue: Projection " << value << " doesn't have a converter yet!" << endl
163  << "Please add it" << endl;
164  }
165  }
166  else if(spaceImagingKeyword == SIG_UL_EASTING_KW)
167  {
168  ossimString easting = value;
169  easting = easting.trim();
170 
171  ostringstream os;
172  os << easting;
173 
174  ossimString eastingValue;
175  ossimString eastingUnits;
176 
177  istringstream is(os.str());
178  is >> eastingValue >> eastingUnits;
179 
180  eastingUnits = eastingUnits.trim().upcase();
181  if(eastingUnits!= "METERS")
182  {
183  ossimNotify(ossimNotifyLevel_WARN) << "WARNING ossimSpaceImagingGeom::spaceImagingToOssimValue: units " << eastingUnits << " not supported yet!" << endl;
184  }
185 
186  return eastingValue;
187  }
188  else if(spaceImagingKeyword == SIG_UL_NORTHING_KW)
189  {
190  ossimString northing = value;
191  northing = northing.trim();
192 
193  ostringstream os;
194  os << northing;
195 
196  ossimString northingValue;
197  ossimString northingUnits;
198 
199  istringstream is(os.str());
200  is >> northingValue >> northingUnits;
201 
202  northingUnits = northingUnits.trim().upcase();
203  if(northingUnits!= "METERS")
204  {
205  ossimNotify(ossimNotifyLevel_WARN) << "WARNING ossimSpaceImagingGeom::spaceImagingToOssimValue: units " << northingUnits << " not supported yet!" << endl;
206  }
207 
208  return northingValue;
209  }
210  else if(spaceImagingKeyword == SIG_PIXEL_SIZE_X_KW)
211  {
212  ossimString gsd = value;
213  gsd = gsd.trim();
214 
215  ostringstream os;
216  os << gsd;
217 
218  ossimString gsdValue;
219  ossimString gsdUnits;
220 
221  istringstream is(os.str());
222  is >> gsdValue >> gsdUnits;
223 
224  gsdUnits = gsdUnits.trim().upcase();
225  if(gsdUnits!= "METERS")
226  {
227  ossimNotify(ossimNotifyLevel_WARN) << "WARNING ossimSpaceImagingGeom::spaceImagingToOssimValue: units " << gsdUnits << " not supported yet!" << endl;
228  }
229 
230  return gsdValue;
231  }
232  else if(spaceImagingKeyword == SIG_PIXEL_SIZE_Y_KW)
233  {
234  ossimString gsd = value;
235  gsd = gsd.trim();
236 
237  ostringstream os;
238  os << gsd;
239 
240  ossimString gsdValue;
241  ossimString gsdUnits;
242 
243  istringstream is(os.str());
244  is >> gsdValue >> gsdUnits;
245 
246  gsdUnits = gsdUnits.trim().upcase();
247  if(gsdUnits!= "METERS")
248  {
249  ossimNotify(ossimNotifyLevel_WARN) << "WARNING ossimSpaceImagingGeom::spaceImagingToOssimValue: units " << gsdUnits << " not supported yet!" << endl;
250  }
251 
252  return gsdValue;
253  }
254 
255  return ossimString(value);
256 }
static ossimString upcase(const ossimString &aString)
Definition: ossimString.cpp:34
std::basic_ostringstream< char > ostringstream
Class for char output memory streams.
Definition: ossimIosFwd.h:35
static const char * SIG_DATUM_KW
const char * find(const char *key) const
static const char * SIG_SELECTED_PROJECTION_KW
ossimKeywordlist theSpaceImagingGeometry
static const char * SIG_PIXEL_SIZE_Y_KW
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
static const char * SIG_PIXEL_SIZE_X_KW
static const char * SIG_PROJECTION_KW
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string&#39;s contents...
Definition: ossimString.h:396
std::basic_istringstream< char > istringstream
Class for char input memory streams.
Definition: ossimIosFwd.h:32
static const char * SIG_UL_EASTING_KW
static const char * SIG_UL_NORTHING_KW
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)

Member Data Documentation

◆ SIG_BAND_KW

const char * ossimSpaceImagingGeom::SIG_BAND_KW = "Band"
static

Definition at line 43 of file ossimSpaceImagingGeom.h.

◆ SIG_BITS_PER_PIXEL_KW

const char * ossimSpaceImagingGeom::SIG_BITS_PER_PIXEL_KW = "Bits/Pixel"
static

Definition at line 44 of file ossimSpaceImagingGeom.h.

◆ SIG_COLUMNS_KW

const char * ossimSpaceImagingGeom::SIG_COLUMNS_KW = "Columns"
static

Definition at line 54 of file ossimSpaceImagingGeom.h.

◆ SIG_DATUM_KW

const char * ossimSpaceImagingGeom::SIG_DATUM_KW = "Datum"
static

Definition at line 46 of file ossimSpaceImagingGeom.h.

◆ SIG_FILENAME_KW

const char * ossimSpaceImagingGeom::SIG_FILENAME_KW = "Filename"
static

Definition at line 42 of file ossimSpaceImagingGeom.h.

◆ SIG_NUMBER_OF_BANDS_KW

const char * ossimSpaceImagingGeom::SIG_NUMBER_OF_BANDS_KW = "Number of Bands"
static

Definition at line 45 of file ossimSpaceImagingGeom.h.

◆ SIG_PIXEL_SIZE_X_KW

const char * ossimSpaceImagingGeom::SIG_PIXEL_SIZE_X_KW = "Pixel Size X"
static

Definition at line 52 of file ossimSpaceImagingGeom.h.

◆ SIG_PIXEL_SIZE_Y_KW

const char * ossimSpaceImagingGeom::SIG_PIXEL_SIZE_Y_KW = "Pixel Size Y"
static

Definition at line 53 of file ossimSpaceImagingGeom.h.

◆ SIG_PRODUCER_KW

const char * ossimSpaceImagingGeom::SIG_PRODUCER_KW = "Producer"
static

Definition at line 40 of file ossimSpaceImagingGeom.h.

Referenced by ossimMapProjectionFactory::createProjection().

◆ SIG_PROJECT_NAME_KW

const char * ossimSpaceImagingGeom::SIG_PROJECT_NAME_KW = "Project Name"
static

Definition at line 41 of file ossimSpaceImagingGeom.h.

◆ SIG_PROJECTION_KW

const char * ossimSpaceImagingGeom::SIG_PROJECTION_KW = "Projection"
static

Definition at line 47 of file ossimSpaceImagingGeom.h.

◆ SIG_ROWS_KW

const char * ossimSpaceImagingGeom::SIG_ROWS_KW = "Rows"
static

Definition at line 55 of file ossimSpaceImagingGeom.h.

◆ SIG_SELECTED_PROJECTION_KW

const char * ossimSpaceImagingGeom::SIG_SELECTED_PROJECTION_KW = "Selected Projection"
static

Definition at line 48 of file ossimSpaceImagingGeom.h.

◆ SIG_UL_EASTING_KW

const char * ossimSpaceImagingGeom::SIG_UL_EASTING_KW = "UL Map X (Easting)"
static

Definition at line 50 of file ossimSpaceImagingGeom.h.

◆ SIG_UL_NORTHING_KW

const char * ossimSpaceImagingGeom::SIG_UL_NORTHING_KW = "UL Map Y (Northing)"
static

Definition at line 51 of file ossimSpaceImagingGeom.h.

◆ SIG_ZONE_KW

const char * ossimSpaceImagingGeom::SIG_ZONE_KW = "Zone"
static

Definition at line 49 of file ossimSpaceImagingGeom.h.

◆ thePrefix

ossimString ossimSpaceImagingGeom::thePrefix
protected

Definition at line 59 of file ossimSpaceImagingGeom.h.

◆ theSpaceImagingGeometry

ossimKeywordlist ossimSpaceImagingGeom::theSpaceImagingGeometry
protected

Definition at line 58 of file ossimSpaceImagingGeom.h.


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