61 lines
2.0 KiB
Python
61 lines
2.0 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
|
|
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'))
|