* LoadMetadata() */
| 145 | * LoadMetadata() |
| 146 | */ |
| 147 | void GDALMDReaderEROS::LoadMetadata() |
| 148 | { |
| 149 | if (m_bIsMetadataLoad) |
| 150 | return; |
| 151 | |
| 152 | if (!m_osIMDSourceFilename.empty()) |
| 153 | { |
| 154 | m_papszIMDMD = LoadImdTxtFile(); |
| 155 | } |
| 156 | |
| 157 | if (!m_osRPBSourceFilename.empty()) |
| 158 | { |
| 159 | m_papszRPCMD = GDALLoadRPCFile(m_osRPBSourceFilename); |
| 160 | } |
| 161 | |
| 162 | m_papszDEFAULTMD = |
| 163 | CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "EROS"); |
| 164 | |
| 165 | m_bIsMetadataLoad = true; |
| 166 | |
| 167 | const char *pszSatId1 = CSLFetchNameValue(m_papszIMDMD, "satellite"); |
| 168 | const char *pszSatId2 = CSLFetchNameValue(m_papszIMDMD, "camera"); |
| 169 | if (nullptr != pszSatId1 && nullptr != pszSatId2) |
| 170 | { |
| 171 | m_papszIMAGERYMD = CSLAddNameValue( |
| 172 | m_papszIMAGERYMD, MD_NAME_SATELLITE, |
| 173 | CPLSPrintf("%s %s", CPLStripQuotes(pszSatId1).c_str(), |
| 174 | CPLStripQuotes(pszSatId2).c_str())); |
| 175 | } |
| 176 | else if (nullptr != pszSatId1 && nullptr == pszSatId2) |
| 177 | { |
| 178 | m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, |
| 179 | CPLStripQuotes(pszSatId1)); |
| 180 | } |
| 181 | else if (nullptr == pszSatId1 && nullptr != pszSatId2) |
| 182 | { |
| 183 | m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, |
| 184 | CPLStripQuotes(pszSatId2)); |
| 185 | } |
| 186 | |
| 187 | const char *pszCloudCover = CSLFetchNameValue(m_papszIMDMD, "overall_cc"); |
| 188 | if (nullptr != pszCloudCover) |
| 189 | { |
| 190 | int nCC = atoi(pszCloudCover); |
| 191 | if (nCC > 100 || nCC < 0) |
| 192 | { |
| 193 | m_papszIMAGERYMD = CSLAddNameValue( |
| 194 | m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, MD_CLOUDCOVER_NA); |
| 195 | } |
| 196 | else |
| 197 | { |
| 198 | m_papszIMAGERYMD = CSLAddNameValue( |
| 199 | m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, CPLSPrintf("%d", nCC)); |
| 200 | } |
| 201 | } |
| 202 | |
| 203 | const char *pszDate = CSLFetchNameValue(m_papszIMDMD, "sweep_start_utc"); |
| 204 | if (nullptr != pszDate) |
nothing calls this directly
no test coverage detected