gws.lib.extent¶
Utilities for extents.
An extent (gws.Extent) is a tuple (x-min, y-min, x-max, y-max) of floats.
Extents have no CRS of their own; for a geo-referenced extent, see gws.Bounds and gws.lib.bounds.
This package provides functions to:
create extents from strings, lists, points, a center point and size, or a PostGIS
BOX,measure extents (center, size, width, height, diagonal),
combine extents (intersection, union, buffer, circumscribed square),
transform extents between CRSs,
validate extents.
Example:
import gws.lib.crs
import gws.lib.extent
ext = gws.lib.extent.from_string('0,0,100,50')
gws.lib.extent.size(ext) # (100.0, 50.0)
gws.lib.extent.buffer(ext, 10) # (-10.0, -10.0, 110.0, 60.0)
wgs = gws.lib.extent.transform_to_wgs(ext, gws.lib.crs.WEBMERCATOR)
Source code: gws.lib.extent
Package Contents¶
- gws.lib.extent.buffer(e: gws.Extent, buf: float) gws.Extent¶
Create an extent with a buffer around another extent.
- Parameters:
e – An extent.
buf – Buffer added on each side. A positive value makes the extent bigger, a negative one smaller.
- Returns:
The buffered extent.
- gws.lib.extent.center(e: gws.Extent) gws.Point¶
Get the center point of an extent.
- Parameters:
e – An extent.
- Returns:
The center point.
- gws.lib.extent.circumsquare(e: gws.Extent) gws.Extent¶
Get the square that circumscribes an extent.
The square has the same center as the extent, and its side equals the extent’s diagonal, so that it contains the extent at any rotation.
- Parameters:
e – An extent.
- Returns:
The square extent.
- gws.lib.extent.diagonal(e: gws.Extent) float¶
Get the length of the diagonal of an extent.
- Parameters:
e – An extent.
- Returns:
The diagonal length.
- gws.lib.extent.from_box(box: str) gws.Extent | None¶
Create an extent from a PostGIS box.
- Parameters:
box – PostGIS box like
BOX(minx miny,maxx maxy).- Returns:
An extent, or
Noneif the box is empty or invalid.
- gws.lib.extent.from_center(xy: gws.Point, size: gws.Size) gws.Extent¶
Create an extent of a given size around a center point.
- Parameters:
xy – Center point.
size – Width and height.
- Returns:
An extent.
- gws.lib.extent.from_list(ls: list) gws.Extent | None¶
Create an extent from a list.
- Parameters:
ls – List
[x-min, y-min, x-max, y-max]of numbers or numeric strings.- Returns:
An extent, or
Noneif the list is not a valid extent.
- gws.lib.extent.from_points(a: gws.Point, b: gws.Point) gws.Extent¶
Create an extent from two opposite corner points.
- Parameters:
a – First point.
b – Second point.
- Returns:
The smallest extent that contains both points.
- gws.lib.extent.from_string(s: str) gws.Extent | None¶
Create an extent from a comma-separated string.
- Parameters:
s – String like
x-min,y-min,x-max,y-max.- Returns:
An extent, or
Noneif the string is not a valid extent.
- gws.lib.extent.h(e: gws.Extent) float¶
Get the height of an extent.
- Parameters:
e – An extent.
- Returns:
The height.
- gws.lib.extent.intersect(a: gws.Extent, b: gws.Extent) bool¶
Check if two extents intersect.
Extents that only touch at the edges are considered intersecting.
- Parameters:
a – First extent.
b – Second extent.
- Returns:
Trueif the extents intersect.
- gws.lib.extent.intersection(*exts: gws.Extent) gws.Extent | None¶
Create an extent that is the intersection of all given extents.
- Parameters:
*exts – Extents.
- Returns:
An extent, or
Noneif the extents do not intersect or none are given.
- gws.lib.extent.is_valid(e: gws.Extent) bool¶
Check if an extent is valid.
A valid extent has four finite values, and its minimum values are less than its maximum values.
- Parameters:
e – An extent.
- Returns:
Trueif the extent is valid.
- gws.lib.extent.is_valid_wgs(e: gws.Extent) bool¶
Check if an extent is valid and lies within the WGS84 bounds.
- Parameters:
e – An extent in WGS84.
- Returns:
Trueif the extent is valid and within(-180, -90, 180, 90).
- gws.lib.extent.size(e: gws.Extent) gws.Size¶
Get the size of an extent.
- Parameters:
e – An extent.
- Returns:
A
(width, height)tuple.
- gws.lib.extent.swap_xy(e: gws.Extent) gws.Extent¶
Swap the x and y values of an extent.
- Parameters:
e – An extent.
- Returns:
The extent
(y-min, x-min, y-max, x-max).
- gws.lib.extent.transform(e: gws.Extent, crs_from: gws.Crs, crs_to: gws.Crs) gws.Extent¶
Transform an extent to a different coordinate reference system.
- Parameters:
e – An extent.
crs_from – Source CRS.
crs_to – Target CRS.
- Returns:
The transformed extent.
- gws.lib.extent.transform_from_wgs(e: gws.Extent, crs_to: gws.Crs) gws.Extent¶
Transform a WGS84 extent to a different coordinate reference system.
- Parameters:
e – An extent in WGS84.
crs_to – Target CRS.
- Returns:
The transformed extent.
- gws.lib.extent.transform_to_wgs(e: gws.Extent, crs_from: gws.Crs) gws.Extent¶
Transform an extent to WGS84.
- Parameters:
e – An extent.
crs_from – Source CRS.
- Returns:
The WGS84 extent.
- gws.lib.extent.union(*exts: gws.Extent) gws.Extent¶
Create the smallest extent that contains all the given extents.
- Parameters:
*exts – Extents, at least one.
- Returns:
An extent.
- gws.lib.extent.w(e: gws.Extent) float¶
Get the width of an extent.
- Parameters:
e – An extent.
- Returns:
The width.