All Versions
23
Latest Version
Avg Release Cycle
106 days
Latest Release
1853 days ago

Changelog History
Page 2

  • v1.6.2.post1

    October 31, 2017
  • v1.6.1

    September 01, 2017
  • v1.6.0

    August 22, 2017
  • v0.11.1 Changes

    October 30, 2021

    Distribution

    Major enhancements

    • Optionally output to a user-specified array (out keyword argument) when constructing geometries from indices (#380).
    • โž• Added pygeos.empty to create a geometry array pre-filled with None or with empty geometries (#381).
    • Added pygeos.force_2d and pygeos.force_3d to change the dimensionality of the coordinates in a geometry (#396).
    • Added pygeos.testing.assert_geometries_equal (#401).

    API Changes

    • 0๏ธโƒฃ The default behaviour of pygeos.set_precision is now to always return valid geometries. Before, the default was preserve_topology=False which caused confusion because it mapped to GEOS_PREC_NO_TOPO (the new 'pointwise'). At the same time, GEOS < 3.10 implementation was not entirely correct so that some geometries did and some did not preserve topology with this mode. Now, the new mode argument controls the behaviour and the preserve_topology argument is deprecated (#410).
    • When constructing a linearring through pygeos.linearrings or a polygon through pygeos.polygons now a ValueError is raised (instead of a GEOSException) if the ring contains less than 4 coordinates including ring closure (#378).
    • Removed deprecated normalize keyword argument in pygeos.line_locate_point and pygeos.line_interpolate_point (#410).

    ๐Ÿ› Bug fixes

    • Return True instead of False for LINEARRING geometries in is_closed (#379).
    • ๐Ÿ›  Fixed the WKB serialization of 3D empty points for GEOS >= 3.9.0 (#392).
    • ๐Ÿ›  Fixed the WKT serialization of single part 3D empty geometries for GEOS >= 3.9.0 (#402).
    • ๐Ÿ›  Fixed the WKT serialization of multipoints with empty points for GEOS >= 3.9.0 (#392).
    • ๐Ÿ›  Fixed a segfault when getting coordinates from empty points in GEOS 3.8.0 (#415).

    Acknowledgments

    ๐Ÿš€ Thanks to everyone who contributed to this release! People with a "+" by their names contributed a patch for the first time.

    • Brendan Ward
    • Casper van der Wel
    • Joris Van den Bossche
  • v0.10.2 Changes

    August 23, 2021

    Distribution

    โœ… Unittests are now included in the pygeos distribution. Run them by 1) installing โœ… pytest (or pygeos[test]) and 2) invoking pytest --pyargs pygeos.tests.

    ๐Ÿ— We started using a new tool for building binary wheels: cibuildwheel. This resulted into the following improvements in the distributed binary wheels:

    • ๐Ÿ Windows binary wheels now contain mangled DLLs, which avoids conflicts with other GEOS versions present on the system (a.k.a. 'DLL hell') (#365).
    • ๐Ÿ Windows binary wheels now contain the Microsoft Visual C++ Runtime Files (msvcp140.dll) for usage on systems without the C++ redistributable (#365).
    • ๐Ÿง Linux x86_64 and i686 wheels are now built using the manylinux2010 image instead of manylinux1 (#365).
    • ๐Ÿง Linux aarch64 wheels are now available for Python 3.9 (manylinux2014, #365).

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fixed operations on geometry arrays containing NULL instead of None. These occur for instance by using numpy.empty_like (#371)

    Acknowledgements

    ๐Ÿš€ Thanks to everyone who contributed to this release! People with a "+" by their names contributed a patch for the first time.

    • Brendan Ward
    • Casper van der Wel
    • Joris Van den Bossche
  • v0.10.1 Changes

    July 06, 2021

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fixed the box and set_precision functions with numpy 1.21 (#367).
    • ๐Ÿ›  Fixed STRtree creation to allow querying the tree in a multi-threaded context (#361).

    Acknowledgements

    ๐Ÿš€ Thanks to everyone who contributed to this release! People with a "+" by their names contributed a patch for the first time.

    • Brendan Ward
    • Casper van der Wel
    • Joris Van den Bossche
  • v0.10 Changes

    May 18, 2021

    Major enhancements

    • โž• Addition of nearest and nearest_all functions to STRtree for GEOS >= 3.6 to find the nearest neighbors (#272).
    • Enable bulk construction of geometries with different number of coordinates by optionally taking index arrays in all creation functions (#230, #322, #326, #346).
    • ๐Ÿš€ Released the GIL in all geometry creation functions (#310, #326).
    • โž• Added the option to return the geometry index in get_coordinates (#318).
    • Added the get_rings function, similar as get_parts but specifically to extract the rings of Polygon geometries (#342).
    • โšก๏ธ Updated box ufunc to use internal C function for creating polygon (about 2x faster) and added ccw parameter to create polygon in counterclockwise (default) or clockwise direction (#308).
    • ๐ŸŽ Added to_shapely and improved performance of from_shapely in the case GEOS versions are different (#312).

    API Changes

    • ๐ŸŽ STRtree default leaf size is now 10 instead of 5, for somewhat better performance under normal conditions (#286)
    • ๐Ÿ“ฆ Deprecated VALID_PREDICATES set from pygeos.strtree package; these can be constructed in downstream libraries using the pygeos.strtree.BinaryPredicate enum. This will be removed in a future release.
    • points, linestrings, linearrings, and polygons now return a GEOSException instead of a ValueError or TypeError for invalid input (#310, #326).
    • Addition of on_invalid parameter to from_wkb and from_wkt to optionally return invalid WKB geometries as None.
    • Removed the (internal) function lib.polygons_without_holes and renamed lib.polygons_with_holes to lib.polygons (#326).
    • polygons will now return an empty polygon for None inputs (#346).
    • โœ‚ Removed compatibility with Python 3.5 (#341).

    โž• Added GEOS functions

    • โž• Addition of a contains_properly function (#267)
    • โž• Addition of a polygonize function (#275)
    • โž• Addition of a polygonize_full function (#298)
    • โž• Addition of a segmentize function for GEOS >= 3.10 (#299)
    • Addition of oriented_envelope and minimum_rotated_rectangle functions (#314)
    • Addition of minimum_bounding_circle and minimum_bounding_radius functions for GEOS >= 3.8 (#315)
    • โž• Addition of a shortest_line ("nearest points") function (#334)

    ๐Ÿ› Bug fixes

    • ๐Ÿ›  Fixed portability issue for ARM architecture (#293)
    • ๐Ÿ›  Fixed segfault in linearrings and box when constructing a geometry with nan coordinates (#310).
    • ๐Ÿ›  Fixed segfault in polygons (with holes) when None was provided.
    • ๐Ÿ›  Fixed memory leak in polygons when non-linearring input was provided.

    Acknowledgments

    ๐Ÿš€ Thanks to everyone who contributed to this release! People with a "+" by their names contributed a patch for the first time.

    • Brendan Ward
    • Casper van der Wel
    • Joris Van den Bossche
    • Martin Fleischmann
    • Mike Taves
    • Tanguy Ophoff +
    • James Myatt +
  • v0.9 Changes

    January 23, 2021

    Major enhancements

    • โž• Addition of prepare function that generates a GEOS prepared geometry which is stored on the Geometry object itself. All binary predicates (except equals) make use of this. Helper functions destroy_prepared and is_prepared are also available. (#92, #252)
    • ๐Ÿ‘‰ Use previously prepared geometries within STRtree query and query_bulk functions if available (#246)
    • ๐Ÿ‘ Official support for Python 3.9 and numpy 1.20 (#278, #279)
    • โฌ‡๏ธ Drop support for Python 3.5 (#211)
    • โž• Added support for pickling to Geometry objects (#190)
    • The apply function for coordinate transformations and the set_coordinates function now support geometries with z-coordinates (#131)
    • โž• Addition of Cython and internal PyGEOS C API to enable easier development of internal functions (previously all significant internal functions were developed in C). Added a Cython-implemented get_parts function (#51)

    API Changes

    • Geometry and counting functions (get_num_coordinates, get_num_geometries, get_num_interior_rings, get_num_points) now return 0 for None input values instead of -1 (#218)
    • intersection_all and symmetric_difference_all now ignore None values instead of returning None if any value is None (#249)
    • union_all now returns None (instead of GEOMETRYCOLLECTION EMPTY) if all input values are None (#249)
    • The default axis of union_all, intersection_all, symmetric_difference_all, and coverage_union_all can now reduce over multiple axes. The default changed from the first axis (0) to all axes (None) (#266)
    • Argument in line_interpolate_point and line_locate_point was renamed from normalize to normalized (#209)
    • โž• Addition of grid_size parameter to specify fixed-precision grid for difference, intersection, symmetric_difference, union, and union_all operations for GEOS >= 3.9 (#276)

    โž• Added GEOS functions

    • Release the GIL for is_geometry(), is_missing(), and is_valid_input() (#207)
    • โž• Addition of a is_ccw() function for GEOS >= 3.7 (#201)
    • โž• Addition of a minimum_clearance function for GEOS >= 3.6.0 (#223)
    • โž• Addition of a offset_curve function (#229)
    • โž• Addition of a relate_pattern function (#245)
    • Addition of a clip_by_rect function (#273)
    • โž• Addition of a reverse function for GEOS >= 3.7 (#254)
    • Addition of get_precision to get precision of a geometry and set_precision to set the precision of a geometry (may round and reduce coordinates) (#257)

    ๐Ÿ› Bug fixes

    • Fixed internal GEOS error code detection for get_dimensions and get_srid (#218)
    • Limited the length of geometry repr to 80 characters (#189)
    • Fixed error handling in line_locate_point for incorrect geometry types, now actually requiring line and point geometries (#216)
    • โž• Addition of get_parts function to get individual parts of an array of multipart geometries (#197)
    • ๐Ÿšš Ensure that python setup.py clean removes all previously Cythonized and compiled files (#239)
    • ๐Ÿ– Handle GEOS beta versions (#262)

    Acknowledgments

    ๐Ÿš€ Thanks to everyone who contributed to this release! People with a "+" by their names contributed a patch for the first time.

    • Brendan Ward
    • Casper van der Wel
    • Joris Van den Bossche
    • Mike Taves
  • v0.8 Changes

    September 06, 2020

    ๐Ÿš€ Highlights of this release

    • ๐Ÿ– Handle multi geometries in boundary (#188)
    • ๐Ÿ– Handle empty points in to_wkb by conversion to POINT (nan, nan) (#179)
    • Prevent segfault in to_wkt (and repr) with empty points in multipoints (#171)
    • ๐Ÿ›  Fixed bug in multilinestrings(), it now accepts linearrings again (#168)
    • ๐Ÿš€ Release the GIL to allow for multithreading in functions that do not create geometries (#144) and in the STRtree query_bulk() method (#174)
    • โž• Addition of a frechet_distance() function for GEOS >= 3.7 (#144)
    • Addition of coverage_union() and coverage_union_all() functions for GEOS >= 3.8 (#142)
    • ๐Ÿ›  Fixed segfaults when adding empty geometries to the STRtree (#147)
    • Addition of include_z=True keyword in the get_coordinates() function to get 3D coordinates (#178)
    • โž• Addition of a build_area() function for GEOS >= 3.8 (#141)
    • โž• Addition of a normalize() function (#136)
    • โž• Addition of a make_valid() function for GEOS >= 3.8 (#107)
    • โž• Addition of a get_z() function for GEOS >= 3.7 (#175)
    • โž• Addition of a relate() function (#186)
    • The get_coordinate_dimensions() function was renamed to get_coordinate_dimension() for consistency with GEOS (#176)
    • Addition of covers, covered_by, contains_properly predicates to STRtree query and query_bulk (#157)

    Acknowledgments

    ๐Ÿš€ Thanks to everyone who contributed to this release! People with a "+" by their names contributed a patch for the first time.

    • Brendan Ward
    • Casper van der Wel
    • Joris Van den Bossche
    • Krishna Chaitanya +
    • Martin Fleischmann +
    • Tom Clancy +
  • v0.7 Changes

    March 18, 2020

    ๐Ÿš€ Highlights of this release

    • STRtree improvements for spatial indexing:
      • Directly include predicate evaluation in STRtree.query() (#87)
      • Query multiple input geometries (spatial join style) with STRtree.query_bulk (#108)
    • โž• Addition of a total_bounds() function (#107)
    • Geometries are now hashable, and can be compared with == or != (#102)
    • ๐Ÿ›  Fixed bug in create_collections() with wrong types (#86)
    • ๐Ÿ›  Fixed a reference counting bug in STRtree (#97, #100)
    • Start of a benchmarking suite using ASV (#96)
    • ๐Ÿš€ This is the first release that will provide wheels!

    Acknowledgments

    ๐Ÿš€ Thanks to everyone who contributed to this release! People with a "+" by their names contributed a patch for the first time.

    • Brendan Ward +
    • Casper van der Wel
    • Joris Van den Bossche
    • Mike Taves +