27 static ossimTrace traceExec (
"ossimIkonosMetaData:exec");
28 static ossimTrace traceDebug (
"ossimIkonosMetaData:debug");
32 theNominalCollectionAzimuth(0.0),
33 theNominalCollectionElevation(0.0),
37 theBandName(
"Unknown"),
38 theProductionDate(
"Unknown"),
39 theAcquisitionDate(
"Unknown"),
40 theAcquisitionTime(
"Unknown"),
41 theSensorID(
"Unknown")
51 static const char MODULE[] =
"ossimIkonosMetaData::open";
61 std::vector< ossimString > filenameparts = filenamebase.
split(separator);
63 if(filenameparts.size() < 2)
68 << MODULE <<
" Ikonos filename non standard" << std::endl;
74 metadatafile += filenameparts[1];
75 metadatafile +=
"_metadata.txt";
84 << MODULE <<
" errors parsing metadata" << std::endl;
96 << MODULE <<
" errors parsing hdr" << std::endl;
102 rpcfile +=
"_rpc.txt";
108 << MODULE <<
" errors parsing rpc" << std::endl;
133 out <<
"\n----------------- Info on Ikonos Image -------------------" 146 <<
"\n---------------------------------------------------------" 147 <<
"\n " << std::endl;
157 const char* prefix)
const 162 "ossimIkonosMetaData",
166 "nominal_collection_azimuth_angle",
171 "nominal_collection_elevation_angle",
223 const char* lookup = 0;
230 if(s !=
"ossimIkonosMetaData")
236 lookup = kwl.
find(prefix,
"nominal_collection_azimuth_angle");
243 lookup = kwl.
find(prefix,
"nominal_collection_elevation_angle");
271 lookup = kwl.
find(prefix,
"band_name");
277 lookup = kwl.
find(prefix,
"production_date");
283 lookup = kwl.
find(prefix,
"acquisition_date");
289 lookup = kwl.
find(prefix,
"acquisition_time");
295 lookup = kwl.
find(prefix,
"sensor");
315 <<
"DEBUG ossimIkonosRpcModel::parseMetaData(data_file): entering..." 319 FILE* fptr = fopen (data_file,
"r");
325 <<
"ossimIkonosRpcModel::parseMetaData(data_file) DEBUG:" 326 <<
"\nCould not open Meta data file: " << data_file
327 <<
"\nreturning with error..." << std::endl;
333 char dummy[80], name[80];
340 char*
filebuf =
new char[fileSize];
341 fread(
filebuf, 1, fileSize, fptr);
347 strptr = strstr(
filebuf,
"\nCreation Date:");
353 <<
"FATAL ossimIkonosRpcModel::parseMetaData(data_file): " 354 <<
"\n\tAborting construction. Error encountered parsing " 355 <<
"presumed meta-data file." << std::endl;
361 sscanf(strptr,
"%15c %s", dummy, name);
367 strptr = strstr(strptr,
"\nSensor:");
373 <<
"FATAL ossimIkonosRpcModel::parseMetaData(data_file): " 374 <<
"\n\tAborting construction. Error encountered parsing " 375 <<
"presumed meta-data file." << std::endl;
381 sscanf(strptr,
"%8c %s", dummy, name);
388 strptr = strstr(strptr,
"\nNominal Collection Azimuth:");
394 <<
"FATAL ossimIkonosRpcModel::parseMetaData(data_file): " 395 <<
"\n\tAborting construction. Error encountered parsing " 396 <<
"presumed meta-data file." << std::endl;
402 sscanf(strptr,
"%28c %lf %s", dummy, &value, dummy);
408 strptr = strstr(strptr,
"\nNominal Collection Elevation:");
414 <<
"FATAL ossimIkonosRpcModel::parseMetaData(data_file): " 415 <<
"\n\tAborting construction. Error encountered parsing " 416 <<
"presumed meta-data file." << std::endl;
422 sscanf(strptr,
"%31c %lf %s", dummy, &value, dummy);
428 strptr = strstr(strptr,
"\nSun Angle Azimuth:");
434 <<
"FATAL ossimIkonosRpcModel::parseMetaData(data_file): " 435 <<
"\n\tAborting construction. Error encountered parsing " 436 <<
"presumed meta-data file." << std::endl;
442 sscanf(strptr,
"%19c %lf %s", dummy, &value, dummy);
448 strptr = strstr(strptr,
"\nSun Angle Elevation:");
454 <<
"FATAL ossimIkonosRpcModel::parseMetaData(data_file): " 455 <<
"\n\tAborting construction. Error encountered parsing " 456 <<
"presumed meta-data file." << std::endl;
462 sscanf(strptr,
"%21c %lf %s", dummy, &value, name);
468 strptr = strstr(
filebuf,
"\nAcquisition Date/Time:");
474 <<
"FATAL ossimIkonosRpcModel::parseMetaData(data_file): " 475 <<
"\n\tAborting construction. Error encountered parsing " 476 <<
"presumed meta-data file." << std::endl;
483 sscanf(strptr,
"%23c %s %s", dummy, name, name2);
493 <<
"DEBUG ossimIkonosRpcModel::parseMetaData(data_file): returning..." 511 <<
"DEBUG ossimIkonosRpcModel::parseHdrData(data_file): entering..." 515 FILE* fptr = fopen (data_file,
"r");
521 <<
"ossimIkonosRpcModel::parseHdrData(data_file) WARN:" 522 <<
"\nCould not open hdr data file <" << data_file <<
">. " 523 <<
"returning with error..." << std::endl;
544 strptr = strstr(
filebuf,
"\nBand:");
550 <<
"ossimIkonosRpcModel::parseHdrData(data_file):" 551 <<
"\n\tAborting construction. Error encountered parsing " 552 <<
"presumed hdr file." << std::endl;
558 sscanf(strptr,
"%6c %s", dummy, name);
564 strptr = strstr(
filebuf,
"\nNumber of Bands:");
570 <<
"ossimIkonosRpcModel::parseHdrData(data_file):" 571 <<
"\n\tAborting construction. Error encountered parsing " 572 <<
"presumed hdr file." << std::endl;
578 sscanf(strptr,
"%17c %d", dummy, &value);
584 <<
"DEBUG ossimIkonosRpcModel::parseHdrData(data_file): returning..."
ossimFilename noExtension() const
std::basic_filebuf< char > filebuf
Class for char file buffers.
Represents serializable keyword/value map.
const char * find(const char *key) const
ossim_int64 fileSize() const
ossimFilename & setPath(const ossimString &p)
void split(std::vector< ossimString > &result, const ossimString &separatorList, bool skipBlankFields=false) const
Splits this string into a vector of strings (fields) using the delimiter list specified.
ossim_uint32 toUInt32() const
static const char * TYPE_KW
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
ossim_float64 toFloat64() const
static const char * NUMBER_BANDS_KW
static const char * AZIMUTH_ANGLE_KW
ossimFilename fileNoExtension() const
static const char * ELEVATION_ANGLE_KW
ossimFilename & setExtension(const ossimString &e)
Sets the extension of a file name.
ossimFilename path() const
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
std::basic_ostream< char > ostream
Base class for char output streams.