I have several hundred points that represent samples in a landscape:
As you can see, the points are unevenly spread and form large, dense clusters. To account for spatial autocorrelation, I want to subset or thin these points so that the points that remain are a minimum distance from each other. At the moment I've set up a pairwise distance matrix for them and am randomly removing points that are below the distance threshold until the only ones remaining meet my minimum distance criteria. However, this does not seem optimal from two different perspectives: first, different potential random subsets using this method can return different numbers of samples. Ideally, I'd retain as many points as possible. Second, different subsets may be distributed differently across the landscape. Ideally, I want a point subset with a distribution that more uniformly represents the landscape. Are there any recommended or general algorithms for optimally subsetting points (at least more optimal than my approach)?