OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Private Attributes | Friends | List of all members
ossimDemProfile Class Reference

#include <ossimDemProfile.h>

Public Member Functions

 ossimDemProfile ()
 
 ossimDemProfile (ossimDemProfile const &right)
 
ossimDemProfile const & operator= (ossimDemProfile const &right)
 
ossim_int32 getRowNumber () const
 
ossim_int32 getColumnNumber () const
 
ossim_int32 getNumberOfElevations () const
 
ossimDemPoint const & getProfileLocation () const
 
double getLocalDatumElevation () const
 
double getMinimumElev () const
 
double getMaximumElev () const
 
ossimDemElevationVector const & getElevations () const
 

Private Attributes

ossim_int32 _row
 
ossim_int32 _column
 
ossim_int32 _numberElevations
 
ossimDemPoint _profileLocation
 
double _locDatumElev
 
double _minElev
 
double _maxElev
 
ossimDemElevationVector _elevations
 

Friends

std::ostream & operator<< (std::ostream &s, ossimDemProfile &demp)
 
std::istream & operator>> (std::istream &s, ossimDemProfile &demp)
 

Detailed Description

Definition at line 26 of file ossimDemProfile.h.

Constructor & Destructor Documentation

◆ ossimDemProfile() [1/2]

ossimDemProfile::ossimDemProfile ( )

Definition at line 23 of file ossimDemProfile.cpp.

24  : _row(0),
25  _column(0),
27  _locDatumElev(0.0),
28  _minElev(0.0),
29  _maxElev(0.0)
30 {
31 }
ossim_int32 _column
ossim_int32 _numberElevations
ossim_int32 _row

◆ ossimDemProfile() [2/2]

ossimDemProfile::ossimDemProfile ( ossimDemProfile const &  right)

Definition at line 33 of file ossimDemProfile.cpp.

References operator=().

34 {
35  operator=(right);
36 }
ossimDemProfile const & operator=(ossimDemProfile const &right)

Member Function Documentation

◆ getColumnNumber()

ossim_int32 ossimDemProfile::getColumnNumber ( ) const

Column identification number. This is the profile sequence number.

Definition at line 63 of file ossimDemProfile.cpp.

References _column.

64 {
65  return _column;
66 }
ossim_int32 _column

◆ getElevations()

ossimDemElevationVector const & ossimDemProfile::getElevations ( ) const

Elevation values. From the DEM standard: "A value in this array would be multiplied by the spatial resolution value and added to the elevation of the local elevation datum for the element profile to obtain the elevation for the point."

Definition at line 99 of file ossimDemProfile.cpp.

References _elevations.

100 {
101  return _elevations;
102 }
ossimDemElevationVector _elevations

◆ getLocalDatumElevation()

double ossimDemProfile::getLocalDatumElevation ( ) const

Elevation of local datum for the profile. Value is in units of measure given by the Elevation Units field found in the DEM header.

Definition at line 81 of file ossimDemProfile.cpp.

References _locDatumElev.

82 {
83  return _locDatumElev;
84 }

◆ getMaximumElev()

double ossimDemProfile::getMaximumElev ( ) const

Maximum elevation for this profile.

Definition at line 93 of file ossimDemProfile.cpp.

References _maxElev.

94 {
95  return _maxElev;
96 }

◆ getMinimumElev()

double ossimDemProfile::getMinimumElev ( ) const

Minimum elevation for this profile.

Definition at line 87 of file ossimDemProfile.cpp.

References _minElev.

88 {
89  return _minElev;
90 }

◆ getNumberOfElevations()

ossim_int32 ossimDemProfile::getNumberOfElevations ( ) const

Number of elevations in this profile.

Definition at line 69 of file ossimDemProfile.cpp.

References _numberElevations.

70 {
71  return _numberElevations;
72 }
ossim_int32 _numberElevations

◆ getProfileLocation()

ossimDemPoint const & ossimDemProfile::getProfileLocation ( ) const

Location (in ground planimetric coordinates) of the first

Definition at line 75 of file ossimDemProfile.cpp.

References _profileLocation.

76 {
77  return _profileLocation;
78 }
ossimDemPoint _profileLocation

◆ getRowNumber()

ossim_int32 ossimDemProfile::getRowNumber ( ) const

Row identification number. Typically set to 1.

Definition at line 57 of file ossimDemProfile.cpp.

References _row.

58 {
59  return _row;
60 }
ossim_int32 _row

◆ operator=()

ossimDemProfile const & ossimDemProfile::operator= ( ossimDemProfile const &  right)

Definition at line 39 of file ossimDemProfile.cpp.

References _column, _elevations, _locDatumElev, _maxElev, _minElev, _numberElevations, _profileLocation, and _row.

Referenced by ossimDemProfile().

40 {
41  if (this == &right)
42  return *this;
43 
44  _row = right._row;
45  _column = right._column;
46  _numberElevations = right._numberElevations;
47  _profileLocation = right._profileLocation;
48  _locDatumElev = right._locDatumElev;
49  _minElev = right._minElev;
50  _maxElev = right._maxElev;
51  _elevations = right._elevations;
52 
53  return *this;
54 }
ossimDemPoint _profileLocation
ossim_int32 _column
ossimDemElevationVector _elevations
ossim_int32 _numberElevations
ossim_int32 _row

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  s,
ossimDemProfile demp 
)
friend

Definition at line 150 of file ossimDemProfile.cpp.

151 {
152  return s;
153 }

◆ operator>>

std::istream& operator>> ( std::istream &  s,
ossimDemProfile demp 
)
friend

Definition at line 105 of file ossimDemProfile.cpp.

106 {
107  // string bufstr;
108  char bufstr[1024];
109 
110  ossimDemUtil::getRecord(s,bufstr);
111 
112  demp._row = ossimDemUtil::getLong(bufstr, 0, 6);
113  demp._column = ossimDemUtil::getLong(bufstr, 6, 6);
114  demp._numberElevations = ossimDemUtil::getLong(bufstr, 12, 6);
115 
116  double x,y;
117  ossimDemUtil::getDouble(bufstr, 24, 24, x);
118  ossimDemUtil::getDouble(bufstr, 48, 24, y);
119  demp._profileLocation.setXY(x,y);
120 
121  ossimDemUtil::getDouble(bufstr, 72, 24, demp._locDatumElev);
122  ossimDemUtil::getDouble(bufstr, 96, 24, demp._minElev);
123  ossimDemUtil::getDouble(bufstr, 120, 24, demp._maxElev);
124 
125  demp._elevations.erase(demp._elevations.begin(), demp._elevations.end());
126  demp._elevations.reserve(demp._numberElevations);
127 
128  // Extract elevations in this record.
129  ossim_int32 count = 0;
130  while ((count < 146) && (count < demp._numberElevations))
131  {
132  demp._elevations.push_back(ossimDemUtil::getLong(bufstr, 144+(count*6), 6));
133  count++;
134  }
135 
136  ossim_int32 t;
137  while (count < demp._numberElevations)
138  {
139  t = (count - 146) % 170;
140  if (t == 0)
141  ossimDemUtil::getRecord(s,bufstr);
142  demp._elevations.push_back(ossimDemUtil::getLong(bufstr, t*6, 6));
143  count++;
144  }
145 
146  return s;
147 }
ossim_uint32 x
ossimDemPoint _profileLocation
ossim_uint32 y
static long getLong(char *const strbuf, long const startpos, long const width)
ossim_int32 _column
static bool getDouble(std::string const &strbuf, long const startpos, long const width, double &val)
ossimDemElevationVector _elevations
ossim_int32 _numberElevations
void setXY(double x, double y)
Definition: ossimDemPoint.h:89
ossim_int32 _row
static bool getRecord(ossim::istream &s, std::string &strbuf, long reclength=1024)
Reads a single record from a DEM.
int ossim_int32

Member Data Documentation

◆ _column

ossim_int32 ossimDemProfile::_column
private

Definition at line 88 of file ossimDemProfile.h.

Referenced by getColumnNumber(), operator=(), and operator>>().

◆ _elevations

ossimDemElevationVector ossimDemProfile::_elevations
private

Definition at line 94 of file ossimDemProfile.h.

Referenced by getElevations(), operator=(), and operator>>().

◆ _locDatumElev

double ossimDemProfile::_locDatumElev
private

Definition at line 91 of file ossimDemProfile.h.

Referenced by getLocalDatumElevation(), operator=(), and operator>>().

◆ _maxElev

double ossimDemProfile::_maxElev
private

Definition at line 93 of file ossimDemProfile.h.

Referenced by getMaximumElev(), operator=(), and operator>>().

◆ _minElev

double ossimDemProfile::_minElev
private

Definition at line 92 of file ossimDemProfile.h.

Referenced by getMinimumElev(), operator=(), and operator>>().

◆ _numberElevations

ossim_int32 ossimDemProfile::_numberElevations
private

Definition at line 89 of file ossimDemProfile.h.

Referenced by getNumberOfElevations(), operator=(), and operator>>().

◆ _profileLocation

ossimDemPoint ossimDemProfile::_profileLocation
private

Definition at line 90 of file ossimDemProfile.h.

Referenced by getProfileLocation(), operator=(), and operator>>().

◆ _row

ossim_int32 ossimDemProfile::_row
private

Definition at line 87 of file ossimDemProfile.h.

Referenced by getRowNumber(), operator=(), and operator>>().


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