Module Function Naming and Module Publication

Does anybody here work in the soil, atmospheric, or climate sciences? I’ve put together a module of functions I’ve created for loading various file types in aforementioned sciences. It’s still pre-1.0 and I’ve run into some questions. Any suggestions from those interested in this would be helpful as well.

ClimateDataIO Package

My first question is about function naming. In general I try to adhere to the naming guidelines in the Julia documentation, all lower case and no spaces. Unfortunately with how some of them are named one or two should have a space for clarity but then I think I should have them all have spaces so they make sense within the package. Maybe I’m just nitpicking and I should just pick one and just go with it.

Second, should I worry about cluttering up the registered Julia packages with this small niche package? It’s not too difficult to clone and checkout via the package manager.

Choosing and Using Names

I think it’s totally fine to register. I mean, don’t name it Climate.jl, but ClimiteDataIO.jl is perfect: it will show up in searches if that’s exactly what I need. I personally think that niche packages which do one thing really well are what make an ecosystem really tick.

it’s fine to use underscores to name my_very_complex_function.

Hello Jeremy,

I’m in the climate science field. I’ll take a look at it! Most of our files are NetCDF files.

I’ve also begin a small package this week. Very barebone for now ClimateTools.jl package. Btw, the package is about to be registered, even if it’s not yet complete (far from it actually).

Cheers!

edit - this blog post helped me setting everything up (though you need to change Pkg.command to PkgDev.command).

Are you familiar with FileIO.jl? You might want to consider integrating with it: it provides a general way for packages to implement load() and save() methods for particular filetypes, using the filename and magic bytes to figure out which format to use.

1 Like

FileIO contributions are already planned. I want the module to be stable first and then I’ll push whatever makes sense, probably just the binary SLT file loader. Most of the functions in ClimateDataIO are higher level though, making it easier to load multiple files and parse timestamps. As I see it FileIO is just for low level reading. Unfortunately most of the file formats we use are text files with rather common extensions and none of the formats have magic bytes.

@Balinus, great to see that there is someone in a related field here. We don’t use NetCDF files.

@ChrisRackauckas, sounds good. I’ll make sure to keep names to a sensible length.