weech / GRIB.jl

GRIB Interface for Julia
Apache License 2.0
22 stars 2 forks source link

Co-operation on high-level GRIB interface #3

Open StephanSiemen opened 3 years ago

StephanSiemen commented 3 years ago

Hi @weech,

Thanks for your great work in building a Julia wrapper around ecCodes. We at ECMWF are working with @RobertRosca on a package called cfgrib (https://github.com/RobertRosca/cfgrib.jl) which also makes use of GRIB.jl. We would like to work with you together to build a testing chain to ensure future ecCodes change do not cause any regressions.

First of all we would like to know if there is anything we can help you with maintaining and developing grib.jl. Perhaps then we can discuss what we try to achieve with cfgrib.jl.

Looking forward working with you Cheers Stephan

weech commented 3 years ago

Hi, I'm glad to see that you are making use of the library! I would be happy to collaborate with changes that would be useful for cfgrib. I agree, it would be great to have a more robust testing chain. Right now I have a few sample files to make sure things are wired correctly, but the GRIB format is so diverse I don't know if all of the corner cases work as they should.

As for if there's anything left with developing GRIB.jl, I think it's fairly complete right now? I have most of the C API mapped with the typical Julia ways of handling resources. The only things l know I haven't done are BUFR support (because finding BUFR files in the wild is increasingly rare) and support for the context system (because it isn't normally necessary for scripting). If you think that either of those would be useful for cfgrib, I'd be glad to work on implementing them.

I've tried to keep GRIB.jl low-level so that it's easier for libraries like cfgrib to build on top of it, but I would totally consider adding functions or differently-designed APIs that would be useful to you.

rafaqz commented 1 year ago

Note there is now: https://github.com/tcarion/GRIBDatasets.jl

Which adds a DiskArrays.jl interface for lazily accessing grib layers as AbstractArray, chunked iteration and broadcasting ect.

This will be wrapped as a data source in Rasters.jl: https://github.com/rafaqz/Rasters.jl/pull/283

Which will give DimensionalData.jl integration as with cfgrib.jl, but also generalized integration into Rasters.jl. This will mean GRIB files can be access the same syntax as netcdf files and use all the Rasters.jl tools.