lasso.util
Functions
|
|
|
|
|
creates circular buffer polygon for node |
|
Calculated per: |
|
Creates a datetime time object from a string of hh:mm:ss |
|
Creates a datetime time object from a seconds from midnight |
|
- class lasso.util.Point(*args)[source]
Bases:
BaseGeometry
A geometry type that represents a single coordinate with x,y and possibly z values.
A point is a zero-dimensional feature and has zero length and zero area.
- Parameters:
args (float, or sequence of floats) –
The coordinates can either be passed as a single parameter, or as individual float values using multiple parameters:
1 parameter: a sequence or array-like of with 2 or 3 values.
2 or 3 parameters (float): x, y, and possibly z.
- x, y, z
Coordinate values
- Type:
float
Examples
Constructing the Point using separate parameters for x and y:
>>> p = Point(1.0, -1.0)
Constructing the Point using a list of x, y coordinates:
>>> p = Point([1.0, -1.0]) >>> print(p) POINT (1 -1) >>> p.y -1.0 >>> p.x 1.0
- almost_equals(other, decimal=6)
True if geometries are equal at all coordinates to a specified decimal place.
Deprecated since version 1.8.0: The ‘almost_equals()’ method is deprecated and will be removed in Shapely 2.1 because the name is confusing. The ‘equals_exact()’ method should be used instead.
Refers to approximate coordinate equality, which requires coordinates to be approximately equal and in the same order for all components of a geometry.
Because of this it is possible for “equals()” to be True for two geometries and “almost_equals()” to be False.
Examples
>>> LineString( ... [(0, 0), (2, 2)] ... ).equals_exact( ... LineString([(0, 0), (1, 1), (2, 2)]), ... 1e-6 ... ) False
- Return type:
bool
- buffer(distance, quad_segs=16, cap_style='round', join_style='round', mitre_limit=5.0, single_sided=False, **kwargs)
Get a geometry that represents all points within a distance of this geometry.
A positive distance produces a dilation, a negative distance an erosion. A very small or zero distance may sometimes be used to “tidy” a polygon.
- Parameters:
distance (float) – The distance to buffer around the object.
resolution (int, optional) – The resolution of the buffer around each vertex of the object.
quad_segs (int, optional) – Sets the number of line segments used to approximate an angle fillet.
cap_style (shapely.BufferCapStyle or {'round', 'square', 'flat'}, default 'round') – Specifies the shape of buffered line endings. BufferCapStyle.round (‘round’) results in circular line endings (see
quad_segs
). Both BufferCapStyle.square (‘square’) and BufferCapStyle.flat (‘flat’) result in rectangular line endings, only BufferCapStyle.flat (‘flat’) will end at the original vertex, while BufferCapStyle.square (‘square’) involves adding the buffer width.join_style (shapely.BufferJoinStyle or {'round', 'mitre', 'bevel'}, default 'round') – Specifies the shape of buffered line midpoints. BufferJoinStyle.ROUND (‘round’) results in rounded shapes. BufferJoinStyle.bevel (‘bevel’) results in a beveled edge that touches the original vertex. BufferJoinStyle.mitre (‘mitre’) results in a single vertex that is beveled depending on the
mitre_limit
parameter.mitre_limit (float, optional) – The mitre limit ratio is used for very sharp corners. The mitre ratio is the ratio of the distance from the corner to the end of the mitred offset corner. When two line segments meet at a sharp angle, a miter join will extend the original geometry. To prevent unreasonable geometry, the mitre limit allows controlling the maximum length of the join corner. Corners with a ratio which exceed the limit will be beveled.
single_side (bool, optional) –
The side used is determined by the sign of the buffer distance:
a positive distance indicates the left-hand side a negative distance indicates the right-hand side
The single-sided buffer of point geometries is the same as the regular buffer. The End Cap Style for single-sided buffers is always ignored, and forced to the equivalent of CAP_FLAT.
quadsegs (int, optional) – Deprecated alias for quad_segs.
- Return type:
Geometry
Notes
The return value is a strictly two-dimensional geometry. All Z coordinates of the original geometry will be ignored.
Examples
>>> from shapely.wkt import loads >>> g = loads('POINT (0.0 0.0)')
16-gon approx of a unit radius circle:
>>> g.buffer(1.0).area 3.1365484905459...
128-gon approximation:
>>> g.buffer(1.0, 128).area 3.141513801144...
triangle approximation:
>>> g.buffer(1.0, 3).area 3.0 >>> list(g.buffer(1.0, cap_style=BufferCapStyle.square).exterior.coords) [(1.0, 1.0), (1.0, -1.0), (-1.0, -1.0), (-1.0, 1.0), (1.0, 1.0)] >>> g.buffer(1.0, cap_style=BufferCapStyle.square).area 4.0
- contains(other)
Returns True if the geometry contains the other, else False
- contains_properly(other)
Returns True if the geometry completely contains the other, with no common boundary points, else False
Refer to shapely.contains_properly for full documentation.
- covered_by(other)
Returns True if the geometry is covered by the other, else False
- covers(other)
Returns True if the geometry covers the other, else False
- crosses(other)
Returns True if the geometries cross, else False
- difference(other, grid_size=None)
Returns the difference of the geometries.
Refer to shapely.difference for full documentation.
- disjoint(other)
Returns True if geometries are disjoint, else False
- distance(other)
Unitless distance to other geometry (float)
- dwithin(other, distance)
Returns True if geometry is within a given distance from the other, else False.
Refer to shapely.dwithin for full documentation.
- equals(other)
Returns True if geometries are equal, else False.
This method considers point-set equality (or topological equality), and is equivalent to (self.within(other) & self.contains(other)).
Examples
>>> LineString( ... [(0, 0), (2, 2)] ... ).equals( ... LineString([(0, 0), (1, 1), (2, 2)]) ... ) True
- Return type:
bool
- equals_exact(other, tolerance)
True if geometries are equal to within a specified tolerance.
- Parameters:
other (BaseGeometry) – The other geometry object in this comparison.
tolerance (float) – Absolute tolerance in the same units as coordinates.
equality (This method considers coordinate) –
requires (which) –
components (coordinates to be equal and in the same order for all) –
geometry. (of a) –
two (Because of this it is possible for "equals()" to be True for) –
False. (geometries and "equals_exact()" to be) –
Examples
>>> LineString( ... [(0, 0), (2, 2)] ... ).equals_exact( ... LineString([(0, 0), (1, 1), (2, 2)]), ... 1e-6 ... ) False
- Return type:
bool
- geometryType()
- hausdorff_distance(other)
Unitless hausdorff distance to other geometry (float)
- interpolate(distance, normalized=False)
Return a point at the specified distance along a linear geometry
Negative length values are taken as measured in the reverse direction from the end of the geometry. Out-of-range index values are handled by clamping them to the valid range of values. If the normalized arg is True, the distance will be interpreted as a fraction of the geometry’s length.
Alias of line_interpolate_point.
- intersection(other, grid_size=None)
Returns the intersection of the geometries.
Refer to shapely.intersection for full documentation.
- intersects(other)
Returns True if geometries intersect, else False
- line_interpolate_point(distance, normalized=False)
Return a point at the specified distance along a linear geometry
Negative length values are taken as measured in the reverse direction from the end of the geometry. Out-of-range index values are handled by clamping them to the valid range of values. If the normalized arg is True, the distance will be interpreted as a fraction of the geometry’s length.
Alias of interpolate.
- line_locate_point(other, normalized=False)
Returns the distance along this geometry to a point nearest the specified point
If the normalized arg is True, return the distance normalized to the length of the linear geometry.
Alias of project.
- normalize()
Converts geometry to normal form (or canonical form).
This method orders the coordinates, rings of a polygon and parts of multi geometries consistently. Typically useful for testing purposes (for example in combination with equals_exact).
Examples
>>> from shapely import MultiLineString >>> line = MultiLineString([[(0, 0), (1, 1)], [(3, 3), (2, 2)]]) >>> line.normalize() <MULTILINESTRING ((2 2, 3 3), (0 0, 1 1))>
- overlaps(other)
Returns True if geometries overlap, else False
- point_on_surface()
Returns a point guaranteed to be within the object, cheaply.
Alias of representative_point.
- project(other, normalized=False)
Returns the distance along this geometry to a point nearest the specified point
If the normalized arg is True, return the distance normalized to the length of the linear geometry.
Alias of line_locate_point.
- relate(other)
Returns the DE-9IM intersection matrix for the two geometries (string)
- relate_pattern(other, pattern)
Returns True if the DE-9IM string code for the relationship between the geometries satisfies the pattern, else False
- representative_point()
Returns a point guaranteed to be within the object, cheaply.
Alias of point_on_surface.
- reverse()
Returns a copy of this geometry with the order of coordinates reversed.
If the geometry is a polygon with interior rings, the interior rings are also reversed.
Points are unchanged.
See also
is_ccw
Checks if a geometry is clockwise.
Examples
>>> from shapely import LineString, Polygon >>> LineString([(0, 0), (1, 2)]).reverse() <LINESTRING (1 2, 0 0)> >>> Polygon([(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)]).reverse() <POLYGON ((0 0, 0 1, 1 1, 1 0, 0 0))>
- segmentize(max_segment_length)
Adds vertices to line segments based on maximum segment length.
Additional vertices will be added to every line segment in an input geometry so that segments are no longer than the provided maximum segment length. New vertices will evenly subdivide each segment.
Only linear components of input geometries are densified; other geometries are returned unmodified.
- Parameters:
max_segment_length (float or array_like) – Additional vertices will be added so that all line segments are no longer this value. Must be greater than 0.
Examples
>>> from shapely import LineString, Polygon >>> LineString([(0, 0), (0, 10)]).segmentize(max_segment_length=5) <LINESTRING (0 0, 0 5, 0 10)> >>> Polygon([(0, 0), (10, 0), (10, 10), (0, 10), (0, 0)]).segmentize(max_segment_length=5) <POLYGON ((0 0, 5 0, 10 0, 10 5, 10 10, 5 10, 0 10, 0 5, 0 0))>
- simplify(tolerance, preserve_topology=True)
Returns a simplified geometry produced by the Douglas-Peucker algorithm
Coordinates of the simplified geometry will be no more than the tolerance distance from the original. Unless the topology preserving option is used, the algorithm may produce self-intersecting or otherwise invalid geometries.
- svg(scale_factor=1.0, fill_color=None, opacity=None)[source]
Returns SVG circle element for the Point geometry.
- Parameters:
scale_factor (float) – Multiplication factor for the SVG circle diameter. Default is 1.
fill_color (str, optional) – Hex string for fill color. Default is to use “#66cc99” if geometry is valid, and “#ff3333” if invalid.
opacity (float) – Float number between 0 and 1 for color opacity. Default value is 0.6
- symmetric_difference(other, grid_size=None)
Returns the symmetric difference of the geometries.
Refer to shapely.symmetric_difference for full documentation.
- touches(other)
Returns True if geometries touch, else False
- union(other, grid_size=None)
Returns the union of the geometries.
Refer to shapely.union for full documentation.
- within(other)
Returns True if geometry is within the other, else False
- property area
Unitless area of the geometry (float)
- property boundary
Returns a lower dimension geometry that bounds the object
The boundary of a polygon is a line, the boundary of a line is a collection of points. The boundary of a point is an empty (null) collection.
- property bounds
Returns minimum bounding region (minx, miny, maxx, maxy)
- property centroid
Returns the geometric center of the object
- property convex_hull
that’s a convex hull, more or less
The convex hull of a three member multipoint, for example, is a triangular polygon.
- Type:
Imagine an elastic band stretched around the geometry
- property coords
Access to geometry’s coordinates (CoordinateSequence)
- property envelope
A figure that envelopes the geometry
- property geom_type
Name of the geometry’s type, such as ‘Point’
- property has_z
True if the geometry’s coordinate sequence(s) have z values (are 3-dimensional)
- property is_closed
True if the geometry is closed, else False
Applicable only to 1-D geometries.
- property is_empty
True if the set of points in this geometry is empty, else False
- property is_ring
True if the geometry is a closed ring, else False
- property is_simple
True if the geometry is simple, meaning that any self-intersections are only at boundary points, else False
- property is_valid
True if the geometry is valid (definition depends on sub-class), else False
- property length
Unitless length of the geometry (float)
- property minimum_clearance
Unitless distance by which a node could be moved to produce an invalid geometry (float)
- property minimum_rotated_rectangle
Returns the oriented envelope (minimum rotated rectangle) that encloses the geometry.
Unlike envelope this rectangle is not constrained to be parallel to the coordinate axes. If the convex hull of the object is a degenerate (line or point) this degenerate is returned.
Alias of oriented_envelope.
- property oriented_envelope
Returns the oriented envelope (minimum rotated rectangle) that encloses the geometry.
Unlike envelope this rectangle is not constrained to be parallel to the coordinate axes. If the convex hull of the object is a degenerate (line or point) this degenerate is returned.
Alias of minimum_rotated_rectangle.
- property type
- property wkb
WKB representation of the geometry
- property wkb_hex
WKB hex representation of the geometry
- property wkt
WKT representation of the geometry
- property x
Return x coordinate.
- property xy
Separate arrays of X and Y coordinate values
Example
>>> x, y = Point(0, 0).xy >>> list(x) [0.0] >>> list(y) [0.0]
- property y
Return y coordinate.
- property z
Return z coordinate.
- class lasso.util.Polygon(shell=None, holes=None)[source]
Bases:
BaseGeometry
A geometry type representing an area that is enclosed by a linear ring.
A polygon is a two-dimensional feature and has a non-zero area. It may have one or more negative-space “holes” which are also bounded by linear rings. If any rings cross each other, the feature is invalid and operations on it may fail.
- Parameters:
shell (sequence) – A sequence of (x, y [,z]) numeric coordinate pairs or triples, or an array-like with shape (N, 2) or (N, 3). Also can be a sequence of Point objects.
holes (sequence) – A sequence of objects which satisfy the same requirements as the shell parameters above
- exterior
The ring which bounds the positive space of the polygon.
- Type:
LinearRing
- interiors
A sequence of rings which bound all existing holes.
- Type:
sequence
Examples
Create a square polygon with no holes
>>> coords = ((0., 0.), (0., 1.), (1., 1.), (1., 0.), (0., 0.)) >>> polygon = Polygon(coords) >>> polygon.area 1.0
- almost_equals(other, decimal=6)
True if geometries are equal at all coordinates to a specified decimal place.
Deprecated since version 1.8.0: The ‘almost_equals()’ method is deprecated and will be removed in Shapely 2.1 because the name is confusing. The ‘equals_exact()’ method should be used instead.
Refers to approximate coordinate equality, which requires coordinates to be approximately equal and in the same order for all components of a geometry.
Because of this it is possible for “equals()” to be True for two geometries and “almost_equals()” to be False.
Examples
>>> LineString( ... [(0, 0), (2, 2)] ... ).equals_exact( ... LineString([(0, 0), (1, 1), (2, 2)]), ... 1e-6 ... ) False
- Return type:
bool
- buffer(distance, quad_segs=16, cap_style='round', join_style='round', mitre_limit=5.0, single_sided=False, **kwargs)
Get a geometry that represents all points within a distance of this geometry.
A positive distance produces a dilation, a negative distance an erosion. A very small or zero distance may sometimes be used to “tidy” a polygon.
- Parameters:
distance (float) – The distance to buffer around the object.
resolution (int, optional) – The resolution of the buffer around each vertex of the object.
quad_segs (int, optional) – Sets the number of line segments used to approximate an angle fillet.
cap_style (shapely.BufferCapStyle or {'round', 'square', 'flat'}, default 'round') – Specifies the shape of buffered line endings. BufferCapStyle.round (‘round’) results in circular line endings (see
quad_segs
). Both BufferCapStyle.square (‘square’) and BufferCapStyle.flat (‘flat’) result in rectangular line endings, only BufferCapStyle.flat (‘flat’) will end at the original vertex, while BufferCapStyle.square (‘square’) involves adding the buffer width.join_style (shapely.BufferJoinStyle or {'round', 'mitre', 'bevel'}, default 'round') – Specifies the shape of buffered line midpoints. BufferJoinStyle.ROUND (‘round’) results in rounded shapes. BufferJoinStyle.bevel (‘bevel’) results in a beveled edge that touches the original vertex. BufferJoinStyle.mitre (‘mitre’) results in a single vertex that is beveled depending on the
mitre_limit
parameter.mitre_limit (float, optional) – The mitre limit ratio is used for very sharp corners. The mitre ratio is the ratio of the distance from the corner to the end of the mitred offset corner. When two line segments meet at a sharp angle, a miter join will extend the original geometry. To prevent unreasonable geometry, the mitre limit allows controlling the maximum length of the join corner. Corners with a ratio which exceed the limit will be beveled.
single_side (bool, optional) –
The side used is determined by the sign of the buffer distance:
a positive distance indicates the left-hand side a negative distance indicates the right-hand side
The single-sided buffer of point geometries is the same as the regular buffer. The End Cap Style for single-sided buffers is always ignored, and forced to the equivalent of CAP_FLAT.
quadsegs (int, optional) – Deprecated alias for quad_segs.
- Return type:
Geometry
Notes
The return value is a strictly two-dimensional geometry. All Z coordinates of the original geometry will be ignored.
Examples
>>> from shapely.wkt import loads >>> g = loads('POINT (0.0 0.0)')
16-gon approx of a unit radius circle:
>>> g.buffer(1.0).area 3.1365484905459...
128-gon approximation:
>>> g.buffer(1.0, 128).area 3.141513801144...
triangle approximation:
>>> g.buffer(1.0, 3).area 3.0 >>> list(g.buffer(1.0, cap_style=BufferCapStyle.square).exterior.coords) [(1.0, 1.0), (1.0, -1.0), (-1.0, -1.0), (-1.0, 1.0), (1.0, 1.0)] >>> g.buffer(1.0, cap_style=BufferCapStyle.square).area 4.0
- contains(other)
Returns True if the geometry contains the other, else False
- contains_properly(other)
Returns True if the geometry completely contains the other, with no common boundary points, else False
Refer to shapely.contains_properly for full documentation.
- covered_by(other)
Returns True if the geometry is covered by the other, else False
- covers(other)
Returns True if the geometry covers the other, else False
- crosses(other)
Returns True if the geometries cross, else False
- difference(other, grid_size=None)
Returns the difference of the geometries.
Refer to shapely.difference for full documentation.
- disjoint(other)
Returns True if geometries are disjoint, else False
- distance(other)
Unitless distance to other geometry (float)
- dwithin(other, distance)
Returns True if geometry is within a given distance from the other, else False.
Refer to shapely.dwithin for full documentation.
- equals(other)
Returns True if geometries are equal, else False.
This method considers point-set equality (or topological equality), and is equivalent to (self.within(other) & self.contains(other)).
Examples
>>> LineString( ... [(0, 0), (2, 2)] ... ).equals( ... LineString([(0, 0), (1, 1), (2, 2)]) ... ) True
- Return type:
bool
- equals_exact(other, tolerance)
True if geometries are equal to within a specified tolerance.
- Parameters:
other (BaseGeometry) – The other geometry object in this comparison.
tolerance (float) – Absolute tolerance in the same units as coordinates.
equality (This method considers coordinate) –
requires (which) –
components (coordinates to be equal and in the same order for all) –
geometry. (of a) –
two (Because of this it is possible for "equals()" to be True for) –
False. (geometries and "equals_exact()" to be) –
Examples
>>> LineString( ... [(0, 0), (2, 2)] ... ).equals_exact( ... LineString([(0, 0), (1, 1), (2, 2)]), ... 1e-6 ... ) False
- Return type:
bool
- geometryType()
- hausdorff_distance(other)
Unitless hausdorff distance to other geometry (float)
- interpolate(distance, normalized=False)
Return a point at the specified distance along a linear geometry
Negative length values are taken as measured in the reverse direction from the end of the geometry. Out-of-range index values are handled by clamping them to the valid range of values. If the normalized arg is True, the distance will be interpreted as a fraction of the geometry’s length.
Alias of line_interpolate_point.
- intersection(other, grid_size=None)
Returns the intersection of the geometries.
Refer to shapely.intersection for full documentation.
- intersects(other)
Returns True if geometries intersect, else False
- line_interpolate_point(distance, normalized=False)
Return a point at the specified distance along a linear geometry
Negative length values are taken as measured in the reverse direction from the end of the geometry. Out-of-range index values are handled by clamping them to the valid range of values. If the normalized arg is True, the distance will be interpreted as a fraction of the geometry’s length.
Alias of interpolate.
- line_locate_point(other, normalized=False)
Returns the distance along this geometry to a point nearest the specified point
If the normalized arg is True, return the distance normalized to the length of the linear geometry.
Alias of project.
- normalize()
Converts geometry to normal form (or canonical form).
This method orders the coordinates, rings of a polygon and parts of multi geometries consistently. Typically useful for testing purposes (for example in combination with equals_exact).
Examples
>>> from shapely import MultiLineString >>> line = MultiLineString([[(0, 0), (1, 1)], [(3, 3), (2, 2)]]) >>> line.normalize() <MULTILINESTRING ((2 2, 3 3), (0 0, 1 1))>
- overlaps(other)
Returns True if geometries overlap, else False
- point_on_surface()
Returns a point guaranteed to be within the object, cheaply.
Alias of representative_point.
- project(other, normalized=False)
Returns the distance along this geometry to a point nearest the specified point
If the normalized arg is True, return the distance normalized to the length of the linear geometry.
Alias of line_locate_point.
- relate(other)
Returns the DE-9IM intersection matrix for the two geometries (string)
- relate_pattern(other, pattern)
Returns True if the DE-9IM string code for the relationship between the geometries satisfies the pattern, else False
- representative_point()
Returns a point guaranteed to be within the object, cheaply.
Alias of point_on_surface.
- reverse()
Returns a copy of this geometry with the order of coordinates reversed.
If the geometry is a polygon with interior rings, the interior rings are also reversed.
Points are unchanged.
See also
is_ccw
Checks if a geometry is clockwise.
Examples
>>> from shapely import LineString, Polygon >>> LineString([(0, 0), (1, 2)]).reverse() <LINESTRING (1 2, 0 0)> >>> Polygon([(0, 0), (1, 0), (1, 1), (0, 1), (0, 0)]).reverse() <POLYGON ((0 0, 0 1, 1 1, 1 0, 0 0))>
- segmentize(max_segment_length)
Adds vertices to line segments based on maximum segment length.
Additional vertices will be added to every line segment in an input geometry so that segments are no longer than the provided maximum segment length. New vertices will evenly subdivide each segment.
Only linear components of input geometries are densified; other geometries are returned unmodified.
- Parameters:
max_segment_length (float or array_like) – Additional vertices will be added so that all line segments are no longer this value. Must be greater than 0.
Examples
>>> from shapely import LineString, Polygon >>> LineString([(0, 0), (0, 10)]).segmentize(max_segment_length=5) <LINESTRING (0 0, 0 5, 0 10)> >>> Polygon([(0, 0), (10, 0), (10, 10), (0, 10), (0, 0)]).segmentize(max_segment_length=5) <POLYGON ((0 0, 5 0, 10 0, 10 5, 10 10, 5 10, 0 10, 0 5, 0 0))>
- simplify(tolerance, preserve_topology=True)
Returns a simplified geometry produced by the Douglas-Peucker algorithm
Coordinates of the simplified geometry will be no more than the tolerance distance from the original. Unless the topology preserving option is used, the algorithm may produce self-intersecting or otherwise invalid geometries.
- svg(scale_factor=1.0, fill_color=None, opacity=None)[source]
Returns SVG path element for the Polygon geometry.
- Parameters:
scale_factor (float) – Multiplication factor for the SVG stroke-width. Default is 1.
fill_color (str, optional) – Hex string for fill color. Default is to use “#66cc99” if geometry is valid, and “#ff3333” if invalid.
opacity (float) – Float number between 0 and 1 for color opacity. Default value is 0.6
- symmetric_difference(other, grid_size=None)
Returns the symmetric difference of the geometries.
Refer to shapely.symmetric_difference for full documentation.
- touches(other)
Returns True if geometries touch, else False
- union(other, grid_size=None)
Returns the union of the geometries.
Refer to shapely.union for full documentation.
- within(other)
Returns True if geometry is within the other, else False
- property area
Unitless area of the geometry (float)
- property boundary
Returns a lower dimension geometry that bounds the object
The boundary of a polygon is a line, the boundary of a line is a collection of points. The boundary of a point is an empty (null) collection.
- property bounds
Returns minimum bounding region (minx, miny, maxx, maxy)
- property centroid
Returns the geometric center of the object
- property convex_hull
that’s a convex hull, more or less
The convex hull of a three member multipoint, for example, is a triangular polygon.
- Type:
Imagine an elastic band stretched around the geometry
- property coords
Access to geometry’s coordinates (CoordinateSequence)
- property envelope
A figure that envelopes the geometry
- property exterior
- property geom_type
Name of the geometry’s type, such as ‘Point’
- property has_z
True if the geometry’s coordinate sequence(s) have z values (are 3-dimensional)
- property interiors
- property is_closed
True if the geometry is closed, else False
Applicable only to 1-D geometries.
- property is_empty
True if the set of points in this geometry is empty, else False
- property is_ring
True if the geometry is a closed ring, else False
- property is_simple
True if the geometry is simple, meaning that any self-intersections are only at boundary points, else False
- property is_valid
True if the geometry is valid (definition depends on sub-class), else False
- property length
Unitless length of the geometry (float)
- property minimum_clearance
Unitless distance by which a node could be moved to produce an invalid geometry (float)
- property minimum_rotated_rectangle
Returns the oriented envelope (minimum rotated rectangle) that encloses the geometry.
Unlike envelope this rectangle is not constrained to be parallel to the coordinate axes. If the convex hull of the object is a degenerate (line or point) this degenerate is returned.
Alias of oriented_envelope.
- property oriented_envelope
Returns the oriented envelope (minimum rotated rectangle) that encloses the geometry.
Unlike envelope this rectangle is not constrained to be parallel to the coordinate axes. If the convex hull of the object is a degenerate (line or point) this degenerate is returned.
Alias of minimum_rotated_rectangle.
- property type
- property wkb
WKB representation of the geometry
- property wkb_hex
WKB hex representation of the geometry
- property wkt
WKT representation of the geometry
- property xy
Separate arrays of X and Y coordinate values
- class lasso.util.partial[source]
Bases:
object
partial(func, *args, **keywords) - new function with partial application of the given arguments and keywords.
- args
tuple of arguments to future partial calls
- func
function object to use in future partial calls
- keywords
dictionary of keyword arguments to future partial calls
- lasso.util.geodesic_point_buffer(lat, lon, meters)[source]
creates circular buffer polygon for node
- Parameters:
lat – node lat
lon – node lon
meters – buffer distance, radius of circle
- Returns:
Polygon
- Calculated per:
- Expected in/out
- -93.0965985, 44.952112199999995 osm_node_id = 954734870
69f13f881649cb21ee3b359730790bb9
- lasso.util.hhmmss_to_datetime(hhmmss_str)[source]
Creates a datetime time object from a string of hh:mm:ss
- Parameters:
hhmmss_str – string of hh:mm:ss
- Returns:
datetime.time object representing time
- Return type:
dt
- lasso.util.secs_to_datetime(secs)[source]
Creates a datetime time object from a seconds from midnight
- Parameters:
secs – seconds from midnight
- Returns:
datetime.time object representing time
- Return type:
dt
- lasso.util.transform(func, geom)[source]
Applies func to all coordinates of geom and returns a new geometry of the same type from the transformed coordinates.
func maps x, y, and optionally z to output xp, yp, zp. The input parameters may iterable types like lists or arrays or single values. The output shall be of the same type. Scalars in, scalars out. Lists in, lists out.
For example, here is an identity function applicable to both types of input.
- def id_func(x, y, z=None):
return tuple(filter(None, [x, y, z]))
g2 = transform(id_func, g1)
Using pyproj >= 2.1, this example will accurately project Shapely geometries:
import pyproj
wgs84 = pyproj.CRS(‘EPSG:4326’) utm = pyproj.CRS(‘EPSG:32618’)
project = pyproj.Transformer.from_crs(wgs84, utm, always_xy=True).transform
g2 = transform(project, g1)
Note that the always_xy kwarg is required here as Shapely geometries only support X,Y coordinate ordering.
Lambda expressions such as the one in
g2 = transform(lambda x, y, z=None: (x+1.0, y+1.0), g1)
also satisfy the requirements for func.
- lasso.util.unidecode(string, errors='ignore', replace_str='?')
Transliterate an Unicode object into an ASCII string
- Return type:
str
>>> unidecode("北亰") "Bei Jing "
This function first tries to convert the string using ASCII codec. If it fails (because of non-ASCII characters), it falls back to transliteration using the character tables.
This is approx. five times faster if the string only contains ASCII characters, but slightly slower than unicode_expect_nonascii if non-ASCII characters are present.
errors specifies what to do with characters that have not been found in replacement tables. The default is ‘ignore’ which ignores the character. ‘strict’ raises an UnidecodeError. ‘replace’ substitutes the character with replace_str (default is ‘?’). ‘preserve’ keeps the original character.
Note that if ‘preserve’ is used the returned string might not be ASCII!