Release History
- update to python 3.8 and change tests for compatibility
- Updated Docker
- Fixed naming convention from Shore, to high perimeter neighborhood
- __slots__ for better performance
- vincenty no longer supporter
- multiPoint -> multipoint
- Domain -> DomainMap
- Optimizations
- Fast lookup object
- Logic collapsed into Base Self Iterable
- Significant Improvements to Walk accuracy
- Significant improvements to RunOff accuracy
- Further movement away from point objects, and to tuples (namely, with highshores)
- Introduction of SummitDomain
- Saddle simplification has been moved to Walk functionality
- Shapely shapes for various objects (helpful for KML)
- Now with accurate Metric-Imperial unit conversion!
- New function for finding the steepest neighbor in a DataMap
- Multipoints, and Perimeters internally use tuples instead of GridPoints. This yields a performance improvement.
- Summit/SaddleContainers have @property to just return multiPoint members.
- Base/Gridpoints now have factory method for creating object to/from tuple.
- Added docs for readthedocs.io
- Improved/standardized docstrings for sphinx.
- Domain now has a feature for culling various types of disqualified Saddles.
- Minor bug fix in loop detection algorithm.
- More robustness in KMLWriter
- New features for BaseGridPoints, namely index() which returns the index at which that BaseGridpoint exists in the container, and distance() which calculates the distance (in points) from one BaseGridPoint to another.
- New linker functions for returning remote linkers via connected Summits or Saddles
- SpotElevationContainer object now support index()
- GridPointContainer now supports highest() and lowest()
- GridPoint now Hashable
- Summit and Saddle Objects now have Neighbor Finding functions
- improvements to rebuildSaddles such as fast bailouts and fixed several bugs where calculated midpoints were being placed outside of multipoints. This usually happens when two linked high shores are on the same plane.
- base_coordinate and child objects now include dms displays.
- added full Basin saddle detection and thus:
- removed disqualify_lower_linkers() and mark_redundant_linkers() from Domain
- domain.run() runs detect_basin_saddles() at the end instead of the old detection algorithms.
- saddles now have basinSaddleAlternatives feature.
- saddles and summits now have a feature_neighbors() caller which resolves the distal feature on the linker.
- Fix bug in disqualify_lower_linkers()
- Rebuild the KMLFileWriter
- Fixed Bug within the walk function
- Improved equality operator in Linker object
- Cleaned up some of the progress displays.
- WalkPath from_dict converts to tuple.
- Dockerized ipython terminal
- Dockerized tests
- Change Multipoint to default empty list
- add LPRboundary to saddle/summit objects.
- Fix performance problems while reading domain files
- Add fast_lookup hash of various SpotElevationContainers.
- to_dict() for all Domain child objects.
- from_dict() for all Domain child objects
- Track edgePoints inside SpotElevations.
- Track Walk path - introduces WalkPath container.
- Move walk() to Domain where it is more useful.
- Move disqualify_lower_linkers() to Domain.
- Move mark_redundant_linkers() to Domain.
- Elimination of InverseEdgePoints and InverseEdgePointContainer.
- Introduction of Perimeter as a replacement
- Very large addition of Unit tests
- Adding __getItems__, setItems, eq, ne, lt, repr and other magic functions to Container Objects.
- Made points from objects inherited from BaseGridPoint sortable
- Introduction of Runoffs, which are essentially saddles, but at the edge with a little looser restrictions.
- Elimination of "EdgePoints" and their container.
- Walk now leverages equalHeightBlobs, but no longer keeps track of walk paths.
- Summits and Saddles now have thier own containers.
- Saddles can now have their high Shores reduced to a single point per shore and have their multipoint elements discarded while having their location set to the middle of those points.
- ..and saddles with > 2 highShores now ahve an internal network built for linking them all together and reducing thier size.
- logic.py is not feature_discovery.py
- equalHeightBlob is now in its own file in lib/logic/
- New Unit tests
- Added __len__() function to SpotElevationContainer()
- Added neighbor iterators to GridPointContainers
- Added PseudoSummit finder within GridPointContainer.
- Fixed radius() function for Spot Elevation containers.
- Get nodata value and load appropriately. Considerable optimization.
- Optimizations for explored points 33 - 50% performance improvement
- Tore out old Dataloaders and replaced with a universal GDAL based solution
- Fixed the logger name.
- Added some unit tests
- Start of Divide tree objects
- Bug Fixes in Domains
- GZIP domain files
- Walks can disqualify invalid links, like links to single summits, and duplicate links which are not the highest.
- Fixed some imports.
- Partial Walk Functionality
- Linker Objects
- JSON data improvements
- Domain Object as an easier entry point
- Saddle Analysis accuracy improvement
- Fixed Bug where X,Y to Lat/Long was rounding wrong
- Spot elevation objects can return UTM coordinates
- More clear names for X,Y to Lat/Long and vice versa
- Complete rewrite of saddle analysis.
- 33% runtime improvement. 66% memory reduction.
- Overhauled Logic Process, Functions now more atomic
- Overhauled InverseEdgePoints
- Eliminated EdgePoints (keeping objects for later)
- Python 3 compatability
- Overhauled KML export for Python 3 compatability
- to_json to SpotElevation container
- Expunged old Pond/Island analysis in multipoints
- Radius Search for locations
- SpotElevationContainer filters all return new SpotElevationContainers
- Break Locations and container into their own files.
- Added BSD license.
- Fixed Edge Locator
- 100% accurate summit scan
- to_json for objects
- InverseEdgePoints used to calculate edge vectors
- iterator moved from analyze to datamap
- Saddles differentiate high/low edges (HighEdgeContainer)
- No longer return array types with numpy.
- Round comparisons
- Outside map bounds NoneType return supported
- Better roundings for internal types.
- Improved EdgePoint collection
- Improved Shore tracing
- Added Edgepoints and InverseEdgePoints
- Island/Pond Like Analysis
- Summit/Saddle Analysis
- Logging
- Documentation
- Summit Analysis
- Common Base Features
- Location Types
- Basic Setup Files
- Initial Base Release