and **points-calc nearest-(min/max)**** percentile** operations search within a given radius around each input point. This can take a lot of time for large amount of input data.

One way to speed things up is to, instead of finding the nearest min to each point in a given radius, find the minimum for the 27 voxels in the neighbourhood of the voxel containing the point. That computed value is assigned to each point in that voxel.

This optimization is used when ** points-calc nearest-(min/max)** or

**is given**

`points-calc percentile`

**command line argument. For example**

`--fast`

> points-calc nearest-min --full --fast --fields x,y,scalar --radius 1 > points-calc percentile --percentile=0.03 --fast --fields x,y,scalar --radius 1

On large point cloud, like that of rose street (http://perception.acfr.usyd.edu.au/data/samples/riegl/rose.st/rose.st.*.csv.gz ), optimized operations were found to be 20 times faster for extremums and more than 100 time faster for percentiles.

## 4 Comments

## James P. Underwood

What were the results of the time test?

## Aneel Rathore AUTHOR

On my machine it was:

extremum normal: 1 min 6 sec

extremum fast: 4 sec

percentile fast: 8 sec

percentile normal on this data was too slow

## James P. Underwood

with --fast --radius=1,

does that mean it searches neighbouring voxels with a 1m resolution? e.g. points could be up to 2m away in the extreme case...

## Vsevolod Vlaskine

correct; can be even more than 2m: can be double of the 1m cube longest diagonal