43 RTTI_DEF1(ossimRadarSatModel,
"ossimRadarSatModel", ossimGeometricSarSensorModel);
46 static ossimTrace traceDebug(
"ossimRadarSatModel:debug");
62 _pixel_spacing(rhs._pixel_spacing),
63 _data(new
Data(*(rhs._data))),
64 _leader(new
Leader(*(rhs._leader))),
65 _trailer(new
Trailer(*(rhs._trailer))),
66 _volumeDir(new
VolumeDir(*(rhs._volumeDir)))
107 double relativeGroundRange ;
133 <<
"ossimRadarSatTileSource::open(filename) DEBUG: entered..." 135 <<
"Attempting to open file " << file << std::endl;
138 bool retValue =
true;
146 std::string input_file = file;
147 string::size_type loc_DAT = input_file.
find(
"DAT_01", 0 );
148 string::size_type loc_dat = input_file.find(
"dat_01", 0 );
149 if ( (loc_DAT != string::npos ) || ( loc_dat != string::npos ) )
151 dataFilePath = input_file.
c_str();
152 if (loc_DAT != string::npos ) input_file.replace(loc_DAT, 6,
"VDF_DAT");
153 if (loc_dat != string::npos ) input_file.replace(loc_dat, 6,
"vdf_dat");
154 volumeDirectoryFilePath = input_file.
c_str();
158 string::size_type loc_VDF = input_file.find(
"VDF_DAT", 0 );
159 string::size_type loc_vdf = input_file.find(
"vdf_dat", 0 );
160 if ( (loc_VDF != string::npos ) || ( loc_vdf != string::npos ) )
162 volumeDirectoryFilePath = input_file.
c_str();
163 if (loc_VDF != string::npos ) input_file.replace(loc_VDF, 7,
"DAT_01");
164 if (loc_vdf != string::npos ) input_file.replace(loc_vdf, 7,
"dat_01");
165 dataFilePath = input_file.
c_str();
172 <<
"File Name not coherent (searching for *DAT_01* or *dat_01* or *vdf_dat* or *VDF_DAT* ) : " << file << std::endl;
213 ifstream volumeDirFile (volumeDirectoryFilePath.
c_str(), ios::in|ios::binary);
214 volumeDirFile>>headerVDF;
215 if(volumeDirFile.eof())
217 volumeDirFile.close();
228 if (recordVDF != NULL && headerVDF.get_rec_seq() == 1)
230 recordVDF->
Read(volumeDirFile);
236 if ( (subProduct ==
"RAW") || (subProduct ==
"SPG") || (subProduct ==
"SSG") )
241 volumeDirFile.close();
244 else if ( (subProduct ==
"SCN") || (subProduct ==
"SGX") || (subProduct ==
"SLC") )
249 else if ( (subProduct ==
"SCW") || (subProduct ==
"SGF") )
257 volumeDirFile.close();
258 volumeDirFile.open(volumeDirectoryFilePath.
c_str(), ios::in | ios::binary);
260 volumeDirFile.close();
269 ifstream dataFile (dataFilePath.
c_str(), ios::in|ios::binary);
284 if (recordDAT != NULL && headerDAT.get_rec_seq() == 1)
286 recordDAT->
Read(dataFile);
291 dataFile.open(dataFilePath.
c_str(), ios::in|ios::binary);
317 std::string leader_file = dataFilePath;
318 string::size_type loc = leader_file.
find(
"DAT_01", 0 );
319 if( loc != string::npos ) leader_file.replace(loc, 6,
"LEA_01" );
322 loc = leader_file.find(
"dat_01", 0 );
323 if( loc != string::npos ) leader_file.replace(loc, 6,
"lea_01" );
330 if (!leaderFilePath.
exists())
344 ifstream leaderFile (leaderFilePath.
c_str(), ios::in|ios::binary);
357 std::string trailer_file = dataFilePath;
358 loc = trailer_file.
find(
"DAT_01", 0 );
359 if( loc != string::npos ) trailer_file.replace(loc, 6,
"TRA_01" );
362 loc = trailer_file.find(
"dat_01", 0 );
363 if( loc != string::npos ) trailer_file.replace(loc, 6,
"tra_01" );
370 if (!trailerFilePath.
exists())
384 ifstream trailerFile (trailerFilePath.
c_str(), ios::in|ios::binary);
395 volumeDirFile.close();
401 volumeDirFile.close();
431 const char* prefix)
const 433 static const char MODULE[] =
"ossimRadarSatModel::internalSaveState";
445 if(fileDescriptor != NULL)
455 if(datasetSummary == NULL)
457 delete datasetSummary;
461 if(datasetSummary != NULL)
465 kwl.
add(prefix,
"asc_des",datasetSummary->
get_asc_des().c_str(),
true);
484 kwl.
add(prefix,
"fr",datasetSummary->
get_fr(),
true);
488 kwl.
add(prefix,
"fa",datasetSummary->
get_fa(),
true);
519 if(processingParameters == NULL)
521 delete processingParameters;
525 if(processingParameters != NULL)
527 kwl.
add(prefix,
"n_srgr",processingParameters->
get_n_srgr(),
true);
529 for (
int i=0;i<processingParameters->
get_n_srgr();i++)
531 sprintf(name,
"srgr_update%i",i);
532 kwl.
add(prefix, name,((processingParameters->
get_srgr_coefset()[i]).get_srgr_update()).c_str(),
true);
534 sprintf(name,
"srgr_coef%iA",i);
535 kwl.
add(prefix, name,(processingParameters->
get_srgr_coefset()[i]).get_srgr_coef()[0],
true);
536 sprintf(name,
"srgr_coef%iB",i);
537 kwl.
add(prefix, name,(processingParameters->
get_srgr_coefset()[i]).get_srgr_coef()[1],
true);
538 sprintf(name,
"srgr_coef%iC",i);
539 kwl.
add(prefix, name,(processingParameters->
get_srgr_coefset()[i]).get_srgr_coef()[2],
true);
540 sprintf(name,
"srgr_coef%iD",i);
541 kwl.
add(prefix, name,(processingParameters->
get_srgr_coefset()[i]).get_srgr_coef()[3],
true);
542 sprintf(name,
"srgr_coef%iE",i);
543 kwl.
add(prefix, name,(processingParameters->
get_srgr_coefset()[i]).get_srgr_coef()[4],
true);
544 sprintf(name,
"srgr_coef%iF",i);
545 kwl.
add(prefix, name,(processingParameters->
get_srgr_coefset()[i]).get_srgr_coef()[5],
true);
550 kwl.
add(prefix,
"lookDirection",(processingParameters->
get_sens_orient()).c_str(),
true);
559 if(platformPositionData != NULL)
561 kwl.
add(prefix,
"neph",platformPositionData->
get_ndata(),
true);
564 kwl.
add(prefix,
"eph_year",platformPositionData->
get_year(),
true);
565 kwl.
add(prefix,
"eph_month",platformPositionData->
get_month(),
true);
566 kwl.
add(prefix,
"eph_day",platformPositionData->
get_day(),
true);
567 kwl.
add(prefix,
"eph_sec",platformPositionData->
get_gmt_sec(),
true);
570 for(
int i=0;i<platformPositionData->
get_ndata();i++)
572 sprintf(name,
"eph%i_posX",i);
573 kwl.
add(prefix, name,(platformPositionData->
get_pos_vect()[i]).get_pos()[0],
true);
574 sprintf(name,
"eph%i_posY",i);
575 kwl.
add(prefix, name,(platformPositionData->
get_pos_vect()[i]).get_pos()[1],
true);
576 sprintf(name,
"eph%i_posZ",i);
577 kwl.
add(prefix, name,(platformPositionData->
get_pos_vect()[i]).get_pos()[2],
true);
579 sprintf(name,
"eph%i_velX",i);
580 kwl.
add(prefix, name,(platformPositionData->
get_pos_vect()[i]).get_vel()[0],
true);
581 sprintf(name,
"eph%i_velY",i);
582 kwl.
add(prefix, name,(platformPositionData->
get_pos_vect()[i]).get_vel()[1],
true);
583 sprintf(name,
"eph%i_velZ",i);
584 kwl.
add(prefix, name,(platformPositionData->
get_pos_vect()[i]).get_vel()[2],
true);
594 if(imageOptionsFileDescriptor != NULL)
596 kwl.
add(prefix,
"nbLin",imageOptionsFileDescriptor->
get_nlin(),
true);
597 kwl.
add(prefix,
"nbCol",imageOptionsFileDescriptor->
get_ngrp(),
true);
606 if(firstProcessedDataRecord != NULL)
608 sprintf(name,
"cornersLon%i",0);
609 kwl.
add(prefix, name,((
float) (firstProcessedDataRecord->
get_lon_first()))/1000000.0,
true);
610 sprintf(name,
"cornersLat%i",0);
611 kwl.
add(prefix, name,((
float) (firstProcessedDataRecord->
get_lat_first()))/1000000.0,
true);
612 sprintf(name,
"cornersLon%i",1);
613 kwl.
add(prefix, name,((
float) (firstProcessedDataRecord->
get_lon_last()))/1000000.0,
true);
614 sprintf(name,
"cornersLat%i",1);
615 kwl.
add(prefix, name,((
float) (firstProcessedDataRecord->
get_lat_last()))/1000000.0,
true);
616 kwl.
add(prefix,
"acq_msec_first",firstProcessedDataRecord->
get_acq_msec(),
true);
625 if(lastProcessedDataRecord != NULL)
627 sprintf(name,
"cornersLon%i",2);
628 kwl.
add(prefix, name,((
float) (lastProcessedDataRecord->
get_lon_first()))/1000000.0,
true);
629 sprintf(name,
"cornersLat%i",2);
630 kwl.
add(prefix, name,((
float) (lastProcessedDataRecord->
get_lat_first()))/1000000.0,
true);
631 sprintf(name,
"cornersLon%i",3);
632 kwl.
add(prefix, name,(((
float) lastProcessedDataRecord->
get_lon_last()))/1000000.0,
true);
633 sprintf(name,
"cornersLat%i",3);
634 kwl.
add(prefix, name,((
float) (lastProcessedDataRecord->
get_lat_last()))/1000000.0,
true);
635 kwl.
add(prefix,
"acq_msec_last",lastProcessedDataRecord->
get_acq_msec(),
true);
647 const char* prefix)
const 662 static const char MODULE[] =
"ossimRadarSatModel::internalLoadState";
683 static const char MODULE[] =
"ossimRadarSatModel::loadState";
689 const char* lookup = 0;
720 const char* wave_length_str = kwl.
find(prefix,
"wave_length");
721 double wave_length = atof(wave_length_str);
722 const char* fr_str = kwl.
find(prefix,
"fr");
723 double fr = atof(fr_str);
724 const char* fa_str = kwl.
find(prefix,
"fa");
725 double fa = atof(fa_str);
735 const char* bnd_azilok_str = kwl.
find(prefix,
"bnd_azilok");
736 double bnd_azilok = atof(bnd_azilok_str);
737 const char* bnd_rnglok_str = kwl.
find(prefix,
"bnd_rnglok");
738 double bnd_rnglok = atof(bnd_rnglok_str);
739 const char* bnd_azi_str = kwl.
find(prefix,
"bnd_azi");
740 double bnd_azi = atof(bnd_azi_str);
741 const char* bnd_rng_str = kwl.
find(prefix,
"bnd_rng");
742 double bnd_rng = atof(bnd_rng_str);
744 double n_azilok = bnd_azi/bnd_azilok;
745 double n_rnglok = bnd_rng/bnd_rnglok;
747 const char* time_dir_pix = kwl.
find(prefix,
"time_dir_pix");
748 const char* time_dir_lin = kwl.
find(prefix,
"time_dir_lin");
751 const char* ellip_maj_str = kwl.
find(prefix,
"ellip_maj");
752 double ellip_maj = atof(ellip_maj_str) * 1000.0;
753 const char* ellip_min_str = kwl.
find(prefix,
"ellip_min");
754 double ellip_min = atof(ellip_min_str) * 1000.0;
763 if(strcmp(time_dir_pix,
"INCREASE") == 0)
772 if(strcmp(time_dir_lin,
"INCREASE") == 0)
781 const char* lookDirection_str = kwl.
find(prefix,
"lookDirection");
783 lookDirection.
trim(
" ") ;
801 const double _PI = 3.14159265358979323846 ;
806 const char* eph_year_str = kwl.
find(prefix,
"eph_year");
807 int eph_year = atoi(eph_year_str);
808 const char* eph_month_str = kwl.
find(prefix,
"eph_month");
809 int eph_month = atoi(eph_month_str);
810 const char* eph_day_str = kwl.
find(prefix,
"eph_day");
811 int eph_day = atoi(eph_day_str);
812 const char* eph_sec_str = kwl.
find(prefix,
"eph_sec");
813 double eph_sec = atof(eph_sec_str);
817 ref_civil_date.
set_day(eph_day);
819 ref_civil_date.
set_decimal( eph_sec-(
double)((
int)eph_sec));
824 const char* eph_int_str = kwl.
find(prefix,
"eph_int");
825 double eph_int = atof(eph_int_str);
829 const char* neph_str = kwl.
find(prefix,
"neph");
830 int neph = atoi(neph_str);
834 const char* hr_angle_str = kwl.
find(prefix,
"hr_angle");
835 double greenwich_mha_ref = atof(hr_angle_str);
844 for (
int i=0;i<neph;i++)
851 sprintf(name,
"eph%i_posX",i);
852 const char* px_str = kwl.
find(prefix,name);
853 pos[0] = atof(px_str);
855 sprintf(name,
"eph%i_posY",i);
856 const char* py_str = kwl.
find(prefix,name);
857 pos[1] = atof(py_str);
859 sprintf(name,
"eph%i_posZ",i);
860 const char* pz_str = kwl.
find(prefix,name);
861 pos[2] = atof(pz_str);
864 sprintf(name,
"eph%i_velX",i);
865 const char* vx_str = kwl.
find(prefix,name);
866 vit[0] = atof(vx_str) * 1.0e-3;;
868 sprintf(name,
"eph%i_velY",i);
869 const char* vy_str = kwl.
find(prefix,name);
870 vit[1] = atof(vy_str) * 1.0e-3;;
872 sprintf(name,
"eph%i_velZ",i);
873 const char* vz_str = kwl.
find(prefix,name);
874 vit[2] = atof(vz_str) * 1.0e-3;;
890 double angle = greenwich_mha_ref+(greenwich_mha->
get_tms()-greenwich_mha_ref2000->
get_tms())*180.0/_PI;
891 angle = fmod(angle,360.0);
903 delete greenwich_mha;
907 delete greenwich_mha_ref2000;
921 for (
int i=0;i<neph;i++)
932 const char* sc_lin_str = kwl.
find(prefix,
"sc_lin");
933 double sc_lin = atof(sc_lin_str);
935 const char* sc_pix_str = kwl.
find(prefix,
"sc_pix");
936 double sc_pix = atof(sc_pix_str);
938 const char* inp_sctim_str = kwl.
find(prefix,
"inp_sctim");
940 const char* rng_gate_str = kwl.
find(prefix,
"rng_gate");
941 double rng_gate = atof(rng_gate_str);
952 for (
int i=0;i<4;i++)
954 year_str[i] = inp_sctim_str[i];
959 for (
int i=4;i<6;i++)
961 month_str[i-4] = inp_sctim_str[i];
966 for (
int i=6;i<8;i++)
968 day_str[i-6] = inp_sctim_str[i];
973 for (
int i=8;i<10;i++)
975 hour_str[i-8] = inp_sctim_str[i];
980 for (
int i=10;i<12;i++)
982 min_str[i-10] = inp_sctim_str[i];
987 for (
int i=12;i<14;i++)
989 sec_str[i-12] = inp_sctim_str[i];
994 for (
int i=14;i<17;i++)
996 mili_str[i-14] = inp_sctim_str[i];
1000 int year = atoi(year_str);
1001 int month = atoi(month_str);
1002 int day = atoi(day_str);
1003 int hour = atoi(hour_str);
1004 int min = atoi(min_str);
1005 int sec = atoi(sec_str);
1006 double mili = atof(mili_str);
1009 CivilDateTime date(year, month, day, hour * 3600 +
min * 60 + sec, mili/1000.0);
1014 if (ephemeris == NULL)
return false ;
1025 double c = 2.99792458e+8;
1052 const char* nbCol_str = kwl.
find(prefix,
"nbCol");
1053 const char* nbLin_str = kwl.
find(prefix,
"nbLin");
1061 const char* acq_msec_first_str = kwl.
find(
"acq_msec_first");
1062 double acq_msec_first = atof(acq_msec_first_str);
1063 const char* acq_msec_last_str = kwl.
find(
"acq_msec_last");
1064 double acq_msec_last = atof(acq_msec_last_str);
1066 double actualPRF = 1000.0*
theImageSize.
y/(acq_msec_last-acq_msec_first) ;
1071 std::list<ossimGpt> groundGcpCoordinates ;
1072 std::list<ossimDpt> imageGcpCoordinates ;
1073 const char* lon_str = kwl.
find(
"pro_long");
1074 double lon = atof(lon_str);
1075 const char* lat_str = kwl.
find(
"pro_lat");
1076 double lat = atof(lat_str);
1081 ossimGpt groundGCP(lat, lon, height);
1082 groundGcpCoordinates.push_back(groundGCP) ;
1083 imageGcpCoordinates.push_back(imageGCP) ;
1087 lon = atof(kwl.
find(
"cornersLon0"));
1088 lat = atof(kwl.
find(
"cornersLat0"));
1090 ossimGpt groundGCP0(lat, lon, height);
1091 groundGcpCoordinates.push_back(groundGCP0) ;
1092 imageGcpCoordinates.push_back(imageGCP0) ;
1094 lon = atof(kwl.
find(
"cornersLon1"));
1095 lat = atof(kwl.
find(
"cornersLat1"));
1097 ossimGpt groundGCP1(lat, lon, height);
1098 groundGcpCoordinates.push_back(groundGCP1) ;
1099 imageGcpCoordinates.push_back(imageGCP1) ;
1101 lon = atof(kwl.
find(
"cornersLon2"));
1102 lat = atof(kwl.
find(
"cornersLat2"));
1104 ossimGpt groundGCP2(lat, lon, height);
1105 groundGcpCoordinates.push_back(groundGCP2) ;
1106 imageGcpCoordinates.push_back(imageGCP2) ;
1108 lon = atof(kwl.
find(
"cornersLon3"));
1109 lat = atof(kwl.
find(
"cornersLat3"));
1111 ossimGpt groundGCP3(lat, lon, height);
1112 groundGcpCoordinates.push_back(groundGCP3) ;
1113 imageGcpCoordinates.push_back(imageGCP3) ;
1124 const char* file_name_str = kwl.
find(prefix,
"file_name");
1127 for (
int j=11;j<14;j++)
1129 format[j-11] = file_name_str[j];
1132 std::string format_str(format);
1137 const char* pixel_spacing_str = kwl.
find(prefix,
"pixel_spacing");
1141 const char* n_srgr_str = kwl.
find(prefix,
"n_srgr");
1148 sprintf(name,
"srgr_update%i",i);
1149 const char* srgr_update_str = kwl.
find(prefix,name);
1154 for (
int j=9;j<11;j++)
1156 hour_str[j-9] = srgr_update_str[j];
1161 for (
int j=12;j<14;j++)
1163 min_str[j-12] = srgr_update_str[j];
1168 for (
int j=15;j<17;j++)
1170 sec_str[j-15] = srgr_update_str[j];
1175 for (
int j=18;j<21;j++)
1177 mili_str[j-18] = srgr_update_str[j];
1181 int hour = atoi(hour_str);
1182 int min = atoi(min_str);
1183 int sec = atoi(sec_str);
1184 double mili = atof(mili_str);
1188 sprintf(name,
"srgr_coef%iA",i);
1189 const char* srgr_coef_strA = kwl.
find(prefix,name);
1191 sprintf(name,
"srgr_coef%iB",i);
1192 const char* srgr_coef_strB = kwl.
find(prefix,name);
1194 sprintf(name,
"srgr_coef%iC",i);
1195 const char* srgr_coef_strC = kwl.
find(prefix,name);
1197 sprintf(name,
"srgr_coef%iD",i);
1198 const char* srgr_coef_strD = kwl.
find(prefix,name);
1200 sprintf(name,
"srgr_coef%iE",i);
1201 const char* srgr_coef_strE = kwl.
find(prefix,name);
1203 sprintf(name,
"srgr_coef%iF",i);
1204 const char* srgr_coef_strF = kwl.
find(prefix,name);
1221 double min_delay = delays[0] ;
1224 if (delays[i]<min_delay) {
1226 min_delay = delays[i] ;
This class is able to read the SAR leader file descriptor record of the leader file.
int get_sc_lin()
Scene centre line number
This class represent an ephemeris in Geographic coordinates system.
This class represents a date.
void set_month(int month)
double _pixel_spacing
Pixel spacing.
FileDescriptor * get_FileDescriptor()
void set_sightDirection(SightDirection sight)
double get_pro_long()
Processed scene centre longitude
This class represents a date and time in the civil format.
virtual ossimObject * dup() const
Returns pointer to a new instance, copy of this.
RadarSatRecord * Instanciate(int id)
Instanciates a new Record.
double * get_crt_dopcen()
Cross track Doppler frequency terms
int get_lon_first()
First pixel longitude, 10e-6 deg.
double get_n_rnglok()
Number of range looks
RTTI_DEF1(ossimAlosPalsarModel, "ossimAlosPalsarModel", ossimGeometricSarSensorModel)
Represents serializable keyword/value map.
double get_plat_head()
Platform heading
std::string get_ellip_des()
Ellipsoid designator.
double get_pro_lat()
Processed scene centre latitude
std::basic_ifstream< char > ifstream
Class for char input file streams.
Ephemeris * get_ephemeris()
virtual bool InitSRGR(const ossimKeywordlist &kwl, const char *prefix)
Initializes the Slant Range for each Ground Range data sets : _n_srgr,_srgr_coefset,_srgr_update,_pixel_spacing,_isProductGeoreferenced.
const char * find(const char *key) const
This class is able to read the volume directory file of the RadarSat file structure.
virtual double getSlantRangeFromGeoreferenced(double col) const
This function associates an image column number to a slant range when the image is georeferenced (gro...
const ossimDpt & ul() const
This class handles the referential point.
double get_distance() const
double get_bnd_rnglok()
Bandwidth per look in range,Hz
void set_lin_direction(int dir)
double get_pro_head()
Processed scene centre headng
int AsGMSTDateTime(GMSTDateTime *GMSTdate)
This function converts the current CivilDateTime into GMSTDateTime.
void set_second(int second)
This class is able to direct localisation and indirect localisation using the RadarSat sensor model...
std::string get_sens_orient()
Sensor orientation
virtual bool internalSaveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save object state to a keyword list.
double get_nRangeLook() const
Trailer * _trailer
List of metadata contained in the Trailer file.
DataSetSummary * get_DataSetSummary()
double get_line_spacing()
Line spacing, meters
ProcessingParameters * get_ProcessingParameters()
double get_rng_gate()
Range gate start time
This class handles the sensor parameters.
ProcessedDataRecord * get_FirstProcessedDataRecord()
void set_pix_line(double pix_line)
int get_sc_pix()
Scene centre pixel number
This class is able to read the trailer file of the RadarSat file structure.
static const char * TYPE_KW
void set_pix_col(double pix_col)
bool _isProductGeoreferenced
True iff the product is ground range.
void set_semiMinorAxis(double value)
This class is the base class of all the record classes.
int AsGMSTDateTime(GMSTDateTime *GMST)
This function converts the current JSDDateTime into GMST Date.
This class allows for direct localisation and indirect localisation using the geometric model of SAR ...
std::string get_time_dir_pix()
Pixel time direction indicator
virtual ~ossimRadarSatModel()
Destructor.
virtual ossimString getClassName() const
Method to return the class name.
void set_second(double second)
virtual void Read(std::istream &is)=0
Reads the class data from a stream.
void ToGeographic(GeographicEphemeris *vGeo)
This fonction converts the current ephemeris in the Geographic coordinates syst�m.
int get_n_srgr()
Number of SRGR coefficient sets
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
int FindSRGRSetNumber(JSDDateTime date) const
Finds the SRGR data set which update time is the closest to the center scene time.
This class represents an ephemeris.
void set_decimal(double decimal)
SRGRCoefficientSetRecord * get_srgr_coefset()
SRGR coefficient sets.
Data * _data
List of metadata contained in the Data file.
This class is able to read the SAR leader file descriptor record of the leader file.
double get_plat_long()
Platform geodetic longitude
double get_bnd_azi()
Total azimuth look bandwidth
double get_terrain_h()
Average terrain height, km
ossimString trim(const ossimString &valueToTrim=ossimString(" \\)) const
this will strip lead and trailing character passed in.
PlatformPositionData * get_PlatformPositionData()
double * get_alt_dopcen()
Along track Doppler frequency terms
int get_lon_last()
Last-pixel longitude, 10e-6 deg.
double get_fr()
Range sampling rate
This class is able to read an Processed Data Record.
double get_plat_lat()
Platform geodetic latitude
void set_semiMajorAxis(double value)
double get_ellip_min()
Ellipsoid semi_minor axis, km
virtual bool InitRefPoint(const ossimKeywordlist &kwl, const char *prefix)
Initializes the Reference Point from a projection keywordlist.
double get_second() const
std::string get_file_name()
File name.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of the object from a keyword list.
std::string get_asc_des()
Ascending/descending.
ProcessedDataRecord * get_LastProcessedDataRecord()
double get_pix_col() const
double get_wave_length()
Radar wave length
void set_origine(Ori_TSM_Green origine)
void set_nRangeLook(double look)
This class is a factory able to construct Record base classes.
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save object state to a keyword list.
ProcessingParameters * get_ProcessingParameters()
This class is able to read an Image options file descriptor record.
int get_col_direction() const
This class is able to read a Detailed processing parameters record.
ossimDrect theImageClipRect
PlatformPosition * _platformPosition
Handle the position of the platform.
int get_lat_last()
Last-pixel latitude, 10e-6 deg.
double get_n_azilok()
Number of azimuth looks
int get_ngrp()
Groups per line per channel
This class is able to read the SAR leader data set summary record of the leader file.
std::string get_inp_sctim()
Input scene centre time.
double get_decimal() const
void setGroundRect(const ossimGpt &ul, const ossimGpt &ur, const ossimGpt &lr, const ossimGpt &ll)
const ossimDpt & ur() const
DataSetSummary * get_DataSetSummary()
This class is able to read the data file of the RadarSat file structure.
double get_fa()
Nominal PRF, Hz
double get_bnd_rng()
Total range look bandwidth
virtual void lineSampleToWorld(const ossimDpt &image_point, ossimGpt &gpt) const
VolumeDir * _volumeDir
List of metadata contained in the Volume Directory file.
Leader * _leader
List of metadata contained in the Leader file.
virtual bool InitPlatformPosition(const ossimKeywordlist &kwl, const char *prefix)
Initializes the Platform Position from a projection keywordlist.
const char * c_str() const
Returns a pointer to a null-terminated array of characters representing the string's contents...
int get_acq_msec()
Acquisition msecs
int _n_srgr
Slant Range for each Ground Range (SRGR) number of coefficients sets.
bool open(const ossimFilename &file)
Method to intantial model from a file.
void set_nAzimuthLook(double look)
virtual bool optimizeModel(const std::list< ossimGpt > &groundCoordinates, const std::list< ossimDpt > &imageCoordinates)
This function optimizes the model according to a list of Ground Control Points.
double get_ellip_maj()
Ellipsoid semi-major axis, km
const ossimDpt & ll() const
int get_lat_first()
First pixel latitude, 10e-6 deg
double get_pixel_spacing()
SGF product pixel spacing
virtual bool internalLoadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of the object from a keyword list.
void set_ephemeris(Ephemeris *ephemeris)
void set_col_direction(int dir)
std::string get_time_dir_lin()
Line time direction indicator
This class is a factory able to construct Record base classes.
This class represents a date.
ImageOptionsFileDescriptor * get_ImageOptionsFileDescriptor()
int get_nlin()
Lines per data set
float distance(double lat1, double lon1, double lat2, double lon2, int units)
double _srgr_update[20]
SRGR coefficient sets update times.
const ossimDpt & lr() const
virtual bool InitSensorParams(const ossimKeywordlist &kwl, const char *prefix)
Initializes the Sensor Params from a projection keywordlist.
void set_distance(double distance)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save object state to a keyword list.
double _srgr_coefset[20][6]
SRGR coefficient sets.
This class represents an ephemeris in Galilean coordinates system.
std::string::size_type find(const std::string &s, std::string::size_type pos=0) const
Searches for s as a substring of *this, beginning at character pos of *this.
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
This class is able to read the leader file of the RadarSat file structure.
double get_bnd_azilok()
Bandwidth per look in azimuth,Hz
ossimRadarSatModel()
Constructor.