def add_spectroscopy(self, label='<STR_LIT>', **props):
if label not in self.leaf_labels:<EOL><INDENT>raise ValueError('<STR_LIT>'.format(label, self.leaf_labels))<EOL><DEDENT>for k,v in props.items():<EOL><INDENT>if k not in self.spec_props:<EOL><INDENT>raise ValueError('<STR_LIT>'.format(k, self.spec_props))<EOL><DEDENT>if len(v) != <NUM_LIT:2>:<EOL><INDENT>raise ValueError('<STR_LIT>'.format(k))<EOL><DEDENT><DEDENT>if label not in self.spectroscopy:<EOL><INDENT>self.spectroscopy[label] = {}<EOL><DEDENT>for k,v in props.items():<EOL><INDENT>self.spectroscopy[label][k] = v<EOL><DEDENT>self._clear_cache()<EOL>
Adds spectroscopic measurement to particular star(s) (corresponding to individual model node)

Default 0_0 should be primary star

legal inputs are 'Teff', 'logg', 'feh', and in form (val, err)