* LoadMetadata() */
| 80 | * LoadMetadata() |
| 81 | */ |
| 82 | void GDALMDReaderKompsat::LoadMetadata() |
| 83 | { |
| 84 | if (m_bIsMetadataLoad) |
| 85 | return; |
| 86 | |
| 87 | if (!m_osIMDSourceFilename.empty()) |
| 88 | { |
| 89 | m_papszIMDMD = ReadTxtToList(); |
| 90 | } |
| 91 | |
| 92 | if (!m_osRPBSourceFilename.empty()) |
| 93 | { |
| 94 | m_papszRPCMD = GDALLoadRPCFile(m_osRPBSourceFilename); |
| 95 | } |
| 96 | |
| 97 | m_papszDEFAULTMD = |
| 98 | CSLAddNameValue(m_papszDEFAULTMD, MD_NAME_MDTYPE, "KARI"); |
| 99 | |
| 100 | m_bIsMetadataLoad = true; |
| 101 | |
| 102 | const char *pszSatId1 = |
| 103 | CSLFetchNameValue(m_papszIMDMD, "AUX_SATELLITE_NAME"); |
| 104 | const char *pszSatId2 = |
| 105 | CSLFetchNameValue(m_papszIMDMD, "AUX_SATELLITE_SENSOR"); |
| 106 | if (nullptr != pszSatId1 && nullptr != pszSatId2) |
| 107 | { |
| 108 | m_papszIMAGERYMD = CSLAddNameValue( |
| 109 | m_papszIMAGERYMD, MD_NAME_SATELLITE, |
| 110 | CPLSPrintf("%s %s", CPLStripQuotes(pszSatId1).c_str(), |
| 111 | CPLStripQuotes(pszSatId2).c_str())); |
| 112 | } |
| 113 | else if (nullptr != pszSatId1 && nullptr == pszSatId2) |
| 114 | { |
| 115 | m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, |
| 116 | CPLStripQuotes(pszSatId1)); |
| 117 | } |
| 118 | else if (nullptr == pszSatId1 && nullptr != pszSatId2) |
| 119 | { |
| 120 | m_papszIMAGERYMD = CSLAddNameValue(m_papszIMAGERYMD, MD_NAME_SATELLITE, |
| 121 | CPLStripQuotes(pszSatId2)); |
| 122 | } |
| 123 | |
| 124 | const char *pszCloudCover = |
| 125 | CSLFetchNameValue(m_papszIMDMD, "AUX_CLOUD_STATUS"); |
| 126 | if (nullptr != pszCloudCover) |
| 127 | { |
| 128 | int nCC = atoi(pszCloudCover); |
| 129 | if (nCC > 100 || nCC < 0) |
| 130 | { |
| 131 | m_papszIMAGERYMD = CSLAddNameValue( |
| 132 | m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, MD_CLOUDCOVER_NA); |
| 133 | } |
| 134 | else |
| 135 | { |
| 136 | m_papszIMAGERYMD = CSLAddNameValue( |
| 137 | m_papszIMAGERYMD, MD_NAME_CLOUDCOVER, CPLSPrintf("%d", nCC)); |
| 138 | } |
| 139 | } |
nothing calls this directly
no test coverage detected