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 (str) or fields (list/tuple) to use as a
# primary key (default is no primary key)
write_mode='append', # pass 'replace' or 'append' to overwrite
# or append to an existing table
# 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
Release history Release notifications | RSS feed
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.3.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b64f352198618aeef8c919af472e156e90a8c52e8fd612bdc5c95066c4a93fc3 |
|
MD5 | a3f2372e012ea9d3d80c5440ecd59340 |
|
BLAKE2b-256 | 33a291ca804452b551c6fcc5d296cdcf8ac801a288be766d895d88601f5e7c36 |
Hashes for geometry_to_spatialite-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 486b798854dc158beffdb084b8988451a3ca723adbd9c0778db6611582817dc8 |
|
MD5 | cb80ae7b7fbe9ff806341c7905ba50a5 |
|
BLAKE2b-256 | 2d355403d518d8c18333c98a22b98da3773c064bd7f0b0dd9037c16181f2b997 |