bertt / geoparquet

.NET 8 Reader/Writer library for GeoParquet files.
MIT License
14 stars 3 forks source link

Writing Apache Arrow geometries? #5

Open bertt opened 1 year ago

bertt commented 1 year ago

First attempt to write Apache Arrow geometries (see unit tests), file gets written but nothing is visualized in QGIS (probably because geometry column type):

        var columns = new Column[]
        {
            new Column<string>("city"),
            new Column<Double?[]>("geometry")
        };

        var bbox = new double[] {  3.3583782525105832,
                  50.750367484598314,
                  7.2274984508458306,
                  53.555014517907608};

        var geometadata = GeoMetadata.GetGeoMetadata("Point", bbox, encoding: "geoarrow.point");

        var parquetFileWriter = new ParquetFileWriter(@"writing_sample_arrow.parquet", columns, Compression.Snappy, geometadata);
        var rowGroup = parquetFileWriter.AppendRowGroup();

        var nameWriter = rowGroup.NextColumn().LogicalWriter<String>();
        nameWriter.WriteBatch(new string[] { "London", "Derby" });

        var geom0 = new Point(5.1, 51.1);
        var geom1 = new Point(5.5, 51.1);

        var points = new double?[2][];
        points[0] = new double?[2] {geom0.X, geom0.Y};
        points[1] = new double?[2] { geom1.X, geom1.Y };

        var geometryWriter = rowGroup.NextColumn().LogicalWriter<Double?[]> ();
        geometryWriter.WriteBatch(points);
        parquetFileWriter.Close();
bertt commented 11 months ago

writing arrow: https://github.com/G-Research/ParquetSharp/pull/354