Comments (2)
Using k=[2]
doesn't always work because sometimes the nearest neighbors are too close (like in flight line data). It might be best to do a mean/median of the k nearest neighbors instead:
def neighbor_distances(coordinates, projection=None, k_nearest=2, reduction="median"):
points = np.transpose([coordinates])
# Get the second closest (the closest are points themselves)
tree = cKDTree(points)
k_distances, labels = tree.query(points, k=k_nearest)
distances = getattr(np, reduction)(k_distances, axis=1)
return distances
spacing = neighbor_distances(coordinates).mean()
This way, if k_nearest=2
then it would be the original nearest neighbor distance. But if k_nearest=10
, we'll take the median of the 10 nearest neighbors to each point.
from verde.
It's probably not worth the trouble to make this too complicated in terms of custom reduction functions. The median distances to k nearest neighbors is a good robust metric and we should stick to that. It's easy to explain as well.
def median_distance(coordinates, k_nearest=1, projection=None):
...
return distances
from verde.
Related Issues (20)
- Create a KNeighbors gridder
- Depreate the ScipyGridder
- Remove the ScipyGridder
- Add a 'scoring' argument to SplineCV
- No module named 'appdirs' HOT 4
- Add option to grid_coordinates to return 1D coordinate arrays HOT 4
- Undo deprecations of spacing, shape, region in the grid method
- Allow block cross-validation classes to take extra coordinates
- AttributeError: module 'verde' has no attribute 'Linear' HOT 2
- Extra coordinates should be considered when converting grid to table HOT 1
- Block reduction error when block size > coordinate variation HOT 3
- Possible way to speed up the Spline interpolation
- Remove the mindist argument from Spline and SplineCV
- Release v1.8.0
- Interactive examples for verde HOT 2
- Rename "spacing" arguments to something more sensible HOT 1
- Write a migration guide for Verde 1.X to 2.0
- New documentation structure HOT 4
- Add a function to fill NaNs in a grid HOT 4
- Release v1.8.1 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from verde.