Ejemplo n.º 1
0
        SpeciesRecords LoadRecords(String query, List <int> filteredSpecies)
        {
            int            prevTransect      = -1;
            bool           speciesInTransect = true;
            SpeciesRepItem prevItem          = null;


            SpeciesRecords records = new SpeciesRecords();

            using (SqlConnection connection = new SqlConnection(DataSources.dbConSpecies))
            {
                connection.Open();
                using (SqlCommand command = new SqlCommand(query, connection))
                {
                    using (SqlDataReader set = command.ExecuteReader())
                    {
                        while (set.Read())
                        {
                            int      fStationID = (int)set["fStationID"];
                            DateTime date       = (DateTime)set["fStartDate"];
                            DateTime time1      = new DateTime(2010, 1, 1, 12, 0, 0);
                            DateTime time2      = new DateTime(2010, 1, 1, 12, 0, 0);

                            if (transects.ContainsKey(fStationID) == false)
                            {
                                Transect tr = new Transect();
                                tr.Date      = String.Format("{0}-{1}-{2}", date.Year, date.Month.ToString("D2"), date.Day.ToString("D2"));
                                tr.StartTime = String.Format("{0}:{1}:{2}", time1.Hour.ToString("D2"), time1.Minute.ToString("D2"), time1.Second.ToString("D2"));
                                tr.EndTime   = String.Format("{0}:{1}:{2}", time2.Hour.ToString("D2"), time2.Minute.ToString("D2"), time2.Second.ToString("D2"));
                                tr.StartLat  = set["fStartLat"].ToString();
                                tr.StartLong = set["fStartLng"].ToString();
                                tr.EndLat    = set["fEndLat"].ToString();
                                tr.EndLong   = set["fEndLng"].ToString();

                                tr.Cruise   = set["fSurveyLabel"].ToString();
                                tr.transect = set["fLevel3Name"].ToString();


                                transects[fStationID] = tr;
                            }

                            Transect trans = transects[fStationID];

                            int speciesID = (int)set["fSpeciesID"];
                            if (filteredSpecies == null || filteredSpecies.Contains(speciesID))
                            {
                                String speciesName = set["fCommonName"].ToString();

                                species[speciesName] = speciesID;

                                if (trans.counts.ContainsKey(speciesID) == false)
                                {
                                    trans.counts[speciesID] = new TCount();
                                }
                                TCount tc = trans.counts[speciesID];

                                if (set["fOccurance"] != DBNull.Value)
                                {
                                    int flying = (int)set["fOccurance"];
                                    if (tc.flying == "")
                                    {
                                        tc.flying = "0";
                                    }
                                    tc.flying = (int.Parse(tc.flying) + flying).ToString();
                                }
                            }



                            if (prevTransect != fStationID)
                            {
                                if (speciesInTransect == false)
                                {
                                    if (filteredSpecies != null && prevItem != null)
                                    {
                                        // add null species record
                                        prevItem.commonName = "None observed";
                                        prevItem.scientName = "None observed";
                                        prevItem.flying     = 0;
                                        prevItem.sitting    = 0;
                                        records.records.Add(prevItem);
                                    }
                                }

                                prevTransect      = fStationID;
                                speciesInTransect = false;
                            }



                            SpeciesRepItem item = new SpeciesRepItem();
                            item.species    = (int)set["fSpeciesID"];
                            item.commonName = set["fCommonName"].ToString();
                            item.scientName = set["fSpeciesName"].ToString();

                            item.flying = (int)set["fOccurance"];

                            DateTime time = new DateTime(2010, 1, 1, 12, 0, 0);
                            item.date = new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, time.Second);

                            item.startLat     = (double)set["fStartLat"];
                            item.startLng     = (double)set["fStartLng"];
                            item.endLat       = set["fEndLat"].ToString();
                            item.endLng       = set["fEndLng"].ToString();
                            item.LatitudeEnd  = set["fEndLat"].ToString();
                            item.LongitudeEnd = set["fEndLng"].ToString();


                            if (filteredSpecies == null || filteredSpecies.Contains(item.species))
                            {
                                speciesInTransect = true;
                                records.records.Add(item);
                            }

                            prevItem = item;
                        }
                    }
                }
            }

            if (speciesInTransect == false)
            {
                if (filteredSpecies != null && prevItem != null)
                {
                    // add null species record
                    prevItem.commonName = "None observed";
                    prevItem.scientName = "None observed";
                    prevItem.flying     = 0;
                    prevItem.sitting    = 0;
                    records.records.Add(prevItem);
                }
            }


            return(records);
        }
Ejemplo n.º 2
0
        public void WriteCSVFile()
        {
            String seperator = Request["seperator"].Trim();
            String header    = "Date,Survey,Trawl,Start Lat,Start Long, End Lat, End Long,";

            foreach (String s in species.Keys)
            {
                header += CSVString(s) + ",";
            }
            header = header.Replace(",", seperator);
            Response.Write(header + "\r\n");

            foreach (int key in transects.Keys)
            {
                Transect tr = transects[key];

                Response.Write(CSVString(tr.Date) + seperator);
                // Response.Write(CSVString(tr.StartTime) + seperator);
                // Response.Write(CSVString(tr.EndTime) + seperator);
                Response.Write(CSVString(tr.Cruise) + seperator);
                Response.Write(CSVString(tr.transect) + seperator);
                Response.Write(CSVString(tr.StartLat) + seperator);
                Response.Write(CSVString(tr.StartLong) + seperator);
                Response.Write(CSVString(tr.EndLat) + seperator);
                Response.Write(CSVString(tr.EndLong) + seperator);

                foreach (String sp in species.Keys)
                {
                    int speciesID = species[sp];
                    if (tr.counts.ContainsKey(speciesID))
                    {
                        TCount tc = tr.counts[speciesID];
                        Response.Write(tc.flying + seperator);
                    }
                    else
                    {
                        Response.Write(seperator);
                    }
                }


                Response.Write("\r\n");
            }



            /*
             * foreach (DateTime date in master.Keys)
             * {
             *  SpeciesRecords recs = master[date];
             *  foreach (SpeciesRepItem item in recs.records)
             *  {
             *      Response.Write(date.ToString("yyyy-MM-dd") + seperator);
             *      Response.Write(date.ToString("HH:mm:ss") + seperator);
             *
             *      Response.Write(CSVString(item.Taxonomic_Genus) + seperator);
             *      Response.Write(CSVString(item.Taxonomic_Species) + seperator);
             *
             *      Response.Write(CSVString(item.English_Genus) + seperator);
             *      Response.Write(CSVString(item.English_Species) + seperator);
             *
             *      Response.Write(CSVString(item.Taxon_order) + seperator);
             *      Response.Write(CSVString(item.Taxon_family) + seperator);
             *      Response.Write(CSVString(item.Taxon_group) + seperator);
             *      Response.Write(CSVString(item.Continent) + seperator);
             *      Response.Write(CSVString(item.Region) + seperator);
             *
             *      Response.Write(CSVString(item.flying.ToString()) + seperator);
             *      Response.Write(CSVString(item.sitting.ToString()) + seperator);
             *      Response.Write(CSVString(item.observer1) + seperator);
             *      Response.Write(CSVString(item.observer2) + seperator);
             *      Response.Write(CSVString(item.vessel) + seperator);
             *      Response.Write(CSVString(item.cruise) + seperator);
             *      Response.Write(CSVString(item.transect) + seperator);
             *      Response.Write(item.startLat.ToString() + seperator);
             *      Response.Write(item.startLng.ToString() + seperator);
             *      Response.Write(CSVString(item.endLat) + seperator);
             *      Response.Write(CSVString(item.endLng) + seperator);
             *      Response.Write(CSVString(item.CountType) + seperator);
             *      Response.Write(CSVString(item.WindDirection) + seperator);
             *      Response.Write(CSVString(item.WindDirection_deg) + seperator);
             *      Response.Write(CSVString(item.WindStrength_kmph) + seperator);
             *      Response.Write(CSVString(item.CloudCover) + seperator);
             *      Response.Write(CSVString(item.Visibility_m) + seperator);
             *      Response.Write(CSVString(item.Precipitation) + seperator);
             *      Response.Write(CSVString(item.CountingShipFollowers) + seperator);
             *      Response.Write(CSVString(item.SwellHeight_m) + seperator);
             *      Response.Write(CSVString(item.CoordinateSystem) + seperator);
             *      Response.Write(CSVString(item.CountArea) + seperator);
             *      Response.Write(CSVString(item.ArcFromBow) + seperator);
             *      Response.Write(CSVString(item.PositionOnVessel) + seperator);
             *
             *
             *
             *
             *      Response.Write("\r\n");
             *
             *  }
             * }
             */
        }
Ejemplo n.º 3
0
 public Entry(TCount count, TValue value)
 {
     this.count = count;
     this.value = value;
 }