CLI tool for converting GeoJSON to SQLite (optionally with SpatiaLite)
Project description
geojson-to-sqlite
CLI tool for converting GeoJSON to SQLite (optionally with SpatiaLite)
How to install
$ pip install geojson-to-sqlite
How to use
You can run this tool against a GeoJSON file like so:
$ geojson-to-sqlite my.db features features.geojson
This will load all of the features from the features.geojson
file into a table called features
.
Each row will have a geometry
column containing the feature geometry, and columns for each of the keys found in any properties
attached to those features.
The table will be created the first time you run the command.
On subsequent runs you can use the --alter
option to add any new columns that are missing from the table.
If your features have an "id"
property it will be used as the primary key for the table. You can also use --pk=PROPERTY
with the name of a different property to use that as the primary key instead. If you don't want to use the "id"
as the primary key (maybe it contains duplicate values) you can use --pk ''
to specify no primary key.
If no primary key is specified, a SQLite rowid
column will be used.
You can use -
as the filename to import from standard input. For example:
$ curl https://eric.clst.org/assets/wiki/uploads/Stuff/gz_2010_us_040_00_20m.json \
| geojson-to-sqlite my.db states - --pk GEO_ID
Using with SpatiaLite
By default, the geometry
column will contain JSON.
If you have installed the SpatiaLite module for SQLite you can instead import the geometry into a geospatially indexed column.
You can do this using the --spatialite
option, like so:
$ geojson-to-sqlite my.db features features.geojson --spatialite
The tool will search for the SpatiaLite module in the following locations:
/usr/lib/x86_64-linux-gnu/mod_spatialite.so
/usr/local/lib/mod_spatialite.dylib
If you have installed the module in another location, you can use the --spatialite_mod=xxx
option to specify where:
$ geojson-to-sqlite my.db features features.geojson \
--spatialite_mod=/usr/lib/mod_spatialite.dylib
Using this with Datasette
Databases created using this tool can be explored and published using Datasette.
The Datasette documentation includes a section on how to use it to browse SpatiaLite databases.
The datasette-leaflet-geojson plugin can be used to visualize columns containing GeoJSON geometries on a Leaflet map.
If you are using SpatiaLite you will need to output the geometry as GeoJSON in order for that plugin to work. You can do that using the SpaitaLite AsGeoJSON()
function - something like this:
select rowid, AsGeoJSON(geometry) from mytable limit 10
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 Distributions
Built Distribution
File details
Details for the file geojson_to_sqlite-0.2-py3-none-any.whl
.
File metadata
- Download URL: geojson_to_sqlite-0.2-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c43b8b0de28bed17c0df0d4f0b63dd86e3ce5db5959834673df71a06c103b531 |
|
MD5 | 780c1bc7ff720a1b82e1c9abba50800a |
|
BLAKE2b-256 | 28856512da921d2d853a96c5a0354576ef5675c5a4d906789876d6dec5a14c4a |