45 lines
2.1 KiB
Python
45 lines
2.1 KiB
Python
from ErositaDailySourceCatalogues import views as eviews
|
|
from ErositaDailySourceCatalogues.models import *
|
|
from genericsource.models import *
|
|
from srglib import genericsourceutils as gsu
|
|
from srglib.load_transinets import SurveyCatName
|
|
from django.db.models import F, Q, Max, Subquery, OuterRef, Min, Count, Value
|
|
from functools import reduce
|
|
|
|
|
|
|
|
def getalltransients():
|
|
query = reduce(lambda a, b: a | b, [Q(id__in=GenericCatalog.objects.get(name=survname).genericsource_set.all()) for survname in SurveyCatName.values()])
|
|
return ErositaSource.objects.filter(query)
|
|
|
|
|
|
def get_transients(cat, tcat):
|
|
cat = eviews.create_annotations(cat)
|
|
cat = eviews.addErositaSrcannotattion(cat)
|
|
cat = cat.filter(ratio_to_maxxflux > 1.1)
|
|
removed = ErositaSource.objects.filter(tcat.genericsource_set.exclude(id__in=cat))
|
|
tcat.genericsource_set.remove(tcat.genericsource_set.all())
|
|
|
|
|
|
def set_transient_data(ecat):
|
|
ecat = eviews.create_annotations(ecat)
|
|
ecat = eviews.addErositaSrcannotattion(ecat)
|
|
ecat = ecat.filter(ratio_to_maxxflux__gt=1.)
|
|
for src in ecat:
|
|
try:
|
|
ErositaTransient.objects.create(src=src, plx=src.plx, plxe=src.plxe,
|
|
z=src.ssz if src.ssz else src.sdssz,
|
|
ssep=src.ssep,
|
|
sname=src.sname if src.sname else "",
|
|
ztfcl=src.ztfcl if src.ztfcl else "",
|
|
ztfnm=src.ztfnm if src.ztfnm else "",
|
|
zsep=src.zsep, plx_sep=src.plx_sep,
|
|
plx_mag=src.plx_mag,
|
|
sclass=src.sclass if src.sclass else "",
|
|
ratio_to_maxxflux=src.ratio_to_maxxflux,
|
|
ratio_to_minxflux=src.ratio_to_minxflux)
|
|
except:
|
|
print(src.name, " already has transints")
|
|
else:
|
|
print("transient for %s created" % src.name)
|