diff --git a/simbad2k/simbad2k.py b/simbad2k/simbad2k.py index eff5de2..ad94a96 100755 --- a/simbad2k/simbad2k.py +++ b/simbad2k/simbad2k.py @@ -114,7 +114,18 @@ def get_result(self): schemes = [*self.scheme_mapping] for scheme in schemes: for query_param in self.query_params_mapping[scheme]: - params = {'target_type': self.scheme_mapping[scheme], query_param: self.query} + # astroquery has a very robust matching algorythm for "number" and will return elements for + # asteroid #2000 if you ask for "2000 JD1". We do not want to ask for a number when our object name + # is actually a preliminary designation. + # Numbered objects will not have a designation. + # Comets will have letters in their "numbers" i.e. 12P. + if query_param == 'number' and self.scheme_mapping[scheme] == 'asteroid': + try: + params = {'target_type': self.scheme_mapping[scheme], query_param: int(self.query)} + except ValueError: + return None + else: + params = {'target_type': self.scheme_mapping[scheme], query_param: self.query} result = MPC.query_objects_async(**params).json() ret_dict = {} if len(result) > 1: