Removed Survey model, it is now a field in the Pixel model; all code rewritten for the change; added set_contaminated management command to set the source contamination flag; added CatalogSource model for the art-xc source catalog storage, the table is filled by the set_contaminated management script; the upper limit view now outputs extra fields, including a list of sources and their properties within 120 arcseconds
This commit is contained in:
65
models.py
65
models.py
@@ -6,40 +6,49 @@ from django.db.models import UniqueConstraint
|
||||
|
||||
|
||||
|
||||
class Survey(models.Model):
|
||||
|
||||
number = models.IntegerField(unique=True)
|
||||
|
||||
def __str__(self):
|
||||
return f"Survey {self.number}"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class Pixel(models.Model):
|
||||
|
||||
#id = models.AutoField(primary_key=True) # ~2 million pixels for a 4096 survey
|
||||
#id = models.AutoField(primary_key=True) # ~200 million pixels for a 4096 survey
|
||||
# no need to set explicitly
|
||||
# WILL ONLY HOLD 10 SURVEYS AS AN AUTOFIELD (IntegerField, ~2 billion limit)
|
||||
# BIGAUTOFIELD WILL BE REQUIRED FOR MORE!
|
||||
|
||||
survey = models.SmallIntegerField()
|
||||
|
||||
survey = models.ForeignKey(
|
||||
Survey,
|
||||
on_delete=models.CASCADE,
|
||||
related_name='pixels',
|
||||
default=0
|
||||
)
|
||||
hpid = models.IntegerField(db_index=True) # up to over 200 million
|
||||
|
||||
hpid = models.IntegerField(db_index=True) # up to over 200 million
|
||||
counts = models.IntegerField() # f4, up to ~44k integer: 2 byte too small
|
||||
|
||||
counts = models.IntegerField() # f4, up to ~44k integer: 2 byte too small
|
||||
|
||||
exposure = models.FloatField() # f4, up to ~13300 float
|
||||
exposure = models.FloatField() # f4, up to ~13300 float
|
||||
|
||||
contaminated = models.BooleanField(default=False)
|
||||
|
||||
class Meta:
|
||||
constraints = [
|
||||
UniqueConstraint(fields=['survey','hpid'], name='unique_hpid_per_survey'),
|
||||
]
|
||||
|
||||
def __str__(self):
|
||||
return f"Pixel {self.id} (Survey {self.survey.number})"
|
||||
return f"Pixel {self.id} hpid {self.hpid} (Survey {self.survey.number})"
|
||||
|
||||
|
||||
|
||||
|
||||
class CatalogSource(models.Model):
|
||||
|
||||
srcid = models.SmallIntegerField(primary_key=True)
|
||||
|
||||
name = models.CharField(max_length=21)
|
||||
|
||||
ra_deg = models.FloatField()
|
||||
|
||||
dec_deg = models.FloatField()
|
||||
|
||||
pos_error = models.FloatField()
|
||||
|
||||
significance = models.FloatField()
|
||||
|
||||
flux = models.FloatField()
|
||||
|
||||
flux_error = models.FloatField()
|
||||
|
||||
catalog_name = models.CharField(max_length=28)
|
||||
|
||||
new_xray = models.BooleanField(default=False)
|
||||
|
||||
source_type = models.CharField(max_length=13)
|
Reference in New Issue
Block a user