def METHOD_NAME(self):
    """Populates Target List and filters out values which are nan"""
    # filter out nan values in numerical attributes
    for att in self.catalog_atts:
        if ("close" in att) or ("bright" in att):
            continue
        if getattr(self, att).shape[0] == 0:
            pass
        elif (type(getattr(self, att)[0]) == str) or (
            type(getattr(self, att)[0]) == bytes
        ):
            # FIXME: intent here unclear:
            #   note float('nan') is an IEEE NaN, getattr(.) is a str,
            #   and != on NaNs is special
            i = np.where(getattr(self, att) != float("nan"))[0]
            self.revise_lists(i)
        # exclude non-numerical types
        elif type(getattr(self, att)[0]) not in (
            np.unicode_,
            np.string_,
            np.bool_,
            bytes,
        ):
            if att == "coords":
                i1 = np.where(~np.isnan(self.coords.lon.to("deg").value))[0]
                i2 = np.where(~np.isnan(self.coords.lat.to("deg").value))[0]
                i = np.intersect1d(i1, i2)
            else:
                i = np.where(~np.isnan(getattr(self, att)))[0]
            self.revise_lists(i)