Stars: Methods of Position Matching
Procedure:
- Create a federated database with a star database for each wavelength
- Create a container in each database, and generate in each a number of stars with random positions and widths
- loop over all stars in one database, and for each one, find the nearest star in the other, using a proximity function
- Proximity(x,y) = exp( - sqrt( (x-xcentre)**2 + (y-ycentre)**2 ) / sigma)
- where (x,y) is the position of the candidate, and xcentre, ycentre and sigma are the position and width of the target star.
- Using the class iterators provided by Objectivity, with a selection using standard C++ e.g.
if(xlow< && x< && ylow< && y<)
- Using the iterator with an Objectivity predicate e.g.
sprintf(pred,x>%f && x<%f && y>%f && y<%f,xlow,xhigh, ylow,yhigh)
Itr.scan(dbH,oocRead,oocAll,pred)
- Using an index on (x,y) in the other database, with a lookup key ooGreaterThanLookupField
- There are similar methods one can use with the Versant ODBMS