Skip to content

Commit 1da4301

Browse files
committed
Add ELEPHANT hostless detection as science module
1 parent 1af7d51 commit 1da4301

3 files changed

Lines changed: 52 additions & 2 deletions

File tree

bin/ztf/archive_hostless.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ def main():
151151
cutout_template = get_cutout(cutout=alert["cutoutTemplate"])
152152

153153
text = """
154-
*Object ID*: [{}](https://fink-portal.org/{})
154+
*Object ID*: [{}](https://ztf.fink-portal.org/{})
155155
*Scores:*\n- Science: {:.2f}\n- Template: {:.2f}
156156
*Fink class*: {}
157157
""".format(

fink_broker/rubin/science.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@
2323

2424
from fink_broker.common.tester import spark_unit_tests
2525

26+
from fink_science.rubin.hostless_detection.processor import run_potential_hostless
27+
2628
# Import of science modules
2729
from fink_science.rubin.snn.processor import snn_ia_elasticc
2830
from fink_science.rubin.cats.processor import predict_nn
@@ -374,6 +376,11 @@ def apply_science_modules(df: DataFrame, tns_raw_output: str = "") -> DataFrame:
374376
df = df.withColumn("misc", F.struct(*misc_struct))
375377
df = df.drop(*misc_struct)
376378

379+
_LOG.info("New processor: ELEPHANT Hostless module")
380+
df = df.withColumn(
381+
"elephant_kstest",
382+
run_potential_hostless(df["cutoutScience"], df["cutoutTemplate"]),
383+
)
377384
# Drop temp columns
378385
df = df.drop(*expanded)
379386

fink_broker/ztf/science.py

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323

2424
from fink_broker.common.tester import spark_unit_tests
2525

26+
from fink_filters.ztf.classification import extract_fink_classification
27+
from fink_science.ztf.hostless_detection.processor import run_potential_hostless
28+
2629
# Import of science modules
2730
from fink_science.ztf.random_forest_snia.processor import rfscore_sigmoid_full
2831

@@ -347,7 +350,6 @@ def apply_science_modules(df: DataFrame, tns_raw_output: str = "") -> DataFrame:
347350
.withColumn("lc_features_r", df["lc_features"].getItem("2"))
348351
.drop("lc_features")
349352
)
350-
351353
# Apply level one processor: fast transient
352354
_LOG.info("New processor: magnitude rate for fast transient")
353355
mag_rate_args = [
@@ -421,6 +423,47 @@ def apply_science_modules(df: DataFrame, tns_raw_output: str = "") -> DataFrame:
421423

422424
df = df.withColumn("slsn_score", superluminous_score(*args))
423425

426+
_LOG.info("New processor: ELEPHANT Hostless module")
427+
fink_classifier_cols = [
428+
"cdsxmatch",
429+
"roid",
430+
"mulens",
431+
"snn_snia_vs_nonia",
432+
"snn_sn_vs_all",
433+
"rf_snia_vs_nonia",
434+
"candidate.ndethist",
435+
"candidate.drb",
436+
"candidate.classtar",
437+
"candidate.jd",
438+
"candidate.jdstarthist",
439+
"rf_kn_vs_nonkn",
440+
"tracklet",
441+
]
442+
df = df.withColumn("finkclass", extract_fink_classification(*fink_classifier_cols))
443+
df = df.withColumn("tnsclass", F.lit("Unknown"))
444+
df = df.withColumn(
445+
"elephant_kstest",
446+
F.slice(
447+
run_potential_hostless(
448+
df["cmagpsf"],
449+
df["cutoutScience.stampData"],
450+
df["cutoutTemplate.stampData"],
451+
df["snn_snia_vs_nonia"],
452+
df["snn_sn_vs_all"],
453+
df["rf_snia_vs_nonia"],
454+
df["rf_kn_vs_nonkn"],
455+
df["finkclass"],
456+
df["tnsclass"],
457+
df["candidate.jd"] - df["candidate.jdstarthist"],
458+
df["roid"],
459+
),
460+
1,
461+
2,
462+
),
463+
)
464+
expanded.extend(["finkclass", "tnsclass"])
465+
df = df.drop(*expanded)
466+
424467
# Drop temp columns
425468
df = df.drop(*expanded)
426469

0 commit comments

Comments
 (0)