Hello,
I’m trying to understand the exact algorithm used for creating the DiaObject table. According to the DP1 paper:
The DiaObject catalog contains the astrophysical objects that DiaSources are associated with (i.e., the “DiaObjects”). The DiaObject catalog only contains non-Solar System Objects; Solar System Objects are instead recorded in the SSObject catalog (see below for a description of the SSObject catalog). When a DiaSource is identified, the DiaObject and SSObject catalogs are searched for objects to associate it with. If no association is found, a new DiaObject is created and the DiaSource is associated to it.
Based on this description, my interpretation of the algorithm is:
for source in diaSources_sorted_by_time:
# Search for compatible DiaObjects within spatial tolerance
candidate_objects = find_objects_within_cone(
center=source.centroid,
radius=source.positional_error
)
if candidate_objects is empty:
# No match found: create new DiaObject
create_new_diaobject(source.id)
else:
# Multiple matches: associate with closest object
source.diaObjectId = min(candidate_objects, key=distance_to_source)
This however is only my interpretation. I can’t find further details. In particular, I’d like to know:
- What matching criteria are used to determine if an existing object is “compatible” with a source, exactly?
- When multiple objects match a source, which object is selected? Is it purely nearest-neighbor by (error-weighted?) angular distance? Are other factors considered?
- Do you expect the same strategy to be used for future data releases?
Thank you!