Metadata-Version: 2.1
Name: flysight2csv
Version: 0.2.0
Summary: Utilities for finding and reformatting FlySight 2 CSV files (SENSOR.CSV and TRACK.CSV).
Home-page: https://github.com/yoleg/flysight2csv
License: MIT
Author: Oleg Pryadko
Author-email: oleg@olegpryadko.com
Requires-Python: >=3.10,<4.0
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Utilities
Requires-Dist: pydantic (>=2.5.3,<3.0.0)
Requires-Dist: rich (>=10)
Requires-Dist: rich-argparse (>=1.4.0,<2.0.0)
Requires-Dist: simplejson (>=3.19.2,<4.0.0)
Requires-Dist: types-simplejson (>=3.19.0.2,<4.0.0.0)
Project-URL: Bug Tracker, https://github.com/yoleg/flysight2csv/issues
Project-URL: Changelog, https://github.com/yoleg/flysight2csv/blob/main/CHANGELOG.md
Project-URL: Documentation, https://flysight2csv.readthedocs.io
Project-URL: Repository, https://github.com/yoleg/flysight2csv
Description-Content-Type: text/markdown

# flysight2csv

<p align="center">
  <a href="https://github.com/yoleg/flysight2csv/actions/workflows/ci.yml?query=branch%3Amain">
    <img src="https://img.shields.io/github/actions/workflow/status/yoleg/flysight2csv/ci.yml?branch=main&label=CI&logo=github&style=flat-square" alt="CI Status" >
  </a>
  <a href="https://flysight2csv.readthedocs.io">
    <img src="https://img.shields.io/readthedocs/flysight2csv.svg?logo=read-the-docs&logoColor=fff&style=flat-square" alt="Documentation Status">
  </a>
  <a href="https://codecov.io/gh/yoleg/flysight2csv">
    <img src="https://img.shields.io/codecov/c/github/yoleg/flysight2csv.svg?logo=codecov&logoColor=fff&style=flat-square" alt="Test coverage percentage">
  </a>
</p>
<p align="center">
  <a href="https://python-poetry.org/">
    <img src="https://img.shields.io/badge/packaging-poetry-299bd7?style=flat-square&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAASCAYAAABrXO8xAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAJJSURBVHgBfZLPa1NBEMe/s7tNXoxW1KJQKaUHkXhQvHgW6UHQQ09CBS/6V3hKc/AP8CqCrUcpmop3Cx48eDB4yEECjVQrlZb80CRN8t6OM/teagVxYZi38+Yz853dJbzoMV3MM8cJUcLMSUKIE8AzQ2PieZzFxEJOHMOgMQQ+dUgSAckNXhapU/NMhDSWLs1B24A8sO1xrN4NECkcAC9ASkiIJc6k5TRiUDPhnyMMdhKc+Zx19l6SgyeW76BEONY9exVQMzKExGKwwPsCzza7KGSSWRWEQhyEaDXp6ZHEr416ygbiKYOd7TEWvvcQIeusHYMJGhTwF9y7sGnSwaWyFAiyoxzqW0PM/RjghPxF2pWReAowTEXnDh0xgcLs8l2YQmOrj3N7ByiqEoH0cARs4u78WgAVkoEDIDoOi3AkcLOHU60RIg5wC4ZuTC7FaHKQm8Hq1fQuSOBvX/sodmNJSB5geaF5CPIkUeecdMxieoRO5jz9bheL6/tXjrwCyX/UYBUcjCaWHljx1xiX6z9xEjkYAzbGVnB8pvLmyXm9ep+W8CmsSHQQY77Zx1zboxAV0w7ybMhQmfqdmmw3nEp1I0Z+FGO6M8LZdoyZnuzzBdjISicKRnpxzI9fPb+0oYXsNdyi+d3h9bm9MWYHFtPeIZfLwzmFDKy1ai3p+PDls1Llz4yyFpferxjnyjJDSEy9CaCx5m2cJPerq6Xm34eTrZt3PqxYO1XOwDYZrFlH1fWnpU38Y9HRze3lj0vOujZcXKuuXm3jP+s3KbZVra7y2EAAAAAASUVORK5CYII=" alt="Poetry">
  </a>
  <a href="https://github.com/ambv/black">
    <img src="https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square" alt="black">
  </a>
  <a href="https://github.com/pre-commit/pre-commit">
    <img src="https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=flat-square" alt="pre-commit">
  </a>
</p>
<p align="center">
  <a href="https://pypi.org/project/flysight2csv/">
    <img src="https://img.shields.io/pypi/v/flysight2csv.svg?logo=python&logoColor=fff&style=flat-square" alt="PyPI Version">
  </a>
  <img src="https://img.shields.io/pypi/pyversions/flysight2csv.svg?style=flat-square&logo=python&amp;logoColor=fff" alt="Supported Python versions">
  <img src="https://img.shields.io/pypi/l/flysight2csv.svg?style=flat-square" alt="License">
</p>

---

**Documentation**: <a href="https://flysight2csv.readthedocs.io" target="_blank">https://flysight2csv.readthedocs.io </a>

**Source Code**: <a href="https://github.com/yoleg/flysight2csv" target="_blank">https://github.com/yoleg/flysight2csv </a>

---

Utilities for finding and reformatting FlySight 2 CSV files (SENSOR.CSV and TRACK.CSV).

💡 This is an early release. Please let me know how you use this tool and what features you would like to see.

## Features

Functionality:

- Find all the FlySight 2 CSV files in one or more directories or possible file paths.
- View metadata (vars, sensors, columns, units, and first row) for each CSV file.
- Copy the files to a directory, prepending the parent directory names to the filename.
- Reformat the CSV files for easier use with other tools, such as Pandas dataframes.
  - Calculates ISO timestamps for non-GPS sensors from $TIME field values, if available.
  - Available formats:
    - Flat CSV (single header row)
    - JSON lines (one JSON object per line)
  - Available filters:
    - Select only the columns you need.
    - Select only the sensors you need.
- Merge the reformatted files from each directory into an additional MERGED.CSV file, sorted by timestamp.

Compatibility:

- Works with Python 3.10+
- Tested on Windows, Mac, and Linux
- May be used as a Python library or command-line tool

### Possible future features

Let me know if you would like to see any of these added.

Discovery:

- Filter the CSV files by date/time, altitude, or other criteria.
- Show a summary of date ranges and altitudes for the discovered CSV files.

Reformatting:

- Add units to the flattened CSV files.
- FlySight 1 output format.
- Trim the CSV files to just the descent or ascent portion of a flight.

Misc:

- Installers for Windows, Mac, and Linux.
- Simple graphical user interface (GUI) for selecting options and running the command.

## Installation

The package is published on [PyPI](https://pypi.org/project/flysight2csv/) and can be installed with `pip` (or any
equivalent):

```shell
pip install flysight2csv
```

For complete installation instructions, see
the [documentation](https://flysight2csv.readthedocs.io/latest/installation.html).

## Usage

**Please note that this is an early release, and the API may change in future versions.**

Preview the files to be processed:

```shell
flysight2csv source/files/or/directories/
flysight2csv source/files/or/directories/ --info=metadata
```

Copy the files to a new directory, prepending the date and time to the filename:

```shell
flysight2csv source/files/or/directories/ -o output/path/
```

Reformat the copied files into a "flat" CSV (single header) for use with other tools:

```shell
flysight2csv source/files/or/directories/ -o output/path/ -f csv-flat
```

For more options, see the help:

```shell
flysight2csv --help
```

## Troubleshooting

See the [troubleshooting](https://flysight2csv.readthedocs.io/latest/troubleshooting.html) section of the documentation.

## Contributors ✨

Contributions of any kind welcome! Please see the [contributing guide](CONTRIBUTING.md).

## Credits

This package was created with
[Copier](https://copier.readthedocs.io/) and the
[browniebroke/pypackage-template](https://github.com/browniebroke/pypackage-template)
project template.

