addPhotometry(colourObject, colour, o.exposures) masterObjectList.append(colourObject) distanceThreshold = float(config.MINPIXELDISTANCE) print "Threshold", distanceThreshold colour = 'g' objects = allObjects[colour] for o in objects: """ First see if we have a position match in our existing objects """ position = o.meanPosition closestDistance = 1000 closestObject = None for m in masterObjectList: r_distance = ultracamutils.calculateDistance(position, m.meanPosition['r']) if r_distance < closestDistance: closestDistance = r_distance closestObject = m if closestDistance > distanceThreshold: closestObject = None # Reject the match if it is too far away if closestObject == None: newIDNumber = ultracamutils.getUniqueID(masterObjectList) colourObject = ucamObjectClass.colourObject(newIDNumber) debug.write("Could find no match to this green object!") debug.write("Created a new colourObject with id: %d"%(newIDNumber)) colourObject.setMeanPosition(colour, o.meanPosition) colourObject.colourID[colour] = o.id addPhotometry(colourObject, colour, o.exposures) masterObjectList.append(colourObject)
firstColourList = copy.copy(firstColourObjects) for o in firstColourObjects: id = ultracamutils.getUniqueID(colourObjects) colourObject = classes.combined3ColourObject(id) colourObject.setColourID(currentColour, o.id) firstColourList.remove(o) allObjectsCopy[currentColour] = firstColourList originalCoords = (o.ra, o.dec) for othercolour in threeColours: objects = allObjectsCopy[othercolour] debug.write("Looking for %s objects to match the current %s object"%(channelDescriptions[othercolour], channelDescriptions[currentColour])) closestDistance = 1 closestObject = None for p in objects: objectCoords = (p.ra, p.dec) distance = ultracamutils.calculateDistance(originalCoords, objectCoords) if distance < closestDistance: closestDistance = distance closestObject = p if closestDistance < distanceThresholdDegrees: colourObject.setColourID(othercolour, closestObject.id) objects.remove(closestObject) allObjectsCopy[othercolour] = objects else: debug.write("No match... to far from threshold") debug.write(colourObject) colourObjects.append(colourObject) debug.write("Objects remaining:") for c in channels: