nearest_neighbors#
- nearest_neighbors(src_gdf: ~geopandas.geodataframe.GeoDataFrame, candidates_gdf: ~geopandas.geodataframe.GeoDataFrame, method: str, k_neighbors: int | None = None, radius: float | None = None, **kwargs) -> (<class 'numpy.ndarray'>, <class 'numpy.ndarray'>)[source]#
For each point in src_gdf, find the closest point in candidates_gdf and return them with their distances (in the crs coordinates).
Closest points are:
if method ==
k_neighbors
: the k closest neighborsif method ==
radius
: the neighbors inside this radius (in the crs coordinates, better done with projected geometries)
- Parameters:
- Returns:
closest samples, distances
- Return type:
(np.ndarray, np.ndarray)
Examples
>>> from sertit import geometry, vectors >>> src = vectors.read("src.shp") >>> candidates = vectors.read("candidates.shp") >>> # There is only one point in the neighborhood of each src, the others are further than 100m >>> >>> # Radius method >>> nearest_neighbors(src, candidates, method="radius", radius=100) [array([13]) array([12]) array([0])], [array([39.62574458]) array([50.37121574]) array([90.98648454])] >>> >>> # k_neighbors method >>> nearest_neighbors(src, candidates, method="k_neighbors", k_neighbors=1) [array([13]) array([12]) array([0])], [array([39.62574458]) array([50.37121574]) array([90.98648454])]