Crosswind component calculator
A 20-knot wind at 30° to the runway gives a crosswind of 10 knots and a headwind of 17.320508 knots, because the sine of 30° is one half. Enter any speed unit and the relative angle to compare against crosswind limits. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Wind speed
- 20
- Angle deg
- 30
- Angle rad
- 0.523599
- Crosswind component
- 10
- Crosswind abs
- 10
- Headwind component
- 17.320508
When wind is not aligned with a runway, taxiway, or race track, only part of the wind acts as a headwind or tailwind; the rest pushes sideways as a crosswind. Pilots, dispatchers, and surface-vehicle operators need that crosswind component quickly and consistently, because it drives takeoff and landing limits, runway selection, and go or no-go decisions.
What the crosswind component is and how the angle is defined
The classical aviation definition is simple: the crosswind component equals wind speed multiplied by the sine of the angle between the wind direction and the runway or track heading. At zero degrees the wind is pure headwind (or pure tailwind if one hundred eighty degrees) and the crosswind is zero. At ninety degrees every unit of wind is crosswind.
Intermediate angles scale smoothly with the sine function, so a thirty-degree wind angle yields half the speed as crosswind because sine of thirty degrees is one half. The angle you pass here is that relative angle already reduced to the difference between wind and heading—not a raw METAR from-direction alone.
Many crews compute the difference as wind direction minus runway magnetic heading, then take the absolute value into the zero-to-ninety band used on rule-of-thumb cards; this service accepts any finite angle in degrees and applies sine and cosine directly so signed results stay available. Positive crosswind follows the signed sine of the angle you supply; the absolute field is included when you only need magnitude for limit checks. The headwind component is the cosine counterpart, useful when you also want the speed along the centerline without a second call.
Where operators use it and how pricing works
Dispatch scripts can post one task per runway candidate and pick the lowest absolute crosswind; training apps can quiz students against the same definition used in production. Because each successful request is a single item with pure arithmetic, latency is dominated by the task handshake rather than computation, which suits high-frequency form validation as well as batch reprocessing of historical METAR tables. The interactive tool above runs free in the browser for interactive checks.
Inputs and outputs stay within the platform retention window and are not used to train models.
What you can do with it
Runway selection and takeoff limits
Compute the crosswind component for each available runway heading from the same wind speed and relative angle, then compare against aircraft crosswind limits before takeoff or landing.
Flight training and briefing tools
Give students and instructors a shared, deterministic definition of crosswind and headwind components instead of paper sine cards that diverge between classrooms.
Drone, UAS, and surface-track operations
Feed ground-station or race-control software a signed crosswind value so automated hold or go decisions match published operating limits for the heading in use.
FAQ
What is the crosswind component formula?
Crosswind component equals wind speed multiplied by the sine of the angle in degrees between the wind and the runway or track heading. Headwind component uses the cosine of the same angle.
How do I get the angle from wind direction and runway heading?
Many operators use the absolute difference in the 0–90° range for magnitude-only checks.
Which speed unit should I use?
Any unit you already work with: knots, metres per second, miles per hour or kilometres per hour. The trigonometry has no units, so both components come back in the same unit as the wind speed you entered.
What does a negative crosswind mean?
The crosswind keeps the sign of the sine of the angle you enter, so a negative value shows the wind coming from the other side. For limit checks, use the absolute value, which is returned alongside the signed one.
How do I pick the runway with the least crosswind?
Run the same wind speed with the relative angle for each available runway heading and compare the absolute crosswind values. Choose the lowest one that stays within the aircraft's crosswind limit before takeoff or landing.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/geo/crosswind-component \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"wind_speed":20,"angle_deg":30}'const res = await fetch("https://api.kit.forhosting.com/geo/crosswind-component", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"wind_speed": 20,
"angle_deg": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/geo/crosswind-component",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"wind_speed": 20,
"angle_deg": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/geo/crosswind-component", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"wind_speed":20,"angle_deg":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"wind_speed":20,"angle_deg":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/geo/crosswind-component", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"wind_speed": 20,
"angle_deg": 30
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "geo.crosswind_component",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
This free calculator and API take wind speed in any unit you already use and the angle in degrees between the wind and the heading, then return a deterministic crosswind component (plus the companion headwind component) with the same unit as the speed you provided—no charts, no mental arithmetic, and no dependence on network weather services.
How to call the calculator and interpret the JSON fields
Units of speed are yours: knots, meters per second, miles per hour, or kilometers per hour all work because the trigonometry is unitless and every output speed reuses the same unit as the input. Values that need floating-point stability are rounded to six decimal places so goldens, logs, and browser widgets agree across runtimes. Send wind_speed as a non-negative finite number and angle_deg as a finite number of degrees. The response includes wind_speed and angle_deg echoed for audit trails, angle_rad for clients that prefer radians, crosswind_component as the signed sine product, crosswind_abs as its magnitude, headwind_component as the cosine product, a unit marker same_as_wind_speed, and the formula string. Missing fields, non-numeric strings, or negative wind_speed fail with invalid_input and are never charged. There is no network fetch, no model call, and no clock: the same pair of numbers always yields the same JSON.
Where operators use it and how pricing works
Use this endpoint in flight-planning tools, ATIS or briefing dashboards, flight-school trainers, drone and UAS ground stations, motorsport race-control systems, and any form that must reject operations when the crosswind exceeds a published maximum. Programmatic calls use the ForHosting KIT prepaid balance at $0.002 per successful request, with no subscription and no charge when validation fails. Document the wind-speed unit in your own schema so downstream consumers know whether limits are in knots or meters per second—the calculator deliberately does not convert units so you remain in control of the aviation or motorsport standard you already use.
Technical questions
Which units should I use for wind speed?
Any consistent unit—knots, m/s, mph, or km/h. Outputs use the same unit as wind_speed; the service does not convert between units.
What if wind_speed is negative or a field is missing?
The request fails with invalid_input and is not charged. wind_speed must be a finite number greater than or equal to zero; angle_deg must be a finite number.
Is the crosswind component calculator free?
The browser tool is free. API calls cost $0.002 per successful request from your prepaid KIT balance; failed validation is never charged.