Exemplo n.º 1
0
        public static void Process(Culture culture, ref float maxTime, ref float minOD, ref float maxOD, float blankValue, bool doFit, string trueODCalibartionFunction, RateTraitExtractionMethod rateTraitExtractionMethod, bool skipMonotonicFilter)
        {
            ProcessData(culture, blankValue, doFit, trueODCalibartionFunction, skipMonotonicFilter);

            UpdateMaximums(culture, ref maxTime, ref maxOD, ref minOD);
            ExtractTraits(culture, rateTraitExtractionMethod);
        }
Exemplo n.º 2
0
        public static void Process(Culture culture, ref float maxTime, ref float minOD, ref float maxOD, float blankValue, bool doFit, float calibrationCoefA, float calibrationCoefB, float calibrationCoefC, RateTraitExtractionMethod rateTraitExtractionMethod, bool skipMonotonicFilter = false)
        {
            var trueODCalibartionFunction = SetCalibrationFunction(calibrationCoefA, calibrationCoefB, calibrationCoefC);

            ProcessData(culture, blankValue, doFit, trueODCalibartionFunction, skipMonotonicFilter);

            UpdateMaximums(culture, ref maxTime, ref maxOD, ref minOD);
            ExtractTraits(culture, rateTraitExtractionMethod);
        }
Exemplo n.º 3
0
        private static void ExtractTraits(Culture culture, RateTraitExtractionMethod rateTraitExtractionMethod)
        {
            const bool getRawMetada = false;
            double     lag;
            double     yield;
            double     gt;
            var        qIdx = new QualityIndex();

            var processed = culture.GrowthMeasurements.GetMeasurements(DataType.Processed);

            if (Modules.NoGrowth(processed))
            {
                lag   = 48;
                yield = double.NaN;
                gt    = double.NaN;
            }
            else
            {
                var metaData     = new GrowthVariableMetaData();
                var macroLagData = Modules.GetLag(processed);
                lag          = macroLagData.Lag;
                metaData.Lag = macroLagData.InterceptStretchs;
                var macroYieldData = Modules.GetYield(processed);
                yield          = macroYieldData.Yield;
                metaData.Yield = macroYieldData.YieldAnchors;
                //var macroRateData = Modules.GetGtSim(processed);
                MacroRateData macroRateData;
                switch (rateTraitExtractionMethod)
                {
                case RateTraitExtractionMethod.Default:
                    macroRateData = Modules.GetGT(processed);
                    break;

                case RateTraitExtractionMethod.LinearRegression:
                    macroRateData = Modules.GetGTLinearRegression(processed);
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(rateTraitExtractionMethod), rateTraitExtractionMethod, null);
                }
                gt            = macroRateData.GT;
                metaData.Rate = macroRateData.RateSlopeAnchors;
                qIdx          = Modules.GetQualityIndex(culture, DataType.Raw);

                culture.GrowthMeasurements.SetMetaData(DataType.Processed, metaData);

                if (getRawMetada)
                {
                    var raw             = culture.GrowthMeasurements.GetMeasurements(DataType.Raw);
                    var rawMetaData     = new GrowthVariableMetaData();
                    var rawMacroLagData = Modules.GetLag(raw);
                    rawMetaData.Lag = rawMacroLagData.InterceptStretchs;
                    var rawMacroYieldData = Modules.GetYield(raw);
                    rawMetaData.Yield = rawMacroYieldData.YieldAnchors;
                    var rawMacroRateData = Modules.GetGT(raw);
                    rawMetaData.Rate = rawMacroRateData.RateSlopeAnchors;
                    culture.GrowthMeasurements.SetMetaData(DataType.Raw, rawMetaData);
                }
            }
            culture.Lag          = lag;
            culture.Rate         = gt;
            culture.Yield        = yield;
            culture.QualityIndex = qIdx;
        }