def decompress_poly_debug(hdu): "Decompress an HDU containing polynomial compressed data in debug form" if hdu.columns.names != ['ISCOMPR', 'CKLEN', 'UNCOMPR', 'POLY', 'CHMASK', 'CHEBY']: raise ValueError('unknown sequence of columns for polynomial ' 'compression: %s', str(hdu.columns.names)) inv_cheby = None samples = np.empty(0, dtype='float64') is_compressed, chunk_len, uncompr, \ poly, cheby_mask, cheby = [hdu.data.field(x) for x in range(6)] num_of_chunks = is_compressed.size poly_size = np.array([poly[idx].size for idx in range(num_of_chunks)], dtype=np.uint8) cheby_size = np.array([cheby[idx].size for idx in range(num_of_chunks)], dtype=np.uint16) chunk_array = ppc.build_chunk_array(is_compressed=is_compressed.astype(np.uint8), chunk_len=chunk_len.astype(np.uint16), uncompr=np.concatenate(uncompr), poly_size=poly_size, poly=np.concatenate(poly), cheby_size=cheby_size, cheby_mask=np.concatenate(cheby_mask), cheby=np.concatenate(cheby)) return ppc.decompress_polycomp(chunk_array), 'D'
def decompress_poly_debug(hdu): "Decompress an HDU containing polynomial compressed data in debug form" if hdu.columns.names != [ 'ISCOMPR', 'CKLEN', 'UNCOMPR', 'POLY', 'CHMASK', 'CHEBY' ]: raise ValueError( 'unknown sequence of columns for polynomial ' 'compression: %s', str(hdu.columns.names)) inv_cheby = None samples = np.empty(0, dtype='float64') is_compressed, chunk_len, uncompr, \ poly, cheby_mask, cheby = [hdu.data.field(x) for x in range(6)] num_of_chunks = is_compressed.size poly_size = np.array([poly[idx].size for idx in range(num_of_chunks)], dtype=np.uint8) cheby_size = np.array([cheby[idx].size for idx in range(num_of_chunks)], dtype=np.uint16) chunk_array = ppc.build_chunk_array(is_compressed=is_compressed.astype( np.uint8), chunk_len=chunk_len.astype(np.uint16), uncompr=np.concatenate(uncompr), poly_size=poly_size, poly=np.concatenate(poly), cheby_size=cheby_size, cheby_mask=np.concatenate(cheby_mask), cheby=np.concatenate(cheby)) return ppc.decompress_polycomp(chunk_array), 'D'
def test_high_level_polycom(): max_error = 0.1 values = np.array([1.0, 2.0, 3.0, 4.0, 3.0, 2.0, 1.0, 2.0, 6.0, 7.0, 9.0], dtype='float64') params = pypolycomp.Polycomp(4, 2, max_error, pypolycomp.PCOMP_ALG_USE_CHEBYSHEV) chunks = pypolycomp.compress_polycomp(values, params) assert len(chunks) == 3 decompr = pypolycomp.decompress_polycomp(chunks) assert np.all(np.abs(decompr - values) < max_error)