/// <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(); } } }
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); }
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); }