Skip to main content

Load shapefiles into a SQLite (optionally SpatiaLite) database

Project description

shapefile-to-sqlite

PyPI Changelog Tests License

Load shapefiles into a SQLite (optionally SpatiaLite) database.

Project background: Things I learned about shapefiles building shapefile-to-sqlite

How to install

$ pip install shapefile-to-sqlite

How to use

You can run this tool against a shapefile file like so:

$ shapefile-to-sqlite my.db features.shp

This will load the geometries as GeoJSON in a text column.

Using with SpatiaLite

If you have SpatiaLite available you can load them as SpatiaLite geometries like this:

$ shapefile-to-sqlite my.db features.shp --spatialite

The data will be loaded into a table called features - based on the name of the shapefile. You can specify an alternative table name using --table:

$ shapefile-to-sqlite my.db features.shp --table=places --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:

$ shapefile-to-sqlite my.db features.shp \
    --spatialite_mod=/usr/lib/mod_spatialite.dylib

You can use the --spatial-index option to create a spatial index on the geometry column:

$ shapefile-to-sqlite my.db features.shp --spatial-index

You can omit --spatialite if you use either --spatialite-mod or --spatial-index.

Projections

By default, this tool will attempt to convert geometries in the shapefile to the WGS 84 projection, for best conformance with the GeoJSON specification.

If you want it to leave the data in whatever projection was used by the shapefile, use the --crs=keep option.

You can convert the data to another output projection by passing it to the --crs option. For example, to convert to EPSG:2227 (California zone 3) use --crs=espg:2227.

The full list of formats accepted by the --crs option is documented here.

Extracting columns

If your data contains columns with a small number of heavily duplicated values - the names of specific agencies responsible for parcels of land for example - you can extract those columns into separate lookup tables referenced by foreign keys using the -c option:

$ shapefile-to-sqlite my.db features.shp -c agency

This will create a agency table with id and name columns, and will create the agency column in your main table as an integer foreign key reference to that table.

The -c option can be used multiple times.

CPAD_2020a_Units is an example of a table created using the -c option.

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

shapefile-to-sqlite-0.4.2.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

shapefile_to_sqlite-0.4.2-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file shapefile-to-sqlite-0.4.2.tar.gz.

File metadata

  • Download URL: shapefile-to-sqlite-0.4.2.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.1

File hashes

Hashes for shapefile-to-sqlite-0.4.2.tar.gz
Algorithm Hash digest
SHA256 68bccd2fbdd5a9edacf2398e1c72d5261b965ba4e835c7580601990b26711a21
MD5 7d7c01fd36c741e908df63daa9e17bd3
BLAKE2b-256 8955fe8b70938e8b20a2864d0439760b840a71296abdc78e2f7c650b81f27941

See more details on using hashes here.

File details

Details for the file shapefile_to_sqlite-0.4.2-py3-none-any.whl.

File metadata

File hashes

Hashes for shapefile_to_sqlite-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 7c57d3654746cad7c83ce7f649eedd00bfc5751e7a0b0c90a3b48b37ad4af5d5
MD5 1076a5ad54977079178913458f339555
BLAKE2b-256 ae4becda285141fe5ae43aeebc6902a7460fc07bf93510cd536a146f0d6e5417

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page