- Fixed a bug in the Python implementation of
inner1d
. [#265] - Removed the
degree
argument from thelength
andangle
functions in thespherical_geometry.great_circle_arc
module as it was never working correctly with themath_util
module and add unnecessary complication. [#265] - Build wheel with Numpy 2.0 release candidate ahead of Numpy 2.0 release [#279]
- Updated the built-in
qd
library to version 2.3.24. [#258]
- Add documentation to
polygon.py
for theSphericalPolygon
methodmulti_union
has exponential time behavior and cannot be used for a large number of polynomials [#229] - Added code to
SphericalPolygon.multi_union()
to pre-process polygon list and remove nearly identical polygons to avoid a bug in thegraph
code that could cause a crash when some of the input polygons are nearly identical. This workaround can be undone in the future once #232 is resolved. [#233] - Removed unused
spherical_geometry.utils
module. [#239] - Minimum supported version for Python is now 3.9. [#239]
- Minimum supported version for NumPy is now 1.20. [#239]
- Wheels for several common architectures are now available on PyPI. [#243]
- Replaced private
numpy.core._umath_tests.inner1d()
with an alternative implementation. [#253] - Fixed a bug in the
math_util.angles()
function that would result in crash when one of the input vectors is a null vector. [#254] - Enhanced the code in the
SphericalPolygon.convex_hull()
to ignore points that lead to null vectors in computations. [#254] - Fixed a bug in quad-precision functions
normalize
andintersection
functions affecting numerous other functions. [#256]
- Pin astropy min version to 5.0.4. [#218]
- Set Python min version to 3.8. [#219]
- Fix problem reported where angle of 180 degrees results in an error with the C version of the code. [#223]
- Use a different algorithm for square root in the
qd
library that seems to be less prone to accuracy loss. This helps the bug in themath_util.c
due to whichangle()
returns a NaN for coplanar vectors where the angle between the surface points should be 180 degrees and enhances the solution from #223. Also, useqd
epsilon instead of arbitrary value for rounding error check. [#224]
- Fixed segmentation fault occuring in the
math_util
module whenspherical_geometry
is used withnumpy
version1.22
due to incorrectntypes
value being used when defining generalized universal functions. [#216]
Maintenance release.
- Added a new exception class
MalformedPolygonError
which replacesValueError
which replacedAssertionError
in theGraph._sanity_check()
method. Also replacedValueError
withRuntimeError
inGraph.Edge.follow()
method. Added error messages to some other exceptions. [#207] - Updated CI/CD to use github actions, instead of Travis CI.
- To comply with
bandit
allassert
statements were changed to standardif
checks and raising the appropriate errors.
- Fixed unexpected behavior if using pip on Windows
- Updated qd library to
2.3.22
- Reimplement the ability to link to system's qd (
export USE_SYSTEM_QD=1
)
- Fixes compilation issue under Windows
- Undo-ing changes from release 1.2.11 (PRs #170 and #173) due to crashes in the union of multi-polygons until a better solution is found. [#176]
- Package structure was updated.
- Increase the dimension of the confusion region in which two nodes are considered to be equal. This reduces the likelihood of crashes when computing intersections of nearly identical polygons. [#170, #173]
- Fix incorrect query of astropy version information to deal with
deprecation of
_naxis1
and_naxis2
WCS attributes. [#165]
- Fixed a bug introduced in version
1.2.8
.
- Add backwards compatibility with
astropy 3.1.0
:<3.1.0
useswcs._naxis
and>=3.1.0
useswcs.pixel_shape
.
- Restored
_naxis
,pixel_shape
not ready yet.
- Replaced
_naxis
withpixel_shape
. - Updated
README
file. - Removed debugging code from
graph.py
.
- Added a method to create a polygon from the convex hull of a list of points.
- The public methods in
SingleSphericalPolygon
now match the methods inSphericalPolygon
so that objects of either type can be used interchangably (for the most part.)SphericalPolygon
now subclassesSingleSphericalPolygon
.
- Every method with
lonlat
in its name now has an alias withlonlat
replaced byradec
. - The class
_SingleSphericalPolygon
has been renamed toSingleSphericalPolygon
. The former name has been retained as an alias. - The from_lonlat (and from_radec) method is now available in
SingleSphericalPolygon
as well asSphericalPolygon
. - The methods
iter_polygons_flat
have been renamed to to__iter__
. The former name has been retained as an alias.