netcdf-java
netcdf-java copied to clipboard
[Hacktoberfest 2021] Contribute filters to the netCDF-Java Zarr project
About
NetCDF-Java recently completed work on beta read support for Zarr data formats. Part of the Zarr project is the implementation of compressors and filters (codecs). Currently, netCDF-Java includes implementation of Shuffle, Deflate/Zlib, 32-bit Checksums, and FixedScaleOffset, but we're still missing some!
If you have developed or are interested in developing filters in Java, we would love to have you contribute!
Contributing to this issue
The list of Zarr compatible codecs is provided by NumCodecs.
If you're interested in implementing a filter for netCDF-Java, follow these instructions:
- Checkout the maint-5.x branch (Zarr is currenly only support in 5.x)
- Create a new class in the ucar.nc2.filter package that extends the
Filter.javaclass - Implement two methods:
encode(byte[] dataIn)anddecode(byte[] dataIn) - Add a
FilterProviderthat returns the name of your filter - Create a pull requests against the maint-5.x branch
Helpful links
- To learn more about Zarr compressors and filters, see here.
- For examples of
Filterimplementations, see:Deflate.java,ScaleOffset.java, andShuffle.java.
Thank you for considering contributing!
@haileyajohnson Can I take care of this ?
@sumitsawant we'd appreciate any contributions on this!
@haileyajohnson Can you please assign this to me ? I'll get started .
@sumitsawant thank you for the enthusiasm, but I'm reluctant to assign this to one person; there could be a number of pull requests contributing to this issue, implementing different filters. But you will get Hacktoberfest credit if you submit a PR that's accepted!