Make smoothed maps from a geo layer
Project description
Make smoothed maps in your python environnement
More or less a python port of Stewart method from R SpatialPositon package (https://github.com/Groupe-ElementR/SpatialPosition/).
Allow to set a desired number of class and choose discretization method or directly set some custom breaks values.
Input/output can be a path to a geographic layer (GeoJSON, shp, etc.) or a GeoDataFrame.
Requires:
Numpy
GeoPandas
SciPy
Matplotlib
Documentation on the method :
Please refer to https://github.com/Groupe-ElementR/SpatialPosition/ documentation.
Usage example:
One-shot functionnality
>>> result = quick_stewart('nuts3_data.geojson',
"pop1999",
span=65000,
beta=3,
resolution=48000,
mask='nuts3_data.geojson',
nb_class=10,
user_defined_breaks=None,
output="geojson")
Object-oriented API, allowing to easily redraw contours with new breaks values or new interpolation functionnality
>>> StePot = SmoothStewart('nuts3_data.geojson', "pop1999",
span=65000, beta=3,
resolution=60000,
mask='nuts3_data.geojson')
>>> res = StePot.render(nb_class=8, func_grid="matplotlib",
disc_func="jenks", output="GeoDataFrame")
>>> res.plot(cmap="YlOrRd", linewidth=0.1)
The long part of the computation is done during the initialization of SmoothStewart instance (i.e. actually computing potentials). Some convenience methods allows to tweak and re-export the few last steps :
Allow to quickly redraw polygons with a new classification method (or with new interpolation functionnality) Availables classification methods are: “equal_interval”, “prog_geom”, “jenks”, “percentiles” and “head-tail-breaks”
>>> StePot.change_interp_grid_shape((164, 112))
>>> res = StePot.render(nb_class=6, func_grid="scipy",
disc_func="percentiles", output="GeoDataFrame")
Allow to set custom break values (highly recommended after a first rendering or having take a look at the distibution):
>>> my_breaks = [0, 1697631, 3395263, 5092894, 6790526,
8488157, 10185789, 11883420, 13581052]
>>> res = StePot.render(nb_class=6, user_defined_breaks=my_breaks,
output="GeoDataFrame")
Installation:
From PyPI :
$ pip install smoomapy
From github :
$ git clone http://github.com/mthh/smoomapy.git
$ cd smoomapy/
$ python setup.py install
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
File details
Details for the file smoomapy-0.1.2.tar.gz
.
File metadata
- Download URL: smoomapy-0.1.2.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 98e332f6431670b4b27b23feda79728776c1c7907fa23bc81e1c2e5e37ca3c25 |
|
MD5 | 69c260b033572a80bfd0e66dfaccf046 |
|
BLAKE2b-256 | 98b79f64b2a9c0ca4e5597ba90229960fb29162d5d7327c458dab7056c7c910a |