srg/artsurvey/management/commands/00_artsurvey_all.py
2024-04-26 12:43:00 +03:00

118 lines
3.7 KiB
Python

from django.core.management.base import BaseCommand, CommandError
from django.db.models import Q
from datetime import date
import datetime
from django.utils import timezone
import astropy
from astropy.io import ascii
import pandas as pd
import pymysql
from sqlalchemy import create_engine
import sys
from heasarc.models import HeasarcBase
from artsurvey.models import ArtSurveySource, ArtSurvey, EnergyBand
from srglib.utils import load_vizier_nvss
from srglib.utils import load_vizier_first
from srglib.utils import load_vizier_vlass
from srglib.utils import load_vizier_sumss
from astrobasis.models import GAIADR3
from srglib.utils import find_counterparts
from srglib.utils import load_vizier_allwise
from srglib.utils import load_simbad_for_skymap_sources
from srglib.utils import load_vizier_bj
from srglib.utils import load_vizier_gaia_dr3
#from srglib.utils import select_turkpossible
def do_all(survey_version,survey_name,slug="E0"):
minrad=40
maxdist=600
#bad_category = Category.objects.get(slug='false')
#minrad=180
#maxdist=640
try:
band = EnergyBand.objects.get(slug=slug)
print("use EnergyBand {}".format(band))
except EnergyBand.DoesNotExist:
print("EnergyBand not found")
return
try:
survey = ArtSurvey.objects.get(Q(version=survey_version) & Q(name=survey_name))
print("use ArtSurvey {}".format(survey))
except ArtSurvey.DoesNotExist:
print("ArtSurvey {} not found".format(survey_version))
return
srcs = survey.artsurveysource_set.all().filter(band=band).filter(log_ml_nfalse__lt=-2.3206)
print("Selected {} from {} {}".format(len(srcs),survey,band))
#sys.exit()
load_simbad_for_skymap_sources(srcs,minrad=minrad,maxdist=maxdist)
load_vizier_allwise(srcs, minrad=minrad, maxdist=maxdist)
load_vizier_bj(srcs, minrad=minrad, maxdist=60)
load_vizier_gaia_dr3(srcs, minrad=minrad, maxdist=60)
load_vizier_nvss(srcs, minrad=minrad, maxdist=maxdist)
load_vizier_first(srcs, minrad=minrad, maxdist=maxdist)
load_vizier_sumss(srcs, minrad=minrad, maxdist=maxdist)
load_vizier_vlass(srcs, minrad=minrad, maxdist=maxdist)
find_counterparts(srcs, GAIADR3.objects.all(), "gaia3", maxdist=maxdist, minrad=minrad)
"""
for src in srcs:
src.heasarc.clear()
find_counterparts(srcs, HeasarcBase.objects.all(),'heasarc', maxdist=maxdist, minrad=minrad)
"""
class Command(BaseCommand):
help = 'Initiates data dase'
# def add_arguments(self, parser):
# parser.add_argument('poll_id', nargs='+', type=int)
def handle(self, *args, **options):
#do_all(12.5)
#do_all(1.7)
#do_all(2.7)
#do_all(1234.0)
#do_all(3.0)
#do_all(4.0)
#do_all(34.0,"34")
#do_all(5.0,"5")
#do_all(12345.0,"1-5")
#do_all(0.12,"L20")
#do_all(0.12,"L20p1")
#do_all(0.12,"L20p2")
#do_all(0.12,"L20p3")
#do_all(0.12,"L20p4")
#do_all(0.13,"L20rb")
#do_all(0.15,"L20rb_ml")
#do_all(12345.12,"1-5",slug="E5")
#do_all(12345.13,"1-5",slug="E5")
do_all(12345.14,"1-5",slug="E5")
#names=['GP025','GP020','GP015','GP010','GP005','GP000','GP355','GP350','GP345']
#names=['GP055','GP060','GP065']
#names=['GP000','GP005','GP010','GP015','GP020','GP025','GP030','GP035','GP040','GP045','GP050','GP055','GP060','GP065','GP070','GP085','GP090',
# 'GP270','GP275','GP280','GP285','GP290','GP295','GP300','GP305','GP310','GP315','GP320','GP325']
#names=['GP315']
names=['GP330','GP335','GP340']
"""
for name in names:
do_all(0.11,name)
"""
self.stdout.write(self.style.SUCCESS('Done'))