You can easily try out the stable matching between arbitrary point patterns using my R-package: matchingpp
Installation and usage are explained on github.
Two point patterns (e.g. a stationarized lattice, a Poisson point process, or data from csv files) are matched to each other via the stable mutual nearest neighbor matching (on the torus in arbitrary dimensions). Typically this results in a thinnig of one of the two point patterns.
For more information, read our preprint:
M. A. Klatt, G. Last, D. Yogeshwaran. Hyperuniform and rigid stable matchings. arXiv:1810.00265 (2018)
… or write my a note.