comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: match_2d
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: match_2d [message #66270 is a reply to message #66183] Fri, 24 April 2009 10:50 Go to previous message
Jeremy Bailin is currently offline  Jeremy Bailin
Messages: 618
Registered: April 2008
Senior Member
On Apr 23, 8:10 am, vino <astrocr...@gmail.com> wrote:
> Hi Jeremy!!
>
> Thank you very much for helping me out....It works very well with my
> data set...
> For me to be able to use this routine is going to save me about a
> couple of weeks of runtime in my program!!
>
> I have looked at  WITHINSPHRAD but in that case, i still need to have
> a loop which is what i was trying to avoid!!
>
> Thanks to J.D.Smith for giving us a boon with routines like this!! ( i
> will someday learn how to use histogram)..
>
> Regards,
>
> Vino
>
> On Apr 22, 11:39 pm, JDS <jdtsmith.nos...@yahoo.com> wrote:
>
>>> Aha... I've looked at it in gory detail, and it turns out that the
>>> routine implicitly assumes that the minimum value of both x2 and y2
>>> are 0. So you can get it to work if you do the following:
>
>> Aha!  Thanks for the catch.  That's what you get when you evaluate an
>> algorithm on artificial random coordinates ranging uniformly from
>> [0,1].
>
>> I've updated MATCH_2D at the address mentioned to handle this issue
>> explicitly, and also catch cases of matching points which fall just
>> slightly outside the bounding box of the search set.  I've also added
>> a much-needed warning regarding using this Euclidean matching
>> algorithm for points on the sphere (e.g. star positions, lat/lon,
>> etc.):
>
>> ; WARNING:
>> ;
>> ;        Distance is evaluated in a strict Euclidean sense.  For
>> ;        points on a sphere, the distance between two given
>> ;        coordinates is *not* the Euclidean distance.  As an extreme
>> ;        example, consider two points very near the N. pole, but on
>> ;        opposite sides (one due E, one due W).  For small patches,
>> ;        this Euclidean assumption is approximately valid, and the
>> ;        method works.  See NOTES above for a tip regarding obtaining
>> ;        a (more) uniform match criterion on the sphere.
>> ;;
>
>> Give this version a try.  By the way, the value of MATCH_DISTANCE for
>> points which did *not* match is not meaningful.
>
>> JD
>
>

That, of course, is a challenge. ;-) Try this version, which will
allow you to do many-to-many matches:

http://www.physics.mcmaster.ca/~bailinj/idl/withinsphrad_vec .pro

It uses the "throw lots of memory at the problem" paradigm (it
internally uses several N1 x N2 arrays simultaneously), so you may
find that it runs out of memory fairly quickly. If it's a problem, you
can always try chunking up your coordinates and doing a FOR loop
through the chunks - it should at least be faster than looping through
each coordinate.

I'm pretty sure there's a HIST_ND-based algorithm of doing this
similar to MATCH_2D but taking spherical trig into account, but I
don't have the patience to figure it out.

-Jeremy.
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Re: Annotations of grid in map_set
Next Topic: dfanning widbarb.pro

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 12:54:34 PDT 2025

Total time taken to generate the page: 0.00190 seconds