Every drone pilot has a weather app on their phone. None of them answers the question a pilot is actually asking.
A pilot does not ask “what is the wind?”. They ask “can I take off, here, today, with this aircraft, at this hour?” That is a different question, and answering it needs more than weather.
That is why I built Fly4cast. It started on the web, then Android, then iOS.
You measured at the ground. What is it up there?
This is the biggest misconception. Weather data is normally given at a 10-metre reference height. You will be flying at 100–120 metres.
v₁₀: speed at 10 m. z: altitude. α: the surface roughness exponent — open terrain and water ≈ 0.10–0.16; rural ≈ 0.20; built-up up to 0.30.
Over open terrain (α = 0.16) with 6 m/s at the ground:
| altitude | speed | state |
|---|---|---|
| 10 m | 6.0 m/s | comfortable |
| 50 m | 7.7 m/s | watch it |
| 100 m | 8.6 m/s | near the limit |
| 120 m | 8.9 m/s | legal ceiling |
A typical consumer drone’s manufacturer wind limit is 10.7 m/s. You see 6 m/s at the ground and call it comfortable; at the ceiling your margin is down to 16%. Add gusts and you are over the limit.
So in the app wind is not one number but a curve against altitude. The pilot sees the height at which their margin runs out.
The thing nobody looks at: Kp
One day the wind was calm, the sky clear, and a drone lost its position and drifted on its own.
The cause was not in the sky but in the sun. The Kp index measures geomagnetic activity from 0 to 9. A high Kp disturbs the ionosphere; the delay a GPS signal suffers becomes unpredictable. The result is position drift, compass error and a wandering home point.
- Kp 0–3 — quiet
- Kp 4 — unsettled; be careful on precision work
- Kp 5–6 — storm; position solutions may degrade
- Kp 7+ — serious; do not trust automated flight modes
No weather app shows this, because it is not weather. For a pilot it can matter more than weather.
The temptation of one percentage
The first version had a number: “flyability: 78%”. It looked good. It was wrong.
| situation | score | actual risk |
|---|---|---|
| Wind a bit high, everything else perfect | 78% | manageable, fly low |
| Everything fine but Kp 6 | 78% | do not trust GPS — serious |
| Five factors slightly poor | 78% | ambiguous, be cautious |
A single number does not summarise information, it destroys it. What a pilot needs is not the score but which threshold was crossed.
I removed the score. In its place is a pre-flight attention list: each row a measurement, a threshold and a consequence. Green means go, amber means read, red means stop. The decision is still the pilot’s; they just know what they are looking at.
Before the flight, not during it
Flight plans can be saved, and the system sends escalating notifications:
T−24 h → full condition set (wind profile, Kp, precipitation, sunset)
T−3 h → what changed (wind 6.1 → 8.4 m/s)
T−30 m → attention list only (rows over threshold)
The subtlety: each notification says less than the one before. At 24 hours you are planning; at 30 minutes you are in the car. Sending the same data three times in the same shape guarantees none of them is read.
Things that are not on any map
No-fly zones are a known layer. Less known: GPS jamming areas. Around certain facilities the signal degrades consistently, and it appears on no official map — pilots learn it by telling each other.
I turned those into a spatial layer. Once “I flew here and lost signal” becomes a data point rather than a rumour, the next pilot sees it before taking off.
What I learned
Showing raw data is easy. Turning raw data into a decision is hard. And the most dangerous shortcut in that translation is compressing everything into one number.
When the score came out, the app did not look more complex — it looked more honest.