Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RCAL-919: Formalize the patches (sky cells) file (e.g., add it as a reference file) #536

Open
wants to merge 12 commits into
base: main
Choose a base branch
from
1 change: 1 addition & 0 deletions changes/536.feature.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Added schema for skycell reference file.
5 changes: 5 additions & 0 deletions src/rad/resources/manifests/datamodels-1.0.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,11 @@ tags:
title: WFI imaging photometric flux conversion data model
description: |-
WFI imaging photometric flux conversion data model
- tag_uri: asdf://stsci.edu/datamodels/roman/tags/reference_files/skycells-1.0.0
schema_uri: asdf://stsci.edu/datamodels/roman/schemas/reference_files/skycells-1.0.0
title: Skycells Reference File Schema
description: |-
This file contains definitions for all the skycells that cover the entire celestial sphere
# Misc
- tag_uri: asdf://stsci.edu/datamodels/roman/tags/associations-1.0.0
schema_uri: asdf://stsci.edu/datamodels/roman/schemas/associations-1.0.0
Expand Down
190 changes: 190 additions & 0 deletions src/rad/resources/schemas/reference_files/skycells-1.0.0.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,190 @@
%YAML 1.1
---
$schema: asdf://stsci.edu/datamodels/roman/schemas/rad_schema-1.0.0
id: asdf://stsci.edu/datamodels/roman/schemas/reference_files/skycells-1.0.0

title: Skycells Reference File Schema

datamodel_name: SkycellsRefModel

type: object
properties:
meta:
title: Metadata for Skycells definitions reference file
description: |
The necessary metadata for the Skycells reference file
allOf:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May be add here
- $ref: asdf://stsci.edu/datamodels/roman/schemas/reference_files/ref_common-1.0.0
and the common fields.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately ref_common has an attribute that is nonsensical for this file, such as instrument.detector (there is no detector that is unique to this reference file).

- type: object
properties:
reftype:
title: Reference File Type
description: |
The capitalized string of the reference file type (e.g., DARK).
type: string
enum: [SKYCELLS]
pedigree:
title: Pedigree
description: |
The pedigree of the reference file (e.g., GROUND).
type: string
enum: [GROUND]
description:
title: Description
description: |
A string describing the reference file, its intended usage, etc.
type: string
author:
title: Author
description: |
The author of who or what created the reference file.
type: string
useafter:
title: Use After Date
description: |
The use after date of the reference file for CRDS best references
matching.
tag: tag:stsci.edu:asdf/time/time-1.*
telescope:
title: Telescope
description: |
The telescope data used to select reference files, e.g. ROMAN for the
Nancy Grace Roman Space Telescope.
anyOf:
- tag: asdf://stsci.edu/datamodels/roman/tags/telescope-1.0.0
- type: string
enum: [ROMAN]
origin:
title: Organization
description: |
The organization responsible for creating the file, e.g. STSCI for the
Space Telescope Science Institute.
type: string
instrument:
type: object
properties:
name:
title: Instrument
description: |
The Wide Field Instrument (WFI).
type: string
enum: [WFI]
nxy_skycell:
title: Number of pixels in both x and y dimensions
description: |
The shape of the skycell is (nxy_skycell, nxy_skycell)
type: integer
skycell_border_pixels:
title: The number of pixels in all directions that overlap with the adjacent skycell.
description: |
Within a projection region, skycells are tiled on the same global pixel grid;
this value indicates how many pixels are overlapped in all directions in this tiling.
type: integer
pixel_scale:
title: The size of a pixel at the tangent point in arcseconds
description: |
The size of the pixel at the tangent point as projected on the sky in linear pixels for
both directions (e.g., it is assumed equal for both directions).
type: number
projection_regions:
tag: tag:stsci.edu:asdf/core/ndarray-1.*
title: Information about each projection region
description: |
A structured array that contains relevant information about all the projection regions that
cover the entire celestial sphere.
datatype:
- name: index
datatype: int32
byteorder: little
- name: ra_tangent
datatype: float64
byteorder: little
- name: dec_tangent
datatype: float64
byteorder: little
- name: ra_min
datatype: float64
byteorder: little
- name: ra_max
datatype: float64
byteorder: little
- name: dec_min
datatype: float64
byteorder: little
- name: dec_max
datatype: float64
byteorder: little
- name: orientat
datatype: float32
byteorder: little
- name: x_tangent
datatype: float64
byteorder: little
- name: y_tangent
datatype: float64
byteorder: little
- name: nx
datatype: int32
byteorder: little
- name: ny
datatype: int32
byteorder: little
- name: skycell_start
datatype: int32
byteorder: little
- name: skycell_end
datatype: int32
byteorder: little
exact_datatype: true
skycells:
tag: tag:stsci.edu:asdf/core/ndarray-1.*
title: Information about all skycells
description: |
Relevant information about all skycells that have been defined to cover the celestial sphere.
datatype:
- name: name
datatype: [ucs4, 16]
byteorder: little
- name: ra_center
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to add a description field to these?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think so, I don't see it as an attribute permitted for the datatype, but I'll ask @braingram to be sure.

datatype: float64
byteorder: little
- name: dec_center
datatype: float64
byteorder: little
- name: orientat
datatype: float32
byteorder: little
- name: x_tangent
datatype: float64
byteorder: little
- name: y_tangent
datatype: float64
byteorder: little
- name: ra_corn1
datatype: float64
byteorder: little
- name: dec_corn1
datatype: float64
byteorder: little
- name: ra_corn2
datatype: float64
byteorder: little
- name: dec_corn2
datatype: float64
byteorder: little
- name: ra_corn3
datatype: float64
byteorder: little
- name: dec_corn3
datatype: float64
byteorder: little
- name: ra_corn4
datatype: float64
byteorder: little
- name: dec_corn4
datatype: float64
byteorder: little
exact_datatype: true
required: [meta, projection_regions, skycells]
flowStyle: block
propertyOrder: [meta, projection_regions, skycells]
...
3 changes: 3 additions & 0 deletions tests/test_schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,9 @@ def test_ref_file_meta_common(ref_file_schema):
"""
all_of = ref_file_schema["properties"]["meta"]["allOf"]

if ref_file_schema["id"].find("skycells") >= 0:
perrygreenfield marked this conversation as resolved.
Show resolved Hide resolved
return

for item in all_of:
if item == EXPECTED_COMMON_REFERENCE:
break
Expand Down
Loading