Skip to main content

Well-known-text and shapely object visualiation library

Project description

WKTPlot

Wrapper around the Bokeh library for plotting well-known-text strings and shapely geometries!

Badges

PyPi Python Versions

codecov

Codacy Badge

Installation


pip install wktplot

Description

The well-known-text standard is very common for working with and representing geospatial data, however it is painful to visualize them programatically. The Shapely library extends the functionality of the well-known-text standard with a rich assortment of geometry objects and operations, but it doesn't make it any easier to visualize.

WKTPlot is a library provides an easy-to-use API for visualizing well-known-text strings and shapely objects programatically. This library wraps around the Bokeh library, which is a powerful plotting library for generating interactive visualizations. Bokeh also provides a rich assortment of stylizing options which are all usable through WKTPlot's add_shape method.

Basic Usage

from shapely.geometry import Polygon

from wktplot import WKTPlot



# Create plot object

plot = WKTPlot(title="My first plot!", save_dir="/path/to/directory")



# Define shapes either through well-known-text (WKT) string, or shapely object

shape_1 = "POINT (30 10)"

shape_2 = Polygon([[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]])



# Add shapes to the plot

plot.add_shape(shape_1, fill_color="green", line_width=3)

plot.add_shape(shape_2, fill_color="cyan", fill_alpha=0.7)



# Save the plot to disk [/path/to/directory/my_first_plot.html]

plot.save()

Supported datatypes

WKTPlot supports majority of shapely objects including:

  • Point

  • MultiPoint

  • LineString

  • MultiLineString

  • LinearRing

  • Polygon

  • MultiPolygon

  • GeometryCollection

Advanced Usage

Example for plotting from shapefile. Shapefile is of California's county boundaries from here.

import shapefile  # pyshp module



from random import randrange

from shapely.geometry import Polygon

from wktplot import WKTPlot



def get_rand_color():

    return f"#{randrange(0, 0xffffff):0>6x}"



plot = WKTPlot(title="California Counties", save_dir="~/scratch")

with shapefile.Reader("~/scratch/CA_Counties_TIGER2016.shp") as shp:

    for shape in shp.shapes():

        p = Polygon(shape.points)

        plot.add_shape(p, fill_color=get_rand_color())

plot.save()

Which will result in this output:

CaliforniaCounties

Future Plans

  • Add native support for visualizing GeoDataframes and shapefiles.

  • Make web view more interactive.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

wktplot-2.2.1-py2.py3-none-any.whl (6.6 kB view hashes)

Uploaded Python 2 Python 3

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