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 import numpy.ma as ma from heasarc.tdat import tDat from heasarc.models import HeasarcTable, TableColumn, HeasarcRASS2RXS, HeasarcObjectClass from heasarc.models import NSIDE_SOURCES, ORDER 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 def load_heasarc_table(filename): tdatfile=INPUT_DATA_DIR+'/dump/'+filename data = astropy.table.Table.read(tdatfile, format='ascii.tdat',encoding='latin1') hp = HEALPix(nside=NSIDE_SOURCES, order=ORDER, frame=FK5()) for item in data: healpix = 0 ra = 0.0 dec = 0.0 if not (ma.is_masked(item['ra']) or ma.is_masked(item['dec'])): ra = float(item['ra']) dec = float(item['dec']) crd = SkyCoord(ra, dec, frame=FK5(), unit="deg") healpix = hp.skycoord_to_healpix(crd) print("fk5;circle({}, {},0.01)".format(ra,dec)) pass 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): load_heasarc_table('heasarc_rass2rxs.tdat.gz') return hp = HEALPix(nside=NSIDE_SOURCES, order=ORDER, frame=FK5()) # update healpix only srcs = HeasarcXMMSSC.objects.all() for src in srcs: crd = SkyCoord(src.ra, src.dec, frame=FK5(), unit="deg") src.healpix = hp.skycoord_to_healpix(crd) src.save() self.stdout.write(self.style.SUCCESS('Done'))