Resources Numerical accuracy
Calculations
Every calculation under our calculation policies: what it works out, its formula and the precision it runs at. Open one to see its code as it is in the released app.
Calculations
-
Phase spacing needed
The spacing between phases a span needs, from its largest sag.
need = k·√(sag + insulator length) + U ÷ 150 (U in kV)
Overhead line checks: clearances, support loads and sizing powerline/checks.js64-bit- CivilCraft
-
Loads on a support
The transverse, longitudinal and vertical load on a support in each load case and the equivalent load at its nominal point.
T = n·(w_h × wind span + (H_L + H_R)·sin(turn ÷ 2)); V = n·w_v × weight span + equipment; F_eq = √(T² + L²) × attach height ÷ nominal height
Overhead line checks: clearances, support loads and sizing powerline/checks.js64-bit- CivilCraft
-
Insulator swing angle
The angle a suspension insulator swings to under the wind case.
swing = atan2(T per conductor, V per conductor + insulator weight ÷ 2)
Overhead line checks: clearances, support loads and sizing powerline/checks.js64-bit- CivilCraft
-
Support strength check
Whether the support's nominal load covers the worst equivalent load times the size factor.
ok when worst F_eq × factor ≤ nominal × (1 + 1e−6)
Overhead line checks: clearances, support loads and sizing powerline/checks.js64-bit- CivilCraft
-
Foundation size
The depth, diameter and volume of a support's foundation hole.
depth = embedment, or height ÷ 10 + 0.5; diameter = max(0.6, foot diameter + 0.3) m; volume = π·d² ÷ 4 × depth
Overhead line checks: clearances, support loads and sizing powerline/checks.js64-bit- CivilCraft
-
Where a span crosses an obstacle in plan
The positions along a span, from 0 to 1, where it crosses an obstacle's outline or passes a single point.
t = ((p − a) × e) ÷ (d × e); u = ((p − a) × d) ÷ (d × e)
Overhead line checks: clearances, support loads and sizing powerline/checks.js64-bit- CivilCraft
-
Plant sizes in project units
The factor that turns a plant's mature height and spread in meters into project units.
project units per meter = 1 ÷ (1200 ÷ 3937) for feet
Overhead line checks: clearances, support loads and sizing powerline/landscape-obstacles.js64-bit- CivilCraft
-
Tree canopy as a ring
The outline of a plant's canopy used to find where a span passes over it.
12 points on the circle of radius r: (x + r·cos(2πk ÷ 12), y + r·sin(2πk ÷ 12))
Overhead line checks: clearances, support loads and sizing powerline/landscape-obstacles.js64-bit- CivilCraft
-
A plant as an obstacle
A single plant's canopy radius, height and ground level as an obstacle under a line.
radius = max(spread ÷ 2, 0.1); height = mature height
Overhead line checks: clearances, support loads and sizing powerline/landscape-obstacles.js64-bit- CivilCraft
-
Foundation volume shown in cubic yards
The foundation volume in the support's properties, in cubic yards for a feet project.
yd³ = m³ × 1.307951
Overhead line checks: clearances, support loads and sizing powerline/powerline-ui.js64-bit- CivilCraft
-
Length of a span in the network
The electrical length of each overhead span.
length = √(Δx² + Δy²) × m per unit
Power network: load current and voltage drop powerline/network.js64-bit- CivilCraft
-
Snapping to the nearest node
Finds the support or equipment a route end or a piece of equipment connects to.
nearest node with distance × m per unit ≤ snap + 1e−9
Power network: load current and voltage drop powerline/network.js64-bit- CivilCraft
-
Resistance, reactance and ampacity of an edge
The electrical data of a span or cable route, with parallel cables counted.
R = R₂₀ ÷ n; X = X ÷ n (0.08 or 0.35 Ω/km by default); ampacity × n
Power network: load current and voltage drop powerline/network.js64-bit- CivilCraft
-
Loads summed upstream
The active and reactive power each edge carries, and the current each load draws.
Q = P·tan(acos pf); I = √(P² + Q²) ÷ (√3·U)
Power network: load current and voltage drop powerline/network.js64-bit- CivilCraft
-
Current, voltage drop and node voltage
The current and voltage drop in each edge and the voltage and cumulative drop at each node.
ΔU = √3·I·(L ÷ 1000)·(R·cos φ + X·sin φ); drop % += ΔU ÷ (U × 1000) × 100; U node = U·(1 − drop ÷ 100)
Power network: load current and voltage drop powerline/network.js64-bit- CivilCraft
-
Route length
The plan length of a cable route in project units.
L = Σ √(Δx² + Δy²)
Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js64-bit- CivilCraft
-
Cover and cable band of a trench
The cover over the cable and the thickness of the band the cable or its ducts occupy, in meters.
cover = trench cover, or max(0, depth − bedding − band); band = duct diameter, or cable diameter
Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js64-bit- CivilCraft
-
Cable profile and cover check
The ground and the top of the cable along the route, and whether the cover meets the minimum.
cable = ground − cover ÷ m per unit; samples every L ÷ 100 by default
Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js64-bit- CivilCraft
-
Crossing of two plan segments
Where two straight segments cross in plan, as a position along each.
t = ((p − a) × e) ÷ (d × e); u = ((p − a) × d) ÷ (d × e)
Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js64-bit- CivilCraft
-
Crossings along the route
Every place a segment crosses the route, with its chainage.
ch = chainage of the vertex before + t × segment length
Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js64-bit- CivilCraft
-
Separation from a pipe at a crossing
The clear vertical gap between the cable and a pipe where they cross.
invert = (inv up + (inv down − inv up)·u) × m per unit; pipe top = invert + diameter; cable top = ground − cover; gap = max(cable bottom − pipe top, invert − cable top)
Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js64-bit- CivilCraft
-
Separation from another cable route
The clear vertical gap between two cable routes that cross, each at its own cover under the same ground.
gap between [−cover A − band A, −cover A] and [−cover B − band B, −cover B]
Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js64-bit- CivilCraft
-
Cables and pipes under an overhead line
The cable routes and pipes an overhead line crosses in plan, with the line's chainage and the level of the top of each.
cable top = ground − cover ÷ m per unit; pipe top = invert at the crossing + diameter
Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js64-bit- CivilCraft
-
Joints from the drum length
How many joints each cable needs and where along the route they fall.
run = length × (1 + slack %); joints per cable = ⌈run ÷ drum⌉ − 1; at = k × drum ÷ (1 + slack %)
Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js64-bit- CivilCraft
-
Trench quantities
Trench length, excavation, bedding and backfill volumes, duct length and cable length of a route.
excavation = width × depth × length; bedding = width × bedding × length; backfill = excavation − bedding − ducts × π(d ÷ 2)² × length; cable = (length × slack + 2 × depth) × count
Underground cable routes: cover, crossings, joints and trench quantities powerline/underground.js64-bit- CivilCraft
-
Numbers in the file
Turns a value into the fixed-decimal text the file carries, and newtons into decanewtons.
text = v.toFixed(d); daN = N ÷ 10, 2 decimals
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
Signed line angle at each support
The turn of the line at each support in degrees, counter-clockwise positive.
turn = atan2 of the span ahead − atan2 of the span behind, wrapped to ±180°
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
Support coordinates and heights written
Each support's position, ground level, pole length, height above ground and line angle as written to the file.
X = x × m per unit, 3 decimals; Hauteur = typed height × m per unit + embedment
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
Section tension and catenary parameter written
The reference temperature, horizontal tension and catenary parameter of each section as written to the file.
Parametre = H ÷ w, 3 decimals; TensionIni = H ÷ 10 daN, 2 decimals
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
Reading a number
Turns a field's text into a number, accepting a decimal comma.
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
Angles in grades
Converts a line angle given in grades to degrees.
degrees = grades × 0.9
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
A study file into a line
Turns the supports read from a file into a line in project units.
x = X (m) ÷ m per unit; voltage kV = V ÷ 1000
Line study file (.DON) export and import powerline/don.js64-bit- CivilCraft
-
Cubic meters per cubic yard
The factor used to give volumes in cubic yards in a feet project.
1 yd³ = 0.764554857984 m³
Power line tables, quantities and GIS export powerline/outputs.jsExact- CivilCraft
-
Stringing table rows
Tension, span length, sag and conductor length per section and temperature, in project units.
length ÷ m per unit; force ÷ 10 for daN or ÷ 4.4482216152605 for lbf
Power line tables, quantities and GIS export powerline/outputs.js64-bit- CivilCraft
-
Stringing table CSV
The stringing table as CSV text.
lengths and sags round(v, 2); tension round(v, 1)
Power line tables, quantities and GIS export powerline/outputs.js64-bit- CivilCraft
-
Support table rows
Ground, attachment, load, nominal load, foundation and swing per support, in project units.
attach height = attach z − ground z; load = worst F_eq in daN or lbf
Power line tables, quantities and GIS export powerline/outputs.js64-bit- CivilCraft
-
Conductor length to buy
The conductor length of a line with an allowance for jumpers and waste.
length = Σ catenary lengths × phases × circuits × 1.02 ÷ m per unit
Power line tables, quantities and GIS export powerline/outputs.js64-bit- CivilCraft
-
Lengths and volumes in project units
Converts meters and cubic meters to feet and cubic yards for the quantity rows.
LF = m ÷ 0.3048; CY = m³ ÷ 0.764554857984
Power line tables, quantities and GIS export powerline/outputs.js64-bit- CivilCraft
-
Quantities file for TakeoffCraft
The quantity rows in the format TakeoffCraft reads.
qty = round(qty, 2)
Power line tables, quantities and GIS export powerline/outputs.js64-bit- CivilCraft
-
Clear-sky beam and diffuse irradiance
The irradiance outside the atmosphere, the beam transmittance, and the beam and diffuse irradiance at the ground.
τ_b = a₀ + a₁·exp(−k ÷ cos Z); G_on = 1367·(1 + 0.033·cos(2πn ÷ 365)); G_bn = G_on·τ_b; τ_d = 0.271 − 0.294·τ_b
Clear-sky solar irradiance pv/daylight-bim-sky.js64-bit- CivilCraft
-
Meters per unit
The length of each supported unit in meters.
ft = 0.3048; US survey ft = 1200 ÷ 3937; in = 0.0254; yd = 0.9144; mi = 1609.344
Placing a scanned sheet in the project scanstart/place.jsExact- CivilCraft
-
Scale from two points
Project units per pixel from two points on the scan and the true distance between them.
units per pixel = distance ÷ √(Δpx² + Δpy²)
Placing a scanned sheet in the project scanstart/place.js64-bit- CivilCraft
-
Scale from a stated scale
Project units per pixel from the scan's resolution and a scale such as 1 inch = 50 feet or 1:500.
per ÷ dpi, or ratio × 0.0254 ÷ (m per unit) ÷ dpi
Placing a scanned sheet in the project scanstart/place.js64-bit- CivilCraft
-
Placement from a scale, origin and rotation
The transform that puts the sheet's lower-left corner at a point, turned by an angle, at a given scale.
c = s·cos θ, d = s·sin θ; X = x₀ − d·h + c·px + d·py; Y = y₀ + c·h + d·px − c·py
Placing a scanned sheet in the project scanstart/place.js64-bit- CivilCraft
-
Pixel to project coordinates
The project position of a pixel.
X = g₀ + g₁·px + g₂·py; Y = g₃ + g₄·px + g₅·py
Placing a scanned sheet in the project scanstart/place.js64-bit- CivilCraft
-
Inverse placement
The transform from project coordinates back to pixels.
det = g₁·g₅ − g₂·g₄; inverse = adjugate ÷ det
Placing a scanned sheet in the project scanstart/place.js64-bit- CivilCraft
-
Scale of a placement
The project units per pixel a placement stands for, reported with every fit.
scale = √|g₁·g₅ − g₂·g₄|
Placing a scanned sheet in the project scanstart/place.js64-bit- CivilCraft
-
Rotation of a placement
The angle a placement turns the sheet by, in degrees.
rotation = atan2(g₄, g₁) × 180 ÷ π
Placing a scanned sheet in the project scanstart/place.js64-bit- CivilCraft
-
3 × 3 linear solve
Solves the normal equations of the affine fit.
Gauss-Jordan elimination with partial pivoting
Placing a scanned sheet in the project scanstart/place.js64-bit- CivilCraft
-
Least-squares fit to matched points
The placement that best matches points picked on the scan to their project coordinates, with each point's residual and the root mean square.
similarity: c = Σ(u·X + v·Y) ÷ Σ(u² + v²), d = Σ(u·Y − v·X) ÷ Σ(u² + v²); rms = √(Σ r² ÷ n)
Placing a scanned sheet in the project scanstart/place.js64-bit- CivilCraft
A calculation is added only after its source was read. Each statement can be checked in the code shown on its policy's page; the app repositories are public. When a release changes a calculation, its page says so until it has been read again.