Skip to main content

Create SVG drawings from vector geodata files (SHP, geoJSON, etc).

Project description

SVGIS

Build Status Coverage Status

Create SVG drawings from vector geodata files (SHP, geoJSON, etc).

SVGIS is great for: creating small multiples, combining lots of datasets in a sensible projection, and drawing styled based on classes in the source data. It's perfect for creating base maps for editing in a drawing program, and its CSS-based styling gives great flexibility for styling.

svgis draw input.shp -o out.svg
svgis draw south_dakota.shp north_dakota.geojson -o dakota.svg
svgis draw england.shp scotland.shp wales.shp --style gb.css -o great_britain.svg

Documentation: http://pythonhosted.org/svgis

Install

Requires fiona, which in turn requires GDAL.

To instal GDAL:

On OS X: brew install gdal (requires Homebrew)

On Linux: sudo apt-get install libgdal1-dev

On Windows: see OSGeo4W

Then:

pip install svgis

An option feature of svgis is clipping polygons to a bounding box. This will speed things up if you need to draw only part of a very complex feature.

To support clipping output shapes, you'll need the GEOS library:

  • OS X: brew install geos
  • Linux: sudo apt-get install geos
  • Windows: GEOS is part of OSGeo4W, so you have it!

Then, install svgis with a slightly different command:

pip install svgis[clip]

Commands

The svgis command line tool includes several utilities. The most important is svgis draw, which draws SVG maps based on input geodata layers.

Additional commands:

  • svgis bounds: get the bounding box for a layer in a given projection
  • svgis graticule: create a graticule (grid) within a given bounds
  • svgis project: determine what projection svgis draw will (optionally) generate for given bounding box
  • svgis scale: change the scale of an existing SVG
  • svgis style: add css styles to an existing SVG

Read the docs for complete information on these commands and their options.

Examples

Draw the outline of the contiguous United States, projected in Albers:

curl -O http://www2.census.gov/geo/tiger/GENZ2014/shp/cb_2014_us_nation_20m.zip
unzip cb_2014_us_nation_20m.zip
svgis draw cb_2014_us_nation_20m.shp --crs EPSG:5070 --scale 1000 --bounds -124 20.5 -64 49 -o us.svg

The next two examples use the Natural Earth admin-0 data set.

Draw upper income countries in green, low-income countries in blue:

/* style.css */
.income_grp_5_Low_income {
    fill: blue;
}
.income_grp_3_Upper_middle_income {
    fill: green
}
.ne_110m_lakes {
    fill: #09d;
    stroke: none;
}
svgis draw --style style.css --class-fields income_grp ne_110m_admin_0_countries.shp ne_110m_lakes.shp -o out.svg

Draw national boundaries and lakes in Europe using an Albers projection, simplifying the output polygons, and draw Germany in purple.

svgis draw ne_110m_admin_0_countries.shp ne_110m_lakes.shp \
    --crs EPSG:102013 \ 
    --scale 1000 \ 
    --simplify 90 \ 
    --style '.ne_110m_admin_0_countries { fill: tan } .Germany { fill: purple }' \
    --style '.ne_110m_lakes { fill: #09d; stroke: none; }' \ 
    --class-fields name \ 
    --bounds -10 30 40 65 \ 
    -o out.svg

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

svgis-0.5.0.tar.gz (607.2 kB view details)

Uploaded Source

Built Distribution

svgis-0.5.0-py2.py3-none-any.whl (28.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file svgis-0.5.0.tar.gz.

File metadata

  • Download URL: svgis-0.5.0.tar.gz
  • Upload date:
  • Size: 607.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.23.0

File hashes

Hashes for svgis-0.5.0.tar.gz
Algorithm Hash digest
SHA256 4e9fabc4e0cdcc3f82d6c7e593863377e6bb02927ceb22809e5796d654041fb2
MD5 66460b003285ee3eacf95dccb1a107cd
BLAKE2b-256 7de35e76f63aeb544a5782cf4f6e96854bb7f641755a0ae50b370a4bacbddf7d

See more details on using hashes here.

File details

Details for the file svgis-0.5.0-py2.py3-none-any.whl.

File metadata

  • Download URL: svgis-0.5.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 28.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.23.0

File hashes

Hashes for svgis-0.5.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 09c5dde524f1923e1e544f9df18dc49e205383216bc1273e88b3495468f8ab32
MD5 e73fd7927f709a28852c22416e6b843c
BLAKE2b-256 f5226ba23cc77d8d9933e5e4bbf7a7de7305b420069c31d83146413ce5e72122

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