antares-devkit 0.6.5__tar.gz → 0.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/PKG-INFO +1 -1
  2. antares_devkit-0.7.0/antares_devkit/filters/decam_shadow/__init__.py +75 -0
  3. antares_devkit-0.7.0/antares_devkit/filters/uniform_random_sample/__init__.py +29 -0
  4. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/utils.py +2 -0
  5. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/pyproject.toml +1 -1
  6. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/LICENSE.txt +0 -0
  7. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/README.md +0 -0
  8. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/__init__.py +0 -0
  9. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/bad_detection/__init__.py +0 -0
  10. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/bad_seeing/__init__.py +0 -0
  11. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/crash_filter/__init__.py +0 -0
  12. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/desi_target/__init__.py +0 -0
  13. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/dwarf_nova_outburst/__init__.py +0 -0
  14. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/ecl_transient_1/__init__.py +0 -0
  15. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/ecl_transient_2/__init__.py +0 -0
  16. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/extragalactic/__init__.py +0 -0
  17. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/highamp/__init__.py +0 -0
  18. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/highfluxchange/__init__.py +0 -0
  19. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/highsnr/__init__.py +0 -0
  20. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/if_anomaly_detection/__init__.py +0 -0
  21. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/if_anomaly_detection/data/__init__.py +0 -0
  22. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/if_anomaly_detection/data/paleo2_106IFmodel_472727objs_nest=1000_cont=0.001_transf.pkl +0 -0
  23. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/imbh/__init__.py +0 -0
  24. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/inm31/__init__.py +0 -0
  25. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/laiss_rfc_ad_filter/__init__.py +0 -0
  26. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/laiss_rfc_ad_filter/data/__init__.py +0 -0
  27. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/laiss_rfc_ad_filter/data/cls=binary_n_estimators=100_max_depth=35_rs=11_max_feats=35_cw=balanced.pkl +0 -0
  28. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/lsst_ddf/__init__.py +0 -0
  29. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/lsst_transient_quality_scimma/__init__.py +0 -0
  30. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/malanchev_anomaly_transient_dmdt/__init__.py +0 -0
  31. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/malanchev_anomaly_transient_dmdt/data/__init__.py +0 -0
  32. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/malanchev_anomaly_transient_dmdt/data/malanchev_ssiforest_v1.pickle +0 -0
  33. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/malanchev_features_v1/__init__.py +0 -0
  34. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/microlensing/__init__.py +0 -0
  35. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/novtest/__init__.py +0 -0
  36. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/nuclear_transient/__init__.py +0 -0
  37. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/nuttela_tao/__init__.py +0 -0
  38. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/persistent_dimmers/__init__.py +0 -0
  39. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/random_tagger_filter/__init__.py +0 -0
  40. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/recent_reddening/__init__.py +0 -0
  41. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/refitt_newsources_snrcut/__init__.py +0 -0
  42. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/rubin_NovTest_soraisam/__init__.py +0 -0
  43. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/sample_filter/__init__.py +0 -0
  44. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/shadow_virgo/__init__.py +0 -0
  45. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/siena_mag_coord_cut/__init__.py +0 -0
  46. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/sso/__init__.py +0 -0
  47. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/sub_lum/__init__.py +0 -0
  48. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/superphot_plus_v1/__init__.py +0 -0
  49. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/superphot_plus_ztf_v3/__init__.py +0 -0
  50. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/test_dev_all/__init__.py +0 -0
  51. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/test_dev_lsst/__init__.py +0 -0
  52. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/test_dev_ztf/__init__.py +0 -0
  53. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/vpdf/__init__.py +0 -0
  54. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/vpdf/data/__init__.py +0 -0
  55. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/vpdf/data/matheson_percent_grid_v1 +0 -0
  56. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/young_extragalactic_candidate/__init__.py +0 -0
  57. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/filters/young_rubin_transients_soraisam/__init__.py +0 -0
  58. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/antares_devkit/models.py +0 -0
  59. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/test/Dockerfile +0 -0
  60. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/test/__init__.py +0 -0
  61. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/test/conftest.py +0 -0
  62. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/test/data/large_locus.py +0 -0
  63. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/test/data/small_locus.py +0 -0
  64. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/test/unit/antares_devkit/filters/test_test_dev_all.py +0 -0
  65. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/test/unit/antares_devkit/filters/test_test_dev_lsst.py +0 -0
  66. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/test/unit/antares_devkit/filters/test_test_dev_ztf.py +0 -0
  67. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/test/unit/antares_devkit/test_models.py +0 -0
  68. {antares_devkit-0.6.5 → antares_devkit-0.7.0}/test/unit/test_filters.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: antares-devkit
3
- Version: 0.6.5
3
+ Version: 0.7.0
4
4
  Summary: Provides tools and utility methods to write and debug ANTARES filters with Python.
5
5
  Keywords: antares,devkit,filter development
6
6
  Author-Email: NSF NOIRLab ANTARES Team <antares@noirlab.edu>
@@ -0,0 +1,75 @@
1
+ """Description
2
+ This filter finds locus located within a radius of 1.1 deg from the center of the Shadow Project's Virgo, Hydra, Fornax, Antlia, and Dorado Pointings.
3
+ """
4
+ from antares_devkit.models import BaseFilter
5
+
6
+ class InDecamShadow(BaseFilter):
7
+ NAME = 'in_decam_shadow' #for this default filter, name is same as its tag
8
+
9
+ SLACK_CHANNEL = "#filter-in-decam-shadow"
10
+
11
+ ## bare absolute minimum alert properties proving it's good to go
12
+ REQUIRED_ALERT_PROPERTIES = [
13
+ 'ant_ra',
14
+ 'ant_dec',
15
+ 'ant_survey'
16
+ ]
17
+
18
+ OUTPUT_TAGS = [
19
+ {
20
+ 'name': 'in_decam_shadow',
21
+ 'description': 'Locus is along the line of sight to the Virgo, Antlia, Dorado, Fornax, Hydra, Virgo fields covered by the DECam Shadow Project',
22
+ }
23
+ ]
24
+
25
+ def _run(self, locus):
26
+ import numpy as np
27
+ from astropy import units as u
28
+ from astropy.coordinates import SkyCoord
29
+ if locus.alert.properties['ant_survey'] == 2: #be sure we don't work with upper limits
30
+ #print('upper limit')
31
+ return
32
+
33
+ if locus.alert.properties['ant_survey'] == 4:
34
+ #print(locus.alert.properties['lsst_diaSource_ssObjectId'], locus.alert.properties['lsst_diaSource_ssObjectId'] != 0, 'lsst_diaSource_ssObjectId')
35
+ if (locus.alert.properties['lsst_diaSource_ssObjectId'] != 0) is True:
36
+ return
37
+ elif locus.alert.properties['ant_survey'] == 1:
38
+ #print(locus.alert.properties['ztf_ssnamenr'], locus.alert.properties['ztf_ssnamenr'] !='null', 'ztf_ssnamenr')
39
+ if locus.alert.properties['ztf_ssnamenr'] != 'null':
40
+ return
41
+
42
+ # return
43
+ ra = locus.alert.properties['ant_ra']
44
+ dec = locus.alert.properties['ant_dec']
45
+ #https://github.com/lsstshadow/shadowpointings/tree/main
46
+ shadow_virgo_ra = np.array([187.7014, 186.0754, 187.9486, 189.4263, 189.1219, 187.4805,
47
+ 185.9601, 187.6007, 186.0131, 184.8111, 184.3502, 183.9883,
48
+ 184.4658, 186.3005, 191.0718, 190.5631, 189.1516, 188.7788,
49
+ 186.6354, 185.6507, 182.4151, 193.2665, 189.5427, 190.6638,
50
+ 193.4287, 188.2634, 185.2524, 188.0598, 193.0875, 191.0943])
51
+ shadow_virgo_dec = np.array([12.46, 13.4965, 14.307, 13.3041, 11.295, 10.4477,
52
+ 11.6469, 8.4389, 7.1655, 5.7578, 12.8014, 7.6415,
53
+ 14.6628, 15.364, 12.0456, 10.0351, 8.9448, 6.8992,
54
+ 5.3375, 8.9489, 13.7313, 8.2527, 4.8363, 2.8801,
55
+ 1.8786, 2.356, 3.7762, 0.1955, -1.1488, -0.0399])
56
+ shadow_antlia_ra = np.array([ 157.3975])
57
+ shadow_antlia_dec = np.array([-35.3325])
58
+ shadow_dorado_ra = np.array([ 71.4476, 66.7167, 63.6977, 65.9529, 62.6324])
59
+ shadow_dorado_dec = np.array([-59.2477, -55.0722, -55.6902, -57.0202, -57.7644])
60
+ shadow_fornax_ra = np.array([ 54.5484, 54.1655, 52.4792, 52.8626, 54.9590, 56.6247,
61
+ 56.2302, 52.1175, 51.1123, 50.5994, 55.8479, 58.3521,
62
+ 53.6473, 51.4467, 63.1329])
63
+ shadow_fornax_dec = np.array([-35.5388, -33.7261, -34.8784, -36.6898, -37.3477, -36.1969,
64
+ -34.3845, -33.0674, -37.8454, -35.8702, -32.5273, -34.962,
65
+ -31.6796, -31.2712, -32.3313])
66
+ shadow_hydra_ra = np.array([ 159.2305, 159.2126, 157.6973])
67
+ shadow_hydra_dec = np.array([-27.5186, -25.3493, -29.1417])
68
+ shadow_all_ra = np.hstack((shadow_virgo_ra, shadow_antlia_ra, shadow_dorado_ra, shadow_fornax_ra, shadow_hydra_ra))
69
+ shadow_all_dec = np.hstack((shadow_virgo_dec, shadow_antlia_dec, shadow_dorado_dec, shadow_fornax_dec, shadow_hydra_dec))
70
+ field_centers = SkyCoord(ra=shadow_all_ra*u.deg, dec=shadow_all_dec*u.deg)
71
+ c = SkyCoord(ra*u.deg, dec*u.deg, frame='icrs')
72
+ sep = c.separation(field_centers)
73
+ #print(sep.min())
74
+ if (sep.deg < 1.1).any(): #DECam FOV = 2.2 deg diameter
75
+ locus.tag('in_decam_shadow')
@@ -0,0 +1,29 @@
1
+ from antares_devkit.models import BaseFilter
2
+
3
+ class UniformRandomSample(BaseFilter):
4
+ """
5
+ This filter aims to uniformly and randomly select 1% of all LSST alerts.
6
+ This is implemented by filtering for diaSourceId % 113 == 0, which roughly
7
+ selects everything 100th alert in chronological order. The 113 value is chosen
8
+ to be close to but arbitrarily different from 100, to avoid any potential
9
+ collisions with processing that might happen on every 100th alert.
10
+ """
11
+ SLACK_CHANNEL = "#filter-uniformrandomsample"
12
+ TRIGGERING_SURVEY = "lsst"
13
+
14
+ REQUIRED_ALERT_PROPERTIES = [
15
+ "lsst_diaSource_diaSourceId"
16
+ ]
17
+
18
+ OUTPUT_LOCUS_PROPERTIES = []
19
+ OUTPUT_LOCUS_TAGS = [{
20
+ 'name': 'uniform_random_sample',
21
+ 'description': '1% of all LSST Alerts uniformly and randomly sampled'
22
+ }]
23
+
24
+ def _run(self, locus):
25
+ """
26
+ If a LSST alert's diaSourceId % 113 == 0, tag with 'uniform_random_sample'
27
+ """
28
+ if locus.alert.properties['lsst_diaSource_diaSourceId'] % 113 == 0:
29
+ locus.tag("uniform_random_sample")
@@ -24,6 +24,7 @@ def get_filters_path():
24
24
  "IF_anomaly_detection": "antares_devkit.filters.if_anomaly_detection", # ["numpy", "pandas", "sklearn", "astropy"]
25
25
  "IMBH": "antares_devkit.filters.imbh",
26
26
  "In_LSSTDDF": "antares_devkit.filters.lsst_ddf", # ["astropy", "numpy"]
27
+ "InDecamShadow": "antares_devkit.filters.decam_shadow", # ["astropy", "numpy"]
27
28
  "InM31": "antares_devkit.filters.inm31",
28
29
  "LAISS_RFC_AD_filter": "antares_devkit.filters.laiss_rfc_ad_filter", # ["astropy", "timeout_decorator", "alerce", "numpy", "pandas", "matplotlib", "astro_ghost", "sklearn", "scipy"]
29
30
  "AnomalyTransientDmDt": "antares_devkit.filters.malanchev_anomaly_transient_dmdt", # ["numpy", "astropy", "light_curve"]
@@ -51,6 +52,7 @@ def get_filters_path():
51
52
  "rubin_NovTest_soraisam": "antares_devkit.filters.rubin_NovTest_soraisam",
52
53
  "young_rubin_transients_soraisam": "antares_devkit.filters.young_rubin_transients_soraisam",
53
54
  "LsstTransientQualityFilterScimma": "antares_devkit.filters.lsst_transient_quality_scimma",
55
+ "UniformRandomSample": "antares_devkit.filters.uniform_random_sample",
54
56
  }
55
57
 
56
58
 
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
6
6
 
7
7
  [project]
8
8
  name = "antares-devkit"
9
- version = "0.6.5"
9
+ version = "0.7.0"
10
10
  description = "Provides tools and utility methods to write and debug ANTARES filters with Python."
11
11
  readme = "README.md"
12
12
  requires-python = ">=3.9"
File without changes