} /* AddNextBunchIntoLoadedStats */

        private void  LoadStatsForSelectedGroup()
        {
            uint[] nextBunch = null;
            if (allSipperFiles || (!String.IsNullOrEmpty(sipperFileName)))
            {
                nextBunch = dbConn.ImageGetDepthStatistics
                                (selectedImageGroup,
                                sipperFileName,
                                depthIncrements,
                                mlClass,
                                classKeyToUse,
                                probMin, probMax,
                                sizeMin, sizeMax
                                );
            }
            else
            {
                nextBunch = dbConn.ImageGetDepthStatistics
                                (selectedImageGroup,
                                cruiseName,
                                stationName,
                                deploymentNum,
                                depthIncrements,
                                mlClass,
                                classKeyToUse,
                                probMin, probMax,
                                sizeMin, sizeMax
                                );
            }

            if (nextBunch == null)
            {
                return;
            }

            blocker.StartBlock();
            AddNextBunchIntoLoadedStats(ref loadedStats, nextBunch, ref imageCountTotal);
            newStatsAvailable = true;
            blocker.EndBlock();

            nextBunch = null;
        } /* LoadStatsForSelectedGroup */
示例#2
0
        private float[]  CountsByDepth(PicesClass c,
                                       char classKeyToUse
                                       )
        {
            String predOrValStr = "Validated";

            if (classKeyToUse != 'V')
            {
                predOrValStr = "Predicted";
            }

            String msg = "Extracting Counts for \"" + c.Name + "\"" + "  " + predOrValStr;

            statusMsgs.AddMsg(msg);
            msgQueue.AddMsg(msg);

            uint[] counts = null;

            PicesSipperFileList sipperFiles = threadConn.SipperFileLoad(cruise, station, deployment);

            foreach (PicesSipperFile sf in sipperFiles)
            {
                if (cancelRequested)
                {
                    break;
                }

                msg = "Retrieving counts for Class[" + c.Name + "]  SipperFile[" + sf.SipperFileName + "]" + predOrValStr;
                statusMsgs.AddMsg("Retrieving counts for Class[" + c.Name + "]  SipperFile[" + sf.SipperFileName + "]");

                uint[] countsThisSipperFile
                    = threadConn.ImageGetDepthStatistics(group,          // PicesDataBaseImageGroup^  imageGroup,
                                                         sf.SipperFileName,
                                                         depthIncrement, // depthIncrements,
                                                         c,              // mlClass,
                                                         classKeyToUse,  // classKeyToUse,
                                                         probMin, probMax,
                                                         sizeMin, sizeMax
                                                         );

                counts = MergeTwoLists(counts, countsThisSipperFile);
            }

            if (cancelRequested)
            {
                return(null);
            }

            if (counts == null)
            {
                counts    = new uint[1];
                counts[0] = 0;
            }

            float[] countsFloat = new float[counts.Length];
            for (int idx = 0; idx < counts.Length; ++idx)
            {
                countsFloat[idx] = counts[idx];
            }

            if (!includeSubClasses)
            {
                return(countsFloat);
            }

            List <PicesClass> children = c.Children;

            if (children != null)
            {
                foreach (PicesClass pc in children)
                {
                    if (cancelRequested)
                    {
                        break;
                    }

                    float[] countsForChild = CountsByDepth(pc, classKeyToUse);
                    if (countsForChild != null)
                    {
                        countsFloat = MergeTwoLists(countsFloat, countsForChild);
                    }
                }
            }
            return(countsFloat);
        } /* CountsByDepth */