gnuastro-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[task #15803] Match program should build k-d tree and later read from it


From: Mohammad Akhlaghi
Subject: [task #15803] Match program should build k-d tree and later read from it
Date: Thu, 29 Oct 2020 18:51:13 -0400 (EDT)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:82.0) Gecko/20100101 Firefox/82.0

URL:
  <https://savannah.gnu.org/task/?15803>

                 Summary: Match program should build k-d tree and later read
from it
                 Project: GNU Astronomy Utilities
            Submitted by: makhlaghi
            Submitted on: Thu 29 Oct 2020 10:51:11 PM UTC
         Should Start On: Thu 29 Oct 2020 12:00:00 AM UTC
   Should be Finished on: Thu 29 Oct 2020 12:00:00 AM UTC
                Category: Match
                Priority: 5 - Normal
              Item Group: Enhancement
                  Status: None
                 Privacy: Public
        Percent Complete: 0%
             Assigned to: sks_15
             Open/Closed: Open
         Discussion Lock: Any
                  Effort: 0.00

    _______________________________________________________

Details:

Gnuastro's library now has a k-d tree library
<https://www.gnu.org/software/gnuastro/manual/html_node/K_002dd-tree.html>.
With k-d trees, matching large catalogs can be greatly sped up. 

So I propose the following strategy to match two catalogs:

Currently to match two catalogs, we call match like below. For the context
here, let's call them 'large.fits' and 'small.fits', and let's assume we want
to match them with their the 'X' and 'Y' columns, within an aperture of 0.5
pixels.


astmatch large.fits small.fits --ccol1=X,Y --ccol2=X,Y \
         --aperture=0.5


But to employ k-d trees as is available in the Gnuastro library, we can take
the following approach. The user first runs 'astmatch' only on 'large.fits'
with the '--kdtree=build' option like this (the k-d tree will be built in the
value to '--output', or '-o'):


astmatch large.fits --ccol1=X,Y --kdtree=build -okdtree.fits


Later, when they want to match it with the small catalog they would run it
like this (very similar to the first call):


astmatch large.fits small.fits --ccol1=X,Y --ccol2=X,Y \
         --kdtree=kdtree.fits 


Match would read the k-d tree from the given file, with 'large.fits' and
'small.fits', then it will use a multi-threaded function to call Gnuastro's
k-d tree matching function in parallel. Besides the improved k-d tree search
method, this would also benefit from parallel processing, thus doing the job
very fast. 




    _______________________________________________________

Reply to this item at:

  <https://savannah.gnu.org/task/?15803>

_______________________________________________
  Message sent via Savannah
  https://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]