# mvn_flight

This project contains tools for decoding, converting, and visualizing telemetry data from the MVN. It includes utilities for unpacking binary archives, converting them to CSV, and generating plots for selected time intervals.

## Contents

- **Project structure**
- **Requirements**
- **Linux Setup**  
- **Windows 10 Setup**
- **Using the tools**
    - *Plot all ASOTR data*
    - *Plot ASOTR data in specified date borders (for MVN reports)*
- **Docker setup**
- **Contacts**

**Note 1**: \<PATH_TO_MVN_FLIGHT\> - path where is mvn_flight scripts is cloned from heagit  
**Note 2**: \<PATH_TO_ASOTR_DATA\> - path with raw MVN ASOTR data   

## Project structure
-> `/bin/` - ready-to-use binary files and python scripts for assembling, extracting and plotting telemetry data     
--> `/bin/asotr_unzip_plot.sh` or `/bin/asotr_unzip_plot.bat` — scripts to automate the unpack-convert-plot chain ASOTR data (Linux/Windows).  
--> `/bin/plot_flight_borders.py` — Python script to generate plots from CSV data.  
--> `/bin/plot_flight_borders.sh` or `/bin/plot_flight_borders.bat` - scripts to automate plot generations for MVN reports  
--> `/bin/tm_brd_parser.py` - python script for demostration processing BRD telemetry data (1 Hz evolution)  
--> `/bin/tm_wheel_parser.py` - python script for demostration processing BRD wheel telemetry data  
-> `/asotr_csv/` — binary parser to collect data from raw ASOTR data to CSV. This parser   written using the Rust language. For more informatin see documentation in `/asotr_csv/README.markdown`).     
-> `/data/` — folder containing processed CSV files.    
-> `/plots/` — folder where output plots are saved.    

## Requirements
- git

- Python version 3.10 or upper. For checking type:
```bash
python3 --version
```

- Rust compiler version 1.83.0 or upper. For checking type:
```bash
rustc --version
```

## Linux Setup
1. Clone the repo to your computer:  
```bash
git clone http://heagit.cosmos.ru/gamkov/mvn_flight.git
```

2. Install python and python libraries (if you don't have):
```bash
sudo apt update
sudo apt install python3 python3-pip
pip3 install --upgrade matplotlib pandas openpyxl scipy
```

1. Install Rust compiler (if you do not have):
```bash
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
```

## Windows 10 Setup
1. Clone the repo to your computer:  
```cmd
git clone http://heagit.cosmos.ru/gamkov/mvn_flight.git
```

2. Install Python from https://www.python.org/downloads/

3. Open CMD and install python dependencies:
```cmd
pip install --upgrade matplotlib pandas openpyxl scipy
```

4. Install Rust compiler (if you do not have):  
Go to address https://www.rust-lang.org/tools/install and follow instructions  
For more detailed information you can go to: https://doc.rust-lang.ru/book/ch01-01-installation.html


## Using the tools

### Plot all ASOTR data
1. Donwload data from science data server to directory \<PATH_TO_ASOTR_DATA\>.  
If you don't have MVN data, you might download it from server with science SRG data (IP: 193.232.11.95).   
For questions about downloading science data contact Shtykovsky A. (a.shtykovsky@cosmos.ru) or Chelovekov I. (chelovekov@cosmos.ru)  

Linux (for example):
```
sftp username@IP_address
cd mvn/data/data/2025
get -r 20250101*
```

Windows:  
```
Open filezilla
connect to sft server
get data from: /export/home/user_name/mvn/data/data/2025
```



2. Parse all raw data from ASOTR into csv files and plot all csv data:  

Linux:
```bash  
cd bin
./asotr_unzip_plot.sh <PATH_TO_ASOTR_DATA>/
```

Windows:
```cmd
cd bin
asotr_unzip_plot.bat <PATH_TO_ASOTR_DATA>\
```

csv data will be in directory:  
```cmd
/data/asotr/  
```

### Plot ASOTR data in specified date borders (for MVN reports)
1-2. See previous chapter (``Plot all ASOTR data``)

3. plot ASOTR data in specified data borders 

Linux:
```bash
cd bin
./plot_flight_borders.sh 10.03.2025_00:00:00 23.04.2025_23:59:59
```

Windows:
```cmd
cd bin
plot_flight_borders.bat 10.03.2025_00:00:00 23.04.2025_23:59:59
```

where:  
10.03.2025_00:00:00 - start date_time  
23.04.2025_23:59:59 - end date_time  

plots with data are in the directory:  
```cmd
/plots/reports
```

### Docker Setup
running a docker image is an alternative way to use `mvn_flight` software.
you just follow steps:
1. download mvn raw data into \<PATH_TO_ASOTR_DATA\>, see chapter: `Plot all ASOTR data`
2. compose and run docker image:
```bash
docker compose up -d --build
docker exec -it asotr_container bash
```
3. Parse all raw data from ASOTR into csv files and plot all csv data:  
```bash  
./asotr_unzip_plot.sh /mnt/raw_mvn_data/
```
4. plot ASOTR data in specified data borders:
./plot_flight_borders.sh 10.03.2025_00:00:00 23.04.2025_23:59:59



## Contatcs
For questions about the program, please contact Danila Gamkov, email: danila_gamkov@cosmos.ru
