18 p_checkTarget = checkTarget;
36 p_checkTarget = checkTarget;
40 if(progress != NULL) {
41 progress->
SetText(
"Creating Isis 3 serial numbers from list file.");
45 for(
int i = 0; i < flist.size(); i++) {
47 if(progress != NULL) {
53 QString msg =
"Can't open or invalid file list [" + listfile +
"]";
79 p_pairs.erase(p_pairs.begin() + index);
80 p_serialMap.erase(sn);
81 p_fileMap.erase(sFileName);
113 if (cubeObj.
hasGroup(
"Instrument")) {
114 targetGroup = cubeObj.
findGroup(
"Instrument");
116 else if (def2filename) {
119 targetGroup = cubeObj.
findGroup(
"Mapping");
122 QString msg =
"Unable to find Instrument or Mapping group in ";
123 msg += filename +
" for comparing target";
129 QString msg =
"Unable to find Instrument group in " + filename;
130 msg +=
" for comparing target";
134 target = targetGroup[
"TargetName"][0];
135 target = target.toUpper();
136 if (p_target.isEmpty()) {
139 else if (p_target != target) {
140 QString msg =
"Target name of [" + target +
"] from file [";
141 msg += filename +
"] does not match [" + p_target +
"]";
149 if(sn ==
"Unknown") {
150 QString msg =
"Invalid serial number [Unknown] from file [";
151 msg += filename +
"]";
156 QString msg =
"Duplicate, serial number [" + sn +
"] from files [";
162 nextpair.serialNumber = sn;
163 nextpair.observationNumber = on;
164 p_pairs.push_back(nextpair);
165 p_serialMap.insert(std::pair<QString, int>(sn, (
int)(p_pairs.size() - 1)));
166 p_fileMap.insert(std::pair<QString, int>(nextpair.filename, (
int)(p_pairs.size() - 1)));
170 "] can not be added to ";
171 msg +=
"serial number list";
179 Add((QString)serialNumber, (QString)filename);
202 if (cubeObj.
hasGroup(
"Instrument")) {
203 targetGroup = cubeObj.
findGroup(
"Instrument");
205 else if (cubeObj.
hasGroup(
"Mapping")) {
208 targetGroup = cubeObj.
findGroup(
"Mapping");
211 QString msg =
"Unable to find Instrument or Mapping group in ";
212 msg += filename +
" for comparing target";
217 target = targetGroup[
"TargetName"][0];
218 target = target.toUpper();
219 if (p_target.isEmpty()) {
222 else if (p_target != target) {
223 QString msg =
"Target name of [" + target +
"] from file [";
224 msg += filename +
"] does not match [" + p_target +
"]";
229 QString observationNumber =
"Unknown";
230 if (serialNumber ==
"Unknown") {
231 QString msg =
"Invalid serial number [Unknown] from file [";
232 msg += filename +
"]";
237 QString msg =
"Duplicate, serial number [" + serialNumber +
"] from files [";
243 nextpair.serialNumber = serialNumber;
244 nextpair.observationNumber = observationNumber;
245 p_pairs.push_back(nextpair);
246 p_serialMap.insert(std::pair<QString, int>(serialNumber, (
int)(p_pairs.size() - 1)));
247 p_fileMap.insert(std::pair<QString, int>(nextpair.filename, (
int)(p_pairs.size() - 1)));
251 "] can not be added to ";
252 msg +=
"serial number list";
267 if(p_serialMap.find(sn) == p_serialMap.end())
return false;
278 return p_pairs.size();
292 int index = p_serialMap.find(sn)->second;
293 return p_pairs[index].filename;
296 QString msg =
"Requested serial number [" + sn +
"] ";
297 msg +=
"does not exist in the list";
315 if(p_fileMap.find(
Isis::FileName(filename).expanded()) == p_fileMap.end()) {
316 QString msg =
"Requested filename [" +
318 msg +=
"does not exist in the list";
322 return p_pairs[index].serialNumber;
333 if(index >= 0 && index < (
int) p_pairs.size()) {
334 return p_pairs[index].serialNumber;
337 QString num = QString(index);
338 QString msg =
"Index [" + (QString) num +
"] is invalid";
351 if(index >= 0 && index < (
int) p_pairs.size()) {
352 return p_pairs[index].observationNumber;
355 QString num = QString(index);
356 QString msg =
"Index [" + (QString) num +
"] is invalid";
370 return p_serialMap.find(sn)->second;
373 QString msg =
"Requested serial number [" + sn +
"] ";
374 msg +=
"does not exist in the list";
393 std::map<QString, int>::iterator pos;
394 if((pos = p_fileMap.find(
Isis::FileName(filename).expanded())) == p_fileMap.end()) {
395 QString msg =
"Requested filename [" +
397 msg +=
"does not exist in the list";
411 if(index >= 0 && index < (
int) p_pairs.size()) {
412 return p_pairs[index].filename;
416 QString msg =
"Index [" + num +
"] is invalid";
432 std::vector<QString> numbers;
433 for(
unsigned index = 0; index < p_pairs.size(); index++) {
434 if(p_pairs[index].observationNumber == on) {
435 numbers.push_back(p_pairs[index].serialNumber);
438 if(numbers.size() > 0) {
442 QString msg =
"Requested observation number [" + on +
"] ";
443 msg +=
"does not exist in the list";