Space-filling curves
A .NET Standard library providing implementations of Space-Filling Curves (SFCs) for spatial data sorting, and indexing. Combines object-oriented and functional programming paradigms for flexibility.
Features
- Multiple SFC Types:
- Hilbert curve
- Z-order (Morton) curve
- Custom curve generation via higher-order functions
- Preserved Spatial Locality:
- Near points in multi-dimensional space remain as close as possible in 1D sequence
- Interoperability:
- Works seamlessly with spatial data structures (KD-Trees, R-Trees)
Installation
Via NuGet Package Manager:
dotnet add package IRI.Maptor.Core.Spatial
Applications
- Spatial Indexing: Accelerate KD-Tree/R-Tree constructions
- Data Sorting: Linearize 2D data while maintaining locality
- Database Optimization: Improve spatial query performance
Video demos
SFC generation
Point ordering using SFCs
Kd-Tree SFCs
R-Tree SFCs
Reference
The representation and generation scheme this implementation is built on โ curves defined by base movement functions and sub-region transforms, composed as higher-order functions:
Narimani Rad, H., & Karimipour, F. (2021). Representation and generation of space-filling curves: a higher-order functional approach. Journal of Spatial Science, 66(3), 459โ479. doi:10.1080/14498596.2019.1668870
NuGet: IRI.Maptor.Core.Spatial
Report Issues: GitHub Issues