Thanks to visit codestin.com
Credit goes to github.com

Skip to content

tengdj/tdbase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TDBase

we propose a novel multi-level progressive 3D compression method, which is designed to satisfy two progressive query conditions, thus supports returning correct results even with compressed data whenever possible. Based on this, we further propose novel progressive refinement which starts from lightweight low-resolution representation for possible early return of results and progresses to higher resolution representation, which can be largely avoided. A system TDBase is implemented with progressive refinement to support highly efficient and accurate spatial queries for complex three-dimensional objects.

install and setup

install the prerequisite libraries: cmake CGAL GMP Boost(program_options) ZLIB OpenMP if the machine equiped with NVIDIA GPU, setup the environment to let the compiler know

export USE_GPU=TRUE_

then compile the code

cd src/
mkdir build
cd build/
cmake ../
make simulator
make tdbase

generate synthetic dataset

generate two .dt files, one for nuclei (bar_n_nv1000_nu200_vs100_r30_cm1.dt) and one for vessel (bar_v_nv1000_nu200_vs100_r30_cm1.dt). --nv specifies the number of vessels in the dataset while --nu specifies the number of nuclei around each vessel. Thus the generated dataset contains 1000 vessels and 200,000 nuclei

./simulator -u ../../data/nuclei.pt -v ../../data/vessel.pt -o bar --nv 1000 --nu 200

convert .dt files into decoded format for better performance but with higher storage cost. We are working on improving the decoding efficiency with partial decoding and GPU accelerating.

./tdbase convert bar_n_nv1000_nu200_vs100_r30_cm1.dt foo_n_nv1000_nu200_vs100_r30_cm1.dt
./tdbase convert bar_v_nv1000_nu200_vs100_r30_cm1.dt foo_v_nv1000_nu200_vs100_r30_cm1.dt

run test

conduct a 3NN join. -g specifies that the geometry computation are conducted with GPU.

./tdbase join --tile1 foo_n_nv1000_nu200_vs100_r30_cm1.dt --tile2 foo_v_nv1000_nu200_vs100_r30_cm1.dt -q nn --knn 3 -g --lod 20 40 60 80 100

conduct a 3NN join with the progressive refinement disabled by checking only the highest LOD polyhedrons.

./tdbase join --tile1 foo_n_nv1000_nu200_vs100_r30_cm1.dt --tile2 foo_v_nv1000_nu200_vs100_r30_cm1.dt -q nn --knn 3 -g --lod 100

conduct a 3NN join with the geometric computation conducted using 24 threads (--cn 24)

./tdbase join --tile1 foo_n_nv1000_nu200_vs100_r30_cm1.dt --tile2 foo_v_nv1000_nu200_vs100_r30_cm1.dt -q nn --knn 3 --cn 24 --lod 20 40 60 80 100

conduct a within distance join which conducts a within 50 distance join.

./tdbase join --tile1 foo_n_nv1000_nu200_vs100_r30_cm1.dt --tile2 foo_v_nv1000_nu200_vs100_r30_cm1.dt -q within --within_dist 50 -g --lod 20 40 60 80 100 

conduct a 3NN self join.

./tdbase join --tile1 foo_n_nv1000_nu200_vs100_r30_cm1.dt -q nn --knn 3 -g --lod 20 40 60 80 100

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published