28 theTies.push_back(aTiePt);
39 os<<
"MasterPath: "<<getMasterPath()<<endl;
40 os<<
"SlavePath: "<<getSlavePath()<<endl;
41 os<< std::setiosflags(std::ios::fixed) << std::setprecision(15);
42 os<<
"ImageCov: (2) " <<symMatrixToText(getImageCov()) <<endl;
43 os<<
"GroundCov: (3) "<<symMatrixToText(getGroundCov())<<endl;
44 os<<
"TiePoints: ("<<endl;
70 node->
setTag(TIEPTSET_TAG);
71 node->
addAttribute(
"xmlns:gml",
"""http://www.opengis.net/gml""");
120 NEWMAT::SymmetricMatrix icm = textToSymMatrix(icn->
getText(),2);
131 setImageCov(NEWMAT::SymmetricMatrix(2));
138 NEWMAT::SymmetricMatrix gcm = textToSymMatrix(gcn->
getText(),3);
149 setGroundCov(NEWMAT::SymmetricMatrix(3));
153 vector< ossimRefPtr< ossimXmlNode > > tienodes;
155 if (tienodes.size() <= 0)
182 const NEWMAT::SymmetricMatrix& sym,
189 for (
int i=1;i<=sym.Nrows();++i)
191 for (
int j=1;j<=i;++j)
193 if (j!=1) res += el_sep;
202 NEWMAT::SymmetricMatrix
210 vector<double> buffer;
212 vector<ossimString> vsv = text.
explode(seps);
213 for(vector<ossimString>::const_iterator vit=vsv.begin(); vit!=vsv.end(); ++vit)
217 buffer.push_back(vit->toDouble());
222 if (buffer.size() != (dim*(dim+1))/2)
225 return NEWMAT::SymmetricMatrix();
229 vector<double>::const_iterator it = buffer.begin();
230 NEWMAT::SymmetricMatrix sym(dim);
231 for(
unsigned int i=1;i<=dim;++i)
233 for(
unsigned int j=1;j<=i;++j)
243 std::vector<ossimDpt>& imv,
244 std::vector<ossimGpt>& gdv)
const 247 imv.resize(theTies.size());
248 gdv.resize(theTies.size());
251 std::vector<ossimDpt>::iterator imvit = imv.begin();
252 std::vector<ossimGpt>::iterator gdvit = gdv.begin();
254 for(vector<
ossimRefPtr<ossimTieGpt> >::const_iterator it = theTies.begin(); it != theTies.end(); ++it,++imvit,++gdvit)
256 *imvit = (*it)->getImagePoint();
257 *gdvit = (*it)->getGroundPoint();
void setTag(const ossimString &tag)
void getSlaveMasterPoints(std::vector< ossimDpt > &imv, std::vector< ossimGpt > &gdv) const
const char * SLAVEPATH_TAG
static const char * TIEPTSET_TAG
Public data members.
void findChildNodes(const ossimString &rel_xpath, ossimXmlNode::ChildListType &nodelist) const
#define OSSIM_DEFAULT_MAX_PIX_DOUBLE
const ossimTieGptSet & operator=(const ossimTieGptSet &)
static ossimString toString(bool aValue)
Numeric to string methods.
const char * IMAGECOV_TAG
ossim_float64 hgt
Height in meters above the ellipsiod.
const char * TIEPOINTS_TAG
const ossimRefPtr< ossimXmlNode > & findFirstNode(const ossimString &rel_xpath) const
const char * GROUNDCOV_TAG
bool importFromGmlNode(ossimRefPtr< ossimXmlNode > aGmlNode, ossimString aGmlVersion="2.1.2")
const ossimString & getText() const
bool importFromGmlNode(ossimRefPtr< ossimXmlNode > aGmlNode, ossimString aGmlVersion="2.1.2")
#define OSSIM_DEFAULT_MIN_PIX_DOUBLE
const vector< ossimRefPtr< ossimTieGpt > > & getTiePoints() const
const char * MASTERPATH_TAG
std::vector< ossimString > explode(const ossimString &delimeter) const
ossimRefPtr< ossimXmlNode > exportAsGmlNode(ossimString aGmlVersion="2.1.2") const
GML features (XML) serialization.
storage class for tie point between ground and image based on ossimGpt
void getGroundBoundaries(ossimGpt &gBoundInf, ossimGpt &gBoundSup) const
void addTiePoint(ossimRefPtr< ossimTieGpt > aTiePt)
operations
std::ostream & printTab(std::ostream &os) const
text output : header + tab separated tie points
NEWMAT::SymmetricMatrix textToSymMatrix(const ossimString &text, unsigned int dim, const ossimString &seps=" ;\\) const
const NEWMAT::SymmetricMatrix & getGroundCov() const
storage class for a set of geographic tie points, between master and slave images ...
const NEWMAT::SymmetricMatrix & getImageCov() const
void addAttribute(ossimRefPtr< ossimXmlAttribute > attribute)
ossimString symMatrixToText(const NEWMAT::SymmetricMatrix &sym, const ossimString &el_sep=" ", const ossimString &row_sep=";") const
ground error covariance matrix
const ossimString & getSlavePath() const
const ossimString & getMasterPath() const
void addChildNode(ossimRefPtr< ossimXmlNode > node)
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.