def _clean_props(self):
remove = []<EOL>for p in self.properties.keys():<EOL><INDENT>if not hasattr(self.ic, p) andp not in self.ic.bands and p not in ['<STR_LIT>','<STR_LIT>','<STR_LIT>','<STR_LIT>','<STR_LIT>'] andnot re.search('<STR_LIT>',p):<EOL><INDENT>remove.append(p)<EOL><DEDENT><DEDENT>for p in remove:<EOL><INDENT>del self.properties[p]<EOL><DEDENT>if len(remove) > <NUM_LIT:0>:<EOL><INDENT>logging.warning('<STR_LIT>' +<EOL>'<STR_LIT>'.format(type(self.ic),remove))<EOL><DEDENT>remove = []<EOL>for p in self.properties.keys():<EOL><INDENT>try:<EOL><INDENT>val = self.properties[p][<NUM_LIT:0>]<EOL>if not np.isfinite(val):<EOL><INDENT>remove.append(p)<EOL><DEDENT><DEDENT>except:<EOL><INDENT>pass<EOL><DEDENT><DEDENT>for p in remove:<EOL><INDENT>del self.properties[p]<EOL><DEDENT>if len(remove) > <NUM_LIT:0>:<EOL><INDENT>logging.warning('<STR_LIT>' +<EOL>'<STR_LIT>'.format(remove))<EOL><DEDENT>self._props_cleaned = True<EOL>
Makes sure all properties are legit for isochrone.

Not done in __init__ in order to save speed on loading.