comparison query_tns_aux.py @ 0:a35056104c2c draft default tip

planemo upload for repository https://github.com/esg-epfl-apc/tools-astro/tree/main/tools commit da42ae0d18f550dec7f6d7e29d297e7cf1909df2
author astroteam
date Fri, 13 Jun 2025 13:26:36 +0000
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:a35056104c2c
1 import re
2 import requests
3 # import user_agent
4 from fake_useragent import UserAgent
5
6
7 def query_tns_main_name(sourcename):
8 url = f"https://www.wis-tns.org/search?&discovered_period_value=10&discovered_period_units=years&unclassified_at=0&classified_sne=0&include_frb=0&name={sourcename}&name_like=1&isTNS_AT=all&public=all&ra=&decl=&radius=&coords_unit=arcsec&reporting_groupid%5B%5D=null&groupid%5B%5D=null&classifier_groupid%5B%5D=null&objtype%5B%5D=null&at_type%5B%5D=null&date_start%5Bdate%5D=&date_end%5Bdate%5D=&discovery_mag_min=&discovery_mag_max=&internal_name=&discoverer=&classifier=&spectra_count=&redshift_min=&redshift_max=&hostname=&ext_catid=&ra_range_min=&ra_range_max=&decl_range_min=&decl_range_max=&discovery_instrument%5B%5D=null&classification_instrument%5B%5D=null&associated_groups%5B%5D=null&official_discovery=0&official_classification=0&at_rep_remarks=&class_rep_remarks=&frb_repeat=all&frb_repeater_of_objid=&frb_measured_redshift=0&frb_dm_range_min=&frb_dm_range_max=&frb_rm_range_min=&frb_rm_range_max=&frb_snr_range_min=&frb_snr_range_max=&frb_flux_range_min=&frb_flux_range_max=&num_page=50&display%5Bredshift%5D=1&display%5Bhostname%5D=1&display%5Bhost_redshift%5D=1&display%5Bsource_group_name%5D=1&display%5Bclassifying_source_group_name%5D=1&display%5Bdiscovering_instrument_name%5D=0&display%5Bclassifing_instrument_name%5D=0&display%5Bprograms_name%5D=0&display%5Binternal_name%5D=1&display%5BisTNS_AT%5D=0&display%5Bpublic%5D=1&display%5Bend_pop_period%5D=0&display%5Bspectra_count%5D=1&display%5Bdiscoverymag%5D=1&display%5Bdiscmagfilter%5D=1&display%5Bdiscoverydate%5D=1&display%5Bdiscoverer%5D=1&display%5Bremarks%5D=0&display%5Bsources%5D=0&display%5Bbibcode%5D=0&display%5Bext_catalogs%5D=0"
9
10 ua = UserAgent()
11 agent = ua.random
12 headers = {'User-Agent': agent}
13
14 resp = requests.get(url, headers=headers)
15 return resp.text
16
17
18 def query_tns_survey_name(sourcename):
19 url = f"https://www.wis-tns.org/search?&discovered_period_value=10&discovered_period_units=years&unclassified_at=0&classified_sne=0&include_frb=0&name=&name_like=1&isTNS_AT=all&public=all&ra=&decl=&radius=&coords_unit=arcsec&reporting_groupid[]=null&groupid[]=null&classifier_groupid[]=null&objtype[]=null&at_type[]=null&date_start[date]=&date_end[date]=&discovery_mag_min=&discovery_mag_max=&internal_name={sourcename}&discoverer=&classifier=&spectra_count=&redshift_min=&redshift_max=&hostname=&ext_catid=&ra_range_min=&ra_range_max=&decl_range_min=&decl_range_max=&discovery_instrument[]=null&classification_instrument[]=null&associated_groups[]=null&official_discovery=0&official_classification=0&at_rep_remarks=&class_rep_remarks=&frb_repeat=all&frb_repeater_of_objid=&frb_measured_redshift=0&frb_dm_range_min=&frb_dm_range_max=&frb_rm_range_min=&frb_rm_range_max=&frb_snr_range_min=&frb_snr_range_max=&frb_flux_range_min=&frb_flux_range_max=&num_page=50&display[redshift]=1&display[hostname]=1&display[host_redshift]=1&display[source_group_name]=1&display[classifying_source_group_name]=1&display[discovering_instrument_name]=0&display[classifing_instrument_name]=0&display[programs_name]=0&display[internal_name]=1&display[isTNS_AT]=0&display[public]=1&display[end_pop_period]=0&display[spectra_count]=1&display[discoverymag]=1&display[discmagfilter]=1&display[discoverydate]=1&display[discoverer]=1&display[remarks]=0&display[sources]=0&display[bibcode]=0&display[ext_catalogs]=0&format=html&edit[type]=&edit[objname]=&edit[id]=&sort=asc&order=name"
20
21 ua = UserAgent()
22 agent = ua.random
23 headers = {'User-Agent': agent}
24
25 resp = requests.get(url, headers=headers)
26 return resp.text
27
28
29 def parse_data(my_text):
30 m = re.findall('(?<=<td class="cell-name"><a href="/object/)(.*)(?=</a></td><td class="cell-reps">)', my_text)
31 if len(m) == 0:
32 main_id = None
33 else:
34 main_id = m[0].split("\">")[1]
35 # main_id = m
36
37 m = re.findall('(?<=<td class="cell-internal_name">)(.*)(?=</td><td class="cell-groups">)', my_text)
38 if len(m) == 0:
39 id_ = None
40 else:
41 id_ = m
42
43 m = re.findall('(?<=<td class="cell-type">)(.*)(?=</td><td class="cell-redshift">)', my_text)
44 if len(m) == 0:
45 otype = None
46 else:
47 otype = m
48
49 m = re.search('(?<=<td class="cell-ra">)(.*)(?=</td><td class="cell-decl">)', my_text)
50 if m:
51 ra = m.group(0)
52 else:
53 ra = None
54
55 m = re.search('(?<=<td class="cell-decl">)(.*)(?=</td><td class="cell-discovery_date">)', my_text)
56 if m:
57 dec = m.group(0)
58 else:
59 dec = None
60
61 m = re.search('(?<=<td class="cell-discovery_date">)(.*)(?=</td><td class="cell-flux">)', my_text)
62 if m:
63 discovery_time = m.group(0)
64 else:
65 discovery_time = None
66
67 return main_id, id_, otype, ra, dec, discovery_time
68
69
70 def get_id_otype_tns(sourcename):
71 my_text = query_tns_survey_name(sourcename)
72 return parse_data(my_text)