Welcome to the L3 Harris Geospatial documentation center. Here you will find reference guides and help documents.
﻿
>  Docs Center  >  Libraries  >  JBIU  >  MATCH_SPH

MATCH_SPH

MATCH_SPH

## Purpose

For each angular point in one vector, determines the closest angular match
from another vector. Method is to take the list returned by
MATCHALL_SPH and narrow it down to the closest match.

Astro

## Calling Sequence

Result = MATCH_SPH(Ra1, Dec1, Ra2, Dec2, Sphrad)

## Inputs

Ra1: Vector of longitude coordinates, in degrees.
Dec1: Vector of latitude coordinates, in degrees.
Ra2: Vector of longitude coordinates, in degrees.
Dec2: Vector of latitude coordinates, in degrees.
Sphrad: Maximum angular distance, in degrees. Matches outside

## Keyword Parameters

MINDIST: Optional output containing an array of the actual distance
to the closest match for each element of Ra1, Dec1.
ONE_TO_ONE: Enforces one-to-one matching. By default, matching can
be many-to-one, i.e. one entry in Ra2,Dec2 can be the
closest match to several entries in Ra1,Dec1. If
/ONE_TO_ONE is given, then each multiple entry in Ra2,Dec2
is first assigned to its closest point in Ra1,Dec1. Then any
entries in Ra1,Dec1 that have lost their match are assigned
the next closest point within Sphrad. This process is
iterated until all points in Ra1,Dec1 are matched to a
unique point in Ra2,Dec2 or there are no more points

## Outputs

The function returns an array with one entry for each Ra1, Dec1
element containing the index in Ra2, Dec2 that is closest, or -1 if

## Example

n1 = 25
n2 = 10
seed = 43L
ra1 = randomn(seed, n1)
dec1 = randomn(seed, n1)
ra2 = randomn(seed, n2)
dec2 = randomn(seed, n2)
result1 = match_sph(ra1, dec1, ra2, dec2, 1.)
result2 = match_sph(ra1, dec1, ra2, dec2, 1., /one_to_one)
!p.multi=[0,2,1]
plot, psym=1, ra1, dec1, xrange=[-3,3], yrange=[-3,3], title='Default'
oplot, psym=4, ra2, dec2
for i=0l,n1-1 do if result1[i] ne -1 then oplot, [ra1[i],ra2[result1[i]]], \$
[dec1[i],dec2[result1[i]]]
plot, psym=1, ra1, dec1, xrange=[-3,3], yrange=[-3,3], title='/ONE_TO_ONE'
oplot, psym=4, ra2, dec2
for i=0l,n1-1 do if result2[i] ne -1 then oplot, [ra1[i],ra2[result2[i]]], \$
[dec1[i],dec2[result2[i]]]

## Modification History

Written by: Jeremy Bailin
10 June 2008 Public release in JBIU as WITHINSPHRAD
24 April 2009 Vectorized as WITHINSPHRAD_VEC
25 April 2009 Polished to improve memory use