Exemple #1
0
        private void  SavePlanktonDataFile(PicesDataBaseImageList planktonData)
        {
            String       errMsg = "";
            StreamWriter sw     = null;

            try { sw = new StreamWriter(dataFileName); }
            catch (Exception e1)
            {
                errMsg = e1.ToString();
            }
            if (sw == null)
            {
                errMsg = "Could not open Data File[" + dataFileName + "]\n" + errMsg;
                return;
            }

            sw.WriteLine("//This file was generated by the PICESComander application.");
            sw.WriteLine();
            sw.WriteLine("DateTime" + "\t" + DateTime.Now.ToString("yyyy/MM/dd - hh:mm:ss"));
            sw.WriteLine("DataBase" + "\t" + dbConn.ServerDescription());
            sw.WriteLine("MachineName" + "\t" + System.Environment.MachineName);
            sw.WriteLine();
            sw.WriteLine("//Selection Criteria");

            WriteValue(sw, "GroupName", GroupName.Text);
            WriteValue(sw, "CruiseName", CruiseName.Text);
            WriteValue(sw, "StationName", StationName.Text);
            WriteValue(sw, "DeploymentNum", DeploymentNum.Text);
            WriteValue(sw, "SipperFile", SipperFile.Text);

            if (mlClass != null)
            {
                WriteValue(sw, "MLClass", mlClass.Name);
            }

            sw.WriteLine("Probability Min-Max" + "\t" + (100.0f * probMin).ToString("##0.00") + "\t" + (100.0f * probMax).ToString("##0.00"));

            if ((depthMin > 0.0f) || (depthMax > 0.0f))
            {
                sw.WriteLine("Depth" + "\t" + depthMin.ToString("###0.00") + "\t" + depthMax.ToString("###0.00"));
            }

            if ((sizeMin > 0) || (sizeMax > 0))
            {
                sw.WriteLine("Size" + "\t" + sizeMin.ToString("#####0") + "\t" + sizeMax.ToString("######0"));
            }

            sw.WriteLine("ClassKeyToUse" + "\t" + classKeyToUse.ToString());

            sw.WriteLine();
            sw.WriteLine("Count" + "\t" + planktonData.Count);
            sw.WriteLine();
            sw.WriteLine("//Following specifies column headers.");
            sw.Write("ImageFileName");  sw.Write("\t");
            sw.Write("Class1Name");     sw.Write("\t");
            sw.Write("Class1Prob");     sw.Write("\t");
            sw.Write("Class2Name");     sw.Write("\t");
            sw.Write("Class2Prob");     sw.Write("\t");
            sw.Write("Depth(M)");       sw.Write("\t");
            sw.Write("PixelCount");     sw.Write("\t");
            sw.Write("Height");         sw.Write("\t");
            sw.Write("Width");          sw.Write("\t");
            sw.Write("TopLeftRow");     sw.Write("\t");
            sw.Write("TopLeftCol");     sw.Write("\t");
            sw.Write("CtdDate");        sw.Write("\t");
            sw.Write("Latitude");       sw.Write("\t");
            sw.Write("Longitude");      sw.Write("\t");
            sw.Write("Temperature(C)");
            sw.WriteLine();

            planktonData.Sort(PicesDataBaseImageList.SortOrderType.soSpatial, false);

            PicesInstrumentData id       = null;
            uint   nextScanLineThreshold = 0;
            String lastSipperFileName    = "";

            foreach (PicesDataBaseImage i in planktonData)
            {
                if ((i.TopLeftRow >= nextScanLineThreshold) ||
                    (i.SipperFileName != lastSipperFileName)
                    )
                {
                    uint scanLineCleared = 0;
                    uint scanLine        = i.TopLeftRow;
                    scanLine = 4096 * (uint)(scanLine / 4096);

                    id = dbConn.InstrumentDataGetByScanLine(i.SipperFileName, scanLine);
                    lastSipperFileName = i.SipperFileName;
                    if (id == null)
                    {
                        scanLineCleared = scanLine;
                    }
                    else
                    {
                        scanLineCleared = id.ScanLine;
                        if (scanLineCleared > scanLine)
                        {
                            if ((scanLineCleared - scanLine) > 4096)
                            {
                                id = null;
                            }
                        }
                    }
                    nextScanLineThreshold = scanLineCleared + 4096;
                }

                sw.Write(i.ImageFileName);              sw.Write("\t");
                sw.Write(i.Class1Name);                 sw.Write("\t");
                sw.Write(i.Class1Prob.ToString("p"));  sw.Write("\t");
                sw.Write(i.Class2Name);                 sw.Write("\t");
                sw.Write(i.Class2Prob.ToString("p"));  sw.Write("\t");
                sw.Write(i.Depth);                      sw.Write("\t");
                sw.Write(i.PixelCount);                 sw.Write("\t");
                sw.Write(i.Height);                     sw.Write("\t");
                sw.Write(i.Width);                      sw.Write("\t");
                sw.Write(i.TopLeftRow);                 sw.Write("\t");
                sw.Write(i.TopLeftCol);

                if (id != null)
                {
                    sw.Write("\t");
                    sw.Write(id.CtdDate.ToString("yyyy/MM/dd - HH:mm:ss"));  sw.Write("\t");
                    sw.Write(id.Latitude);                                    sw.Write("\t");
                    sw.Write(id.Longitude);                                   sw.Write("\t");
                    sw.Write(id.Temperature);
                }
                sw.WriteLine();
                ++imagesWritten;
            }

            sw.WriteLine("//All Data Written.");
            sw.Close();
        }