{"id":26493204,"url":"https://github.com/fotioudim/nwc-safer","last_synced_at":"2025-03-20T09:51:36.133Z","repository":{"id":147936028,"uuid":"618180105","full_name":"fotioudim/NWC-SAFer","owner":"fotioudim","description":"An awesome CLI tool simplifying NetCDF data extraction of NWC-SAF products and transformation to different file formats!","archived":false,"fork":false,"pushed_at":"2024-01-14T21:16:04.000Z","size":2314,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-08-11T10:09:01.081Z","etag":null,"topics":["cli-app","eumetsat","netcdf","nowcasting","nwcsaf","pandas","poetry","python","queues","satellite-imagery","threads","typer","watchdog","xarray"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/nwc-safer/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fotioudim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-03-23T23:13:48.000Z","updated_at":"2024-03-30T19:37:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"d052baba-8eee-4315-a11f-62bc20345dd4","html_url":"https://github.com/fotioudim/NWC-SAFer","commit_stats":{"total_commits":12,"total_committers":2,"mean_commits":6.0,"dds":0.25,"last_synced_commit":"68f2adc42e658f850d13c9d27beec19a984585fe"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fotioudim%2FNWC-SAFer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fotioudim%2FNWC-SAFer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fotioudim%2FNWC-SAFer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fotioudim%2FNWC-SAFer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fotioudim","download_url":"https://codeload.github.com/fotioudim/NWC-SAFer/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244591503,"owners_count":20477709,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli-app","eumetsat","netcdf","nowcasting","nwcsaf","pandas","poetry","python","queues","satellite-imagery","threads","typer","watchdog","xarray"],"created_at":"2025-03-20T09:51:35.569Z","updated_at":"2025-03-20T09:51:36.126Z","avatar_url":"https://github.com/fotioudim.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\r\n\r\n  \u003cimg src=\"https://raw.githubusercontent.com/fotioudim/NWC-SAFer/main/docs/nwc-safer-logo.png\" alt=\"logo\" width=\"60%\" height=\"auto\" /\u003e\r\n  \u003ch1\u003eNWC-SAFer\u003c/h1\u003e\r\n  \r\n  \u003cp\u003e\r\n    An awesome CLI tool simplifying NetCDF data extraction of NWC-SAF products and transformation to different file formats! \r\n  \u003c/p\u003e\r\n  \r\n  \r\n\u003c!-- Badges --\u003e\r\n[![Last commit](https://img.shields.io/github/last-commit/fotioudim/nwc-safer)](https://github.com/fotioudim/nwc-safer/commits/main)\r\n[![Issues](https://img.shields.io/github/issues/fotioudim/nwc-safer)](https://github.com/fotioudim/nwc-safer/issues/)\r\n[![Forks](https://img.shields.io/github/forks/fotioudim/nwc-safer)](https://github.com/fotioudim/nwc-safer/network/members)\r\n[![Stars](https://img.shields.io/github/stars/fotioudim/nwc-safer)](https://github.com/fotioudim/nwc-safer/stargazers)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n\r\n   \r\n\u003ch4\u003e\r\n    \u003ca href=\"https://github.com/fotioudim/nwc-safer/issues/\"\u003eReport Bug\u003c/a\u003e\r\n  \u003cspan\u003e · \u003c/span\u003e\r\n    \u003ca href=\"https://github.com/fotioudim/nwc-safer/issues/\"\u003eRequest Feature\u003c/a\u003e\r\n  \u003c/h4\u003e\r\n\u003c/div\u003e\r\n\r\n\u003cbr /\u003e\r\n\r\n\u003c!-- Table of Contents --\u003e\r\n# :notebook_with_decorative_cover: Table of Contents\r\n\r\n- [:notebook\\_with\\_decorative\\_cover: Table of Contents](#notebook_with_decorative_cover-table-of-contents)\r\n  - [:star2: About the Project](#star2-about-the-project)\r\n    - [:books: Tech Stack](#books-tech-stack)\r\n  - [:toolbox: Getting Started](#toolbox-getting-started)\r\n    - [:wrench: Prerequisites](#wrench-prerequisites)\r\n    - [:gear: Installation](#gear-installation)\r\n      - [PyPi (recommended)](#pypi-recommended)\r\n      - [Source](#source)\r\n    - [:running: Run Locally](#running-run-locally)\r\n  - [:bookmark\\_tabs: Usage](#bookmark_tabs-usage)\r\n    - [Watch directory and convert incoming files](#watch-directory-and-convert-incoming-files)\r\n    - [Manual file conversion](#manual-file-conversion)\r\n    - [Check compatible products](#check-compatible-products)\r\n    - [Launch Github repository](#launch-github-repository)\r\n  - [:compass: Roadmap](#compass-roadmap)\r\n  - [:warning: License](#warning-license)\r\n  - [:handshake: Contact](#handshake-contact)\r\n  \r\n\r\n\u003c!-- About the Project --\u003e\r\n## :star2: About the Project\r\n\r\nThis is a modern and simplified Command Line Interface tool created to extract info and metadata from NetCDF files and convert them into different file formats such as Csv, Excel, plain text, etc.\r\n\r\nIts aim is to simplify data extraction from NWC SAF [products](https://www.nwcsaf.org/web/guest/nwc/geo-geostationary-near-real-time-v2021) and their transformation to different file formats, more readable and easier to access and edit. ΝWC-SAF is an initiative of [EUMETSAT](https://www.eumetsat.int/) to provide operational services ensuring the optimum use of meteorological satellite data in Nowcasting and Very Short Range Forecasting.\r\n\r\n\r\n\u003c!-- TechStack --\u003e\r\n### :books: Tech Stack\r\n\r\nThe tech stack of this project consists of the following main technologies/frameworks/tools:\r\n- [![Python](https://img.shields.io/badge/python-yellow?style=for-the-badge\u0026logo=Python)](https://www.python.org/)\r\n- [![Typer](https://img.shields.io/badge/typer-white.svg?style=for-the-badge\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAaCAYAAADWm14/AAAACXBIWXMAAAsSAAALEgHS3X78AAAAAXNSR0IArs4c6QAAAolJREFUSEvNlk9LalEUxddNxUglkEBQyJETBw4SEdSRjsWBItFM/QLppJFiYk0Fw4kD8QuUiIJIhfSPHEjDQBApEkcSFKUEqY99ouj1vF1vL9/rTO5kn31+e+21z7nceDwe4z8u7kcAkAjX19eoVqu4u7vDLEWZn5+Hw+GAyWSCTCYDU6BWqyEQCDCIf7GUSiU2NzcRiUReAEKhEHK5HORyOVZWVkCUs1jD4RCXl5fo9XpMgePjY3Cj0Wjs9XpRKBSg1Wqxv7+P5eXlWZyPh4cHBINBVCoVGAwGnJyc/A6g0+lwdnYGvV4/M4C1tTWUSqW/B3g1KsdxU8OSAhMB/H4/isUiSIGjo6OpWnBzc4Nmswmn04m5ubmpICYCkAkPDg5wdXUFhUIBt9sNcqnQqtfrLDabzbKvVCoV2sI88IcCX72ICMBms2FhYQEbGxtYX1+HSqX6FIIXgMah0+kIVvA+oNVqIR6Ps0uLlKPKtre3sbS0xJuH1wOvYyiK4EMw+YC8lMlkoFarJ6biBQiHwzg8PBR1fr/fR7vdfttDladSKayurvL6gbcFt7e3GAwGogAuLi7g8XhYC4xGI7a2tpgZJRKJuBaQCZ+fnzEajdhG9kBMMdtkQrvdDrPZjHQ6DavVKriPtwXRaBSnp6fMQNRDjUYjqEaj0WAmzOfznxrvfSJBE4q5ih8fH1nbPnP9xyq+FUBQogkBPxfA5/Nhb2+PybmzszOVB76iAI0uTcv5+Tl7Dcl37IckFouxW4xGit6BaR8XsRCUnyBo6lwuF8rl8gtAt9tFIpHA7u4unp6exOYVFU/F0cgmk0lYLJYXAMpAVPf39zMHoFdzcXHx7b75Gb/lojT85uBffvDaMxBMkv8AAAAASUVORK5CYII=)](https://typer.tiangolo.com/)\r\n- [![Poetry](https://img.shields.io/badge/poetry-blue?style=for-the-badge\u0026logo=Poetry)](https://python-poetry.org/)\r\n- [![Watchdog](https://img.shields.io/badge/watchdog-darkgreen.svg?style=for-the-badge\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAAAY1BMVEVHcEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIAbxiAAAAIXRSTlMADYz0HUfm+ARNFF3I7zNSWKFseCYJPNXQu0JjgbTcma0OOkjMAAAA/ElEQVQoz51S2ZKEIAxUrojKqQje/v9XLuKozFbty+aFo5N0p6Eo/hu15LrRSnFKvu5LGzB8IgwZ4HZoO0Up5ZzPrK1fxAIqn8MMqHo4Qp7mDOb3noK9VpTYe+9lfZUtQqbVsEuXwsKvaCZFdYTUrGxHl5BKoSMI4PFmTbU9Qw9Z5WxEyLanE4cmm6QTQ8xdrj2WGWI2UkjRpQaHz7Qn0gnbi8ZkJeQkpXg+kwymGaJPUorRMOn1McVF3xfm42w82cy6NAyx+7gJEOPpOGlWWFR/d2Gt6ZQsb4X121+7Xwo/0cCU6cht+UYozH8gVrxP34j8G/T8fWtCX4t+AO8aDNkne4p2AAAAAElFTkSuQmCC)](https://github.com/gorakhargosh/watchdog)\r\n\r\n\r\n- _Python Queues and thread handling is applied to enhance user experience_\r\n- _NetCDF4, Pandas, xarray libraries are used for file manipulation_\r\n\r\n\u003c!-- Getting Started --\u003e\r\n## \t:toolbox: Getting Started\r\n\r\n\u003c!-- Prerequisites --\u003e\r\n### :wrench: Prerequisites\r\n\r\nYou just need to have installed Python language preferrably \u003e 3.10 version and a Python package/dependency management tool like Pip, Poetry, Conda etc.\r\n\r\nThe tool is compatible with all popular OS.\r\n\r\n_Better used along with CLIs that support emojis and Unicode characters for a better user experience._\r\n\r\n\u003c!-- Installation --\u003e\r\n### :gear: Installation\r\n\r\n#### PyPi (recommended)\r\n- Install it from PyPi using pip or any other python package manager\r\n  ```bash\r\n    pip install --user nwc-safer\r\n  ```\r\n- Enable auto-completion by executing the following command\r\n  ```bash\r\n    nwc-safer --install-completion\r\n  ```\r\n\r\n#### Source\r\n- Clone the Git repo\r\n  ```bash\r\n    git clone https://github.com/fotioudim/nwc-safer.git\r\n  ```\r\n- Install using poetry in the corresponding directory\r\n  ```bash\r\n    poetry install\r\n  ```\r\n\r\n\u003c!-- Run Locally --\u003e\r\n### :running: Run Locally\r\n\r\nJust run it using `nwc-safer`. Get help for the available commands \r\n\r\n```bash\r\n  nwc-safer --help\r\n```\r\n\r\n\u003c!-- Usage --\u003e\r\n## :bookmark_tabs: Usage\r\n\r\nRun `nwc-safer` or `nwc-safer -- help` in your CLI to get a better description of the available commands and options.\r\n\r\n### Watch directory and convert incoming files\r\nConstantly watch a directory for incoming NetCDF files, in order to extract the desired data and export them in the form of Csv/Excel/Text files.\r\n```bash\r\n  nwc-safer watch [OPTIONS] [INPUT_PATH] [OUTPUT_PATH]\r\n```\r\nArguments:\r\n-  `input_path`: The path (relative/absolute) for the directory desired to be watched [default: .]\r\n-  `output_path`: The path (relative/absolute) for the output directory [default: .\\output\\]\r\n\r\nOptions:\r\n- `--lat` `-la`: The latitude coordinate range in ascending order, given in the form of two int values (min \u0026 max)\r\n- `--lon` `-lo`: The longitude coordinate range in ascending order, given in the form of two int values (min \u0026 max)\r\n- `--format` `-f`: The output file format [default: csv]\r\n- `--recursive` `-r`: Watch for incoming files recursively in all the subdirectories of the specified directory\r\n- `--existing` `-e`: Convert pre-existing files in the specified directory\r\n  \r\n### Manual file conversion\r\nProcess a single or multiple NetCDF file(s), by extracting the desired data\r\nand exporting them in a new file format (eg. Csv, Excel).\r\n```bash\r\n  nwc-safer convert [OPTIONS] [FILE_PATHS]...\r\n```\r\n\r\nArguments:\r\n-  `file_paths`: The path(s) (relative/absolute) for the file(s) desired to be converted [default: None] [required]\r\n\r\nOptions:\r\n- `--lat` `-la`: The latitude coordinate range in ascending order, given in the form of two int values (min \u0026 max)\r\n- `--lon` `-lo`: The longitude coordinate range in ascending order, given in the form of two int values (min \u0026 max)\r\n- `--output` `-o`: The path (relative/absolute) for the output directory [default: .\\output\\]\r\n- `--format` `-f`: The output file format [default: csv]\r\n  \r\n### Check compatible products\r\nCheck which NWC-SAF products are currently supported by the tool\r\n```bash\r\n  nwc-safer compatibility\r\n```\r\n\r\n### Launch Github repository\r\nLaunch NWC-SAF NetCDF Data Exporter Github repository in the web browser\r\n```bash\r\n  nwc-safer repo\r\n```\r\n\r\n\u003c!-- Roadmap --\u003e\r\n## :compass: Roadmap\r\n\r\n* [x] Add continuous watching \u0026 conversion operation\r\n* [x] Single conversion operation\r\n* [x] OS agnostic functionality\r\n* [x] Multiple conversion operation\r\n* [x] Subset dataset based on coordinates range\r\n* [x] Support 3 output file formats (.csv, .xlsx, txt)\r\n* [ ] Generalize solution for a bigger set of [NWC SAF products](https://www.nwcsaf.org/web/guest/nwc/geo-geostationary-near-real-time-v2021) \r\n\r\n\u003c!-- License --\u003e\r\n## :warning: License\r\n\r\nDistributed under the MIT License. See `LICENSE.md` for more information.\r\n\r\n\r\n\u003c!-- Contact --\u003e\r\n## :handshake: Contact\r\n\r\nYou can reach me at:\r\n- Personal website: https://www.dfotiou.gr\r\n- StackOverflow profile: https://stackoverflow.com/users/11680294/fotiou-d\r\n- Linkedin profile: https://www.linkedin.com/in/dimitris-fotiou-4141a8197/\r\n- Email: [fotioudimitris93@gmail.com](mailto:fotioudimitris93@gmail.com)\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffotioudim%2Fnwc-safer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffotioudim%2Fnwc-safer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffotioudim%2Fnwc-safer/lists"}