#include <cuspatial/column/geometry_column_view.hpp>
#include <cuspatial/constants.hpp>
#include <cudf/column/column.hpp>
#include <cudf/column/column_view.hpp>
#include <cudf/table/table_view.hpp>
#include <cudf/utilities/span.hpp>
#include <rmm/mr/device/per_device_resource.hpp>
#include <rmm/resource_ref.hpp>
#include <optional>
函数 | |
std::unique_ptr< cudf::column > | cuspatial::haversine_distance (cudf::column_view const &a_lon, cudf::column_view const &a_lat, cudf::column_view const &b_lon, cudf::column_view const &b_lat, double const radius=EARTH_RADIUS_KM, rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource()) |
计算集合 A 中的点与集合 B 中对应点之间的 Haversine 距离。 | |
std::pair< std::unique_ptr< cudf::column >, cudf::table_view > | cuspatial::directed_hausdorff_distance (cudf::column_view const &xs, cudf::column_view const &ys, cudf::column_view const &space_offsets, rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource()) |
计算空间集合中所有点对的 Hausdorff 距离 | |
std::unique_ptr< cudf::column > | cuspatial::pairwise_point_distance (geometry_column_view const &multipoints1, geometry_column_view const &multipoints2, rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource()) |
计算成对的(多)点到(多)点之间的笛卡尔距离。 | |
std::unique_ptr< cudf::column > | cuspatial::pairwise_point_linestring_distance (geometry_column_view const &multipoints, geometry_column_view const &multilinestrings, rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource()) |
计算成对的(多)点到(多)线串之间的笛卡尔距离。 | |
std::unique_ptr< cudf::column > | cuspatial::pairwise_point_polygon_distance (geometry_column_view const &multipoints, geometry_column_view const &multipolygons, rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource()) |
计算成对的(多)点到(多)多边形之间的笛卡尔距离。 | |
std::unique_ptr< cudf::column > | cuspatial::pairwise_linestring_distance (geometry_column_view const &multilinestrings1, geometry_column_view const &multilinestrings2, rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource()) |
计算成对的(多)线串到(多)线串之间的笛卡尔距离。 | |
std::unique_ptr< cudf::column > | cuspatial::pairwise_linestring_polygon_distance (geometry_column_view const &multilinestrings, geometry_column_view const &multipolygons, rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource()) |
计算成对的(多)线串到(多)多边形之间的笛卡尔距离。 | |
std::unique_ptr< cudf::column > | cuspatial::pairwise_polygon_distance (geometry_column_view const &multipolygons1, geometry_column_view const &multipolygons2, rmm::device_async_resource_ref mr=rmm::mr::get_current_device_resource()) |
计算成对的(多)多边形到(多)多边形之间的笛卡尔距离。 | |
std::pair< std::unique_ptr< cudf::column >, cudf::table_view > cuspatial::directed_hausdorff_distance | ( | cudf::column_view const & | xs, |
cudf::column_view const & | ys, | ||
cudf::column_view const & | space_offsets, | ||
rmm::device_async_resource_ref | mr = rmm::mr::get_current_device_resource() ) |
计算空间集合中所有点对的 Hausdorff 距离
https://en.wikipedia.org/wiki/Hausdorff_distance
一维示例(此函数在二维中操作)
[in] | xs | 点的 x 分量 |
[in] | ys | 点的 y 分量 |
[in] | space_offsets | 每个空间的起始索引,加上最后一个空间的结束偏移量。 |
cudf::cuda_error | 如果 xs 和 ys 长度不同 |
cudf::cuda_error | 如果 xs 和 ys 类型不同 |
cudf::cuda_error | 如果 space_offsets 大小小于 xs 和 xy |
cudf::cuda_error | 如果 xs 、ys 或 space_offsets 包含 null |
std::unique_ptr< cudf::column > cuspatial::haversine_distance | ( | cudf::column_view const & | a_lon, |
cudf::column_view const & | a_lat, | ||
cudf::column_view const & | b_lon, | ||
cudf::column_view const & | b_lat, | ||
double const | radius = EARTH_RADIUS_KM, | ||
rmm::device_async_resource_ref | mr = rmm::mr::get_current_device_resource() ) |
计算集合 A 中的点与集合 B 中对应点之间的 Haversine 距离。
https://en.wikipedia.org/wiki/Haversine_formula
[in] | a_lon | 集合 A 中点的经度 |
[in] | a_lat | 集合 A 中点的纬度 |
[in] | b_lon | 集合 B 中点的经度 |
[in] | b_lat | 集合 B 中点的纬度 |
[in] | 半径 | 点所在的球体半径。默认值:6371.0(近似地球半径,单位公里) |
std::unique_ptr< cudf::column > cuspatial::pairwise_linestring_distance | ( | geometry_column_view const & | multilinestrings1, |
geometry_column_view const & | multilinestrings2, | ||
rmm::device_async_resource_ref | mr = rmm::mr::get_current_device_resource() ) |
计算成对的(多)线串到(多)线串之间的笛卡尔距离。
一对多线串之间的距离是两个多线串中任意一对线段之间的最短笛卡尔距离。如果任意线段相交,则距离为 0。
multilinestrings1 | 用于计算距离的多线串的第一列 |
multilinestrings2 | 用于计算距离的多线串的第二列 |
mr | 用于分配返回列的设备内存的设备内存资源 |
cuspatial::logic_error | 如果 multilinestrings1 和 multilinestrings2 大小不同 |
cuspatial::logic_error | 如果 multilinestrings1 或 multilinestrings2 不是线串列。 |
cuspatial::logic_error | 如果 multilinestrings1 和 multilinestrings2 坐标类型不同 |
std::unique_ptr< cudf::column > cuspatial::pairwise_linestring_polygon_distance | ( | geometry_column_view const & | multilinestrings, |
geometry_column_view const & | multipolygons, | ||
rmm::device_async_resource_ref | mr = rmm::mr::get_current_device_resource() ) |
计算成对的(多)线串到(多)多边形之间的笛卡尔距离。
一对(多)线串与(多)多边形之间的距离是多线串中任意线段与多边形中任意边之间的最短笛卡尔距离。如果任意线段相交,或者如果任意线串包含在任意多边形中,则距离为 0。
multilinestrings | 多线串的几何列 |
multipolygons | 多多边形的几何列 |
mr | 用于分配返回列的设备内存资源。 |
cuspatial::logic_error | 如果 multilinestrings 和 multipolygons 大小不同 |
cuspatial::logic_error | 如果 multilinestrings 不是线串列或 multipolygons 不是多边形列。 |
cuspatial::logic_error | 如果 multilinestrings 和 multipolygons 的坐标类型不同。 |
std::unique_ptr< cudf::column > cuspatial::pairwise_point_distance | ( | geometry_column_view const & | multipoints1, |
geometry_column_view const & | multipoints2, | ||
rmm::device_async_resource_ref | mr = rmm::mr::get_current_device_resource() ) |
计算成对的(多)点到(多)点之间的笛卡尔距离。
一对多点之间的距离是两个多点中任意一对点之间的最短笛卡尔距离。
points1 | 用于计算距离的(多)点的第一列 |
points2 | 用于计算距离的(多)点的第二列 |
cuspatial::logic_error | 如果 multipoints1 和 multipoints2 大小不同 |
cuspatial::logic_error | 如果 multipoints1 或 multipoints2 不是多点列 |
cuspatial::logic_error | 如果 multipoints1 和 multipoints2 坐标类型不同 |
std::unique_ptr< cudf::column > cuspatial::pairwise_point_linestring_distance | ( | geometry_column_view const & | multipoints, |
geometry_column_view const & | multilinestrings, | ||
rmm::device_async_resource_ref | mr = rmm::mr::get_current_device_resource() ) |
计算成对的(多)点到(多)线串之间的笛卡尔距离。
点与线串之间的距离定义为点与线串任意线段之间的最小笛卡尔距离。
multipoints | 用于计算距离的多点列 |
multilinestrings | 用于计算距离的多线串列 |
mr | 用于分配返回列的设备内存资源。 |
cuspatial::logic_error | 如果 multipoints 和 multilinestrings 大小不同 |
cuspatial::logic_error | 如果 multipoints 不是多点列或 multilinestrings 不是多线串列 |
cuspatial::logic_error | 如果 multipoints 和 multilinestrings 坐标类型不同 |
std::unique_ptr< cudf::column > cuspatial::pairwise_point_polygon_distance | ( | geometry_column_view const & | multipoints, |
geometry_column_view const & | multipolygons, | ||
rmm::device_async_resource_ref | mr = rmm::mr::get_current_device_resource() ) |
计算成对的(多)点到(多)多边形之间的笛卡尔距离。
点与多边形之间的距离定义为点与多边形任意线段之间的最小笛卡尔距离。如果多点中的任一点包含在多边形中,则距离为 0。
multipoints | 多点的几何列 |
multipolygons | 多多边形的几何列 |
mr | 用于分配返回列的设备内存资源。 |
cuspatial::logic_error | 如果 multipoints 和 multipolygons 大小不同 |
cuspatial::logic_error | 如果 multipoints 不是点列且 multipolygons 不是多边形列。 |
cuspatial::logic_error | 如果 multipoints 和 multipolygons 坐标类型不同 |
std::unique_ptr< cudf::column > cuspatial::pairwise_polygon_distance | ( | geometry_column_view const & | multipolygons1, |
geometry_column_view const & | multipolygons2, | ||
rmm::device_async_resource_ref | mr = rmm::mr::get_current_device_resource() ) |
计算成对的(多)多边形到(多)多边形之间的笛卡尔距离。
一对(多)多边形与(多)多边形之间的距离是多多边形中任意一对边之间的最短笛卡尔距离。如果任意边相交,或者如果任意多边形包含在任何其他多边形中,则距离为 0。
multipolygons1 | 用于计算距离的多多边形的几何列(来源) |
multipolygons2 | 用于计算距离的多多边形的几何列(目标) |
mr | 用于分配返回列的设备内存资源。 |