Freezing rain ice accretion calculator
Size the ice a storm leaves on a power line: 2 mm/h of freezing rain for 6 hours in a 10 m/s wind builds 7.33693981 mm of radial ice on a 25 mm conductor. Ice mass and line load come with it. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Precipitation rate
- 2
- Duration
- 6
- Wind speed
- 10
- Result
- 7.33693981
- Conductor diameter
- 25
- Ice density
- 900
- Terminal velocity
- 5
A freezing rain ice accretion calculator turns liquid precipitation rate, wind speed, and storm duration into the radial glaze-ice thickness that grows on an overhead conductor. Supercooled rain that strikes a cold wire freezes as clear glaze. This tool treats the vertical rain flux and the wind-driven liquid-water flux as orthogonal sources, combines them with a root-sum-square as in the Jones simple icing model, freezes the collected mass at glaze density, and converts that mass into an annular radial thickness on the cylinder. Enter millimetres per hour, metres per second, and hours; the response reports millimetres of radial ice, iced diameter, ice mass per metre, and line load.
What radial ice accretion is and how the simple icing model is formed
Freezing rain is liquid precipitation that remains supercooled until it hits a surface colder than zero degrees Celsius and freezes as glaze. On an overhead conductor the ice grows as a roughly annular sleeve, so the quantity line engineers, weather offices, and standards writers report is radial ice thickness: the increase in radius of that sleeve, not the depth of ice on the top of the wire and not the water-equivalent rain depth by itself. Two water fluxes feed the sleeve.
Vertically, rain falls at a liquid-equivalent rate P; the mass of water that would land on a unit length of cylinder of diameter D in one second is the water density times that depth-rate times D. Horizontally, the same rain implies a liquid water content W equal to water density times the depth-rate divided by raindrop terminal velocity; wind of speed V then drives a flux W times V times D.
The Jones simple model treats those two fluxes as orthogonal components of one precipitation vector and combines them with a Euclidean norm, so a calm storm is pure rain on the projected width and a windy storm adds a side-on component without double-counting the same drops as a plain sum would. Collision efficiency and freezing fraction are taken as one, which is the usual dry-growth assumption for millimetre-class freezing-rain drops on a power-line conductor. The collected mass per unit length M is that combined flux times duration.
Annular growth then converts mass into thickness: the ice occupies a ring whose area is M over pi times ice density, so the new radius is the square root of the bare radius squared plus that area, and radial ice is the difference. Default ice density is nine hundred kilograms per cubic metre, the glaze value used in ISO 12494-style load work; default diameter is twenty-five millimetres, a common reference cylinder; default terminal velocity is five metres per second, typical of millimetre raindrops.
Zero rain or zero duration yields zero ice; the model does not invent accretion from wind alone.
What you can do with it
Overhead-line ice load from a freezing-rain forecast
Convert a forecast liquid-equivalent rate, mean wind, and event duration into millimetres of radial glaze on a named conductor and compare the ice load per metre with the span’s design ice class.
Post-storm reconstruction from rain-gauge and anemometer logs
Replay a station precipitation rate and wind record through the same simple icing model to estimate the sleeve that formed on a distribution feeder after a confirmed freezing-rain night.
Classroom and standards homework for the Jones simple model
Students enter rain rate, wind and hours from a textbook problem and check that the orthogonal-flux mass and annular radial thickness match the published arithmetic before they submit.
FAQ
How is radial ice accretion calculated from freezing rain, wind, and duration?
Liquid water content is W = ρ_w · P / V_t. Vertical and wind-driven fluxes on the cylinder are combined as F = hypot(ρ_w · P · D, W · V · D). Mass per metre is F times duration. Radial ice is √(r² + M/(π · ρ_i)) − r, reported in millimetres.
What happens when precipitation rate or duration is negative?
A freezing-rain rate or a storm duration cannot run backwards. Failed validation is not billed.
Which conductor diameter and ice density does the calculator assume?
The default conductor is a 25 mm reference cylinder and the default ice density is 900 kg/m³ (glaze).
Is this the same as a rainfall-rate converter or a wet-snow load model?
No. A rainfall-rate converter only changes units of liquid precipitation. A wet-snow model treats a different hydrometeor and a different accretion process. This tool estimates radial glaze ice on a conductor from rain, wind and duration.
What does the freezing rain ice accretion calculator cost?
The browser tool is free and runs locally.
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/earth/freezing-rain-accretion \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"precipitation_rate":2,"duration":6,"wind_speed":10}'const res = await fetch("https://api.kit.forhosting.com/earth/freezing-rain-accretion", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"precipitation_rate": 2,
"duration": 6,
"wind_speed": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/earth/freezing-rain-accretion",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"precipitation_rate": 2,
"duration": 6,
"wind_speed": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/earth/freezing-rain-accretion", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"precipitation_rate":2,"duration":6,"wind_speed":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"precipitation_rate":2,"duration":6,"wind_speed":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/earth/freezing-rain-accretion", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"precipitation_rate": 2,
"duration": 6,
"wind_speed": 10
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "earth.freezing_rain_accretion",
"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
A negative precipitation rate or duration is rejected as invalid_input because a storm cannot run backwards.
How to call the API and what the response contains
Send a JSON body with three required finite numbers: precipitation_rate in millimetres per hour (aliases precip_rate, rain_rate, precip, p, and rainfall_rate), duration in hours (aliases duration_h, hours, t, and storm_duration), and wind_speed in metres per second (aliases wind, v, wind_ms, and wind_speed_ms). Three optional fields have published defaults: conductor_diameter in millimetres defaults to twenty-five (aliases diameter, d, conductor_d, and wire_diameter), ice_density in kilograms per cubic metre defaults to nine hundred (aliases density, rho_ice, and ice_rho), and terminal_velocity in metres per second defaults to five (aliases vt, drop_velocity, and raindrop_speed). Each numeric field may arrive as a JSON number or as a strict numeric string. A negative precipitation_rate or a negative duration fails with invalid_input and is never charged, because those values would reverse the storm. A negative wind_speed, a non-positive conductor_diameter, a non-positive ice_density, a non-positive terminal_velocity, a missing required field, a non-finite value, or a magnitude above one billion are also rejected by name. On success the body echoes the six inputs, then publishes precipitation_depth_mm as rate times duration, liquid_water_content_g_m3, ice_mass_kg_per_m, radial_ice_mm, iced_diameter_mm as the bare diameter plus twice the radial thickness, ice_load_n_per_m as mass times standard gravity, result as an alias of radial_ice_mm, method set to jones_orthogonal_flux_annular, plus formula and equation strings filled with the rounded numbers. Pricing is a flat $0.002 per successful request with unit item; failed validation does not consume prepaid balance.
Line-design use, limits, and searches this page is not answering
Transmission and distribution planners use a freezing rain ice accretion calculator when a forecast or a post-storm rain-gauge and anemometer record must become a millimetre sleeve on a named conductor before they compare the ice load with a design ice class or a span rating. Weather-office icing desks can batch the same fields from a station log and attach the radial thickness to an event card without standing up a computational-fluid icing code. Classroom and exam-prep generators need a deterministic oracle for the Jones-style flux pair and the annular square root so a grader can mark both the calm-wind limit (horizontal flux zero) and the rejection of a negative rate. Prefer this capability when you already have a liquid precipitation rate, a wind speed and a duration and only need the simplified radial glaze thickness. Enter the liquid-equivalent rate, the hours the rain lasted, and the mean wind, keep the default twenty-five millimetre cylinder unless you are modelling a specific wire, and read radial_ice_mm and ice_load_n_per_m. Keep rates and durations at or above zero, keep diameter, density and terminal velocity strictly positive, and prefer JSON numbers over pre-formatted strings. This page targets people searching for a freezing rain ice accretion calculator, radial glaze ice on a conductor, or a simple icing model from precipitation, wind and duration. It is not a rime-icing solver from cloud liquid water and droplet median volume diameter, not an ISO 12494 ice-class lookup table, not a wet-snow sleeve model, and not a sag-tension engine. Round-trip checks are easy: form liquid water content as water density times the SI rain rate over terminal velocity, take the hypot of the two fluxes, multiply by duration, convert mass to an annulus, and confirm radial_ice_mm matches within the same eight-decimal rounding.