6 releases
new 0.1.7 | Jan 10, 2025 |
---|---|
0.1.6 | Dec 16, 2024 |
0.1.5 | Oct 22, 2024 |
#472 in Database interfaces
304 downloads per month
3MB
376 lines
DuckDB Rust lib for writing geospatial data to Postgis
cargo add duckdb-postgis
Current v0.1.7 release notes
This Rust library does the following things
- Reads in a path for a geospatial data file (Geopackage, Shapefile, etc)
- Reads in a path for non geospatial data (xlsx, xsv, parquet, etc)
- Reads in a table name for the PostGIS database
- Loads this file into DuckDB
- Determines the schema and current CRS of the data - returns both
- Performs CRS transformation on the data if required - ensures the CRS is ESPG:4326
- Loads the data into a PostGIS table with a correctly defined geometry column
Improvements for release 0.1.7
- Handle raster data file formats
- Discard rows where there may be errors in the geometry column / ensure the programme doesn't crash when a geometry error is encountered - skip over it and log it instead
Example usage
mod duckdb_load;
use duckdb_load::launch_process_file;
fn main() -> Result<(), Box<dyn std::error::Error>> {
launch_process_file(
"test_files/hotosm_twn_populated_places_points_geojson.geojson",
"test-table",
"postgresql://admin:password@localhost:5432/gridwalk",
"test-schema",
)?;
Ok(())
}
Dependencies
~23–31MB
~376K SLoC