Skip to main content

Parse, validate, analyse and convert UAV mission data in the open .mfx (Mission Flight Exchange) format

Project description

pymfx

CI PyPI Coverage Docs

Parse, validate, analyse and convert UAV mission data using the open .mfx format — plain text, self-describing, FAIR-compliant, single file per flight.

pip install pymfx

Package

import pymfx

mfx = pymfx.parse("flight.mfx")
pymfx.validate(mfx)
Function Description
parse(src) Parse a .mfx file or string
validate(mfx) Run V01–V21 validation rules
flight_stats(mfx) Duration, distance, alt, speed
fair_score(mfx) FAIR compliance score (F/A/I/R)
detect_anomalies(mfx) Speed spikes, GPS jumps, altitude cliffs
write(mfx, dest) Write with auto SHA-256 checksum

Convert

mfx = pymfx.convert.from_gpx("track.gpx")
pymfx.convert.to_geojson(mfx)
Import Export
GPX 1.1 from_gpx to_gpx
GeoJSON from_geojson to_geojson
CSV from_csv to_csv
DJI / AirData from_dji_csv
KML to_kml

Visualize

import pymfx.viz as viz
viz.flight_profile(mfx)
Function Output
trajectory_map(mfx) Folium map, speed gradient
speed_heatmap(mfx) Folium map, heat overlay
compare_map([...]) Multi-flight overlay
flight_profile(mfx) Alt / speed / heading chart
flight_3d(mfx) 3D trajectory
events_timeline(mfx) Events on flight axis

flight profile

DataFrame

df = mfx.trajectory.to_dataframe(events=mfx.events)

TUI

pymfx flight.mfx --tui

TUI Overview

Key Tab
1 Overview
2 Trajectory
3 Events
4 Statistics + FAIR
5 Anomalies
6 Raw
e Export

TUI Trajectory


CLI

pymfx flight.mfx --validate
Flag Action
--validate Check V01–V21 rules
--info File summary
--stats Flight statistics
--checksum Verify SHA-256
--anomalies Detect anomalies
--diff other.mfx Compare two files
--export fmt -o out Export to gpx/kml/csv/geojson
--import fmt -o out Import from gpx/csv/dji/geojson
--repair -o out Rebuild checksum + index
--tui Open interactive viewer

Format

@mfx 1.0
@encoding UTF-8

[meta]
id         : uuid:f47ac10b-58cc-4372-a567-0e02b2c3d479
drone_id   : drone:DJI-Mini3-SN8273
pilot_id   : pilot:ahmed-jabrane
date_start : 2025-06-15T08:30:00Z
status     : complete
license    : CC-BY-4.0

[trajectory]
frequency_hz : 1.0
@checksum sha256:b1f2bc...
@schema point: {t:float [no_null], lat:float [no_null], lon:float [no_null], alt_m:float32, speed_ms:float32}
data[]:
0.000 | 48.7733 | 2.2858 | 52.1 | 3.2
1.000 | 48.7734 | 2.2859 | 54.3 | 4.1

[index]
bbox      : (2.2858, 48.7733, 2.2901, 48.7751)
anomalies : 0

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymfx-1.0.1.tar.gz (551.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pymfx-1.0.1-py3-none-any.whl (71.6 kB view details)

Uploaded Python 3

File details

Details for the file pymfx-1.0.1.tar.gz.

File metadata

  • Download URL: pymfx-1.0.1.tar.gz
  • Upload date:
  • Size: 551.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for pymfx-1.0.1.tar.gz
Algorithm Hash digest
SHA256 cbce4342f56193a56c29c4b9050ee5b9bb9f950b7df1ab44c22cd7f55e615bc1
MD5 32cb39d5fc0ef992885847bae236c064
BLAKE2b-256 6a4bdc265c21b8990e329ab07edb44e96df0f9f79023be93e3f44b0c48419f64

See more details on using hashes here.

File details

Details for the file pymfx-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pymfx-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 71.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for pymfx-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 455653407fffdd227475d8353a33109c39c0643c4a67392d4c286791991d709f
MD5 52f16b98e8ac8acb7ede8a2bc0715589
BLAKE2b-256 6cc2a1d022057dc7b13235720de33b6c2f67a978a04460fc9afcb394699a216d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page