Releases: SpatioTemporal/STARE
Baseline Capability
A basic temporal API has been completed, meaning that both spatial and temporal encodings are now available. Performance related updates are being planned. Documentation is still spotty, but examples are being put into the STARE-Cookbooks site. This API is being released so that other functions dependent on STARE can work from the master branch, rather than a variety of development branches.
Bugfix: HtmRangeMultiLevel::CompressionPass broke intervals
In rare situations, CompressionPass was incorrectly splitting intervals when there weren't enough trixels to coalesce. This was the root cause of the latest to_compressed_range bug in pystare, cf. PySTARE Issue#27. To fix, we added logic to check the number of trixels available to coalesce.
BugFix Pystare.Bug#27 Uint64 hid valid negative number
ExpandIntervalMultiRes used a uint64 where an int64 should have been used, leading to valid negative numbers to be cast to huge positive numbers breaking an exit criterion in a loop.
Enhanced expandIntervals and added expandIntervalsMultiRes
he previous version looked only at the resolution of an interval and then expanded accordingly. Thus if one started an interval with a small trixel larger ones later in the sequence would be split using the finer resolution, even when multi-resolution was desired. expandIntervalsMultiRes is a revision of similar code in HtmRangeMultiResolution::compress, which was an improvement on HtmRangeMultiResolution::defrag. expandIntervalsMultiRes attempts to coalesce as many trixels as possible using a rolled-out recursion scheme. The previous API method, expandIntervals retains the older non-multi-resolution behavior.
SpatialRange Defragmentation & Compression Bugfix
Several bugs including a segfault were triggered when significant numbers of spatial locations were added to SpatialRange. We rewrote the low-level HtmRangeMultiLevel (that manages the SkipLists) defrag and CompressionPass methods. SpatialRange has been instantiated with ~290K spatial ids. These should still be verified. Defrag and Compression were added to SpatialRange so they can be integrated with pystare.
Incremental build improvements to CMake and STARE.h
STARE.h now includes separate macros for major, minor, and patch versions. CMake builds now check whether the compiler variables are set before assuming gcc and g++ are desired. Minor README and INSTALL revisions.
Continuous Improvement cmake/ctest bugfix.
The tests/CUTE/tests (via cmake/ctest) couldn't find the polygons data directory and was seg-faulting.
Sidecar cover support tweaks
Small changes to support pystare-style intersection and sidecar cover construction. Last minor release before 1.0.
Add an in-place adaptive resolution for spatial index value arrays.
0.15.6-beta Version bump.
Nonconvex provides complement for CW polygon
Nonconvex now provides interior+boundary for CCW polygon and the exterior for CW polygon. A subtle nonconvex bug was fixed. The routine still needs more extensive testing on different polygons. Handling of pathological polygons is almost nonexistent. Common regions such as zones have not yet been given to nonconvex for testing.