Skip to content

Releases: JuliaGeo/GeometryOps.jl

v0.1.31

09 Nov 11:38
fdda925

Choose a tag to compare

GeometryOps v0.1.31

Diff since v0.1.30

  • Add Voronoi tesselation (new function voronoi) thanks to @skygering! Uses DelaunayTriangulation.jl for 2D planar Voronoi tessellation, returning a vector of polygons in the order of the input points.
  • Allow table rows and features in geometric predicates (intersects, contains, disjoint, etc.) such that you can do
    subset = filter(df) do row
        GO.intersects(row, region) # Look, no .geometry
    end
    # or, even cleaner,
    subset = filter(GO.intersects(region), df)
    This opens the road to allowing operations like GO.Filter (for example) earlier, which would let GeometryOps automatically take care of preparing geometry for you to get the fastest possible computation.
  • Fix simplify for small LinearRings
  • Fix type constraint warning in smooth

Merged pull requests:

v0.1.30

18 Oct 14:10
f37cd6e

Choose a tag to compare

GeometryOps v0.1.30

Diff since v0.1.29

  • New smooth function to smooth out geometry. Currently uses Chaikin's corner cutting algorithm by default, and works on planar and spherical manifolds. Geodesic incoming! See the doc page for more info, or the docstring of GO.smooth.
Image
  • One patch to polygonize to fix a corner case, but we discovered several more in that process. Efforts ongoing to fix.

Merged pull requests:

Closed issues:

  • polygonize creates invalid polygons (#338)

v0.1.29

19 Sep 07:31
f3dba87

Choose a tag to compare

GeometryOps v0.1.29

Diff since v0.1.28

Added spherical / geodesic methods for perimeter (also called length in other geospatial frameworks) and geodesic method via Proj.jl for area. Access by:

import GeometryOps as GO
GO.perimeter(geom) # planar
GO.perimeter(GO.Planar(), geom)
GO.perimeter(GO.Spherical(), geom)
GO.perimeter(GO.Geodesic(), geom)

area does not have a spherical representation yet, that is a bit more complicated to get right but coming soon:

GO.area(geom) # planar
GO.area(GO.Planar(), geom)
GO.area(GO.Geodesic(), geom) # requires Proj.jl to be loaded

Merged pull requests:

v0.1.28

17 Sep 14:17
fb4513b

Choose a tag to compare

GeometryOps v0.1.28

Diff since v0.1.27

Introduced a new UnitSpherical submodule which has some experimental utilities to handle geometry on the unit sphere.

Specifically, it has a UnitSphericalPoint type and conversions to and from that to long lat, as well as a SphericalCap type that can serve as a bounding box.

This still needs to be documented and tested but will be the base for our native spherical capabilities in the future.

Merged pull requests:

  • experimental UnitSpherical module that can express geometry on unit sphere (#285) (@asinghvi17)

v0.1.27

15 Sep 13:48
c9c7904

Choose a tag to compare

GeometryOps v0.1.27

Diff since v0.1.26

Added (optional) tree based acceleration to polygon intersection queries, this is doable by passing in e.g. AutoAccelerator() or SingleSTRTree() or SingleNaturalTree() as the first argument to the clipping function, like intersection, union, or difference.

Merged pull requests:

Closed issues:

  • Precompilation error (#326)

v0.1.26

22 Jun 20:40
078f39a

Choose a tag to compare

GeometryOps v0.1.26

Diff since v0.1.25

Merged pull requests:

v0.1.25

16 May 20:24

Choose a tag to compare

GeometryOps v0.1.25

Diff since v0.1.24

Merged pull requests:

Closed issues:

  • Registration issue (#324)

v0.1.24

10 May 03:06
3917c86

Choose a tag to compare

GeometryOps v0.1.24

Diff since v0.1.23

Merged pull requests:

Closed issues:

  • buffering (#31)
  • Implement what we can, wrap what we can't (#76)
  • Lazy apply (#82)
  • "Prepared geometry" and other such wrapper types (#87)
  • Point in polygon check failing on malformed input (#96)
  • Curried predicate functions (#148)
  • Beware: SortTileRecursiveTree does not always return comprehensive results (#156)
  • Which earth radius to use (#221)
  • Can we make global named constants for all the numeric constants in Core? (#232)
  • init not documented for applyreduce (#243)
  • applyreduce has 1 allocation where sum does not (#244)

v0.1.23

01 May 03:03
d0ab6c9

Choose a tag to compare

GeometryOps v0.1.23

Diff since v0.1.22

v0.1.22

01 May 02:51
f2a52ef

Choose a tag to compare

GeometryOps v0.1.22

Diff since v0.1.21

  • Add extent predicates (extent-geometry and extent-extent)
  • Add a FosterHormannClipping algorithm that parametrizes and controls polygon clipping. This framework allows us to implement tree acceleration etc. later as well.

Merged pull requests:

  • update the segmentize docs to reflect manifold changes (#279) (@asinghvi17)

Closed issues:

  • Introducing a spatial index interface (#131)