diff --git a/db.sqlite3 b/db.sqlite3 index a062c423e8ed260ffa4e6f634529fc1416eb9fb9..84a7f50e08912e8476c470186a338b42043db3fe 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/imagedb/models.py b/imagedb/models.py index f338f91a6dcf932464ca41415a1c6696c6a79480..a2a487e9023793342c7e6fa5ccf81f4502005292 100644 --- a/imagedb/models.py +++ b/imagedb/models.py @@ -46,7 +46,14 @@ class ImageType(CompositeField): choices=[(d,d) for d in IMAGE_SECOND_GROUP] ) - + +class ImageStatistics(models.Model): + min = models.FloatField() + max = models.FloatField() + mean = models.FloatField() + stddev = models.FloatField() + median = models.FloatField() + class ImageBaseFrame(models.Model): exposureTime = models.FloatField() @@ -54,6 +61,12 @@ class ImageBaseFrame(models.Model): naxis1 = models.PositiveIntegerField() naxis2 = models.PositiveIntegerField() imageType = ImageType() + stats = models.OneToOneField( + ImageStatistics, + models.SET_NULL, + blank=True, + null=True, + ) class Meta: abstract = True @@ -67,12 +80,16 @@ class Instrument(models.Model): class Pointing(CompositeField): rightAscension = models.FloatField() declination = models.FloatField() - pointingAngle = models.FloatField() + orientation = models.FloatField() class ImageSpaceFrame(ImageBaseFrame): observationDateTime = models.DateTimeField() - instrument = models.ForeignKey(Instrument, on_delete=models.CASCADE) + observationId = models.PositiveIntegerField() + ditherNumber = models.PositiveSmallIntegerField() + instrument = models.ForeignKey(Instrument, + on_delete=models.CASCADE, + related_name='+') commandedPointing = Pointing() class Meta: @@ -161,6 +178,21 @@ NISP_GRISM_WHEEL = ( 'CLOSE' ) + +class DataContainer(models.Model): + fileFormat = models.CharField( + max_length=10 + ) + formatIdentifier = models.CharField( + max_length=20 + ) + formatVersion = models.CharField( + max_length=20 + ) + url = models.URLField() + + + class NispRawFrame(ImageSpaceFrame): filterWheelPosition = models.CharField( max_length=10, @@ -171,6 +203,9 @@ class NispRawFrame(ImageSpaceFrame): max_length=10, choices = [(d,d) for d in NISP_GRISM_WHEEL] ) + frameFile = models.OneToOneField(DataContainer, + on_delete=models.CASCADE) +