* LoadMetadata() */
| 190 | * LoadMetadata() |
| 191 | */ |
| 192 | void GDALMDReaderALOS::LoadMetadata() |
| 193 | { |
| 194 | if (m_bIsMetadataLoad) |
| 195 | return; |
| 196 | |
| 197 | if (!m_osIMDSourceFilename.empty()) |
| 198 | { |
| 199 | m_papszIMDMD = CSLLoad(m_osIMDSourceFilename); |
| 200 | } |
| 201 | |
| 202 | if (!m_osHDRSourceFilename.empty()) |
| 203 | { |
| 204 | if (nullptr == m_papszIMDMD) |
| 205 | { |
| 206 | m_papszIMDMD = CSLLoad(m_osHDRSourceFilename); |
| 207 | } |
| 208 | else |
| 209 | { |
| 210 | char **papszHDR = CSLLoad(m_osHDRSourceFilename); |
| 211 | m_papszIMDMD = CSLMerge(m_papszIMDMD, papszHDR); |
| 212 | CSLDestroy(papszHDR); |
| 213 | } |
| 214 | } |
| 215 | |
| 216 | m_papszRPCMD = LoadRPCTxtFile(); |
| 217 | |
| 218 | m_papszDEFAULTMD = |
| 219 | CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "ALOS"); |
| 220 | |
| 221 | m_bIsMetadataLoad = true; |
| 222 | |
| 223 | const char *pszSatId1 = CSLFetchNameValue(m_papszIMDMD, "Lbi_Satellite"); |
| 224 | const char *pszSatId2 = CSLFetchNameValue(m_papszIMDMD, "Lbi_Sensor"); |
| 225 | if (nullptr != pszSatId1 && nullptr != pszSatId2) |
| 226 | { |
| 227 | m_papszIMAGERYMD = CSLAddNameValue( |
| 228 | m_papszIMAGERYMD, MD_NAME_SATELLITE, |
| 229 | CPLSPrintf("%s %s", CPLStripQuotes(pszSatId1).c_str(), |
| 230 | CPLStripQuotes(pszSatId2).c_str())); |
| 231 | } |
| 232 | else if (nullptr != pszSatId1 && nullptr == pszSatId2) |
| 233 | { |
| 234 | m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, |
| 235 | CPLStripQuotes(pszSatId1)); |
| 236 | } |
| 237 | else if (nullptr == pszSatId1 && nullptr != pszSatId2) |
| 238 | { |
| 239 | m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, |
| 240 | CPLStripQuotes(pszSatId2)); |
| 241 | } |
| 242 | |
| 243 | const char *pszCloudCover = |
| 244 | CSLFetchNameValue(m_papszIMDMD, "Img_CloudQuantityOfAllImage"); |
| 245 | if (nullptr != pszCloudCover) |
| 246 | { |
| 247 | int nCC = atoi(pszCloudCover); |
| 248 | if (nCC >= 99) |
| 249 | { |
nothing calls this directly
no test coverage detected