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 astrobasis.models import GaiaSourceFile, GAIADR2 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 os import glob import logging def load_gaia_bulk(): path='/data/Gaia/gaia_source/csv/' batch_size = 500 gaia_empty=GaiaSourceFile.objects.filter(status__exact='empty') for gaia in gaia_empty: srcs = gaia.gaiadr2_set.all() if(srcs): srcs.delete() print("Clear ",gaia.filename," back ref: ",len(srcs)) filepath=path+gaia.filename+'.gz' data = astropy.table.Table.read(filepath, format='ascii.csv',encoding='latin1') gaia.nrows = len(data) gaia.save() print("Bulk create for %s" % gaia.filename) objs = (GAIADR2(filename=gaia, ra=data[i]['ra'], dec=data[i]['dec'], name=data[i]['designation'], solution_id = data[i]['solution_id'], source_id = data[i]['source_id'], ref_epoch = data[i]['ref_epoch'], ra_error = data[i]['ra_error'], dec_error = data[i]['dec_error'], parallax = data[i]['parallax'], parallax_error = data[i]['parallax_error'], pmra = data[i]['pmra'], pmra_error = data[i]['pmra_error'], pmdec = data[i]['pmdec'], pmdec_error = data[i]['pmdec_error'], phot_g_mean_mag = data[i]['phot_g_mean_mag'], phot_bp_mean_mag = data[i]['phot_bp_mean_mag'], phot_rp_mean_mag = data[i]['phot_rp_mean_mag'],) for i in range(len(data))) GAIADR2.objects.bulk_create(objs,batch_size) pass class Command(BaseCommand): help = 'Initiates data dase' def handle(self, *args, **options): load_gaia_bulk()