A polyline smoothing package for shapely.
Project description
shapelysmooth
is a polyline smoothing package for Python - mainly intended for use on shapely LineStrings and Polygons.
- Requirements
- Installation
- Methods
- Smoothing Collections of Geometries
- Smoothing Geometries stored in Numpy Arrays
Requirements
This package requires
- Python >=3.6
- shapely
Installation
Build from source, or
pip install shapelysmooth
Methods
Currently, three smoothing methods are provided, suited to different use cases.
Taubin Smoothing - taubin_smooth
>>> from shapelysmooth import taubin_smooth
>>> smoothed_geometry = taubin_smooth(geometry, factor, mu, steps)
Taubin polyline smoothing.
Parameters
geometry : LineString | Polygon | list
Geometric object consisting of polylines to smooth. A
shapely.geometry.Linestring
orshapely.geometry.Polygon
or alist
containing tuples of $(x, y)$ coordinates.
factor : float
How far each node is moved toward the average position of its neighbours during every second iteration. $0 <$
factor
$< 1$. Default value: $\mathbf{0.5}$.
mu : float
How far each node is moved opposite the direction of the average position of its neighbours during every second iteration. $0 <$
-mu
$< 1$. Default value: $\mathbf{-0.5}$.
steps : int
Number of smoothing steps. Default value: $\mathbf{5}$.
Returns
output : LineString | Polygon | List
The smoothed geometry.
The Laplacian smoothing algorithm defines for each interior node in a polyline consisting of nodes $(p_0, p_1,..., p_n)$ the Laplacian, $L$, of node $p_i$ as $$L(p_i)=\frac{1}{2}p_{i+1}+\frac{1}{2}p_{i-1}-p_i.$$ For a given factor $\lambda$, node $p_i$ is at each iteration redefined as: $$p_i\leftarrow p_i+\lambda L(p_i).$$ Geometrically this corresponds to moving $p_i$ a fraction $\lambda$ of the distance toward the average of its neighbouring nodes, in the direction of that average. However, this will cause cause shrinkage, i.e. closed polylines will eventually collapse to a point. Taubin smoothing prevents this by, at every second iteration, instead redefining each node $p_i$ as $$p_i\leftarrow p_i+\mu L(p_i),$$ where $0<-\mu<1$. This corresponds to moving $p_i$ a fraction $-\mu$ of the distance toward the average of it's neighbouring nodes, but in the opposite direction to that of the average. One step of Taubin smoothing therefore consists of two iterations of Laplacian smoothing, with different factors - one positive one negative.
See
The implementation also supports closed polylines and polygons (with or without holes).
Chaikin Interpolation - chaikin_smooth
>>> from shapelysmooth import chaikin_smooth
>>> smoothed_geometry = chaikin_smooth(geometry, iters, keep_ends)
Polyline smoothing based on Chaikin's Corner Cutting algorithm.
Parameters
geometry : LineString | Polygon | list
Geometric object consisting of polylines to smooth. A
shapely.geometry.Linestring
orshapely.geometry.Polygon
or alist
containing tuples of $(x, y)$ coordinates.
iters : int
Number of iterations. Default value: $\mathbf{5}$.
keep_ends : bool
Preserve the original start and end nodes of the polyline. Not applicable to closed polylines and polygons. (The original algorithm results in a contraction of the start and end nodes). Default value:
True
.
Returns
output : LineString | Polygon | List
The smoothed geometry.
Chaikin's Corner Cutting algorithm smooths a polyline by iterative refinement of the nodes of the polyline. At each iteration, every node is replaced by two new nodes: one a quarter of the way to the next node, and one quarter of the way to the previous node.
Note that the algorithm (roughly) doubles the amount of nodes at each iteration, therefore care should be taken when selecting the number of iterations.
Instead of the original iterative algorithm by Chaikin, this implementation makes use of the equivalent multi-step algorithm introduced by Wu et al. See
By default, the algorithm will not contract the endpoints of an open polyline. Set the keep_ends
parameter if this behaviour is unwanted.
The implementation also supports closed polylines and polygons (with or without holes).
Catmull-Rom Spline Interpolation - catmull_rom_smooth
>>> from shapelysmooth import catmull_rom_smooth
>>> smoothed_geometry = catmull_rom_smooth(geometry, alpha, subdivs)
Polyline smoothing using Catmull-Rom splines.
Parameters
geometry : LineString | Polygon | list
Geometric object consisting of polylines to smooth. A
shapely.geometry.Linestring
orshapely.geometry.Polygon
or alist
containing tuples of $(x, y)$ coordinates.
alpha : float
Tension parameter. $0 \leq$
alpha
$\leq 1$. For uniform Catmull-Rom splines,alpha
$= 0$. For centripetal Catmull-Rom splines,alpha
$= 0.5$. For chordal Catmull-Rom splines,alpha
$= 1.0$. Default value: $\mathbf{0.5}$.
subdivs : int
Number of subdivisions of each polyline segment. Default value: $\mathbf{10}$.
Returns
output : LineString | Polygon | List
The smoothed geometry.
Catmull-Rom splines are a class of cubic splines which can be efficiently calculated, and have the property that they pass through each interpolation node. The splines are piecewise-defined, but have $C^1$ continuity throughout.
For more detail see
This implementation makes use of the algorithm proposed by Barry and Goldman, see
There are three types of Catmull-Rom splines: uniform, centripetal and chordal, which are determined by tension parameter, $\alpha$, values of $0$, $0.5$ and $1$, respectively. Note that uniform Catmull-Rom splines may contain spurious self-intersections.
The implementation also supports closed polylines and polygons (with or without holes).
Smoothing Collections of Geometries
Objects of type shapely.geometry.MultiLineString
and shapely.geometry.MultiPolygon
can be smoothed by making use of the geoms
property provided by these classes.
>>> from shapely.geometry import MultiPolygon
>>> from shapelysmooth import chaikin_smooth
>>> polys = MultiPolygon(...)
>>> smoothed_polys = MultiPolygon([chaikin_smooth(poly) for poly in polys.geoms])
Smoothing Geometries stored in Numpy Arrays
Given a numpy.array
of shape $(n, 2)$ (thus containing $n$ 2-dimensional coordinates or nodes), it can be smoothed as follows.
>>> import numpy as np
>>> from shapelysmooth import chaikin_smooth
>>> array = np.array(...)
>>> array_smoothed = np.array(chaikin_smooth(list(map(tuple, array))))
Direct support for Numpy arrays is being worked on for a future version.
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
Built Distributions
Hashes for shapelysmooth-0.2.1-pp310-pypy310_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e804d06841a544d2fb91eec50f51809bd9a4a4021845cc6840beceff0ddb218 |
|
MD5 | 61886d3e9cf1fed8140bf5c05dabdde0 |
|
BLAKE2b-256 | b5c3a06fb91d5e6468c2b8ed74eac9f6770e64eea25f0608a6fa1d88b54915d0 |
Hashes for shapelysmooth-0.2.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ef1e8057543d93aa38b03d7c3bda907b80945e95a76afc605d955984b81936d |
|
MD5 | a52bd4a777345e206f7835d1a46c40e4 |
|
BLAKE2b-256 | 275d864c9fa4a2cb2d0c68e31a8ceccc8f699b453ccf7ff9954c44aab96f7314 |
Hashes for shapelysmooth-0.2.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29ee6ab80feaa8f7a97ebe024bf83687edb69128027af166df45f22bc263e99a |
|
MD5 | ce41d6dee082de98fa823ac3fc663ec9 |
|
BLAKE2b-256 | 3ed06d8d87d2ca0102d9d68ec664297d17314fd391904c1a535cdfea7b481e5f |
Hashes for shapelysmooth-0.2.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c3055e117862798e780017a7216cbcb1cbd9ad257e17a180e48223d929902c87 |
|
MD5 | 85d4bb7a98eb3be2b47d09543aae9bb1 |
|
BLAKE2b-256 | 465d67f8c50d7e5c485cba7e430dc0551a9ce9cfdc27ff9a5fce4320bc04cd8d |
Hashes for shapelysmooth-0.2.1-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9cb006a06762b9887472969731de9d49eba5f6cfb1e833baad5fc81ee5f042f1 |
|
MD5 | a25cd02daaf7314deb7c59a9f44152fe |
|
BLAKE2b-256 | fed72829fcec3f9fb1d89b1a105833da871926a4b93f3d7ae83b653725ab8402 |
Hashes for shapelysmooth-0.2.1-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f4acd1a306d32b472fcdf2b40c14b7f25426b2c81c522ee4d62d701f57f0dd0 |
|
MD5 | 716b8f0e2db9485c23fbab955a82b137 |
|
BLAKE2b-256 | 5092c4231f1ba6bc6110febeeaf74068b2fe6e9398afd0e4dd14afaa32dfe9a7 |
Hashes for shapelysmooth-0.2.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2095d2ba0dff98885890374051df2ba854bdce146895192fe63c5f2a8be3ab6 |
|
MD5 | e511961db98f3f0ca00150573b834290 |
|
BLAKE2b-256 | f84234a4c98ffa1b5be2731d0f35c7c61ac31adb55a30f69044a4d3827f44f63 |
Hashes for shapelysmooth-0.2.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bbd721ead0ae8a02a233972b26910b64292e5d97aaf6e523f8d65e38a3de09d2 |
|
MD5 | 6bf09abfb73bed11604a4cfbcee4580e |
|
BLAKE2b-256 | 44c16b561ab526e29a4fc3d6c1d620b5bdaba6037dcb45f6ba135f20a05846d2 |
Hashes for shapelysmooth-0.2.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af3d66e2a646098f2d62aa17ce7d6ed14a21fa93bdafdc8960a692d909129835 |
|
MD5 | 90f12ade0a5572871240de223e47d8b8 |
|
BLAKE2b-256 | 3c91b72ae955a603cb1227b90bc1fca63a94c97c16db9bfc929927592a83e41e |
Hashes for shapelysmooth-0.2.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86fca7d02e63b5d0d825d9801ea41d2f08d36f9f4b83b9d7eaeddfe772012565 |
|
MD5 | 1feb9231b26960818eee52c44d2ee0f8 |
|
BLAKE2b-256 | 5df37d4a49f8a312e40c8a7e76a4f54ab1ac14465cd6e236f586611de9d4dbe1 |
Hashes for shapelysmooth-0.2.1-pp38-pypy38_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c506da8a95b6692a74896ac8a959f95b725908baa90a9c6e75789f60625a1e9 |
|
MD5 | bba396566d8f1b96b255a230461b6c34 |
|
BLAKE2b-256 | 52f5c0542abe91815ec569f47821f041675bb65650982a595462eb7d7bd33994 |
Hashes for shapelysmooth-0.2.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6516396ffe95f8b199c0a70a7b9e7b685cee36f3265cafd4f0ea04f7cfe23357 |
|
MD5 | 68e0abc5a381c8d8c69bf7439f3e375b |
|
BLAKE2b-256 | 0734e19ad7b2183742e79e09e00b4826c03b4dd3d1caec1becb7444c3244d46c |
Hashes for shapelysmooth-0.2.1-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eeda05c61580a8333df85cb518119421c42e642c439c732ca17316cd939609b6 |
|
MD5 | d0169ef9d4db0d473c07c50a4f5b9263 |
|
BLAKE2b-256 | 91b6dabeb794eb0df52d1cbe75b210d4e89a0e3cc49a9ec8f8289bfb0006c9d5 |
Hashes for shapelysmooth-0.2.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6042be47afe3e7219d3b3d75b607db04b6c773bde606efc115cc21e53279d7e6 |
|
MD5 | 7545be03d59f8340d1cb5244e42ab8e4 |
|
BLAKE2b-256 | b08b926ac8e29ab830e06b089d135eeac739336544f7921d7dd23a60de7b9936 |
Hashes for shapelysmooth-0.2.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eaf3bff0f7cd8a20f14be0f1e0fbb828eba7478182a53610c94454ce4a60bd26 |
|
MD5 | 9cdf66e07abb47f8801c0755152eab61 |
|
BLAKE2b-256 | 7c894607e067acc7deb089011f1b8cd3a056a394b2ef93fe9881d514042eb74f |
Hashes for shapelysmooth-0.2.1-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb88d650aea7fc605dcd0d0cf478358ea32307c3e5edb62ea807b4356afb6224 |
|
MD5 | aa00a54e400e0928e717f7aaf6184f0c |
|
BLAKE2b-256 | e388ef569bede6c3a9707dfcfa067e0a7354baf61fe7a226321bf39478ae58e7 |
Hashes for shapelysmooth-0.2.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b28bc0e26cd809e83453c2de813eb183c6c66672d05ce6aacad549f0f8231446 |
|
MD5 | c15292fab085f0a6e74ff094d037dab2 |
|
BLAKE2b-256 | af002e964660fcca2a2ba788da16adb97395328a65495f166cac564012de9483 |
Hashes for shapelysmooth-0.2.1-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d707b16af12ae57768978cd4a6bde2a0ee9c4f24e8c5087fb03b9b491e8ef4be |
|
MD5 | 3c0aa5689472b5e37935519a27d1ce4c |
|
BLAKE2b-256 | 5ddbc8b4bc0f61668735425f83b719c3669dfbee2d7b73a68394c4889a525f73 |
Hashes for shapelysmooth-0.2.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 744200e38f33d822f47d01f7c7aba9e4fe4ff7340bb19ce38401e4a552ddba56 |
|
MD5 | cf56a2835ece1d72349f6cf61c0d08e2 |
|
BLAKE2b-256 | e3d856d820aca21b2e5da1b8cac5c4b58ce6b7e1bc0a1351f54be503dcae6ce0 |
Hashes for shapelysmooth-0.2.1-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec1685a1890f7f79876a59f67778b3f3390b9a260e90c12bc4e6db8252e403b2 |
|
MD5 | f373610a6ba98b43ae5f0f4d843978b5 |
|
BLAKE2b-256 | 6ee5775cb6d15019b3dc795b5dbdf2d0273f4f8c54ac849162bd02afddda378f |
Hashes for shapelysmooth-0.2.1-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3dcbd92e3db3eacffd1cac0aff76607973805a94ce06b1457fb8f83bf8664e90 |
|
MD5 | 51fde70b587113de7cd611351036ace4 |
|
BLAKE2b-256 | 2d13043f8e340719461a2ea752ac74d1b3a90b9388c56b91aa4d6907cb4c7065 |
Hashes for shapelysmooth-0.2.1-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb22433500c73e9b02c3d38c1e7abc964967bf19ec2a5ed4896d656c115ba814 |
|
MD5 | 68587f694b6486bb090a5862f57b9cdf |
|
BLAKE2b-256 | 0310fb6f6de2cbff5db651861d7dd71196ae1ef6f33571c66eecc70025002a16 |
Hashes for shapelysmooth-0.2.1-cp312-cp312-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 16936605e30a9146419f86561be125a2effb77235175274be7431c7c9e63f4eb |
|
MD5 | 04790103d30b9e3d14b9dfbb05a4923e |
|
BLAKE2b-256 | 29940176f722b2a8a4d2e9a7306350ae595c5fae45c77b1b9595ea2aeca34c72 |
Hashes for shapelysmooth-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8daa2dcdaf3ef45ffa16cd0de47530966f02296f1090f6129e29bed4755eca5f |
|
MD5 | 628d5705f530086e463deee901d16e70 |
|
BLAKE2b-256 | 8c1d211e37dc8930ad66b1e31852f6ad0dd64f3381d1f2dade4506d7fe4a2e58 |
Hashes for shapelysmooth-0.2.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfbd9ad4956889fd3eece0da542626fc23b157a8b7c4f619932eb23fd3bc7f20 |
|
MD5 | 2fa19a06182fff133785ec49a5de04bb |
|
BLAKE2b-256 | 851e0b76f823ddca88462f2e5408d1d0ce1a8664b22223f38f50e5ec8c212830 |
Hashes for shapelysmooth-0.2.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcc7f9cc6484d1513b3fb9ca7c2edee171eb7920a1a9ab2136820153e566f716 |
|
MD5 | e92274b29a8839c874ef64b1ed2c545f |
|
BLAKE2b-256 | 486a5bfa2546014a79a414088031cbef9a85104fc556f7c9219405ab813f5722 |
Hashes for shapelysmooth-0.2.1-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 941b6b7dabba65a003dffacece2b53ceac2354c6df14d20827f59a64a2482f92 |
|
MD5 | 8d2b029f96b7d8c98d6b8dc87dc31d4b |
|
BLAKE2b-256 | 0c81d5ccca8a829b65aa005c20f0673bfaff6c6ed314201085fb02b9096a2615 |
Hashes for shapelysmooth-0.2.1-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a96c680ef0f8fdaec9f83534f4e0a56b4f3b0f183b3e5c6884e71ef448ff6d18 |
|
MD5 | 9254497a7cbb014e32505fb7209d1b08 |
|
BLAKE2b-256 | 7e292c88e21922374ab66ed48bbefe14dc9430d3ecff7d79d2893b8ea4f4ea8d |
Hashes for shapelysmooth-0.2.1-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a44579a3f20c1a7b214e1717922cf153f51879ef4970b325f1bd981ece8c3e1 |
|
MD5 | 6da5f30923fe6ebd01c0b80cafb13f90 |
|
BLAKE2b-256 | e5ccd74fae932d382315ea6f8d879e75938f360a4c4687333ab71a5bfcbeb2ab |
Hashes for shapelysmooth-0.2.1-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0334d8287e577bf17fe1d65a9f1d8b637faa0bf8cad3127d2bbc423b2defe6c4 |
|
MD5 | 2ed7279550a8a27bcd136b57b731ffd7 |
|
BLAKE2b-256 | 7657163068d250b15094b8de8894bbe857f631b453b05f9da36043cff128a781 |
Hashes for shapelysmooth-0.2.1-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b46de966941be083702be8d52380742669a383ee972a78da2402a956cfa10199 |
|
MD5 | 3e56a5d15cc10e055caabf8b7b07f569 |
|
BLAKE2b-256 | ad1dab24b03c76fb7ed1f0c66957b09994d426feda4d21cef382bde6a185046f |
Hashes for shapelysmooth-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 755420c315e0303cace5608d292a282ee8464eeac097bdad66dd3d9d0c078916 |
|
MD5 | 087f0f3bbf52c96dadbe5c35badc41aa |
|
BLAKE2b-256 | 11ba6c5764c7fbf7d8b91c63f24bf1388402b71d69868a1788612005bb2ae7ba |
Hashes for shapelysmooth-0.2.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 605577f5dd4ba2bdf5a626412bbbac9ebeeaf9fb6ded6c3336f504aee2332826 |
|
MD5 | cee4a11a5dbc139435ae439414e7dc4c |
|
BLAKE2b-256 | 23948c3bcd8eb0e5cc81d6bc0aed282b52cd14c9c340de7b1600410659d6cf48 |
Hashes for shapelysmooth-0.2.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1414573e8cd9b627152d30af9bbb0f1fc19a58ec2ce52b094d9a6571d7b5e68a |
|
MD5 | a710f90fceccb042934ee962ddf8c695 |
|
BLAKE2b-256 | c8bfeaaed54e678488b9e9969f4627b1aa0b6a40ff97de7e4415652b1ffbeb25 |
Hashes for shapelysmooth-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | efa8f34c46af3bf78432efffe4ecbef99c211613240a83ef0146ae4e75a154ad |
|
MD5 | a337864e4b92d2bcb05c41c4cba24b8b |
|
BLAKE2b-256 | 168172cc4842c3db46d132df72d8037240c6fb07977f857b18fef54bf708ba0d |
Hashes for shapelysmooth-0.2.1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddedf8954c78206cadb2e4bbd9186af1452ebec87bd49a7c5ea90d441dd19cdf |
|
MD5 | 9035638408d6e807e768d6e22fad361a |
|
BLAKE2b-256 | 93634bc8dda90c3cd140757565d630edfbae375eb4fe3b7ada23105620877012 |
Hashes for shapelysmooth-0.2.1-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87bc23a91f97170246292d72e55d187ad9e57881380201cbd5be38dcef718941 |
|
MD5 | 2c9fb7a45e96786672885619b754a9b7 |
|
BLAKE2b-256 | aa8aaae9526499eebd66da1fa546c78ef0774208274c2bc9bedd8eefb42a9af4 |
Hashes for shapelysmooth-0.2.1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 118b44c1d5b5e6d8249e076f81cf9ee7821b74932c7d0babb507211255a6a29a |
|
MD5 | 581a28b2d9667c6f45373bde0d5a4683 |
|
BLAKE2b-256 | 43b2233c57c8e6a859e78fa294670c3d4dc859fe7675ed371fb0fd1909f617ea |
Hashes for shapelysmooth-0.2.1-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84df96b8fca7e176a99d51eafe1646cce85004ce082d6bbf7fe6ae4809810dee |
|
MD5 | b2b0072dab8940f96d7156bc57cbfcde |
|
BLAKE2b-256 | 0f9b7fe724b9862990e8db36f026fcd693ef9c7904540803bb1cc59b025e9fff |
Hashes for shapelysmooth-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74ddceddc9851327da948d80e2d7fedf2df09db33007e2ea8738b0bbad98e529 |
|
MD5 | 04106830b6caf86f77ef14c4f1f42084 |
|
BLAKE2b-256 | 9d281cee42018daeb2cd85fc7e3b70c23e7dd097564cd6d69a09a7c1e329ca2d |
Hashes for shapelysmooth-0.2.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5a8a7b06cf1d331ef9c475e3af427200472ee2ada2a005217e2a2cbe5f5a74c |
|
MD5 | 72ea729e8947f90b20f045f716516975 |
|
BLAKE2b-256 | e203a77bb19f8e74ab32e818d6a2378ddc1241583728d40d44dab7fa993d8e2a |
Hashes for shapelysmooth-0.2.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8a745a814e934c2b63f0ef83fb0bf069d972b962decd7ffea88f7c38f27cbb9f |
|
MD5 | a182e1026d77f9c85da6336cc90d2b34 |
|
BLAKE2b-256 | 36cbdb7b5eb269a34cf2c08c3a0cf7ef4fe6782aa81a607b1a213db2755a2d66 |
Hashes for shapelysmooth-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1871b9ac08b063d7aa5980eeeea7332ed19f3e8b5455b63e21c299dc3a36ca1 |
|
MD5 | f5f5c1f254f1e57007c38ebe94078071 |
|
BLAKE2b-256 | b4fb611663e554a06be05770e28a9dfce415e01aca48d251c92620e3ad08cde4 |
Hashes for shapelysmooth-0.2.1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c9b3de85566d127f4b6ff95c6ae0ecc7cc8ad474c145583c9dc80b654b555d5 |
|
MD5 | d8f7590636e586ace287a3626a5c4cb2 |
|
BLAKE2b-256 | fa20c705cf941c80982b46a20fdecc5ce853d642b2d1555c6fec7608d458346a |
Hashes for shapelysmooth-0.2.1-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95ee7a1fdb9487b35c94ed88955abde8b0f5f56d813c6a3d657942d43a31102f |
|
MD5 | 86e3f6dcb434e80a7c3293bcf765fa19 |
|
BLAKE2b-256 | 82d2de0dd807ca2afd49df5dd822b01f38548c20d129a8f0263bc566d8daf381 |
Hashes for shapelysmooth-0.2.1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa63f90081a744b93fa6674b8db4888646a9906cfb3016206a3ed057ae230dfd |
|
MD5 | d01123d03962557943007b0ba23aa706 |
|
BLAKE2b-256 | cb1fdca761cb738728670a7a1ae0b353804f98f97cd13f32f9d6faff8d47f69d |
Hashes for shapelysmooth-0.2.1-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4311ea0ebc24465e2a6b58b0de1a3619b375660554b0328f9c6bfa30f76db0fb |
|
MD5 | 7b397c90950d5f24fef3ba54d0838df0 |
|
BLAKE2b-256 | abf574983251656af9bba6d6579dc46b272082a6202e36af9251648321d9029b |
Hashes for shapelysmooth-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2906b75f567983a6b370d0c7ee54bee9bf28986057ed8f7d4609556576dbefe7 |
|
MD5 | 8ed0c3a2aa304552ee6c7dcf46e23e1e |
|
BLAKE2b-256 | b386925ac8868d9a65b8a6a6b082f2a17fa071807b9318b10833e9ebba2e0529 |
Hashes for shapelysmooth-0.2.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5c38557fd3dd2d0f7d25361bc9a1df3bf6d0157a4d2a7b66e861a76dd198564 |
|
MD5 | 2cbbea8e3c15eabeccdbf0ee8c01df09 |
|
BLAKE2b-256 | 31737dbb0b47da42ffa3480438c3704fc0ad94a5fbd150853992635580b5818c |
Hashes for shapelysmooth-0.2.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3437bf5c10a3e4b89bdbe6dcf15834ea3e19a0b6b822573ec039c70d876cf6f |
|
MD5 | bf8a00501e9e8ca9228281077f535b59 |
|
BLAKE2b-256 | ac5f77d419a20652c9da24ca356f5b4c1dc6e54d94d6ff3a8a91ff66f89e9188 |
Hashes for shapelysmooth-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d35ec6b8f8fa89f0a4609b2d1415e63d76796b6df66e9e882cb2e1ad8b13915 |
|
MD5 | 90d8ac7cfeaa8bb6323e035db340d457 |
|
BLAKE2b-256 | 710154d0f34bbc28161192eb1d2413f6c63102c61f760bef335574f8d09185bf |
Hashes for shapelysmooth-0.2.1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be0844bc84b2162c363c4a9ab48148d1086bc9b6f96fc20bd36cee15edccebe5 |
|
MD5 | 2f59c9699d3aa5fefd4f2890c4481ae8 |
|
BLAKE2b-256 | eb79334aeb8cb4d25dd2ff9652a8b9756800468320d6c0f939adcf94cd995655 |
Hashes for shapelysmooth-0.2.1-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb915b5b7fd2b49c33c9f42097869fa26c0ca80ee0aa5ee38b987608bc1169d5 |
|
MD5 | 3e570e09a04cbcea452c21782fb6de6f |
|
BLAKE2b-256 | d460152e141e72002e895f55a1d4ead257ad77676fdc54e3a47cbb24842210ee |
Hashes for shapelysmooth-0.2.1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a1e028bbf6a7f8b3897afbcf7710cde45aec50a9f39c7fc6223971c7f37ad72 |
|
MD5 | 61474d49e0d42b558d2e951ad01faa09 |
|
BLAKE2b-256 | ce8b4588142980d74629f747dad08708bb0d5d38c1fc63128aa43ab6968d4954 |
Hashes for shapelysmooth-0.2.1-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19533be17a418e30f6e72135dca377c586cb044357f67e41c5db714a438c1275 |
|
MD5 | 050ce4044ae3966f5d3d7bc99011a0e5 |
|
BLAKE2b-256 | f532cccf735a8bcd5ae8c87778bf0b6bd69c757d47b5dbbe6547b1df93b63b75 |
Hashes for shapelysmooth-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c771f05b432f6db9f7e9a4abfc8a0d570d8557136881e8e5792ca1a5c77d141 |
|
MD5 | 645e9d4f5cb84b7309b02f4e71fb4282 |
|
BLAKE2b-256 | e1f53069f190e79a7de9ef1e3dfb3711e82bbfe99b77ec81d0bb2ffeb0c8a33b |
Hashes for shapelysmooth-0.2.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43e6ea4a0644fbd8c93f37f5eac8b9bf97514e9e328a5c8d88b51766a18d0764 |
|
MD5 | 1e7b43b717d9652eab1d7b65a9219f6d |
|
BLAKE2b-256 | a43c6cf681ddeac3cdfae1673ed1271dc3e5abbc45d7552d419ab3e42a4be1f8 |
Hashes for shapelysmooth-0.2.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8be8e8cf883efc75f5aa8b2a675c0863fa3714d31f9e482b1fe2cf267e59e0d1 |
|
MD5 | 13ce0920aa6671d033dc0b33cf8d76af |
|
BLAKE2b-256 | b7175bce6de4ad5ca1ab783aeaadc08907e9bd847c404f111bb4d64d819ce66e |
Hashes for shapelysmooth-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a835f9eca704aff1e7e9d51cfcd882dd32fddd6e91c0965fa66af2c9eed6d45 |
|
MD5 | e47d990fe143c6cf8a7382de1b3540db |
|
BLAKE2b-256 | 843c9f2b77c2d1b29fa2547abf88faa18b008a37bfc5def7e4d4128fe38766e5 |
Hashes for shapelysmooth-0.2.1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 493827449a5bf1b957d135c5996c97015408f06e1b231e1c04dc4c0bf3326d9a |
|
MD5 | 71b671765e9e6c39cb055a14c975ffec |
|
BLAKE2b-256 | 1f794b05d1ae904b9ee7c25e919377f413e40b94ade54f6ac3ab4e5f431ef85e |
Hashes for shapelysmooth-0.2.1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa5bd41cb0e25ae669c1352f80fe3d0f0e3f9789a17f17f6473ece5dd6e5ac7d |
|
MD5 | 97994dfcb376775b0977d02304972209 |
|
BLAKE2b-256 | a0adfe082fe5221b44a7b52563c4684bce8aef71e1e0885d43e468185f46cca7 |
Hashes for shapelysmooth-0.2.1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9ed021bb8e0ac15b2df0cb664700a089c2139d756f532c485db6b1b49d011d8 |
|
MD5 | 1dfdf6701df7bbf5afb4a73bdaf42b95 |
|
BLAKE2b-256 | e2fa3e33c7feeed30e9d122879d720c03f1f1af0012f6df96df05c07f29bdd94 |
Hashes for shapelysmooth-0.2.1-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 33c88516b2e4b18e97579ca5d7897393c4ed3ba15ee54bec02df59a6347dcd95 |
|
MD5 | daddc9f3ef8960f05f4b231bc28808d4 |
|
BLAKE2b-256 | 07c38d8fade73513a30c730fce1c6a19df1588cfd9455c9492457307e96cb6d8 |
Hashes for shapelysmooth-0.2.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14238f81cd336dbc0dcaa387724eb57d8eff734b82da09efa098f54ee8c98294 |
|
MD5 | 3800d16d7aea4ab31e2a597fb1bda3c0 |
|
BLAKE2b-256 | 3c4ff56ce03671dff18768af96e405c0c520d4d02f248347964c5b441f025ca5 |
Hashes for shapelysmooth-0.2.1-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 736a14d49922eea787eb8726880dbc0cd4528d9f12ed0e5956aef7580cefd8e4 |
|
MD5 | 58b4e4b7d963926c454e2b3453d94442 |
|
BLAKE2b-256 | cbcb4783b70a395fb8845d5f4356e892f6394dc31b167b91306b5b6a6ce81770 |
Hashes for shapelysmooth-0.2.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70fe5bf7864cea99e42f4b6726c02384bec16651b9a37a4cbf56ac0cf312fcdb |
|
MD5 | c7732ee513e61487d3aef5714c1bb201 |
|
BLAKE2b-256 | bdea05dea1facd0f4b659c87711e075b1600e983d3d6b5503db953adf1019950 |