netcdfella

The easy as duck 🦆 netcdf converter to ASCII, JPEG and more...

View the Project on GitHub

Issues GPL License LinkedIn


Logo

NetcdFella

The easy as duck duck netcdf converter to ASCII, JPEG and more...
Explore the docs »

· Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Netcdfella is a command line interface (cli) tool for converting netcdf files to ASCII and JPG/PNG format, as well as creating graphs based on the vectors of the file.

Netcdfella supports two ways for converting documents at the time being:

During the run of the cli the output types, the mapping dimension and variable can be selected aling with other options.

single/multi convert

You can convert a single file or all netcdf files in a directory on your command. This is the case of the single/multi select.

conversion upon creation

A directory can be selected to be watched by netcdfella. WHen a new netcdf file is created in that directory, it is automatically converted in the selected formats.

qnotify

In order to handle any amount of input documents in the case of watch. A producer-consumer queue is created in the module qnotify using the inotify library. In this case the producers are the directory events. This creates a buffer that can handle the set amount of concurrent document creations.

Use the README.md to get started.

(back to top)

Built With

This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.

(back to top)

Getting Started

This is an example of how you may give instructions on setting up your project locally. To get a local copy up and running follow these simple example steps.

Prerequisites

This software and tested for Python version 3.10.4.

If you need to manually install packages:

If you wish to make use of the pyproject.toml you need to install poetry:

Installation

You can install from source or from pypi

PYPI

Use PYPI to pip install the project: sh pip install netcdfella

Source

  1. Clone the repo
    git clone https://github.com/nikfot/netcdfella.git
    
  2. Install using poetry
    poetry install
    
  3. Run netcdfella to see the help with available choices:
    netcdfella
    

    or

    netcdfella --help
    

(back to top)

Usage

You can use the netcdfella to get a better description of the available choices: sh netcdfella or sh netcdfella --help

convert

Use netcdfella to convert a single document or all documents in a directory: sh netcdfella convert "/path/to/documents" -k "ascii,graph,scatter,marks" -md "flashes" -mv "radiance"

All choices for convert subcommand: Options: -o, –output-dir TEXT set the output directory for converted files. -k, –output-kinds TEXT set the output kind for conversion. -md, –map-dimension TEXT set the dimenion to use for mapping. -mv, –map-variable TEXT set the variable to use for mapping. -e, –exclude-variables TEXT comma separated list of variables to be excluded from conversion. –help Show this message and exit.

watch

Use netcdfella to watch over a directory and convert files upon creation: sh netcdfella watch "/path/to/documents" -k "ascii,graph,scatter,marks" -md "flashes" -mv "radiance"

Options: -o, –output-dir TEXT set the output directory for converted files. -k, –output-kinds TEXT set the output kind for conversion. -md, –map-dimension TEXT set the dimenion to use for mapping. -mv, –map-variable TEXT set the variable to use for mapping. -e, –exclude-variables TEXT comma separated list of variables to be excluded from conversion. –help Show this message and exit.

(back to top)

Roadmap

(back to top)

Contributing

There are still a lot to be done, so if you find the project usefull please contribute you comments, ideas and code. It is greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag “enhancement”. Don’t forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the GPL License. See LICENSE.md for more information.

(back to top)

Contact

Nikos Fotiou - @workaround18 - nik_fot@hotmail.gr

Netcdfella: https://github.com/nikfot/netcdfella

(back to top)

Acknowledgments

This tool is created as part of my postgrad studies “Space Technologies Applications and Services - STAR” programm at the National and Kapodestrian University of Athens Greece (NKUA). It was a semester project for the class “Space Image Processing” by professor Stavros Kolios.

(back to top)