FileDescConstPtr GrayScaleImagesFVProducer::DefineFileDescStatic () { if (existingFileDesc) return existingFileDesc; GlobalGoalKeeper::StartBlock (); if (!existingFileDesc) { bool alreadyExists = false; FileDescPtr tempFileDesc = new KKMLL::FileDesc (); for (kkint32 fieldNum = 0; fieldNum < maxNumOfFeatures; ++fieldNum) { tempFileDesc->AddAAttribute (featureNames[fieldNum], AttributeType::Numeric, alreadyExists); } tempFileDesc->Version (_GrayScaleImagesFVProducer_VersionNum_); existingFileDesc = FileDesc::GetExistingFileDesc (tempFileDesc); tempFileDesc = NULL; } GlobalGoalKeeper::EndBlock (); // Lets make sure that one was already created by opening up a data file. return existingFileDesc; }
FileDescConstPtr FeatureEncoder::CreateEncodedFileDesc (ostream* o) { FileDescPtr newFileDesc = new FileDesc (); if (o) { *o << endl << "Orig" << "\t" << "Orig" << "\t" << "Field" << "\t" << "Encoded" << "\t" << "Encoded" << endl; *o << "FieldNum" << "\t" << "FieldName" << "\t" << "Type" << "\t" << "FieldNum" << "\t" << "FieldName" << endl; } kkint32 x; bool alreadyExist; for (x = 0; x < numOfFeatures; x++) { kkint32 srcFeatureNum = srcFeatureNums[x]; kkint32 y = destFeatureNums[x]; if (y >= numEncodedFeatures) { KKStr errMsg (128); errMsg << "FeatureEncoder::CreateEncodedFileDesc numEncodedFeatures [" << numEncodedFeatures << "] exceeded."; cerr << endl << "FeatureEncoder::CreateEncodedFileDesc *** ERROR ***" << endl << " " << errMsg << endl << endl; throw KKException (errMsg); exit (-1); } KKStr origFieldDesc = StrFormatInt (srcFeatureNum, "zz0") + "\t" + fileDesc->FieldName (srcFeatureNum) + "\t" + fileDesc->TypeStr (srcFeatureNum); switch (destWhatToDo[x]) { case FeWhatToDo::FeAsIs: { newFileDesc->AddAAttribute (fileDesc->FieldName (x), AttributeType::Numeric, alreadyExist); if (o) { *o << origFieldDesc << "\t" << y << "\t" << fileDesc->FieldName (x) << endl; } } break; case FeWhatToDo::FeBinary: { for (kkint32 z = 0; z < cardinalityDest[x]; z++) { KKStr nominalValue = fileDesc->GetNominalValue (srcFeatureNums[x], z); KKStr encodedName = fileDesc->FieldName (x) + "_" + nominalValue; newFileDesc->AddAAttribute (encodedName, AttributeType::Numeric, alreadyExist); if (o) { *o << origFieldDesc << "\t" << y << "\t" << encodedName << endl; } y++; } } break; case FeWhatToDo::FeScale: { newFileDesc->AddAAttribute (fileDesc->FieldName (x), AttributeType::Numeric, alreadyExist); if (o) { *o << origFieldDesc << "\t" << y << "\t" << fileDesc->FieldName (x) << endl; } } break; } } return FileDesc::GetExistingFileDesc (newFileDesc); } /* CreateEncodedFileDesc */
FileDescConstPtr FeatureEncoder2::CreateEncodedFileDesc (ostream* o, RunLog& log ) const { log.Level (40) << "FeatureEncoder2::CreateEncodedFileDesc" << endl; FileDescPtr newFileDesc = new FileDesc (); if (o) { *o << endl << "Orig" << "\t" << "Orig" << "\t" << "Field" << "\t" << "Encoded" << "\t" << "Encoded" << endl; *o << "FieldNum" << "\t" << "FieldName" << "\t" << "Type" << "\t" << "FieldNum" << "\t" << "FieldName" << endl; } kkint32 x; bool alreadyExist; for (x = 0; x < numOfFeatures; x++) { kkuint16 srcFeatureNum = srcFeatureNums[x]; kkint32 y = destFeatureNums[x]; if (y >= codedNumOfFeatures) { log.Level(-1) << endl << "FeatureEncoder2::CreateEncodedFileDesc ***ERROR***" << endl << " overriding number of encoded features. This should never be able to happen." << endl << " Something is wrong with object." << endl << endl; osWaitForEnter (); exit (-1); } KKStr origFieldDesc = StrFormatInt (srcFeatureNum, "zz0") + "\t" + fileDesc->FieldName (srcFeatureNum) + "\t" + fileDesc->TypeStr (srcFeatureNum); switch (destWhatToDo[x]) { case FeWhatToDo::FeAsIs: { newFileDesc->AddAAttribute (fileDesc->FieldName (x), AttributeType::Numeric, alreadyExist); if (o) { *o << origFieldDesc << "\t" << y << "\t" << fileDesc->FieldName (x) << endl; } } break; case FeWhatToDo::FeBinary: { for (kkint32 z = 0; z < cardinalityDest[x]; z++) { KKStr nominalValue = fileDesc->GetNominalValue (srcFeatureNums[x], z); KKStr encodedName = fileDesc->FieldName (x) + "_" + nominalValue; newFileDesc->AddAAttribute (encodedName, AttributeType::Numeric, alreadyExist); if (o) { *o << origFieldDesc << "\t" << y << "\t" << encodedName << endl; } y++; } } break; case FeWhatToDo::FeScale: { newFileDesc->AddAAttribute (fileDesc->FieldName (x), AttributeType::Numeric, alreadyExist); if (o) { *o << origFieldDesc << "\t" << y << "\t" << fileDesc->FieldName (x) << endl; } } break; } } auto newFileDescConst = FileDesc::GetExistingFileDesc (newFileDesc); return newFileDescConst; } /* CreateEncodedFileDesc */