srg/heasarc/management/commands/00_heasarc_median_error.py
2024-04-25 17:50:51 +03:00

52 lines
1.8 KiB
Python

from django.core.management.base import BaseCommand, CommandError
from datetime import date
from heasarc.models import INPUT_DATA_DIR
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
from heasarc.tdat import tDat
from heasarc.models import HeasarcTable, TableColumn, HeasarcXMMSL2, HeasarcObjectClass
from heasarc.models import Heasarc4FGL
from heasarc.models import HeasarcIntegral2020, HeasarcSwiftBAT105m, HeasarcMAXI7YR, HeasarcRASS2RXS, Heasarc4FGL
from heasarc.models import NSIDE_SOURCES, ORDER
from monthplan.models import NSIDE_PLATES
from astropy_healpix import HEALPix
from astropy.coordinates import SkyCoord # High-level coordinates
from astropy.coordinates import ICRS, Galactic, FK4, FK5 # Low-level frames
from astropy.coordinates import Angle, Latitude, Longitude # Angles
import astropy.units as u
import pandas as pd
import numpy as np
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):
srcs = Heasarc4FGL.objects.all()
error=[]
for s in srcs:
error.append(s.error_radius)
if(s.error_radius> 4000):
print(s,s.error_radius)
s = pd.DataFrame(error)
print("total {} median {:.1f} mean {:.1f} min {:.1f} max {:.1f}".format(srcs.count(),np.median(error),np.mean(error),np.min(error),np.max(error)))
#srcs = HeasarcIntegral2020.objects.all().filter(name__contains="SLX")
#for s in srcs:
# print(s.name,s.ra,s.dec,s.error_radius)
self.stdout.write(self.style.SUCCESS('Done'))