From cc9fc1f1ca435bd147200302cd51fc4ee688665d Mon Sep 17 00:00:00 2001 From: Marco Frailis <marco.frailis@inaf.it> Date: Sat, 13 Oct 2018 20:55:16 +0200 Subject: [PATCH] Cleaning database --- db.sqlite3 | Bin 163840 -> 180224 bytes imagedb/models.py | 41 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 38 insertions(+), 3 deletions(-) diff --git a/db.sqlite3 b/db.sqlite3 index a062c423e8ed260ffa4e6f634529fc1416eb9fb9..84a7f50e08912e8476c470186a338b42043db3fe 100644 GIT binary patch delta 3279 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 RLlf6rlwbfU{}vSp002Xa%|ZYG delta 2439 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 D7siN= diff --git a/imagedb/models.py b/imagedb/models.py index f338f91..a2a487e 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) + -- GitLab