/// <summary>
        /// Writes species observation grid result as comma separated format (CSV) to a stream.
        /// </summary>
        /// <param name="stream">The stream to be written to.</param>
        /// <param name="data">The data to write.</param>
        /// <param name="toCoordinateSystem">The coordinate system the coordinates should be converted to.</param>
        /// <param name="taxaName">Summary of species names.</param>
        public void WriteDataToStream(Stream stream, SpeciesObservationGridResult data, CoordinateSystem toCoordinateSystem, string taxaName)
        {
            CoordinateSystem fromCoordinateSystem = new CoordinateSystem((CoordinateSystemId)data.GridCellCoordinateSystemId);
            CsvConfiguration csvConfiguration     = new CsvConfiguration();

            csvConfiguration.QuoteAllFields = true;
            csvConfiguration.Delimiter      = ",";
            csvConfiguration.Encoding       = Encoding.UTF8;
            using (var streamWriter = new StreamWriter(stream, Encoding.UTF8))
                using (CsvWriter writer = new CsvWriter(streamWriter, csvConfiguration))
                {
                    writer.WriteField("occurrenceID");
                    writer.WriteField("nameComplete");
                    writer.WriteField("decimalLatitude");
                    writer.WriteField("decimalLongitude");
                    writer.NextRecord();

                    for (int i = 0; i < data.Cells.Count; i++)
                    {
                        SpeciesObservationGridCellResult gridCell = data.Cells[i];
                        writer.WriteField(string.Format("Grid Cell {0}", i + 1));
                        Point convertedPoint =
                            GisTools.CoordinateConversionManager.GetConvertedPoint(
                                new Point(gridCell.OriginalCentreCoordinateX, gridCell.OriginalCentreCoordinateY),
                                fromCoordinateSystem,
                                toCoordinateSystem);
                        writer.WriteField(taxaName);
                        writer.WriteField(convertedPoint.Y.ToString(CultureInfo.InvariantCulture));
                        writer.WriteField(convertedPoint.X.ToString(CultureInfo.InvariantCulture));
                        writer.NextRecord();
                    }
                }
        }
示例#2
0
        private SpeciesObservationGridCellResult CreateSpeciesObservationGridCellResultSampleData2()
        {
            SpeciesObservationGridCellResult gridCell = new SpeciesObservationGridCellResult();

            gridCell.CentreCoordinateX         = 1838184.1898407727; // Google Mercator.
            gridCell.CentreCoordinateY         = 9252662.761889834;
            gridCell.OriginalCentreCoordinateX = 575000;             // SWEREF 99.
            gridCell.OriginalCentreCoordinateY = 7055000;
            gridCell.CentreCoordinate          = null;
            gridCell.ObservationCount          = 19;
            gridCell.BoundingBox    = new double[4][];
            gridCell.BoundingBox[0] = new[] { 1826714.9631208784, 9241691.279246228 };
            gridCell.BoundingBox[1] = new[] { 1849122.4978048601, 9241161.527512556 };
            gridCell.BoundingBox[2] = new[] { 1849688.763634222, 9263632.317236027 };
            gridCell.BoundingBox[3] = new[] { 1827210.534783919, 9264165.829016024 };
            return(gridCell);
        }
示例#3
0
        private SpeciesObservationGridCellResult CreateSpeciesObservationGridCellResultSampleData1()
        {
            SpeciesObservationGridCellResult gridCell = new SpeciesObservationGridCellResult();

            gridCell.CentreCoordinateX         = 2411798.159305429; // Google Mercator.
            gridCell.CentreCoordinateY         = 10280580.099874405;
            gridCell.OriginalCentreCoordinateX = 785000;            // SWEREF 99.
            gridCell.OriginalCentreCoordinateY = 7495000;
            gridCell.CentreCoordinate          = null;
            gridCell.ObservationCount          = 97;
            gridCell.BoundingBox    = new double[4][];
            gridCell.BoundingBox[0] = new[] { 2397519.7798124184, 10269047.080624536 };
            gridCell.BoundingBox[1] = new[] { 2423290.380509268, 10266269.42946804 };
            gridCell.BoundingBox[2] = new[] { 2426124.137029141, 10292101.754520087 };
            gridCell.BoundingBox[3] = new[] { 2400258.3455469096, 10294902.037247345 };
            return(gridCell);
        }