* LoadMetadata() */
| 96 | * LoadMetadata() |
| 97 | */ |
| 98 | void GDALMDReaderOrbView::LoadMetadata() |
| 99 | { |
| 100 | if (m_bIsMetadataLoad) |
| 101 | return; |
| 102 | |
| 103 | if (!m_osIMDSourceFilename.empty()) |
| 104 | { |
| 105 | m_papszIMDMD = GDALLoadIMDFile(m_osIMDSourceFilename); |
| 106 | } |
| 107 | |
| 108 | if (!m_osRPBSourceFilename.empty()) |
| 109 | { |
| 110 | m_papszRPCMD = GDALLoadRPCFile(m_osRPBSourceFilename); |
| 111 | } |
| 112 | |
| 113 | m_papszDEFAULTMD = CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "OV"); |
| 114 | |
| 115 | m_bIsMetadataLoad = true; |
| 116 | |
| 117 | if (nullptr == m_papszIMDMD) |
| 118 | { |
| 119 | return; |
| 120 | } |
| 121 | |
| 122 | // extract imagery metadata |
| 123 | const char *pszSatId = |
| 124 | CSLFetchNameValue(m_papszIMDMD, "sensorInfo.satelliteName"); |
| 125 | if (nullptr != pszSatId) |
| 126 | { |
| 127 | m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, |
| 128 | CPLStripQuotes(pszSatId)); |
| 129 | } |
| 130 | |
| 131 | const char *pszCloudCover = CSLFetchNameValue( |
| 132 | m_papszIMDMD, "productInfo.productCloudCoverPercentage"); |
| 133 | if (nullptr != pszCloudCover) |
| 134 | { |
| 135 | m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, |
| 136 | pszCloudCover); |
| 137 | } |
| 138 | |
| 139 | const char *pszDateTime = CSLFetchNameValue( |
| 140 | m_papszIMDMD, "inputImageInfo.firstLineAcquisitionDateTime"); |
| 141 | |
| 142 | if (nullptr != pszDateTime) |
| 143 | { |
| 144 | char buffer[80]; |
| 145 | GIntBig timeMid = GetAcquisitionTimeFromString(pszDateTime); |
| 146 | struct tm tmBuf; |
| 147 | strftime(buffer, 80, MD_DATETIMEFORMAT, |
| 148 | CPLUnixTimeToYMDHMS(timeMid, &tmBuf)); |
| 149 | m_papszIMAGERYMD = |
| 150 | CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_ACQDATETIME, buffer); |
| 151 | } |
| 152 | } |
nothing calls this directly
no test coverage detected