The easy as duck duck netcdf converter to ASCII, JPEG and more...
Explore the docs »
·
Report Bug
·
Request Feature
Table of Contents
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:
- single/multi convert
- conversion upon creation
During the run of the cli the output types, the mapping dimension and variable can be selected aling with other options.
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.
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.
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.
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.
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.
This software and tested for Python version 3.10.4.
If you need to manually install packages:
-
Cartopy libgeos
apt get install libgeos-dev
-
requirements
pip install -r requirements.txt
If you wish to make use of the pyproject.toml you need to install poetry:
- poetry
curl -sSL https://install.python-poetry.org | python3 -
You can install from source or from pypi
Use PYPI to pip install the project:
sh pip install netcdfella
-
Clone the repo
git clone https://github.com/nikfot/netcdfella.git
-
Install using poetry
poetry install
-
Run
netcdfella
to see the help with available choices:netcdfella
or
netcdfella --help
You can use the netcdfella to get a better description of the available choices:
sh netcdfella
or
sh netcdfella --help
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.
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.
- Add cli conversion
- Add ascii,jpg/png, graphs
- Add docker support
- Check compatibility with more netcdf filetypes (current test METEOSAT 4th gen)
- Add REST API Server
- Add gui
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!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GPL License. See LICENSE.md
for more information.
Nikos Fotiou - @workaround18 - nik_fot@hotmail.gr
Netcdfella: https://github.com/nikfot/netcdfella
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.