/** * Identifies. * * @param reader the catalog reader. * @exception IOException if the catalog cannot be accessed. * @exception QueryFailException if the query to the server is failed. */ public void identify(CatalogReader reader) throws IOException, QueryFailException { // Starts the polling thread. PollingThread thread = new PollingThread(); thread.start(); try { Variability[] records = getSelectedRecords(); for (int i = 0; i < records.length; i++) { CatalogStar star = records[i].getStar(); StarList l = reader.read(star.getCoor(), 0.1); for (int j = 0; j < l.size(); j++) { CatalogStar s = (CatalogStar) l.elementAt(j); double radius = star.getMaximumPositionErrorInArcsec() + s.getMaximumPositionErrorInArcsec(); double distance = star.getCoor().getAngularDistanceTo(s.getCoor()); if (distance < radius / 3600.0) // Overwrites the already identified star. records[i].setIdentifiedStar(s); } } } finally { // Ends the polling thread. thread.end(); } }