You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Squashed 'src/H5Z-SPERR/' changes from 181c8c2cf..9a825a5ff
9a825a5ff Update version to 0.2.3
7058d2a75 Merge pull request #14 from shaomeng/main
02fd24d65 Merge branch 'NCAR:main' into main
804d0bf66 be able to read binaries produced by version 0.1.x
8775d06fa Merge pull request #13 from shaomeng/main
20ccecb74 Merge branch 'NCAR:main' into main
1e009bcb8 make it an error when compatibility versions don't match
d6a744017 Merge pull request #12 from shaomeng/main
13f3f6b73 fix a windows compilation issue
c07099a70 Add experimental clamping filter
f1d35dcc0 add a mini filter: h5z-clamp, with a filter ID of 45678
18fd6f9ce Update README.md
f9f4ee28e Merge pull request #10 from shaomeng/bitmask_compactor
68e7942e3 minor
d7604708c bumps version number
f25ecfb24 Update README.md
e745e5bf4 minor
49fe13695 Update README.md
65ca29cec Update README.md with the filter behavior table
18bd130f6 correct mean calculation
5366f22a6 finish decompression code. Need to run tests
2ea811491 finished compression routine, work on decompression
a6b9c5cb5 WIP: compression
9db422acf improve the compactor
ca6df4c8f improve the replace functions
01af6d609 implement replace function
743b9d4cc add function h5zsperr_make_mask_nan(), still need to write a unit test for it
2d9e50d88 remove missing_value_mode 3 and 4, so my job is easier now
b5a0d05cf check in
69f885ee9 encode the magic number in set_local()
429ee9d61 use C++ to implement helper functions
b03cba98e function name change
c6de1094e check in
f0ff97bf8 finish packing and unpacking cd_values[]
06bc330fd re-work on the pack data type function
4d3954fdd add functions to check if an input array really has the specified type of missing values
ea73f7b02 use a separate file h5zsperr_helper to keep helper functions
90ae7d9ed set_local() function considers missing value flag
60148fc3b add another compactor unit test
a5eca6efe compactor works with encoding and decoding
6af5b99a6 improve compactor_comp_size()
76a43720e add compactor_comp_size() function
881ea955a change name to be compactor
8b671bfc8 rename bitstream to icecream
7b9af10cb remove the end pointer
fee5981c7 specify and test the memory usage of bitstream
3f262de1f implement rtell()
3672f78a0 finish bitstream class, adding unit tests
20b62230f WIP: bitstream class
4cf8a36d5 start working on bitmaskt compactor, add first function
ea0aec35a improve README
4c29f3efd Merge pull request #8 from NCAR/chunk_dim_check
6ea4bf485 check that dataspace dimension can be divided by the chunk dimension
e344ce900 add link to hdf5plugin
git-subtree-dir: src/H5Z-SPERR
git-subtree-split: 9a825a5ff4de84458f092bc63135e466bc68c0cb
| 0 | No `NaN`, no `1e35`|:heavy_check_mark: Normal SPERR compression |
77
+
| 0 | Has `NaN` or `1e35`|:x: Likely numeric error |
78
+
| 1 | No `NaN`, no `1e35`|:heavy_check_mark: Normal SPERR compression |
79
+
| 1 | Has `NaN`, no `1e35`|:heavy_check_mark: Normal SPERR compression; `NaN` is restored at its exact locations |
80
+
| 1 | Regardless of `NaN`, has `1e35`|:x: Likely numeric error |
81
+
| 2 | No `NaN`, no `1e35`|:heavy_check_mark: Normal SPERR compression |
82
+
| 2 | No `NaN`, has `1e35`|:heavy_check_mark: Normal SPERR compression; `1e35` is restored at its exact locations |
83
+
| 2 | Has `NaN`, regardless of `1e35`|:x: Likely numeric error |
84
+
85
+
**Final note:** if a variable is indicated to have missing values, but it actually does not, then there's no bitmasks involved thus no storage overhead!
86
+
27
87
## Find `cd_values[]`
28
88
To apply SPERR compression using the HDF5 plugin, one needs to specify 1) what compression mode and 2)
29
89
what compression quality to use. Supported compression modes and qualities are summarized below:
@@ -42,7 +102,8 @@ and the `Z` rank to be varying the slowest, before the data is passed to the com
42
102
43
103
The HDF5 libraries takes in these compression parameters as one or more 32-bit `unsigned int` values,
44
104
which are named `cd_values[]` in most HDF5 routines.
45
-
In the case of `H5Z-SPERR`, there is exactly one `unsigned int` used to carry this information.
105
+
In the case of `H5Z-SPERR`, there is exactly one `unsigned int` used to carry compression-related information, and
106
+
possibly one more `unsigned int` to indicate the potential existance of missing values.
46
107
47
108
### Find `cd_values[]` Using the Programming Interface
48
109
Using the HDF5 programming interface, `cd_values[]` carrying the compression parameters are passed
@@ -75,11 +136,17 @@ Please use this value as a single 32-bit unsigned integer in your applications.
75
136
Note: an integer produced by `generate_cd_values` can be decoded by another command line tool, `decode_cd_values`,
76
137
to show the coded compression parameters.
77
138
78
-
## Use in NetCDF-4 APIs
79
-
`H5Z-SPERR` also facilitates the application of SPERR compression on
0 commit comments