From 24b340c0cbfd3d8401fc70eea8c5b5b16921b707 Mon Sep 17 00:00:00 2001 From: Joey Chatelain <32683393+jchate6@users.noreply.github.com> Date: Thu, 20 Jun 2024 17:18:12 -0700 Subject: [PATCH 1/2] Quick patch to prevent returning incorrect numbered asteroids when requesting preliminary designations --- simbad2k/simbad2k.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/simbad2k/simbad2k.py b/simbad2k/simbad2k.py index eff5de2..2330c33 100755 --- a/simbad2k/simbad2k.py +++ b/simbad2k/simbad2k.py @@ -114,7 +114,13 @@ 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} + 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: From dd676347780883979a33b805ef67444a706aea7d Mon Sep 17 00:00:00 2001 From: Joey Chatelain <32683393+jchate6@users.noreply.github.com> Date: Thu, 20 Jun 2024 17:29:41 -0700 Subject: [PATCH 2/2] Add comments --- simbad2k/simbad2k.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/simbad2k/simbad2k.py b/simbad2k/simbad2k.py index 2330c33..ad94a96 100755 --- a/simbad2k/simbad2k.py +++ b/simbad2k/simbad2k.py @@ -114,6 +114,11 @@ def get_result(self): schemes = [*self.scheme_mapping] for scheme in schemes: for query_param in self.query_params_mapping[scheme]: + # 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)}