def _save(self): header = {} data = None for name in self._names: header[name] = self[name] ext = BinaryDataExtension(header) return ext
def _save(self): header = { "monh": self.monh, "type_internal": self._type_internal, "type": self.type, "citation_info": self.citation_info, } data = self._pattern ext = BinaryDataExtension(header, data) return ext
def test_empty_data_json(tmp_fname): file = FlexFile() ext = BinaryDataExtension(data=[]) file.extensions["img"] = ext file.to_json(tmp_fname) del file f2 = FlexFile.from_json(tmp_fname) assert f2["img"].data.size == 0
def test_empty_data(tmp_fname): file = FlexFile() ext = BinaryDataExtension(data=[]) file.extensions["img"] = ext file.write(tmp_fname) del file f2 = FlexFile.read(tmp_fname) assert f2["img"].data.size == 0
def test_read_write(tmp_fname): file = FlexFile() ext = BinaryDataExtension(data=np.zeros(10)) file.extensions["img"] = ext file.write(tmp_fname) del file f2 = FlexFile.read(tmp_fname) assert f2["img"].data.size == 10 assert np.all(f2["img"].data == 0)
import numpy as np import pandas as pd from flex.flex import FlexFile from flex.extensions.bindata import BinaryDataExtension, MultipleDataExtension from flex.extensions.tabledata import TableExtension, JSONTableExtension file = FlexFile() ext_bin = BinaryDataExtension(data=np.linspace(0, 1, 4 * 3 * 2).reshape((4, 3, 2))) ext = MultipleDataExtension() ext.data["data"] = np.arange(12, dtype="i2").reshape((3, 2, 2)) tab = JSONTableExtension() tab.data = pd.DataFrame(np.arange(20).reshape((10, 2)), columns=["A", "B"]) file.header["bla"] = np.float(3e10) file.header["blub"] = np.nan file.header["blrub"] = float("inf") file.header["blurb"] = np.array([1, 2, 3]) file.header["blurb2"] = [1, 2, 3] file.header["int"] = 1 file.header["np_int"] = np.int(1) file.header["str"] = "Hello" file.header["np_str"] = np.str("World") # FITS can handle either long header keys, or long entries # But not both at the same time... file.header["really_long_entry"] = "bla" file.header["really_l"] = "bla" * 100 file.header["really_long_text_with_HIERARCH"] = "bla" * 100