Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
csst-pipeline
csst_common
Commits
12df9146
Commit
12df9146
authored
Oct 27, 2025
by
BO ZHANG
🏀
Browse files
re-structured meta operations
parent
21e2d3d6
Pipeline
#10994
passed with stage
Changes
2
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
csst_common/io.py
View file @
12df9146
...
...
@@ -69,7 +69,7 @@ REQUIRED_KEYS_IN_META = dict(
)
def
generate_meta
(
**
kwargs
)
->
fits
.
Header
:
def
generate_meta
(
**
kwargs
)
->
dict
:
"""
Generate metadata.
...
...
@@ -101,16 +101,10 @@ def generate_meta(**kwargs) -> fits.Header:
meta
[
"build"
]
=
os
.
getenv
(
"BUILD"
,
default
=
"__unset__"
)
meta
[
"prc_date"
]
=
now
()
meta
[
"data_uuid"
]
=
str
(
uuid
.
uuid4
())
# convert meta to fits header
meta_card
=
fits
.
Card
(
keyword
=
"META"
,
value
=
json
.
dumps
(
meta
,
separators
=
(
","
,
":"
),
ensure_ascii
=
False
),
)
meta_header
=
reformat_header
(
fits
.
Header
(
cards
=
[
meta_card
]),
comment
=
"METADATA"
)
return
meta_header
return
meta
def
append_meta
(
hdulist
:
fits
.
HDUList
,
**
kwargs
)
->
fits
.
HDUList
:
def
append_meta
(
hdulist
:
fits
.
HDUList
,
meta
:
dict
)
->
fits
.
HDUList
:
"""
Append meta to hdulist.
...
...
@@ -118,8 +112,8 @@ def append_meta(hdulist: fits.HDUList, **kwargs) -> fits.HDUList:
----------
hdulist : fits.HDUList
HDUList.
kwargs : Any
Meta data.
meta : dict
Meta data
dict
.
Returns
-------
...
...
@@ -127,7 +121,13 @@ def append_meta(hdulist: fits.HDUList, **kwargs) -> fits.HDUList:
HDUList with meta.
"""
meta_header
=
generate_meta
(
**
kwargs
)
# convert meta to fits header
meta_card
=
fits
.
Card
(
keyword
=
"META"
,
value
=
json
.
dumps
(
meta
,
separators
=
(
","
,
":"
),
ensure_ascii
=
False
),
)
meta_header
=
reformat_header
(
fits
.
Header
(
cards
=
[
meta_card
]),
comment
=
"METADATA"
)
# append meta_header to hdulist[0].header
hdulist
[
0
].
header
=
append_header
(
hdulist
[
0
].
header
,
meta_header
)
return
hdulist
...
...
tests/test_io.py
View file @
12df9146
...
...
@@ -134,11 +134,12 @@ class TestFitsHeaderOps(unittest.TestCase):
def
test_generate_meta
(
self
):
h
=
generate_meta
()
self
.
assertIsInstance
(
h
,
fits
.
Header
)
self
.
assertIsInstance
(
h
,
dict
)
def
test_append_meta
(
self
):
hdulist
=
fits
.
HDUList
([
fits
.
PrimaryHDU
()])
hdulist
=
append_meta
(
hdulist
,
obs_id
=
"123456"
)
meta
=
generate_meta
(
obs_id
=
"123456"
)
hdulist
=
append_meta
(
hdulist
,
meta
)
self
.
assertIn
(
"META"
,
set
(
hdulist
[
0
].
header
.
keys
()))
meta
=
extract_meta
(
hdulist
)
self
.
assertEqual
(
meta
[
"obs_id"
],
"123456"
)
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment