92 lines
2.8 KiB
Python
92 lines
2.8 KiB
Python
from django.core.management.base import BaseCommand, CommandError
|
|
from datetime import datetime as dt
|
|
|
|
from datetime import date
|
|
from django.utils import dateparse
|
|
from logbook.models import LogBookPlan, LogBookDay
|
|
from plan.models import INPUT_DATA_DIR
|
|
from plan.models import LaunchDate
|
|
|
|
from srglib.utils import make_source_name
|
|
|
|
from monthplan.models import Head, Observation, Seance, Correction, Scan, Survey, FlightPlan
|
|
|
|
from astropy.io import fits
|
|
|
|
import datetime
|
|
from django.utils import timezone
|
|
|
|
|
|
from astropy.io import fits
|
|
import pandas as pd
|
|
from pandas import ExcelWriter
|
|
from pandas import ExcelFile
|
|
#import xlrd
|
|
from astropy.table import Table
|
|
|
|
import math
|
|
|
|
from django.db.models import Q
|
|
|
|
def find_closest(now, closest_greater_qs, closest_less_qs):
|
|
try:
|
|
try:
|
|
closest_greater = closest_greater_qs[0]
|
|
except IndexError:
|
|
closest = closest_less_qs[0]
|
|
|
|
try:
|
|
closest_less = closest_less_qs[0]
|
|
except IndexError:
|
|
closest = closest_greater_qs[0]
|
|
except IndexError:
|
|
raise self.model.DoesNotExist("There is no closest object"
|
|
" because there are no objects.")
|
|
if closest_greater.dtime - now > now - closest_less.dtime:
|
|
closest = closest_less
|
|
else:
|
|
closest = closest_greater
|
|
return closest.ra, closest.dec
|
|
|
|
class Command(BaseCommand):
|
|
help = 'Initiates data base'
|
|
|
|
# def add_arguments(self, parser):
|
|
# parser.add_argument('poll_id', nargs='+', type=int)
|
|
|
|
def handle(self, *args, **options):
|
|
name = make_source_name('SRG A',0.87,45.0)
|
|
print(name)
|
|
return
|
|
now = timezone.localtime(timezone.now())
|
|
print(now)
|
|
ra='n/a'
|
|
dec='n/a'
|
|
request_path='load'
|
|
try:
|
|
surveys = Survey.objects.filter(Q(start__lte=now) & Q(stop__gte=now))
|
|
# take first element only:
|
|
for survey in surveys:
|
|
print(survey.ra_p)
|
|
target = survey.target
|
|
obsid = survey.experiment
|
|
url = survey.get_absolute_url()
|
|
ra="%.4f" % survey.ra_p
|
|
dec="%.4f" % survey.dec_p
|
|
mode='Survey'
|
|
if request_path == "load":
|
|
path=list(survey.surveypath_set.all().values('ra', 'dec'))[::500]
|
|
|
|
closest_greater_qs = survey.surveypath_set.filter(dtime__gt=now).order_by('dtime')
|
|
closest_less_qs = survey.surveypath_set.filter(dtime__lt=now).order_by('-dtime')
|
|
closest_ra, closest_dec = find_closest(now, closest_greater_qs, closest_less_qs)
|
|
ra="%.4f" % closest_ra
|
|
dec="%.4f" % closest_dec
|
|
print("*** closest found ***")
|
|
break
|
|
except NameError as error:
|
|
print('pass',error)
|
|
pass
|
|
|
|
print(ra, dec)
|