Commit 81be5e99 authored by Cédric Traizet's avatar Cédric Traizet
Browse files

Merge branch '2159' of https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb into 2159

parents 32e44e1b c22373ad
Pipeline #7567 failed with stages
in 93 minutes and 35 seconds
SensorID SAR
Mission S1A
Instrument SENTINEL-1
Instrument S1A
ProductType SLC
Polarization VV
Mode S6
Swath S6
OrbitDirection ASCENDING
......@@ -14,6 +15,7 @@ OrbitNumber 6447
NumberOfLines 31106
NumberOfColumns 17663
AverageSceneHeight 19
CalScale 1
PRF 1663.48
RadarFrequency 5.405e+09
CenterIncidenceAngle 44.7171
......@@ -23,13 +25,10 @@ AcquisitionDate 2015-06-19T19:50:43.223221Z
ProductionDate 2015-06-20T01:51:06.838854Z
AcquisitionStartTime 2015-06-19T19:50:43.223221Z
AcquisitionStopTime 2015-06-19T19:51:01.921994Z
SAR <SARParam>
SARCalib <SARCalib>
GCP <GCPParam>
Extra.FACILITY_IDENTIFIER UPA_
Polarization VV
Swath S6
CalScale 1
SAR <SARParam>
{"Projection": "GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AXIS["Latitude",NORTH],AXIS["Longitude",EAST],AUTHORITY["EPSG","4326"]]",
[{"GCP_Id": "1", "GCP_Info": "", "GCP_Row": "0", "GCP_Col": "0", "GCP_X": "-24.4551", "GCP_Y": "14.4996", "GCP_Z": "0", },
{"GCP_Id": "2", "GCP_Info": "", "GCP_Row": "0", "GCP_Col": "884", "GCP_X": "-24.4171", "GCP_Y": "14.5067", "GCP_Z": "0", },
......@@ -955,4 +954,4 @@ SAR <SARParam>
{"GCP_Id": "922", "GCP_Info": "", "GCP_Row": "31105", "GCP_Col": "15912", "GCP_X": "-24.0138", "GCP_Y": "15.7509", "GCP_Z": "0", },
{"GCP_Id": "923", "GCP_Info": "", "GCP_Row": "31105", "GCP_Col": "16796", "GCP_X": "-23.9781", "GCP_Y": "15.7574", "GCP_Z": "0", },
{"GCP_Id": "924", "GCP_Info": "", "GCP_Row": "31105", "GCP_Col": "17662", "GCP_X": "-23.9432", "GCP_Y": "15.7638", "GCP_Z": "0", },
]}
\ No newline at end of file
]}
......@@ -35,6 +35,7 @@
#include "ossim/ossimTimeUtilities.h"
#endif
#include "itksys/SystemTools.hxx"
#include "otbSpatialReference.h"
// useful constants
#include <otbMath.h>
......@@ -651,105 +652,182 @@ double Sentinel1ImageMetadataInterface::getBandTerrainHeight(const XMLMetadataSu
return heightSum / (double)listCount;
}
void ReadGCP(const XMLMetadataSupplier &AnnotationMS, ImageMetadata& imd)
{
Projection::GCPParam gcp;
std::stringstream ss;
// Get the ellipsoid and semi-major, semi-minor axes
if(AnnotationMS.HasValue("product.imageAnnotation.processingInformation.ellipsoidName"))
{
auto ellipsoidID = AnnotationMS.GetAs<std::string>("product.imageAnnotation.processingInformation.ellipsoidName");
auto minor_axis = AnnotationMS.GetAs<double>(0, "product.imageAnnotation.processingInformation.ellipsoidSemiMinorAxis");
auto major_axis = AnnotationMS.GetAs<double>(0, "product.imageAnnotation.processingInformation.ellipsoidSemiMajorAxis");
if(ellipsoidID.empty() || minor_axis == 0 || major_axis == 0)
{
otbGenericExceptionMacro(MissingMetadataException, << "Cannot read GCP's spatial reference");
}
else if(ellipsoidID == "WGS84")
{
gcp.GCPProjection = SpatialReference::FromWGS84().ToWkt();
}
else
{
gcp.GCPProjection = SpatialReference::FromGeogCS("", "", ellipsoidID, major_axis,
major_axis/(major_axis - minor_axis)).ToWkt();
}
}
auto GCPCount = AnnotationMS.GetAs<unsigned int>(0, "product.geolocationGrid.geolocationGridPointList.count");
// Count the gcps if the given count value is invalid
if(GCPCount == 0)
GCPCount = AnnotationMS.GetNumberOf("product.geolocationGrid.geolocationGridPointList.geolocationGridPoint");
// Put some reasonable limits of the number of gcps
if(GCPCount > 5000)
GCPCount = 5000;
for(unsigned int i = 1 ; i <= GCPCount ; ++i)
{
ss.str("");
ss << "product.geolocationGrid.geolocationGridPointList.geolocationGridPoint_" << i << ".";
gcp.GCPs.emplace_back(std::to_string(i), // id
"", // info
AnnotationMS.GetAs<double>(ss.str() + "pixel"), // col
AnnotationMS.GetAs<double>(ss.str() + "line"), // row
AnnotationMS.GetAs<double>(ss.str() + "longitude"), // px
AnnotationMS.GetAs<double>(ss.str() + "latitude"), // py
AnnotationMS.GetAs<double>(ss.str() + "height")); // pz
}
imd.Add(MDGeom::GCP, gcp);
}
void Sentinel1ImageMetadataInterface::ParseGdal(ImageMetadata & imd)
{
// Metadata read by GDAL
Fetch(MDTime::AcquisitionStartTime, imd, "ACQUISITION_START_TIME");
Fetch(MDTime::AcquisitionStopTime, imd, "ACQUISITION_STOP_TIME");
Fetch(MDStr::BeamMode, imd, "BEAM_MODE");
Fetch(MDStr::BeamSwath, imd, "BEAM_SWATH");
Fetch("FACILITY_IDENTIFIER", imd, "FACILITY_IDENTIFIER");
Fetch(MDNum::LineSpacing, imd, "LINE_SPACING");
Fetch(MDStr::Mission, imd, "MISSION_ID");
Fetch(MDStr::Mode, imd, "MODE");
Fetch(MDStr::OrbitDirection, imd, "ORBIT_DIRECTION");
Fetch(MDNum::OrbitNumber, imd, "ORBIT_NUMBER");
Fetch(MDNum::PixelSpacing, imd, "PIXEL_SPACING");
Fetch(MDStr::ProductType, imd, "PRODUCT_TYPE");
Fetch(MDStr::Instrument, imd, "SATELLITE_IDENTIFIER");
Fetch(MDStr::SensorID, imd, "SENSOR_IDENTIFIER");
Fetch(MDStr::Swath, imd, "SWATH");
auto imageFilePath = m_MetadataSupplierInterface->GetResourceFile();
auto imageFineName = itksys::SystemTools::GetFilenameWithoutExtension(imageFilePath);
auto pos = imageFineName.find('-');
imd.Add(MDStr::Instrument, itksys::SystemTools::UpperCase(imageFineName.substr(0, pos)));
++pos;
auto pos2 = imageFineName.find('-', pos);
imd.Add(MDStr::Swath, itksys::SystemTools::UpperCase(imageFineName.substr(pos, pos2-pos)));
pos = pos2+1;
pos2 = imageFineName.find('-', pos+1);
imd.Add(MDStr::ProductType, itksys::SystemTools::UpperCase(imageFineName.substr(pos, pos2-pos)));
pos = pos2+1;
pos2 = imageFineName.find('-', pos+1);
imd.Add(MDStr::Polarization, itksys::SystemTools::UpperCase(imageFineName.substr(pos, pos2-pos)));
imd.Add(MDStr::Mode, imd[MDStr::Swath]);
imd.Add(MDStr::SensorID, "SAR");
// Manifest file
std::string ManifestFilePath = m_MetadataSupplierInterface->GetResourceFile(std::string("manifest\\.safe"));
if (!ManifestFilePath.empty())
{
XMLMetadataSupplier ManifestMS(ManifestFilePath);
imd.Add(MDTime::ProductionDate,
ManifestMS.GetFirstAs<MetaData::Time>("xfdu:XFDU.metadataSection.metadataObject_#.metadataWrap.xmlData.safe:processing.start"));
imd.Add(MDTime::AcquisitionDate,
ManifestMS.GetFirstAs<MetaData::Time>("xfdu:XFDU.metadataSection.metadataObject_#.metadataWrap.xmlData.safe:acquisitionPeriod.safe:startTime"));
}
assert(m_MetadataSupplierInterface->GetNbBands() == imd.Bands.size());
// Band metadata
for (int bandId = 0 ; bandId < m_MetadataSupplierInterface->GetNbBands() ; ++bandId)
{
SARParam sarParam;
Fetch(MDStr::Polarization, imd, "POLARISATION", bandId);
std::string swath = Fetch(MDStr::Swath, imd, "SWATH", bandId);
// Annotation file
std::string AnnotationFilePath = m_MetadataSupplierInterface->GetResourceFile(std::string("annotation[/\\\\]s1[ab].*-")
+ itksys::SystemTools::LowerCase(swath)
+ std::string("-.*\\.xml"));
if (AnnotationFilePath.empty())
otbGenericExceptionMacro(MissingMetadataException,<<"Missing Annotation file for band '"<<swath<<"'");
XMLMetadataSupplier AnnotationMS(AnnotationFilePath);
sarParam.azimuthFmRates = this->GetAzimuthFmRate(AnnotationMS);
sarParam.dopplerCentroids = this->GetDopplerCentroid(AnnotationMS);
sarParam.orbits = this->GetOrbits(AnnotationMS);
sarParam.slantRangeToGroundRangeRecords = this->GetCoordinateConversionRecord(AnnotationMS, "sr0", "srgrCoefficients");
sarParam.groundRangeToSlantRangeRecords = this->GetCoordinateConversionRecord(AnnotationMS, "gr0", "grsrCoefficients");
sarParam.azimuthTimeInterval = boost::posix_time::precise_duration(
AnnotationMS.GetAs<double>("product.imageAnnotation.imageInformation.azimuthTimeInterval")
* 1e6);
sarParam.burstRecords = this->GetBurstRecords(AnnotationMS, sarParam.azimuthTimeInterval);
sarParam.nearRangeTime = AnnotationMS.GetAs<double>("product.imageAnnotation.imageInformation.slantRangeTime");
sarParam.rangeSamplingRate = AnnotationMS.GetAs<double>("product.generalAnnotation.productInformation.rangeSamplingRate");
sarParam.rangeResolution = AnnotationMS.GetAs<double>("product.imageAnnotation.imageInformation.rangePixelSpacing");
sarParam.gcpTimes = this->GetGCPTimes(AnnotationMS, imd.GetGCPParam());
imd.Add(MDNum::NumberOfLines, AnnotationMS.GetAs<int>("product.imageAnnotation.imageInformation.numberOfLines"));
imd.Add(MDNum::NumberOfColumns, AnnotationMS.GetAs<int>("product.imageAnnotation.imageInformation.numberOfSamples"));
imd.Add(MDNum::AverageSceneHeight, this->getBandTerrainHeight(AnnotationFilePath));
imd.Add(MDNum::RadarFrequency, AnnotationMS.GetAs<double>("product.generalAnnotation.productInformation.radarFrequency"));
imd.Add(MDNum::PRF, AnnotationMS.GetAs<double>("product.imageAnnotation.imageInformation.azimuthFrequency"));
imd.Add(MDNum::CenterIncidenceAngle, AnnotationMS.GetAs<double>("product.imageAnnotation.imageInformation.incidenceAngleMidSwath"));
// Calibration file
std::string CalibrationFilePath = itksys::SystemTools::GetFilenamePath(AnnotationFilePath)
+ "/calibration/calibration-"
+ itksys::SystemTools::GetFilenameName(AnnotationFilePath);
if (CalibrationFilePath.empty())
otbGenericExceptionMacro(MissingMetadataException,<<"Missing Calibration file for band '"<<swath<<"'");
XMLMetadataSupplier CalibrationMS(CalibrationFilePath);
imd.Bands[bandId].Add(MDNum::CalScale, CalibrationMS.GetAs<double>("calibration.calibrationInformation.absoluteCalibrationConstant"));
// Noise file
std::string NoiseFilePath = itksys::SystemTools::GetFilenamePath(AnnotationFilePath)
+ "/calibration/noise-"
+ itksys::SystemTools::GetFilenameName(AnnotationFilePath);
if (NoiseFilePath.empty())
otbGenericExceptionMacro(MissingMetadataException,<<"Missing Noise file for band '"<<swath<<"'");
XMLMetadataSupplier NoiseMS(NoiseFilePath);
sarParam.noiseVector = this->GetNoiseVector(NoiseMS);
imd.Bands[bandId].Add(MDGeom::SAR, sarParam);
std::string ManifestFilePath = itksys::SystemTools::GetParentDirectory(itksys::SystemTools::GetParentDirectory(imageFilePath)) + "/manifest.safe";
if (!itksys::SystemTools::FileExists(ManifestFilePath))
{
ManifestFilePath = itksys::SystemTools::GetParentDirectory(imageFilePath) + "/manifest.safe";
if (!itksys::SystemTools::FileExists(ManifestFilePath))
{
otbGenericExceptionMacro(MissingMetadataException,
<< "Cannot find the Sentinel-1 'manifest.safe' file");
}
}
XMLMetadataSupplier ManifestMS(ManifestFilePath);
imd.Add(MDTime::ProductionDate,
ManifestMS.GetFirstAs<MetaData::Time>("xfdu:XFDU.metadataSection.metadataObject_#.metadataWrap.xmlData.safe:processing.start"));
imd.Add(MDTime::AcquisitionDate,
ManifestMS.GetFirstAs<MetaData::Time>("xfdu:XFDU.metadataSection.metadataObject_#.metadataWrap.xmlData.safe:acquisitionPeriod.safe:startTime"));
imd.Add(MDStr::BeamMode,
ManifestMS.GetFirstAs<std::string>(
"xfdu:XFDU.metadataSection.metadataObject_#.metadataWrap.xmlData.safe:platform.safe:instrument.safe:extension.s1sarl1:instrumentMode.s1sarl1:mode"
));
imd.Add(MDStr::BeamSwath,
ManifestMS.GetFirstAs<std::string>(
"xfdu:XFDU.metadataSection.metadataObject_#.metadataWrap.xmlData.safe:platform.safe:instrument.safe:extension.s1sarl1:instrumentMode.s1sarl1:swath"
));
imd.Add("FACILITY_IDENTIFIER",
ManifestMS.GetFirstAs<std::string>("xfdu:XFDU.metadataSection.metadataObject_#.metadataWrap.xmlData.safe:processing.safe:facility.name"));
// Annotation file
auto AnnotationFileName = imageFineName + ".xml";
std::string AnnotationFilePath =
itksys::SystemTools::GetParentDirectory(itksys::SystemTools::GetParentDirectory(imageFilePath)) + "/annotation/" + AnnotationFileName;
if (!itksys::SystemTools::FileExists(AnnotationFilePath))
{
otbGenericExceptionMacro(MissingMetadataException,<<"Missing Annotation file for image '"<<ManifestFilePath<<"'");
}
XMLMetadataSupplier AnnotationMS(AnnotationFilePath);
imd.Add(MDTime::AcquisitionStartTime, AnnotationMS.GetAs<MetaData::Time>("product.adsHeader.startTime"));
imd.Add(MDTime::AcquisitionStopTime, AnnotationMS.GetAs<MetaData::Time>("product.adsHeader.stopTime"));
imd.Add(MDNum::LineSpacing, AnnotationMS.GetAs<double>("product.imageAnnotation.imageInformation.azimuthPixelSpacing"));
imd.Add(MDStr::Mission, AnnotationMS.GetAs<std::string>("product.adsHeader.missionId"));
imd.Add(MDStr::OrbitDirection, itksys::SystemTools::UpperCase(AnnotationMS.GetAs<std::string>("product.generalAnnotation.productInformation.pass")));
imd.Add(MDNum::OrbitNumber, AnnotationMS.GetAs<double>("product.adsHeader.absoluteOrbitNumber"));
imd.Add(MDNum::PixelSpacing, AnnotationMS.GetAs<double>("product.imageAnnotation.imageInformation.rangePixelSpacing"));
// Fetch the GCP
ReadGCP(AnnotationMS, imd);
SARParam sarParam;
sarParam.azimuthFmRates = this->GetAzimuthFmRate(AnnotationMS);
sarParam.dopplerCentroids = this->GetDopplerCentroid(AnnotationMS);
sarParam.orbits = this->GetOrbits(AnnotationMS);
sarParam.slantRangeToGroundRangeRecords = this->GetCoordinateConversionRecord(AnnotationMS, "sr0", "srgrCoefficients");
sarParam.groundRangeToSlantRangeRecords = this->GetCoordinateConversionRecord(AnnotationMS, "gr0", "grsrCoefficients");
sarParam.azimuthTimeInterval = boost::posix_time::precise_duration(
AnnotationMS.GetAs<double>("product.imageAnnotation.imageInformation.azimuthTimeInterval")
* 1e6);
sarParam.burstRecords = this->GetBurstRecords(AnnotationMS, sarParam.azimuthTimeInterval);
sarParam.nearRangeTime = AnnotationMS.GetAs<double>("product.imageAnnotation.imageInformation.slantRangeTime");
sarParam.rangeSamplingRate = AnnotationMS.GetAs<double>("product.generalAnnotation.productInformation.rangeSamplingRate");
sarParam.rangeResolution = AnnotationMS.GetAs<double>("product.imageAnnotation.imageInformation.rangePixelSpacing");
sarParam.gcpTimes = this->GetGCPTimes(AnnotationMS, imd.GetGCPParam());
SARCalib sarCalib;
std::istringstream(CalibrationMS.GetAs<std::string>("calibration.adsHeader.startTime")) >> sarCalib.calibrationStartTime;
std::istringstream(CalibrationMS.GetAs<std::string>("calibration.adsHeader.stopTime")) >> sarCalib.calibrationStopTime;
LoadRadiometricCalibrationData(sarCalib, *m_MetadataSupplierInterface, imd);
CreateCalibrationLookupData(sarCalib, imd, CalibrationMS, false);
imd.Add(MDGeom::SARCalib, sarCalib);
imd.Add(MDNum::NumberOfLines, AnnotationMS.GetAs<int>("product.imageAnnotation.imageInformation.numberOfLines"));
imd.Add(MDNum::NumberOfColumns, AnnotationMS.GetAs<int>("product.imageAnnotation.imageInformation.numberOfSamples"));
imd.Add(MDNum::AverageSceneHeight, this->getBandTerrainHeight(AnnotationFilePath));
imd.Add(MDNum::RadarFrequency, AnnotationMS.GetAs<double>("product.generalAnnotation.productInformation.radarFrequency"));
imd.Add(MDNum::PRF, AnnotationMS.GetAs<double>("product.imageAnnotation.imageInformation.azimuthFrequency"));
imd.Add(MDNum::CenterIncidenceAngle, AnnotationMS.GetAs<double>("product.imageAnnotation.imageInformation.incidenceAngleMidSwath"));
// Calibration file
std::string CalibrationFilePath =
itksys::SystemTools::GetFilenamePath(AnnotationFilePath) + "/calibration/calibration-" + itksys::SystemTools::GetFilenameName(AnnotationFilePath);
if (!itksys::SystemTools::FileExists(CalibrationFilePath))
{
otbGenericExceptionMacro(MissingMetadataException,<<"Missing Calibration file for image '"<<ManifestFilePath<<"'");
}
XMLMetadataSupplier CalibrationMS(CalibrationFilePath);
imd.Add(MDNum::CalScale, CalibrationMS.GetAs<double>("calibration.calibrationInformation.absoluteCalibrationConstant"));
// Noise file
std::string NoiseFilePath =
itksys::SystemTools::GetFilenamePath(AnnotationFilePath) + "/calibration/noise-" + itksys::SystemTools::GetFilenameName(AnnotationFilePath);
if (!itksys::SystemTools::FileExists(NoiseFilePath))
{
otbGenericExceptionMacro(MissingMetadataException,<<"Missing Noise file for image '"<<ManifestFilePath<<"'");
}
XMLMetadataSupplier NoiseMS(NoiseFilePath);
sarParam.noiseVector = this->GetNoiseVector(NoiseMS);
imd.Add(MDGeom::SAR, sarParam);
SARCalib sarCalib;
std::istringstream(CalibrationMS.GetAs<std::string>("calibration.adsHeader.startTime")) >> sarCalib.calibrationStartTime;
std::istringstream(CalibrationMS.GetAs<std::string>("calibration.adsHeader.stopTime")) >> sarCalib.calibrationStopTime;
LoadRadiometricCalibrationData(sarCalib, *m_MetadataSupplierInterface, imd);
CreateCalibrationLookupData(sarCalib, imd, CalibrationMS, false);
imd.Add(MDGeom::SARCalib, sarCalib);
}
void Sentinel1ImageMetadataInterface::ParseGeom(ImageMetadata & imd)
......@@ -759,9 +837,9 @@ void Sentinel1ImageMetadataInterface::ParseGeom(ImageMetadata & imd)
Fetch(MDNum::LineSpacing, imd, "support_data.azimuth_spacing");
Fetch(MDNum::PixelSpacing, imd, "support_data.range_spacing");
imd.Add(MDStr::SensorID, "SAR");
auto instrument = m_MetadataSupplierInterface->GetAs<std::string>("sensor");
instrument.pop_back();
imd.Add(MDStr::Instrument, instrument);
// auto instrument = m_MetadataSupplierInterface->GetAs<std::string>("sensor");
// instrument.pop_back();
// imd.Add(MDStr::Instrument, instrument);
Fetch(MDStr::Mode, imd, "header.swath");
Fetch(MDNum::NumberOfLines, imd, "number_lines");
Fetch(MDNum::NumberOfColumns, imd, "number_samples");
......@@ -773,7 +851,7 @@ void Sentinel1ImageMetadataInterface::ParseGeom(ImageMetadata & imd)
// Manifest data may not be present in geom file, but support data should be present in that case
CheckFetch(MDStr::BeamMode, imd, "manifest_data.acquisition_mode") || CheckFetch(MDStr::BeamMode, imd, "support_data.acquisition_mode");
CheckFetch(MDStr::BeamSwath, imd, "manifest_data.swath") || CheckFetch(MDStr::BeamSwath, imd, "support_data.swath");
CheckFetch(MDStr::Mission, imd, "manifest_data.instrument") || CheckFetch(MDStr::Mission, imd, "support_data.instrument");
CheckFetch(MDStr::Instrument, imd, "manifest_data.instrument") || CheckFetch(MDStr::Mission, imd, "support_data.instrument");
CheckFetch(MDStr::OrbitDirection, imd, "manifest_data.orbit_pass") || CheckFetch(MDStr::OrbitDirection, imd, "support_data.orbit_pass");
CheckFetch(MDNum::OrbitNumber, imd, "manifest_data.abs_orbit") || CheckFetch(MDStr::OrbitDirection, imd, "support_data.abs_orbit");
CheckFetch(MDStr::ProductType, imd, "manifest_data.product_type") || CheckFetch(MDStr::ProductType, imd, "support_data.product_type");
......@@ -782,6 +860,8 @@ void Sentinel1ImageMetadataInterface::ParseGeom(ImageMetadata & imd)
CheckFetch("FACILITY_IDENTIFIER", imd, "manifest_data.Processing_system_identifier") || CheckFetch("FACILITY_IDENTIFIER", imd, "support_data.Processing_system_identifier");
CheckFetch(MDStr::Swath, imd, "manifest_data.swath") || CheckFetch(MDStr::Swath, imd, "support_data.swath");
CheckFetch(MDStr::Polarization, imd, "calibration.polarisation") || CheckFetch(MDStr::Polarization, imd, "header.polarisation");
SARParam sarParam;
auto hasSAR = GetSAR(sarParam);
if (hasSAR)
......
......@@ -455,7 +455,7 @@ set(quickbird_filename LARGEINPUT{QUICKBIRD/CEVENNES/06FEB12104912-P1BS-00553399
set(Radarsat2_filename LARGEINPUT{RADARSAT2/ALTONA/Fine_Quad-Pol_Dataset/PK6621_DK406_FQ9_20080405_124900_HH_VV_HV_VH_SLC_Altona})
set(TerraSar_filename LARGEINPUT{TERRASARX/2008-03-10_GrandCanyon_SSC/TSX1_SAR__SSC______SM_S_SRA_20080310T133220_20080310T133228/IMAGEDATA/IMAGE_HH_SRA_strip_011.cos})
set(CosmoSkyMed_filename LARGEINPUT{COSMOSKYMED/Toulouse_spotlight/CSKS3_SCS_B_S2_08_HH_RD_SF_20110418180325_20110418180332.h5})
set(Sentinel1_filename LARGEINPUT{SENTINEL1/S1A_S6_SLC__1SSV_20150619T195043})
set(Sentinel1_filename LARGEINPUT{SENTINEL1/S1A_S6_SLC__1SSV_20150619T195043/measurement/s1a-s6-slc-vv-20150619t195043-20150619t195101-006447-00887d-001.tiff})
set(spot5_2_geom_file ${INPUTDATA}/spot5/spot5-1.geom)
set(formosat_geom_file ${INPUTDATA}/FORMOSAT_ROI_1000_100.geom)
......@@ -467,7 +467,6 @@ set(quickbird_geom_file ${INPUTDATA}/QB/qb-2.geom)
set(Radarsat2_geom_file ${INPUTDATA}/radarsat2/radarsat2-1.geom)
set(TerraSar_geom_file ${INPUTDATA}/terrasar/terrasar-1.geom)
set(CosmoSkyMed_geom_file ${INPUTDATA}/cosmoskymed/cosmoskymed-1.geom)
set(Sentinel1_geom_file ${INPUTDATA}/sentinel1/sentinel1-2.geom)
foreach(sensor ${sensor_list})
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment