Skip to main content

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

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.

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 files

1.0.0

2 files

Supported by

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