Releases: JuliaGeo/GeometryOps.jl
Releases · JuliaGeo/GeometryOps.jl
v0.1.26
GeometryOps v0.1.26
Merged pull requests:
- Remove conflicting
simplify()
method definition (#325) (@ConnectedSystems)
v0.1.25
GeometryOps v0.1.25
Merged pull requests:
- Fixes for Vitepress 0.2 (#317) (@asinghvi17)
- Create a specific exception type for
enforce
(#319) (@asinghvi17) - Fix errors when building docs (#322) (@asinghvi17)
- Bump patch versions (#323) (@asinghvi17)
Closed issues:
- Registration issue (#324)
v0.1.24
GeometryOps v0.1.24
Merged pull requests:
- Documentation improvements (#170) (@asinghvi17)
- Update benchmark code (#270) (@asinghvi17)
- Implement an Applicator WithTrait (#305) (@asinghvi17)
- Add applicator tests, fix small bug in WithXYZM (#306) (@asinghvi17)
- Notes on writing performant code (#307) (@asinghvi17)
- New patch versions for Ops and Core (#308) (@asinghvi17)
- add a DataFrames extension for better table reconstruction (#312) (@asinghvi17)
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
GeometryOps v0.1.23
v0.1.22
GeometryOps v0.1.22
- 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)
v0.1.21
GeometryOps v0.1.21
Merged pull requests:
- Improve apply on tables, allow multiple geometry columns (#302) (@asinghvi17)
- Add a one-crs method to reproject (#302) (@asinghvi17)
- New version of Ops and Core (#303) (@asinghvi17)
v0.1.20
GeometryOps v0.1.20
- Experimental extent support in predicates (so you can now do
GO.intersects(extent, geom)
,GO.intersects(extent, extent)
, orGO.intersects(geom, extent)
for all predicates) - Fix the order of finalization in multithreaded
reproject
Merged pull requests:
- force finalize all transforms first in multithreaded reproject (#300) (@asinghvi17)
- Extent forwarding for predicates (#301) (@asinghvi17)
v0.1.19
GeometryOps v0.1.19
- Introduces a new SpatialTreeInterface module that provides an interface for spatial trees, built somewhat on top of AbstractTrees.jl. Currently it is implemented for SortTileRecursiveTree.jl and the FlatNoTree wrapper.
- Provides functionality to query any tree that satisfies the interface, with an arbitrary predicate, and to perform a dual-tree query ("query" => "depth-first search").
- Allows any extent-like thing by default via the
node_extent
interface function, so this could also accept e.g. S2 cell collections or spherical caps.
- Introduces a new module LoopStateMachine that allows a function called within a loop to cause statements like
continue
,break
, orreturn x
to be executed. See the module page for more information.
The module includes:Action
struct for representing different control flow actions@controlflow
macro for processing actions within loops- Support for
:continue
,:break
,:return
, and:full_return
actions
- Introduces new convenience functions to access edges of polygons, like
eachedge
,to_edgelist
, andedge_extents
, as well as lazy, nonallocating variants.
Merged pull requests:
- Spatial tree interface (#297) (@asinghvi17)
- New version (#299) (@asinghvi17)
v0.1.18
GeometryOps v0.1.18
- Add AdaptivePredicates as the exact backend for orient. At some point we should switch to an ecosystem wide (DelaunayTriangulation + GeometryOps + ...) representation for predicate kernels (Exact, Adaptive, Auto (choose adaptive if available and exact if not), and Fast).
- Fix touches for multi geometries
https://github.com/JuliaGeometry/AdaptivePredicates.jl is a library that implements adaptive predicates - substantially faster, BUT harder to construct, than exact predicates. Adaptive predicates are valid through the range of coordinates that geometries usually have, but we may need exact predicates if they are not.
Merged pull requests:
- Convert the orient predicate to AdaptivePredicates + minor predicate changes (#275) (@asinghvi17)
- Bump GeometryOps version (#298) (@asinghvi17)
v0.1.17
GeometryOps v0.1.17
- Add an extension on
TGGeometry.jl
, a Julia wrapper of thetg
library for fast, non-exact geometric predicates. Access by e.g.GO.intersects(GO.TG(), geom1, geom2)
. #271 - Refactor
reproject
, in the Proj extension, to be completely safe when invoked withthreaded=true
. Note that it will still not be thread safe if invoked in multiple threads at the same time. See below for the changes that were made in the course of this refactor. #288 - Refactor the
apply
pipeline to get rid of closures in favour ofApplicator
s, which are able to runapply
on arrays, geoms and featurecollections. Some examples areApplyToPoint
,ApplyToGeom
, etc. These are mainly used by internal methods in theapply
pipeline. #288 - Add a
TaskFunctors
struct that allows one to use individual functors per task. This allows thread safety for reentrant C APIs. #288
Merged pull requests:
- Add a TGGeometry extension for fast inexact geometric predicates (#271) (@asinghvi17)
- Thread-safe reproject with
ThreadFunctors
(#288) (@rafaqz) - Fix reproject with threads + add Windows and Mac CI (#292) (@asinghvi17)
- new version (#293) (@asinghvi17)
- fix doc build (#295) (@asinghvi17)
Closed issues: