Import geographic and spatial data from files into a SpatiaLite DB
Project description
geometry-to-spatialite
Import geographic and spatial data from files into a SpatiaLite DB.
This project is primarily useful for browsing and publishing geographic and spatial data with datasette and datasette-leaflet-geojson. It is inspired by csvs-to-sqlite and provides a similar interface.
Setup
pip install geometry-to-spatialite
You'll need python >=3.6 and the SpatiaLite module for SQLite.
Install SpatiaLite on Debian/Ubuntu
apt install spatialite-bin libsqlite3-mod-spatialite
Install SpatiaLite on Mac
brew update
brew install spatialite-tools
Usage
On the console
Geometry-to-spatialite installs two commands: shapefile-to-spatialite
and geojson-to-spatialite
. Both provide the same arguments.
Basic usage
shapefile-to-spatialite myfile.shp mydatabase.db
This will create a new SQLite database called mydatabase.db
containing a single table, myfile
You can provide multiple files:
shapefile-to-spatialite one.shp two.shp bundle.db
The bundle.db
database will contain two tables, one
and two
.
This means you can use wildcards:
shapefile-to-spatialite ~/Downloads/*.shp mydownloads.db
If you pass a path to one or more directories, the script will recursively search those directories for files and create tables for each one:
shapefile-to-spatialite ~/path/to/directory all-my-shapefiles.db
For more help on usage and arguments, run shapefile-to-spatialite --help
or geojson-to-spatialite --help
As a library
from shapefile_to_spatialite import (
geojson_to_spatialite,
shp_to_spatialite,
DataImportError
)
# Use the defaults
try:
geojson_to_spatialite('mydatabase.db', 'myfile.geojson')
except DataImportError:
raise
# With optional params
# geojson_to_spatialite() and shp_to_spatialite() support the same argument list
try:
geojson_to_spatialite(
'mydatabase.db',
'myfile.geojson',
table_name='custom', # set a custom table name (defaults to the filename)
srid=3857, # specify a custom SRID (default is 4326)
pk='id', # field to use as a primary key (default is no primary key)
# In most cases the spatialite extension will be automatically detected and loaded
# If not you can manully pass a path to the .so .dylib or .dll file
spatialite_extension='path/to/mod_spatialite.so'
)
except DataImportError:
raise
Troubleshooting
Failed to load the SpatiaLite extension
Geometry-to-spatialite requires SpatiaLite to be installed. See Setup. Geometry-to-spatialite will attempt to automatically load the extension. If you've installed the extension and you're still seeing this error, you can use the --spatialite-extension
flag (using on the console) or spatialite_extension
(using as a library) to manually specify the path to the SpatiaLite extension.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for geometry-to-spatialite-0.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2604bc728ca345d3938b9b7d2992245daff25d5b9be0e7c8506749b7a838b69c |
|
MD5 | 7e751bc312cd18709ac0bdaf9494ddff |
|
BLAKE2b-256 | ce1a0916052b67bca60065144e8f7239195498c1eb07c14b195b34033a62f0d9 |
Hashes for geometry_to_spatialite-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a03a605e2482c311dc2b96bbeef103005ae2ccf9b933f7b7ac3eaed6d25e5be |
|
MD5 | 98e3661dd7ae1791909e7488954c4f2c |
|
BLAKE2b-256 | 44b7525444441cc2cd277f040031ff9029cb4f6e9d0ceb4f938b1e621eeaf89d |