namespace geospatial¶
// namespaces namespace xf::data_analytics::geospatial::internal
knn¶
#include "xf_data_analytics/geospatial/knn.hpp"
template < int CSV_PU_NUM = 2, int MAX_SORT_NUM = 8 > void knn ( ap_uint <128>* csv_buf, ap_uint <8>* schema, float base_x, float base_y, int k, float* sorted_dist_buf, uint32_t* sorted_idx_buf )
K Nearest Neighbors(KNN): find nearest-K points for a given base point.
Parameters:
CSV_PU_NUM | num of csv parser core used to parallel parse csv data, only support 2/4/8 |
MAX_SORT_NUM | the max number of the sequence can be sorted, should be less than 1024 |
csv_buf | input csv data |
schema | input csv schema |
base_x | base point x coordinate |
base_y | base point y coordinate |
k | num of nearest point, k <= MAX_SORT_NUM |
sorted_dist_buf | output distance of nearest-K points |
sorted_idx_buf | output index of nearest-K points |
strtreeTop¶
#include "xf_data_analytics/geospatial/strtree_wrap.hpp"
template < typename KT, typename VT, typename PT, typename NT, int NC, int ISN, int BSN, int MTCN, int MSN > void strtreeTop ( int sz, double* inX, double* inY, double* inZone, PT* extPointBuf0, PT* extPointBuf1, NT* extNodeBuf0, NT* extNodeBuf1, NT* extNodeBuf2 )
strtreeTop strtree (a geospatial index) uses bottom-up way to build an R tree for two-dimensional points
Parameters:
KT | key type |
VT | value type |
PT | point type |
NT | node type |
NC | node capacity |
ISN | insert sort length |
BSN | block sort length |
MTCN | merge tree channel number |
NSN | max sort length |
sz | real size of inX or inY |
inX | all x value |
inX | all y value |
inZone | points (x, y) limit zone |
extPointBuf0 | output ordered points |
extPointBuf1 | points buffer |
extNodeBuf0 | output ordered nodes |
extNodeBuf1 | nodes buffer |
extNodeBuf2 | nodes buffer |