nearest neighbor search from xyz coordinates
Hello,
I have a table containing x y z coordinates. But I have no geometry column?
Is it possible to find the k nearest neighbors of any point. Is there
something like a kd-tree Index in postgres???
I know, if i had a geometry column I could make use of the distance
function to find the k nearest neighbors. But my table has millions of
records, thus it would take a very long time to use the distance
function for each point.
Thanks in advance.
Andi
What exactly do you want to measure, since values can be compared easily by
a where clauseIf you would want for example all rows within a spherical
distance
you will either have to write a stored procedure (which takes 4 parameters
x,y,z,distance)
Or manually compare each corodinate to the distance
Regards,
Serge Fonville
On Mon, Oct 27, 2008 at 11:50 AM, Andreas Jochem <andruit@gmx.de> wrote:
Show quoted text
Hello,
I have a table containing x y z coordinates. But I have no geometry column?
Is it possible to find the k nearest neighbors of any point. Is there
something like a kd-tree Index in postgres???I know, if i had a geometry column I could make use of the distance
function to find the k nearest neighbors. But my table has millions of
records, thus it would take a very long time to use the distance function
for each point.Thanks in advance.
Andi
--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
El Lunes 27 Octubre 2008 Andreas Jochem escribió:
Hello,
I have a table containing x y z coordinates. But I have no geometry column?
Is it possible to find the k nearest neighbors of any point. Is there
something like a kd-tree Index in postgres???I know, if i had a geometry column I could make use of the distance
function to find the k nearest neighbors. But my table has millions of
records, thus it would take a very long time to use the distance
function for each point.Thanks in advance.
Andi
Maybe you can partition your 3d space into cubes and add one colum to the table precalculating the cube
that owns the point.
For an arbitrary point you can calculate the cube that contains it and surrounding boxes and
restrict full distance calculation to records belonging to those cubes.
for millions of points seems to be faster than trying all points blindy (despite of being indexed).
--
->>-----------------------------------------------
Clist UAH a.k.a Angel
---------------------------------[www.uah.es]-<<--
""
On Mon, Oct 27, 2008 at 6:50 AM, Andreas Jochem <andruit@gmx.de> wrote:
Hello,
I have a table containing x y z coordinates. But I have no geometry column?
Is it possible to find the k nearest neighbors of any point. Is there
something like a kd-tree Index in postgres???
cubes:
http://www.postgresql.org/docs/8.3/interactive/cube.html
merlin