Skip to content
Snippets Groups Projects
Commit bb891ea4 authored by Tobias Rothlin's avatar Tobias Rothlin
Browse files

PostFlight Processing

parent 74e2fc6c
No related branches found
No related tags found
No related merge requests found
Pipeline #315873 failed
Showing
with 539 additions and 0 deletions
version: '3.8'
services:
influxdb:
image: influxdb:2.7
ports:
- 8086:8086
environment:
- DOCKER_INFLUXDB_INIT_MODE=setup
- DOCKER_INFLUXDB_INIT_USERNAME=admin
- DOCKER_INFLUXDB_INIT_PASSWORD=2^l2@H6js6gF{w2lQ8>V
- DOCKER_INFLUXDB_INIT_ORG=s2w
- DOCKER_INFLUXDB_INIT_BUCKET=status
- DOCKER_INFLUXDB_INIT_ADMIN_TOKEN=6VD5Xbnb_wlNGQcfN--4R3yo61GVuNBBAxv39KMXox3d16InEdOsgkdKBv6bjcdb2lCdzL-xNHF8szIhkKLIBw==
# - INFLUXD_TLS_CERT=/etc/ssl/influxdb-selfsigned.crt
# - INFLUXD_TLS_KEY=/etc/ssl/influxdb-selfsigned.key
# deploy:
# restart_policy:
# condition: on-failure
# delay: 60s
volumes:
- s2w-influxdb-data:/var/lib/influxdb2
- s2w-influxdb-config:/etc/influxdb2
volumes:
s2w-influxdb-data: {}
s2w-influxdb-config: {}
import pandas as pd
import influxdb_client, os, time
from influxdb_client import InfluxDBClient, Point, WritePrecision
from influxdb_client.client.write_api import SYNCHRONOUS
from datetime import datetime
import numpy as np
class S2WInflux:
def __init__(self, token):
self.url = "http://localhost:8086"
self.token = token
self.org = "s2w"
self.bucket = "FlightDataTest"
self.client = influxdb_client.InfluxDBClient(url=self.url, token=token, org=self.org)
self.write_api = self.client.write_api(write_options=SYNCHRONOUS)
def write_data(self, d):
print("Influx Writing: %s", d)
self.write_api.write(bucket=self.bucket, org=self.org, record=d)
if __name__ == '__main__':
SOURCE_FILE = "./example.csv"
frame = pd.read_csv(SOURCE_FILE)
myDB = S2WInflux("6VD5Xbnb_wlNGQcfN--4R3yo61GVuNBBAxv39KMXox3d16InEdOsgkdKBv6bjcdb2lCdzL-xNHF8szIhkKLIBw==")
for idx,line in frame.iterrows():
for key in line.to_dict():
point = (
Point(key)
.field("Flight1", line[key])
)
myDB.write_data(point)
time.sleep(10*(1/1000))
AWS_ACCESS_KEY_ID=minio
AWS_SECRET_ACCESS_KEY=minio123
MYSQL_DATABASE=mlflow_database
MYSQL_USER=mlflow_user
MYSQL_PASSWORD=mlflow
MYSQL_ROOT_PASSWORD=mysql
import mlflow
import os
import pandas as pd
os.environ['aws_access_key_id'] = 'minio'
os.environ['aws_secret_access_key'] = 'minio123'
os.environ['MLFLOW_S3_ENDPOINT_URL'] = "http://localhost:9000"
mlflow.set_tracking_uri("http://localhost:5000/")
mlflow.set_experiment("Test_123")
SOURCE_FILE = "C:/Users/tobias.rothlin/Documents/skyhopper/PostFlightProcessing/example.csv"
frame = pd.read_csv(SOURCE_FILE)
with mlflow.start_run():
for idx, line in frame.iterrows():
for key in line.to_dict():
mlflow.log_metric(key, line[key], idx)
mlflow~=1.30.0
boto3~=1.26.26
# Setup
1. Build and run the containers with `docker-compose`
```bash
docker-compose up -d --build
```
2. Access MLflow UI with http://localhost:5000
3. Access MinIO UI with http://localhost:9000
4. Test the setup by running the Example Script. The **requirements.txt** file also contains the dependencies required for your python environment.
## Logins
### MinIO:
* ID: **minio**
* Password: **minio123**
### MLFlow:
- No Login
### MySQL:
* USER: **mlflow_user**
* PASSWORD: **mlflow**
* ROOT PASSWORD: **mysql**
Disclaimer: The code is adapted from the [Repo](https://github.com/sachua/mlflow-docker-compose) by Chua Song Ann
\ No newline at end of file
version: '3.7'
services:
minio:
restart: always
image: minio/minio@sha256:d28c69eda85fb4c362d2a8976274da8f369398fc943b0c238c50722fd0c578c4
container_name: mlflow_s3
ports:
- "9000:9000"
- "9001:9001"
command: server /data --console-address ':9001' --address ':9000'
environment:
- MINIO_ROOT_USER=${AWS_ACCESS_KEY_ID}
- MINIO_ROOT_PASSWORD=${AWS_SECRET_ACCESS_KEY}
volumes:
- minio_data:/data
mc:
image: minio/mc@sha256:d281c2bfce56c727dc229643f8df99e24295fae586aaf6acb859eb2dd4c66ca4
depends_on:
- minio
container_name: mc
env_file:
- .env
entrypoint:
- /tmp/setup.sh
volumes:
- ./setup.sh:/tmp/setup.sh
- ./wait-for-it.sh:/tmp/wait-for-it.sh
db:
restart: always
image: mysql/mysql-server@sha256:fcbe88694872e88ae406bc69540211505eae922a182690d85be6af1a48e5ca0a
container_name: mlflow_db
ports:
- "3306:3306"
environment:
- MYSQL_DATABASE=${MYSQL_DATABASE}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
volumes:
- dbdata:/var/lib/mysql
web:
restart: always
build: ./mlflow
image: mlflow_server
container_name: mlflow_server
depends_on:
- mc
- db
ports:
- "5000:5000"
environment:
- MLFLOW_S3_ENDPOINT_URL=http://minio:9000
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
command: mlflow server --backend-store-uri mysql+pymysql://${MYSQL_USER}:${MYSQL_PASSWORD}@db:3306/${MYSQL_DATABASE} --default-artifact-root s3://mlflow/ --host 0.0.0.0
volumes:
dbdata:
minio_data:
FROM python:3.10-slim-buster
# Install python packages
COPY requirements.txt /tmp
RUN pip install -r /tmp/requirements.txt
\ No newline at end of file
cryptography==38.0.3
boto3==1.24.84
mlflow==2.2.2
pymysql==1.0.2
{
"extends": [
"config:base",
"docker:enableMajor"
],
"packageRules": [
{
"description": "Use custom regex versioning for bitnami images",
"matchPackagePrefixes": ["gcr.io/bitnami-containers/", "bitnami/"],
"matchDatasources": ["docker"],
"versioning": "regex:^(?<major>\\d+)\\.(?<minor>\\d+)\\.(?<patch>\\d+)(:?-(?<compatibility>.*-r)(?<build>\\d+))?$"
}
]
}
#!/usr/bin/env bash
/tmp/wait-for-it.sh minio:9000
#!/usr/bin/mc bash
mc alias set minio http://minio:9000 ${AWS_ACCESS_KEY_ID} ${AWS_SECRET_ACCESS_KEY}
mc mb minio/mlflow
exit 0
\ No newline at end of file
#!/usr/bin/env bash
# Use this script to test if a given TCP host/port are available
WAITFORIT_cmdname=${0##*/}
echoerr() { if [[ $WAITFORIT_QUIET -ne 1 ]]; then echo "$@" 1>&2; fi }
usage()
{
cat << USAGE >&2
Usage:
$WAITFORIT_cmdname host:port [-s] [-t timeout] [-- command args]
-h HOST | --host=HOST Host or IP under test
-p PORT | --port=PORT TCP port under test
Alternatively, you specify the host and port as host:port
-s | --strict Only execute subcommand if the test succeeds
-q | --quiet Don't output any status messages
-t TIMEOUT | --timeout=TIMEOUT
Timeout in seconds, zero for no timeout
-- COMMAND ARGS Execute command with args after the test finishes
USAGE
exit 1
}
wait_for()
{
if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then
echoerr "$WAITFORIT_cmdname: waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT"
else
echoerr "$WAITFORIT_cmdname: waiting for $WAITFORIT_HOST:$WAITFORIT_PORT without a timeout"
fi
WAITFORIT_start_ts=$(date +%s)
while :
do
if [[ $WAITFORIT_ISBUSY -eq 1 ]]; then
nc -z $WAITFORIT_HOST $WAITFORIT_PORT
WAITFORIT_result=$?
else
(echo -n > /dev/tcp/$WAITFORIT_HOST/$WAITFORIT_PORT) >/dev/null 2>&1
WAITFORIT_result=$?
fi
if [[ $WAITFORIT_result -eq 0 ]]; then
WAITFORIT_end_ts=$(date +%s)
echoerr "$WAITFORIT_cmdname: $WAITFORIT_HOST:$WAITFORIT_PORT is available after $((WAITFORIT_end_ts - WAITFORIT_start_ts)) seconds"
break
fi
sleep 1
done
return $WAITFORIT_result
}
wait_for_wrapper()
{
# In order to support SIGINT during timeout: http://unix.stackexchange.com/a/57692
if [[ $WAITFORIT_QUIET -eq 1 ]]; then
timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --quiet --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT &
else
timeout $WAITFORIT_BUSYTIMEFLAG $WAITFORIT_TIMEOUT $0 --child --host=$WAITFORIT_HOST --port=$WAITFORIT_PORT --timeout=$WAITFORIT_TIMEOUT &
fi
WAITFORIT_PID=$!
trap "kill -INT -$WAITFORIT_PID" INT
wait $WAITFORIT_PID
WAITFORIT_RESULT=$?
if [[ $WAITFORIT_RESULT -ne 0 ]]; then
echoerr "$WAITFORIT_cmdname: timeout occurred after waiting $WAITFORIT_TIMEOUT seconds for $WAITFORIT_HOST:$WAITFORIT_PORT"
fi
return $WAITFORIT_RESULT
}
# process arguments
while [[ $# -gt 0 ]]
do
case "$1" in
*:* )
WAITFORIT_hostport=(${1//:/ })
WAITFORIT_HOST=${WAITFORIT_hostport[0]}
WAITFORIT_PORT=${WAITFORIT_hostport[1]}
shift 1
;;
--child)
WAITFORIT_CHILD=1
shift 1
;;
-q | --quiet)
WAITFORIT_QUIET=1
shift 1
;;
-s | --strict)
WAITFORIT_STRICT=1
shift 1
;;
-h)
WAITFORIT_HOST="$2"
if [[ $WAITFORIT_HOST == "" ]]; then break; fi
shift 2
;;
--host=*)
WAITFORIT_HOST="${1#*=}"
shift 1
;;
-p)
WAITFORIT_PORT="$2"
if [[ $WAITFORIT_PORT == "" ]]; then break; fi
shift 2
;;
--port=*)
WAITFORIT_PORT="${1#*=}"
shift 1
;;
-t)
WAITFORIT_TIMEOUT="$2"
if [[ $WAITFORIT_TIMEOUT == "" ]]; then break; fi
shift 2
;;
--timeout=*)
WAITFORIT_TIMEOUT="${1#*=}"
shift 1
;;
--)
shift
WAITFORIT_CLI=("$@")
break
;;
--help)
usage
;;
*)
echoerr "Unknown argument: $1"
usage
;;
esac
done
if [[ "$WAITFORIT_HOST" == "" || "$WAITFORIT_PORT" == "" ]]; then
echoerr "Error: you need to provide a host and port to test."
usage
fi
WAITFORIT_TIMEOUT=${WAITFORIT_TIMEOUT:-15}
WAITFORIT_STRICT=${WAITFORIT_STRICT:-0}
WAITFORIT_CHILD=${WAITFORIT_CHILD:-0}
WAITFORIT_QUIET=${WAITFORIT_QUIET:-0}
# Check to see if timeout is from busybox?
WAITFORIT_TIMEOUT_PATH=$(type -p timeout)
WAITFORIT_TIMEOUT_PATH=$(realpath $WAITFORIT_TIMEOUT_PATH 2>/dev/null || readlink -f $WAITFORIT_TIMEOUT_PATH)
WAITFORIT_BUSYTIMEFLAG=""
if [[ $WAITFORIT_TIMEOUT_PATH =~ "busybox" ]]; then
WAITFORIT_ISBUSY=1
# Check if busybox timeout uses -t flag
# (recent Alpine versions don't support -t anymore)
if timeout &>/dev/stdout | grep -q -e '-t '; then
WAITFORIT_BUSYTIMEFLAG="-t"
fi
else
WAITFORIT_ISBUSY=0
fi
if [[ $WAITFORIT_CHILD -gt 0 ]]; then
wait_for
WAITFORIT_RESULT=$?
exit $WAITFORIT_RESULT
else
if [[ $WAITFORIT_TIMEOUT -gt 0 ]]; then
wait_for_wrapper
WAITFORIT_RESULT=$?
else
wait_for
WAITFORIT_RESULT=$?
fi
fi
if [[ $WAITFORIT_CLI != "" ]]; then
if [[ $WAITFORIT_RESULT -ne 0 && $WAITFORIT_STRICT -eq 1 ]]; then
echoerr "$WAITFORIT_cmdname: strict mode, refusing to execute subprocess"
exit $WAITFORIT_RESULT
fi
exec "${WAITFORIT_CLI[@]}"
else
exit $WAITFORIT_RESULT
fi
\ No newline at end of file
LogIndex,Angle_X,Angle_Y,Angle_z,Acc_x,Acc_y,Acc_z,GPS_lat,GPS_long,GPS_alt,GPS_sat,LRF,Pitch_out,Roll_out,Yaw_out,Throttle_out,RPM,Bus_3
0,-124.50,5.19,273.88,-5.49,8.04,0.89,47.2240066530,8.8176879880,385.30,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.49,8.04,0.89,47.2240028380,8.8176879880,385.40,12,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.51,8.04,0.91,47.2240028380,8.8176879880,385.40,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.53,8.03,0.88,47.2240028380,8.8176870350,385.40,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.49,8.06,0.87,47.2240028380,8.8176870350,385.40,12,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.52,8.06,0.89,47.2240028380,8.8176860810,385.40,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.50,8.04,0.89,47.2240028380,8.8176860810,385.50,12,289.0,-0.69,0.00,1.02,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.47,8.05,0.88,47.2240028380,8.8176860810,385.50,12,289.0,-0.69,0.00,1.02,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.51,8.02,0.87,47.2240028380,8.8176860810,385.50,12,289.0,-0.69,0.00,1.02,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.50,8.01,0.88,47.2239990230,8.8176851270,385.50,12,290.0,-0.69,0.00,1.03,0.00,12345,12.17
0,-124.50,5.19,273.88,-5.49,8.05,0.88,47.2239990230,8.8176851270,385.50,12,290.0,-0.69,0.00,1.03,0.00,12345,12.17
0,-124.50,5.19,273.88,-5.49,8.05,0.88,47.2239990230,8.8176851270,385.50,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.51,8.04,0.88,47.2239990230,8.8176851270,385.60,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.50,8.05,0.89,47.2239990230,8.8176841740,385.60,12,289.0,-0.69,0.00,1.02,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.48,8.05,0.89,47.2239990230,8.8176841740,385.60,12,289.0,-0.69,0.00,1.02,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.48,8.05,0.87,47.2239952090,8.8176822660,385.80,12,289.0,-0.69,0.00,1.02,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.49,8.03,0.88,47.2239952090,8.8176822660,385.80,12,289.0,-0.69,0.00,1.02,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.51,8.03,0.89,47.2239952090,8.8176813130,385.90,12,289.0,-0.69,0.00,1.02,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.49,8.02,0.89,47.2239952090,8.8176803590,385.90,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.48,8.05,0.88,47.2239952090,8.8176803590,385.90,12,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.54,8.04,0.88,47.2239952090,8.8176813130,385.80,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.49,8.04,0.89,47.2239952090,8.8176822660,385.70,12,289.0,-0.69,0.00,1.02,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.47,8.04,0.89,47.2239952090,8.8176822660,385.70,12,289.0,-0.69,0.00,1.02,0.00,12345,12.17
0,-124.50,5.19,273.88,-5.52,8.03,0.88,47.2239952090,8.8176832200,385.60,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.51,8.06,0.91,47.2239913940,8.8176832200,385.50,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.49,8.03,0.85,47.2239913940,8.8176832200,385.50,12,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.50,8.05,0.88,47.2239913940,8.8176832200,385.50,12,289.0,-0.69,0.00,1.02,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.54,8.04,0.89,47.2239875790,8.8176822660,385.60,12,289.0,-0.69,0.00,1.02,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.51,8.04,0.88,47.2239875790,8.8176813130,385.50,12,291.0,-0.69,0.00,1.03,0.00,12345,12.14
0,-124.50,5.19,273.88,-5.48,8.04,0.89,47.2239875790,8.8176813130,385.40,12,289.0,-0.69,0.00,1.02,0.00,12345,12.17
0,-124.50,5.19,273.88,-5.50,8.04,0.87,47.2239875790,8.8176813130,385.40,12,289.0,-0.69,0.00,1.02,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.50,8.04,0.90,47.2239837650,8.8176822660,385.50,12,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.49,8.03,0.89,47.2239837650,8.8176822660,385.40,12,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.51,8.04,0.88,47.2239837650,8.8176832200,385.40,12,289.0,-0.69,0.00,1.02,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.50,8.05,0.89,47.2239837650,8.8176851270,385.30,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.52,8.03,0.89,47.2239837650,8.8176851270,385.30,12,290.0,-0.69,0.00,1.03,0.00,12345,12.17
0,-124.50,5.19,273.88,-5.50,8.06,0.90,47.2239837650,8.8176860810,385.30,12,289.0,-0.69,0.00,1.02,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.51,8.03,0.90,47.2239837650,8.8176870350,385.20,12,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.51,8.05,0.87,47.2239837650,8.8176870350,385.20,12,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.50,5.19,273.88,-5.49,8.03,0.88,47.2239837650,8.8176879880,385.10,12,290.0,-0.69,0.00,1.03,0.00,12345,12.17
0,-124.50,5.19,273.88,-5.50,8.02,0.88,47.2239837650,8.8176879880,385.10,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.50,8.05,0.89,47.2239837650,8.8176879880,385.10,12,289.0,-0.69,0.00,1.02,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.48,8.04,0.88,47.2239837650,8.8176879880,385.10,12,289.0,-0.69,0.00,1.02,0.00,12345,12.15
0,-124.50,5.19,273.88,-5.52,8.04,0.87,47.2239799500,8.8176879880,385.10,12,289.0,-0.69,0.00,1.02,0.00,12345,12.17
0,-124.50,5.19,273.88,-5.49,8.04,0.87,47.2239799500,8.8176870350,385.10,12,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.19,273.94,-5.64,8.02,0.90,47.2239799500,8.8176870350,385.00,11,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.50,5.25,273.88,-5.51,8.11,0.81,47.2239799500,8.8176870350,385.00,11,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.44,5.25,273.88,-5.47,8.00,0.91,47.2239799500,8.8176870350,385.00,11,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.44,5.25,273.88,-5.50,8.06,0.88,47.2239837650,8.8176870350,385.10,11,290.0,-0.69,0.00,1.03,0.00,12345,12.17
0,-124.44,5.25,273.88,-5.46,8.04,0.89,47.2239837650,8.8176860810,385.10,11,290.0,-0.69,0.00,1.03,0.00,12345,12.17
0,-124.44,5.25,273.88,-5.45,8.04,0.91,47.2239837650,8.8176860810,385.20,11,290.0,-0.69,0.00,1.03,0.00,12345,12.14
0,-124.44,5.25,273.88,-5.48,8.06,0.89,47.2239837650,8.8176851270,385.20,11,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.44,5.25,273.88,-5.47,8.03,0.88,47.2239799500,8.8176841740,385.20,11,289.0,-0.69,0.00,1.02,0.00,12345,12.15
0,-124.44,5.25,273.88,-5.48,8.03,0.89,47.2239799500,8.8176841740,385.20,11,289.0,-0.69,0.00,1.02,0.00,12345,12.16
0,-124.44,5.25,273.88,-5.49,8.04,0.87,47.2239799500,8.8176832200,385.30,11,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-124.44,5.25,273.88,-5.48,8.04,0.88,47.2239799500,8.8176822660,385.30,11,290.0,-0.69,0.00,1.03,0.00,12345,12.17
0,-124.44,5.25,273.88,-5.49,8.07,0.90,47.2239799500,8.8176822660,385.30,11,289.0,-0.69,0.00,1.02,0.00,12345,12.15
0,-124.44,5.25,273.88,-5.47,8.04,0.89,47.2239799500,8.8176822660,385.30,11,289.0,-0.69,0.00,1.02,0.00,12345,12.15
0,-124.44,5.25,273.88,-5.46,8.05,0.88,47.2239799500,8.8176822660,385.30,11,289.0,-0.69,0.00,1.02,0.00,12345,12.16
0,-124.44,5.25,273.88,-5.47,8.06,0.88,47.2239799500,8.8176822660,385.30,11,289.0,-0.69,0.00,1.02,0.00,12345,12.16
0,-124.44,5.25,273.88,-5.46,8.04,0.90,47.2239799500,8.8176822660,385.40,11,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.44,5.25,273.88,-5.47,8.05,0.91,47.2239799500,8.8176822660,385.40,11,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-124.44,5.25,273.88,-5.51,8.05,0.88,47.2239799500,8.8176813130,385.30,11,289.0,-0.69,0.00,1.02,0.00,12345,12.15
0,-124.44,5.25,273.88,-5.48,8.05,0.89,47.2239799500,8.8176813130,385.30,11,289.0,-0.69,0.00,1.02,0.00,12345,12.17
0,-124.44,5.25,273.88,-5.46,8.06,0.89,47.2239799500,8.8176813130,385.30,11,290.0,-0.69,0.00,1.03,0.00,12345,12.17
0,-124.44,5.25,273.88,-5.48,8.03,0.89,47.2239799500,8.8176822660,385.30,11,290.0,-0.69,0.00,1.03,0.00,12345,12.15
0,-117.81,8.25,271.62,-5.03,5.68,3.15,47.2239799500,8.8176822660,385.30,11,290.0,-0.65,0.00,1.03,0.00,12345,12.17
0,-96.62,13.00,271.12,-1.24,9.97,1.84,47.2239799500,8.8176822660,385.40,11,290.0,-0.54,0.00,1.03,0.00,12345,12.15
0,-85.94,11.62,273.94,0.58,9.92,2.16,47.2239799500,8.8176822660,385.30,11,290.0,-0.48,0.00,1.03,0.00,12345,12.17
0,-63.88,6.06,282.94,3.15,8.04,1.61,47.2239837650,8.8176832200,385.30,11,290.0,-0.35,0.00,1.03,0.00,12345,12.15
0,-57.00,0.94,288.25,6.03,7.12,-0.19,47.2239837650,8.8176832200,385.20,11,290.0,-0.32,0.00,1.03,0.00,12345,12.16
0,-44.44,-5.06,297.75,5.56,2.76,0.99,47.2239799500,8.8176832200,385.20,11,290.0,-0.25,0.00,1.03,0.00,12345,12.15
0,-40.94,-9.88,301.94,7.80,3.77,-0.83,47.2239799500,8.8176822660,385.30,11,290.0,-0.23,0.00,1.03,0.00,12345,12.16
0,-62.56,1.12,282.94,-0.27,-2.53,-1.05,47.2239799500,8.8176822660,385.40,11,290.0,-0.35,0.00,1.03,0.00,12345,12.14
0,-80.25,4.31,277.12,3.26,5.95,-0.99,47.2239799500,8.8176822660,385.40,11,290.0,-0.45,0.00,1.03,0.00,12345,12.16
0,-95.25,10.94,266.38,-1.91,12.19,0.92,47.2239799500,8.8176813130,385.40,11,289.0,-0.53,0.00,1.02,0.00,12345,12.15
0,-104.06,15.62,260.12,-3.31,12.12,4.11,47.2239799500,8.8176822660,385.30,11,289.0,-0.58,0.00,1.02,0.00,12345,12.15
0,-97.50,14.38,262.38,3.37,8.64,-0.68,47.2239799500,8.8176832200,385.20,11,290.0,-0.54,0.00,1.03,0.00,12345,12.15
0,-86.19,11.81,266.12,-3.40,10.98,3.30,47.2239799500,8.8176832200,385.20,11,290.0,-0.48,0.00,1.03,0.00,12345,12.16
0,-60.31,16.75,265.81,4.02,8.16,3.03,47.2239837650,8.8176832200,385.20,11,290.0,-0.34,0.00,1.03,0.00,12345,12.15
0,-50.81,15.88,267.94,5.48,4.41,2.08,47.2239837650,8.8176822660,385.30,11,290.0,-0.28,0.00,1.03,0.00,12345,12.15
0,-60.94,10.56,275.62,3.90,7.57,5.67,47.2239837650,8.8176822660,385.30,11,289.0,-0.34,0.00,1.02,0.00,12345,12.15
0,-75.94,10.38,273.69,-2.03,0.26,-0.80,47.2239837650,8.8176822660,385.30,11,289.0,-0.42,0.00,1.02,0.00,12345,12.17
0,-95.38,7.62,276.12,-2.77,13.20,2.89,47.2239837650,8.8176813130,385.40,11,290.0,-0.53,0.00,1.03,0.00,12345,12.16
0,-95.31,10.75,271.75,-1.16,18.04,2.88,47.2239799500,8.8176813130,385.50,11,290.0,-0.53,0.00,1.03,0.00,12345,12.15
0,-61.81,15.94,264.38,3.32,4.36,-0.72,47.2239799500,8.8176803590,385.50,11,290.0,-0.34,0.00,1.03,0.00,12345,12.17
0,-49.81,15.19,265.25,5.10,0.25,-1.92,47.2239799500,8.8176803590,385.50,11,290.0,-0.28,0.00,1.03,0.00,12345,12.16
0,-65.19,7.50,277.38,3.55,6.42,0.55,47.2239799500,8.8176803590,385.40,11,289.0,-0.36,0.00,1.02,0.00,12345,12.15
0,-81.50,11.19,271.31,0.35,2.47,-0.84,47.2239799500,8.8176803590,385.40,11,289.0,-0.45,0.00,1.02,0.00,12345,12.16
0,-76.12,10.38,264.00,-0.98,13.09,-1.95,47.2239761350,8.8176794050,385.40,11,290.0,-0.42,0.00,1.03,0.00,12345,12.16
0,-67.19,11.25,261.38,-3.10,4.43,-1.70,47.2239761350,8.8176794050,385.30,11,290.0,-0.37,0.00,1.03,0.00,12345,12.16
0,-55.06,8.75,266.81,6.83,7.83,4.91,47.2239761350,8.8176794050,385.30,11,290.0,-0.31,0.00,1.03,0.00,12345,12.16
0,-94.31,11.38,266.44,-5.06,14.65,-1.13,47.2239761350,8.8176794050,385.20,11,291.0,-0.52,0.00,1.03,0.00,12345,12.15
0,-100.44,8.00,269.50,-1.42,24.26,1.74,47.2239761350,8.8176794050,385.20,11,291.0,-0.56,0.00,1.03,0.00,12345,12.14
0,-65.00,9.81,267.19,4.61,0.69,-0.45,47.2239761350,8.8176803590,385.00,11,290.0,-0.36,0.00,1.03,0.00,12345,12.16
0,-104.12,1.00,281.94,-4.04,23.44,5.98,47.2239723210,8.8176794050,384.90,11,290.0,-0.58,0.00,1.03,0.00,12345,12.16
0,-102.69,2.62,279.62,-4.00,17.85,2.25,47.2239723210,8.8176794050,384.90,11,290.0,-0.57,0.00,1.03,0.00,12345,12.16
0,-76.44,7.69,270.44,-2.40,6.75,0.49,47.2239723210,8.8176794050,384.90,11,290.0,-0.42,0.00,1.03,0.00,12345,12.16
0,-105.44,-1.69,284.69,-3.66,29.87,7.00,47.2239761350,8.8176794050,384.90,11,289.0,-0.59,0.00,1.02,0.00,12345,12.15
0,-104.12,0.69,281.06,-3.75,26.04,6.08,47.2239761350,8.8176794050,384.80,11,289.0,-0.58,0.00,1.02,0.00,12345,12.14
0,-80.69,9.06,267.81,-0.51,5.22,0.03,47.2239761350,8.8176803590,384.80,11,290.0,-0.45,0.00,1.03,0.00,12345,12.14
0,-71.88,12.75,263.12,3.82,-4.23,-4.25,47.2239723210,8.8176794050,384.80,11,290.0,-0.40,0.00,1.03,0.00,12345,12.15
0,-89.12,8.75,270.19,-2.12,0.49,-0.66,47.2239723210,8.8176794050,384.70,11,290.0,-0.50,0.00,1.03,0.00,12345,12.16
0,-101.56,2.44,275.12,-4.29,28.34,3.08,47.2239723210,8.8176794050,384.80,11,290.0,-0.56,0.00,1.03,0.00,12345,12.14
0,-89.25,2.06,277.50,-9.40,13.54,8.07,47.2239723210,8.8176794050,384.80,11,289.0,-0.50,0.00,1.02,0.00,12345,12.15
0,-81.69,12.31,262.56,2.01,16.94,-4.54,47.2239723210,8.8176784520,384.80,11,289.0,-0.45,0.00,1.02,0.00,12345,12.16
0,-78.06,9.94,267.50,1.09,0.54,0.45,47.2239723210,8.8176784520,384.80,11,290.0,-0.43,0.00,1.03,0.00,12345,12.17
0,-83.31,8.12,270.56,2.05,2.14,1.25,47.2239723210,8.8176784520,384.80,11,290.0,-0.46,0.00,1.03,0.00,12345,12.16
0,-88.75,6.88,272.38,-4.68,6.12,2.16,47.2239723210,8.8176784520,384.90,11,290.0,-0.49,0.00,1.03,0.00,12345,12.16
0,-101.94,6.75,272.75,-2.51,28.77,-1.97,47.2239723210,8.8176784520,384.80,11,289.0,-0.57,0.00,1.02,0.00,12345,12.17
0,-75.50,6.50,276.50,3.76,-1.05,0.59,47.2239723210,8.8176784520,384.80,11,290.0,-0.42,0.00,1.03,0.00,12345,12.15
0,-87.31,6.69,275.44,-2.30,5.80,0.01,47.2239723210,8.8176784520,384.80,11,290.0,-0.49,0.00,1.03,0.00,12345,12.16
0,-110.56,1.56,281.75,-5.23,17.40,3.06,47.2239723210,8.8176774980,384.80,11,290.0,-0.61,0.00,1.03,0.00,12345,12.15
0,-111.38,6.00,274.81,-4.33,6.53,0.73,47.2239723210,8.8176765440,384.80,11,290.0,-0.62,0.00,1.03,0.00,12345,12.15
0,-116.00,8.00,270.00,-4.58,6.38,-0.08,47.2239723210,8.8176765440,384.80,11,290.0,-0.64,0.00,1.03,0.00,12345,12.17
0,-126.69,5.69,271.75,-9.50,5.94,0.33,47.2239685060,8.8176755910,384.90,11,290.0,-0.70,0.00,1.03,0.00,12345,12.16
0,-125.06,5.56,273.25,-6.04,5.55,1.35,47.2239685060,8.8176755910,384.90,11,290.0,-0.69,0.00,1.03,0.00,12345,12.16
0,-127.06,5.31,273.94,-5.55,6.39,1.06,47.2239685060,8.8176755910,384.70,11,290.0,-0.71,0.00,1.03,0.00,12345,12.16
0,-127.62,5.75,272.56,-6.04,9.23,0.45,47.2239685060,8.8176755910,384.60,11,291.0,-0.71,0.00,1.03,0.00,12345,12.15
0,-127.38,5.81,272.38,-5.99,7.87,1.09,47.2239685060,8.8176765440,384.60,11,289.0,-0.71,0.00,1.02,0.00,12345,12.15
0,-127.31,5.88,272.31,-6.00,7.72,1.03,47.2239685060,8.8176755910,384.70,11,290.0,-0.71,0.00,1.03,0.00,12345,12.14
0,-127.25,5.81,272.38,-5.95,7.68,1.00,47.2239685060,8.8176746370,384.90,11,290.0,-0.71,0.00,1.03,0.00,12345,12.15
0,-127.25,5.81,272.44,-5.98,7.75,1.00,47.2239685060,8.8176746370,385.00,11,289.0,-0.71,0.00,1.02,0.00,12345,12.16
0,-127.19,5.81,272.44,-5.97,7.73,1.00,47.2239685060,8.8176736830,385.10,11,289.0,-0.71,0.00,1.02,0.00,12345,12.15
0,-127.19,5.81,272.44,-5.97,7.70,1.02,47.2239685060,8.8176736830,385.20,11,289.0,-0.71,0.00,1.02,0.00,12345,12.15
0,-127.19,5.81,272.44,-5.96,7.66,1.02,47.2239723210,8.8176736830,385.20,11,289.0,-0.71,0.00,1.02,0.00,12345,12.15
0,-127.19,5.81,272.44,-5.97,7.72,1.01,47.2239723210,8.8176736830,385.20,11,289.0,-0.71,0.00,1.02,0.00,12345,12.15
0,-127.19,5.81,272.44,-5.93,7.71,1.00,47.2239723210,8.8176736830,385.20,11,289.0,-0.71,0.00,1.02,0.00,12345,12.14
numpy~=1.26.2
pyqtgraph~=0.13.3
PySide6~=6.6.0
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment