public static void StatsBySpecies_Table(Document document, Project currentProject) { try { General_queries prjq=new General_queries(currentProject); List<SpeciesStats> stats = prjq.AllStatsBySpecies; document.LastSection.AddParagraph("Statistics by species", "Heading2"); Table table = document.LastSection.AddTable(); table.Borders.Visible = true; table.TopPadding = 10; table.BottomPadding = 10; Column column = table.AddColumn(Unit.FromCentimeter(5)); column.Format.Alignment = ParagraphAlignment.Center; column = table.AddColumn(); column.Format.Alignment = ParagraphAlignment.Center; column = table.AddColumn(); column.Format.Alignment = ParagraphAlignment.Center; table.Rows.Height = 20; Row row = table.AddRow(); row.Shading.Color = Colors.PaleGoldenrod; row.Cells[0].AddParagraph().AddFormattedText("Species", TextFormat.Bold); row.Cells[1].AddParagraph().AddFormattedText("Valid pictures",TextFormat.Bold); row.Cells[2].AddParagraph().AddFormattedText("Species count", TextFormat.Bold); foreach(SpeciesStats spst in stats) { row = table.AddRow(); if(spst.SpeciesName == "") { row.Cells[0].AddParagraph("Pending images"); row.Cells[1].AddParagraph(spst.SpeciesPictures.ToString()).AddFormattedText(); row.Cells[2].AddParagraph(spst.SpeciesCount.ToString()); } else { row.Cells[0].AddParagraph(spst.SpeciesName); row.Cells[1].AddParagraph(spst.SpeciesPictures.ToString()); row.Cells[2].AddParagraph(spst.SpeciesCount.ToString()); } } } catch (Exception ex) { throw ex; } }
public static void SpeciesCountInProject_PieChart(Document document, Project currentProject) { try { General_queries projq =new General_queries(currentProject); List<SpeciesStats> stats = projq.AllStatsBySpecies; double[] speciesCount=new double[stats.Count]; string[] speciesNames=new string[stats.Count]; double speciesSum=0; for(int i=0; i<stats.Count;i++) { speciesSum += stats[i].SpeciesPictures; speciesCount[i]=stats[i].SpeciesCount; speciesNames[i]=stats[i].SpeciesName; } document.LastSection.AddParagraph("Species count in project", "Heading2"); Chart chart = new Chart(); chart.Type=ChartType.Pie2D; chart.Left = 0; chart.Width = Unit.FromCentimeter(10); chart.Height = Unit.FromCentimeter(8); Series series = chart.SeriesCollection.AddSeries(); series.Add(speciesCount); XSeries xseries = chart.XValues.AddXSeries(); xseries.Add(speciesNames); chart.RightArea.AddLegend(); chart.DataLabel.Type = DataLabelType.Percent; chart.DataLabel.Position = DataLabelPosition.OutsideEnd; document.LastSection.Add(chart); } catch (Exception ex) { throw ex; } }
public static void SpeciesTimeBehavior_BarChart(Document document, Project currentProject) { try { General_queries projq =new General_queries(currentProject); foreach(SpeciesStats spst in projq.AllStatsBySpecies) { document.LastSection.AddParagraph(spst.SpeciesName + " Activity Patterns", "Heading2"); Chart chart = new Chart(); chart.Left = 0; chart.Width = Unit.FromCentimeter(16); chart.Height = Unit.FromCentimeter(12); Series series = chart.SeriesCollection.AddSeries(); series.ChartType = ChartType.Column2D; series.Add(spst.ActivityPatern); series.HasDataLabel = true; XSeries xseries = chart.XValues.AddXSeries(); xseries.Add("0","1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14","15","16","17","18","19","20","21","22","23"); chart.XAxis.MajorTickMark = TickMarkType.Outside; chart.XAxis.Title.Caption = "Hours of day"; chart.YAxis.MajorTickMark = TickMarkType.Outside; chart.YAxis.HasMajorGridlines = true; chart.YAxis.MajorGridlines.LineFormat.Color=Colors.DarkGray; chart.YAxis.Title.Caption = "Freq"; chart.PlotArea.LineFormat.Color = Colors.DarkGray; chart.PlotArea.LineFormat.Width = 1; document.LastSection.Add(chart); } } catch (Exception ex) { throw ex; } }
private void WriteGridAbundances(Project currentProject, string shapefileName) { try { List<IPolygon>projectGrids=new List<IPolygon>(); General_queries projq=new General_queries(currentProject); foreach(Station st in currentProject.StationsList) { IPolygon grid=st.Grid; StationStats tempStationStats=new StationStats(st.Guid,st.StationID); foreach(StationStats stst in projq.AllStatsByStation) { if(stst.StationGUID==st.Guid) { tempStationStats=stst; grid.UserData=tempStationStats; } } projectGrids.Add(grid); } GeometryCollection gc=new GeometryCollection(projectGrids.ToArray()); //Open Writer ShapefileWriter shpWriter = new ShapefileWriter(); shpWriter.Write(shapefileName, gc); //Create Header & Columns for points DbaseFileHeader dbfHeader = new DbaseFileHeader(); dbfHeader.AddColumn("Station_ID",'C',20,0); //One column for each species in project foreach(SpeciesStats spcst in projq.AllStatsBySpecies) { dbfHeader.AddColumn(spcst.SpeciesName,'N',20,0); } dbfHeader.NumRecords = gc.Count; //DBF Writer DbaseFileWriter dbfWriter = new DbaseFileWriter(shapefileName+".dbf"); dbfWriter.Write(dbfHeader); //Loop through Business Object to get Features foreach (IPolygon p in gc.Geometries) { StationStats data = (StationStats)p.UserData; ArrayList columnValues = new System.Collections.ArrayList(); //Add Values columnValues.Add(data.StationID); foreach(SpeciesStats s in data.SpeciesStats) { columnValues.Add(s.SpeciesPictures); } dbfWriter.Write(columnValues); } //Close File dbfWriter.Close(); } catch (Exception ex) { throw ex; } }