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

MATCHALL_SPH

MATCHALL_SPH

## Purpose

Determines which of a set of angular coordinates on the sky (or on a
sphere) are within a given angular distance from each of a vector of
points. New optimized version that uses histograms based on 3D
locations on the unit sphere and borrows heavily from JD's MATCH_2D.

Astro

## Calling Sequence

Result = MATCHALL_SPH(Ra1, Dec1, Ra2, Dec2, Sphrad, Nwithin)

## 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.

## Outputs

The function returns the list of indices of Ra2, Dec2 that lie within
Sphrad of each point Ra1,Dec1. The format of the returned array is
similar to the REVERSE_INDICES array from HISTOGRAM: the indices
into Ra2,Dec2 that are close enough to element i of Ra1,Dec1 are
contained in Result[Result[i]:Result[i+1]-1] (note, however, that
these indices are not guaranteed to be sorted). If there are no matches,
then Result[i] eq Result[i+1].

## Optional Outputs

Nwithin: A vector containing the number of matches for each of Ra1,Dec1.

## Keyword Parameters

DISTANCE: Optional output containing the distances between each pair.
The distances are stored in the same order as the Result
array but starting at 0, i.e. if j is match number k to
element i then
j = Result[Result[i]+k]
and the distance between points i and j is
DISTANCE[Result[i]+k-Result]

## Example

Note that the routine is similar to finding
for each element of Ra1 and Dec1, but is much more efficient.
Shows which random points are within 10 degrees of various coordinates:
seed=43
nrandcoords = 5000l
ra_randcoords = 360. * RANDOMU(seed, nrandcoords)
dec_randcoords = ASIN( 2*RANDOMU(seed, nrandcoords)-1 ) * !RADEG
ra_centers = 60. * FINDGEN(5)
dec_centers = [0., 45., 0., -45., 90.]
matches = MATCHALL_SPH(ra_centers, dec_centers, ra_randcoords, \$
dec_randcoords, 10., nmatches)
plot, /iso, psym=3, ra_randcoords, dec_randcoords
oplot, psym=1, color=fsc_color('blue'), ra_centers, dec_centers
oplot, psym=3, color=fsc_color('red'), ra_randcoords[matches[6:*]], \$
dec_randcoords[matches[6:*]]

## 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