/** * LoadMetadata() */ void GDALMDReaderResursDK1::LoadMetadata() { if(m_bIsMetadataLoad) return; if (!m_osXMLSourceFilename.empty()) { CPLXMLNode* psNode = CPLParseXMLFile(m_osXMLSourceFilename); if(psNode != NULL) { CPLXMLNode* pMSPRootNode = CPLSearchXMLNode(psNode, "=MSP_ROOT"); if(pMSPRootNode != NULL) { m_papszIMDMD = ReadXMLToList(pMSPRootNode, m_papszIMDMD, "MSP_ROOT"); } CPLDestroyXMLNode(psNode); } } m_papszDEFAULTMD = CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "MSP"); m_bIsMetadataLoad = true; if(NULL == m_papszIMDMD) { return; } //extract imagery metadata const char* pszSatId = CSLFetchNameValue(m_papszIMDMD, "MSP_ROOT.cCodeKA"); if(NULL != pszSatId) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId)); } const char* pszDate = CSLFetchNameValue(m_papszIMDMD, "MSP_ROOT.Normal.dSceneDate"); if(NULL != pszDate) { const char* pszTime = CSLFetchNameValue(m_papszIMDMD, "MSP_ROOT.Normal.tSceneTime"); if(NULL == pszTime) pszTime = "00:00:00.000000"; char buffer[80]; time_t timeMid = GetAcquisitionTimeFromString(CPLSPrintf( "%s %s", pszDate, pszTime)); strftime (buffer, 80, MD_DATETIMEFORMAT, localtime(&timeMid)); m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_ACQDATETIME, buffer); } m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, MD_CLOUDCOVER_NA); }
/** * LoadMetadata() */ void GDALMDReaderRapidEye::LoadMetadata() { if(m_bIsMetadataLoad) return; CPLXMLNode* psNode = CPLParseXMLFile(m_osXMLSourceFilename); if(psNode != NULL) { CPLXMLNode* pRootNode = CPLSearchXMLNode(psNode, "=re:EarthObservation"); if(pRootNode != NULL) { m_papszIMDMD = ReadXMLToList(pRootNode->psChild, m_papszIMDMD); } CPLDestroyXMLNode(psNode); } m_papszDEFAULTMD = CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "RE"); m_bIsMetadataLoad = true; if(NULL == m_papszIMDMD) { return; } //extract imagery metadata const char* pszSatId = CSLFetchNameValue(m_papszIMDMD, "gml:using.eop:EarthObservationEquipment.eop:platform.eop:Platform.eop:serialIdentifier"); if(NULL != pszSatId) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId)); } const char* pszDateTime = CSLFetchNameValue(m_papszIMDMD, "gml:using.eop:EarthObservationEquipment.eop:acquisitionParameters.re:Acquisition.re:acquisitionDateTime"); if(NULL != pszDateTime) { char buffer[80]; time_t timeMid = GetAcquisitionTimeFromString(pszDateTime); strftime (buffer, 80, MD_DATETIMEFORMAT, localtime(&timeMid)); m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_ACQDATETIME, buffer); } const char* pszCC = CSLFetchNameValue(m_papszIMDMD, "gml:resultOf.re:EarthObservationResult.opt:cloudCoverPercentage"); if(NULL != pszSatId) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, pszCC); } }
/** * LoadMetadata() */ void GDALMDReaderGeoEye::LoadMetadata() { if(m_bIsMetadataLoad) return; if (!m_osIMDSourceFilename.empty()) { m_papszIMDMD = LoadIMDWktFile( ); } if(!m_osRPBSourceFilename.empty()) { m_papszRPCMD = GDALLoadRPCFile( m_osRPBSourceFilename ); } m_papszDEFAULTMD = CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "GE"); m_bIsMetadataLoad = true; if(NULL == m_papszIMDMD) { return; } //extract imagery metadata const char* pszSatId = CSLFetchNameValue(m_papszIMDMD, "Source Image Metadata.Sensor"); if(NULL != pszSatId) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId)); } const char* pszCloudCover = CSLFetchNameValue(m_papszIMDMD, "Source Image Metadata.Percent Cloud Cover"); if(NULL != pszCloudCover) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, pszCloudCover); } const char* pszDateTime = CSLFetchNameValue(m_papszIMDMD, "Source Image Metadata.Acquisition Date/Time"); if(NULL != pszDateTime) { char buffer[80]; time_t timeMid = GetAcquisitionTimeFromString(pszDateTime); strftime (buffer, 80, MD_DATETIMEFORMAT, localtime(&timeMid)); m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_ACQDATETIME, buffer); } }
/** * LoadMetadata() */ void GDALMDReaderOrbView::LoadMetadata() { if(m_bIsMetadataLoad) return; if (!m_osIMDSourceFilename.empty()) { m_papszIMDMD = GDALLoadIMDFile( m_osIMDSourceFilename ); } if(!m_osRPBSourceFilename.empty()) { m_papszRPCMD = GDALLoadRPCFile( m_osRPBSourceFilename ); } m_papszDEFAULTMD = CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "OV"); m_bIsMetadataLoad = true; if(NULL == m_papszIMDMD) { return; } //extract imagery metadata const char* pszSatId = CSLFetchNameValue(m_papszIMDMD, "sensorInfo.satelliteName"); if(NULL != pszSatId) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId)); } const char* pszCloudCover = CSLFetchNameValue(m_papszIMDMD, "productInfo.productCloudCoverPercentage"); if(NULL != pszCloudCover) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, pszCloudCover); } const char* pszDateTime = CSLFetchNameValue(m_papszIMDMD, "inputImageInfo.firstLineAcquisitionDateTime"); if(NULL != pszDateTime) { char buffer[80]; time_t timeMid = GetAcquisitionTimeFromString(pszDateTime); strftime (buffer, 80, MD_DATETIMEFORMAT, localtime(&timeMid)); m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_ACQDATETIME, buffer); } }
/** * LoadMetadata() */ void GDALMDReaderKompsat::LoadMetadata() { if(m_bIsMetadataLoad) return; if(!m_osIMDSourceFilename.empty()) { m_papszIMDMD = ReadTxtToList( ); } if(!m_osRPBSourceFilename.empty()) { m_papszRPCMD = GDALLoadRPCFile( m_osRPBSourceFilename ); } m_papszDEFAULTMD = CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "KARI"); m_bIsMetadataLoad = true; const char* pszSatId1 = CSLFetchNameValue(m_papszIMDMD, "AUX_SATELLITE_NAME"); const char* pszSatId2 = CSLFetchNameValue(m_papszIMDMD, "AUX_SATELLITE_SENSOR"); if(NULL != pszSatId1 && NULL != pszSatId2) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLSPrintf( "%s %s", CPLStripQuotes(pszSatId1).c_str(), CPLStripQuotes(pszSatId2).c_str())); } else if(NULL != pszSatId1 && NULL == pszSatId2) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId1)); } else if(NULL == pszSatId1 && NULL != pszSatId2) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId2)); } const char* pszCloudCover = CSLFetchNameValue(m_papszIMDMD, "AUX_CLOUD_STATUS"); if(NULL != pszCloudCover) { int nCC = atoi(pszCloudCover); if(nCC > 100 || nCC < 0) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, MD_CLOUDCOVER_NA); } else { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, CPLSPrintf("%d", nCC)); } } const char* pszDate = CSLFetchNameValue(m_papszIMDMD, "AUX_STRIP_ACQ_DATE_UT"); if(NULL != pszDate) { const char* pszTime = CSLFetchNameValue(m_papszIMDMD, "AUX_STRIP_ACQ_START_UT"); if(NULL == pszTime) pszTime = "000000.000000"; char buffer[80]; time_t timeMid = GetAcquisitionTimeFromString(CPLSPrintf( "%sT%s", pszDate, pszTime)); strftime (buffer, 80, MD_DATETIMEFORMAT, localtime(&timeMid)); m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_ACQDATETIME, buffer); } }
/** * LoadMetadata() */ void GDALMDReaderLandsat::LoadMetadata() { if(m_bIsMetadataLoad) return; if (!m_osIMDSourceFilename.empty()) { m_papszIMDMD = GDALLoadIMDFile( m_osIMDSourceFilename ); } m_papszDEFAULTMD = CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "ODL"); m_bIsMetadataLoad = true; // date/time // DATE_ACQUIRED = 2013-04-07 // SCENE_CENTER_TIME = 15:47:03.0882620Z // L1_METADATA_FILE.PRODUCT_METADATA.SPACECRAFT_ID const char* pszSatId = CSLFetchNameValue(m_papszIMDMD, "L1_METADATA_FILE.PRODUCT_METADATA.SPACECRAFT_ID"); if(NULL != pszSatId) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId)); } // L1_METADATA_FILE.IMAGE_ATTRIBUTES.CLOUD_COVER const char* pszCloudCover = CSLFetchNameValue(m_papszIMDMD, "L1_METADATA_FILE.IMAGE_ATTRIBUTES.CLOUD_COVER"); if(NULL != pszCloudCover) { double fCC = CPLAtofM(pszCloudCover); if(fCC < 0) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, MD_CLOUDCOVER_NA); } else { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, CPLSPrintf("%d", int(fCC))); } } // L1_METADATA_FILE.PRODUCT_METADATA.ACQUISITION_DATE // L1_METADATA_FILE.PRODUCT_METADATA.SCENE_CENTER_SCAN_TIME // L1_METADATA_FILE.PRODUCT_METADATA.DATE_ACQUIRED // L1_METADATA_FILE.PRODUCT_METADATA.SCENE_CENTER_TIME const char* pszDate = CSLFetchNameValue(m_papszIMDMD, "L1_METADATA_FILE.PRODUCT_METADATA.ACQUISITION_DATE"); if(NULL == pszDate) { pszDate = CSLFetchNameValue(m_papszIMDMD, "L1_METADATA_FILE.PRODUCT_METADATA.DATE_ACQUIRED"); } if(NULL != pszDate) { const char* pszTime = CSLFetchNameValue(m_papszIMDMD, "L1_METADATA_FILE.PRODUCT_METADATA.SCENE_CENTER_SCAN_TIME"); if(NULL == pszTime) { pszTime = CSLFetchNameValue(m_papszIMDMD, "L1_METADATA_FILE.PRODUCT_METADATA.SCENE_CENTER_TIME"); } if(NULL == pszTime) pszTime = "00:00:00.000000Z"; char buffer[80]; time_t timeMid = GetAcquisitionTimeFromString(CPLSPrintf( "%sT%s", pszDate, pszTime)); strftime (buffer, 80, MD_DATETIMEFORMAT, localtime(&timeMid)); m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_ACQDATETIME, buffer); } }
/** * LoadMetadata() */ void GDALMDReaderSpot::LoadMetadata() { if(m_bIsMetadataLoad) return; if (!m_osIMDSourceFilename.empty()) { CPLXMLNode* psNode = CPLParseXMLFile(m_osIMDSourceFilename); if(psNode != NULL) { CPLXMLNode* psisdNode = CPLSearchXMLNode(psNode, "=Dimap_Document"); if(psisdNode != NULL) { m_papszIMDMD = ReadXMLToList(psisdNode->psChild, m_papszIMDMD); } CPLDestroyXMLNode(psNode); } } m_papszDEFAULTMD = CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "DIMAP"); m_bIsMetadataLoad = true; if(NULL == m_papszIMDMD) { return; } //extract imagery metadata int nCounter = -1; const char* pszSatId1 = CSLFetchNameValue(m_papszIMDMD, "Dataset_Sources.Source_Information.Scene_Source.MISSION"); if(NULL == pszSatId1) { nCounter = 1; for(int i = 0; i < 5; i++) { pszSatId1 = CSLFetchNameValue(m_papszIMDMD, CPLSPrintf("Dataset_Sources.Source_Information_%d.Scene_Source.MISSION", nCounter)); if(NULL != pszSatId1) break; nCounter++; } } const char* pszSatId2; if(nCounter == -1) pszSatId2 = CSLFetchNameValue(m_papszIMDMD, "Dataset_Sources.Source_Information.Scene_Source.MISSION_INDEX"); else pszSatId2 = CSLFetchNameValue(m_papszIMDMD, CPLSPrintf( "Dataset_Sources.Source_Information_%d.Scene_Source.MISSION_INDEX", nCounter)); if(NULL != pszSatId1 && NULL != pszSatId2) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLSPrintf( "%s %s", CPLStripQuotes(pszSatId1).c_str(), CPLStripQuotes(pszSatId2).c_str())); } else if(NULL != pszSatId1 && NULL == pszSatId2) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId1)); } else if(NULL == pszSatId1 && NULL != pszSatId2) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId2)); } const char* pszDate; if(nCounter == -1) pszDate = CSLFetchNameValue(m_papszIMDMD, "Dataset_Sources.Source_Information.Scene_Source.IMAGING_DATE"); else pszDate = CSLFetchNameValue(m_papszIMDMD, CPLSPrintf( "Dataset_Sources.Source_Information_%d.Scene_Source.IMAGING_DATE", nCounter)); if(NULL != pszDate) { const char* pszTime; if(nCounter == -1) pszTime = CSLFetchNameValue(m_papszIMDMD, "Dataset_Sources.Source_Information.Scene_Source.IMAGING_TIME"); else pszTime = CSLFetchNameValue(m_papszIMDMD, CPLSPrintf( "Dataset_Sources.Source_Information_%d.Scene_Source.IMAGING_TIME", nCounter)); if(NULL == pszTime) pszTime = "00:00:00.0Z"; char buffer[80]; time_t timeMid = GetAcquisitionTimeFromString(CPLSPrintf( "%sT%s", pszDate, pszTime)); strftime (buffer, 80, MD_DATETIMEFORMAT, localtime(&timeMid)); m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_ACQDATETIME, buffer); } m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, MD_CLOUDCOVER_NA); }
/** * LoadMetadata() */ void GDALMDReaderALOS::LoadMetadata() { if(m_bIsMetadataLoad) return; if(!m_osIMDSourceFilename.empty()) { m_papszIMDMD = CSLLoad(m_osIMDSourceFilename); } if(!m_osHDRSourceFilename.empty()) { if(NULL == m_papszIMDMD) { m_papszIMDMD = CSLLoad(m_osHDRSourceFilename); } else { char** papszHDR = CSLLoad(m_osHDRSourceFilename); m_papszIMDMD = CSLMerge(m_papszIMDMD, papszHDR); CSLDestroy(papszHDR); } } m_papszRPCMD = LoadRPCTxtFile(); m_papszDEFAULTMD = CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "ALOS"); m_bIsMetadataLoad = true; const char* pszSatId1 = CSLFetchNameValue(m_papszIMDMD, "Lbi_Satellite"); const char* pszSatId2 = CSLFetchNameValue(m_papszIMDMD, "Lbi_Sensor"); if(NULL != pszSatId1 && NULL != pszSatId2) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLSPrintf( "%s %s", CPLStripQuotes(pszSatId1).c_str(), CPLStripQuotes(pszSatId2).c_str())); } else if(NULL != pszSatId1 && NULL == pszSatId2) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId1)); } else if(NULL == pszSatId1 && NULL != pszSatId2) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId2)); } const char* pszCloudCover = CSLFetchNameValue(m_papszIMDMD, "Img_CloudQuantityOfAllImage"); if(NULL != pszCloudCover) { int nCC = atoi(pszCloudCover); if(nCC >= 99) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, MD_CLOUDCOVER_NA); } else { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, CPLSPrintf("%d", nCC * 10)); } } const char* pszDate = CSLFetchNameValue(m_papszIMDMD, "Img_SceneCenterDateTime"); if(NULL != pszDate) { char buffer[80]; time_t timeMid = GetAcquisitionTimeFromString(CPLStripQuotes(pszDate)); strftime (buffer, 80, MD_DATETIMEFORMAT, localtime(&timeMid)); m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_ACQDATETIME, buffer); } else { pszDate = CSLFetchNameValue(m_papszIMDMD, "Lbi_ObservationDate"); if(NULL != pszDate) { const char* pszTime = "00:00:00.000"; char buffer[80]; time_t timeMid = GetAcquisitionTimeFromString(CPLSPrintf( "%s %s", CPLStripQuotes(pszDate).c_str(), CPLStripQuotes(pszTime).c_str())); strftime (buffer, 80, MD_DATETIMEFORMAT, localtime(&timeMid)); m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_ACQDATETIME, buffer); } } }
/** * LoadMetadata() */ void GDALMDReaderDigitalGlobe::LoadMetadata() { if(m_bIsMetadataLoad) return; if (!m_osIMDSourceFilename.empty()) { m_papszIMDMD = GDALLoadIMDFile( m_osIMDSourceFilename ); } if(!m_osRPBSourceFilename.empty()) { m_papszRPCMD = GDALLoadRPBFile( m_osRPBSourceFilename ); } if((NULL == m_papszIMDMD || NULL == m_papszRPCMD) && !m_osXMLSourceFilename.empty()) { CPLXMLNode* psNode = CPLParseXMLFile(m_osXMLSourceFilename); if(psNode != NULL) { CPLXMLNode* psisdNode = psNode->psNext; if(psisdNode != NULL) { if( m_papszIMDMD == NULL ) m_papszIMDMD = LoadIMDXmlNode( CPLSearchXMLNode(psisdNode, "IMD") ); if( m_papszRPCMD == NULL ) m_papszRPCMD = LoadRPBXmlNode( CPLSearchXMLNode(psisdNode, "RPB") ); } CPLDestroyXMLNode(psNode); } } m_papszDEFAULTMD = CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "DG"); m_bIsMetadataLoad = true; if(NULL == m_papszIMDMD) { return; } //extract imagery metadata const char* pszSatId = CSLFetchNameValue(m_papszIMDMD, "IMAGE.SATID"); if(NULL != pszSatId) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId)); } else { pszSatId = CSLFetchNameValue(m_papszIMDMD, "IMAGE_1.SATID"); if(NULL != pszSatId) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, CPLStripQuotes(pszSatId)); } } const char* pszCloudCover = CSLFetchNameValue(m_papszIMDMD, "IMAGE.CLOUDCOVER"); if(NULL != pszCloudCover) { double fCC = CPLAtofM(pszCloudCover); if(fCC < 0) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, MD_CLOUDCOVER_NA); } else { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, CPLSPrintf("%d", int(fCC * 100))); } } else { pszCloudCover = CSLFetchNameValue(m_papszIMDMD, "IMAGE_1.cloudCover"); if(NULL != pszCloudCover) { double fCC = CPLAtofM(pszCloudCover); if(fCC < 0) { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, MD_CLOUDCOVER_NA); } else { m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, CPLSPrintf("%d", int(fCC * 100))); } } } const char* pszDateTime = CSLFetchNameValue(m_papszIMDMD, "IMAGE.FIRSTLINETIME"); if(NULL != pszDateTime) { time_t timeStart = GetAcquisitionTimeFromString(pszDateTime); char szMidDateTime[80]; strftime (szMidDateTime, 80, MD_DATETIMEFORMAT, localtime(&timeStart)); m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_ACQDATETIME, szMidDateTime); } else { pszDateTime = CSLFetchNameValue(m_papszIMDMD, "IMAGE_1.firstLineTime"); if(NULL != pszDateTime) { time_t timeStart = GetAcquisitionTimeFromString(pszDateTime); char szMidDateTime[80]; strftime (szMidDateTime, 80, MD_DATETIMEFORMAT, localtime(&timeStart)); m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_ACQDATETIME, szMidDateTime); } } }