Commit 12df9146 authored by BO ZHANG's avatar BO ZHANG 🏀
Browse files

re-structured meta operations

parent 21e2d3d6
Pipeline #10994 passed with stage
...@@ -69,7 +69,7 @@ REQUIRED_KEYS_IN_META = dict( ...@@ -69,7 +69,7 @@ REQUIRED_KEYS_IN_META = dict(
) )
def generate_meta(**kwargs) -> fits.Header: def generate_meta(**kwargs) -> dict:
""" """
Generate metadata. Generate metadata.
...@@ -101,16 +101,10 @@ def generate_meta(**kwargs) -> fits.Header: ...@@ -101,16 +101,10 @@ def generate_meta(**kwargs) -> fits.Header:
meta["build"] = os.getenv("BUILD", default="__unset__") meta["build"] = os.getenv("BUILD", default="__unset__")
meta["prc_date"] = now() meta["prc_date"] = now()
meta["data_uuid"] = str(uuid.uuid4()) meta["data_uuid"] = str(uuid.uuid4())
# convert meta to fits header return meta
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
def append_meta(hdulist: fits.HDUList, **kwargs) -> fits.HDUList: def append_meta(hdulist: fits.HDUList, meta: dict) -> fits.HDUList:
""" """
Append meta to hdulist. Append meta to hdulist.
...@@ -118,8 +112,8 @@ def append_meta(hdulist: fits.HDUList, **kwargs) -> fits.HDUList: ...@@ -118,8 +112,8 @@ def append_meta(hdulist: fits.HDUList, **kwargs) -> fits.HDUList:
---------- ----------
hdulist : fits.HDUList hdulist : fits.HDUList
HDUList. HDUList.
kwargs : Any meta : dict
Meta data. Meta data dict.
Returns Returns
------- -------
...@@ -127,7 +121,13 @@ def append_meta(hdulist: fits.HDUList, **kwargs) -> fits.HDUList: ...@@ -127,7 +121,13 @@ def append_meta(hdulist: fits.HDUList, **kwargs) -> fits.HDUList:
HDUList with meta. 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) hdulist[0].header = append_header(hdulist[0].header, meta_header)
return hdulist return hdulist
......
...@@ -134,11 +134,12 @@ class TestFitsHeaderOps(unittest.TestCase): ...@@ -134,11 +134,12 @@ class TestFitsHeaderOps(unittest.TestCase):
def test_generate_meta(self): def test_generate_meta(self):
h = generate_meta() h = generate_meta()
self.assertIsInstance(h, fits.Header) self.assertIsInstance(h, dict)
def test_append_meta(self): def test_append_meta(self):
hdulist = fits.HDUList([fits.PrimaryHDU()]) 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())) self.assertIn("META", set(hdulist[0].header.keys()))
meta = extract_meta(hdulist) meta = extract_meta(hdulist)
self.assertEqual(meta["obs_id"], "123456") self.assertEqual(meta["obs_id"], "123456")
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment