Обсуждение: nearest neighbor search from xyz coordinates

Поиск
Список
Период
Сортировка

nearest neighbor search from xyz coordinates

От
Andreas Jochem
Дата:
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

Re: nearest neighbor search from xyz coordinates

От
"Serge Fonville"
Дата:
What exactly do you want to measure, since values can be compared easily by a where clause
If 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:
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

Re: nearest neighbor search from xyz coordinates

От
Angel Alvarez
Дата:
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]-<<--
""

Re: nearest neighbor search from xyz coordinates

От
"Merlin Moncure"
Дата:
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