Source: https://guthlabs.ai/docs/instruments/field-of-view-calculator-sensor-focal-length/

instrument / verified-clean

# Field of View Calculator (Sensor + Focal Length)

The current ledger marks this instrument verified clean within the source-bound verification corpus.

Status: **VERIFIED_CLEAN**Lifecycle: **verified-clean**

## Inspectable records

[01**Overview**Purpose and lifecycle](<https://guthlabs.ai/docs/instruments/field-of-view-calculator-sensor-focal-length/>)[02**Mechanism**Method and assumptions](<https://guthlabs.ai/docs/instruments/field-of-view-calculator-sensor-focal-length/mechanism/>)[03**Implementation**Binding and validation](<https://guthlabs.ai/docs/instruments/field-of-view-calculator-sensor-focal-length/implementation/>)[04**Qualification**Evidence and errata](<https://guthlabs.ai/docs/instruments/field-of-view-calculator-sensor-focal-length/qualification/>)

## Ledger state

The current ledger marks this instrument verified clean within the source-bound verification corpus.

**Area**: Audio, Music, Photography & Color

**Tranche**: tranche-4

**Evidence ID**: t4-181

**Ledger rows**: 1

No ledger note is attached.

## Review findings

The core geometric formulas are standard after adding the explicit radians-to-degrees conversion and diagonal calculation. Final approval requires the exact preset dimension table, explicit positive-input constraints, and an honest label stating that 35mm equivalence uses the approximate 43.3 mm reference diagonal.

### Formula and scope findings

- The AOV formula is mathematically correct in radians, but the specification claims degree outputs without explicitly applying the radians-to-degrees conversion: AOV_degrees=2*atan(sensorDim/(2*f))*180/pi.

- The diagonal AOV requires sensorDiagonal=sqrt(sensorWidth^2+sensorHeight^2), but that required step is not stated.

- The 35mm-equivalent formula is valid only when 43.3 mm is intentionally used as the approximate 35mm image-circle diagonal; the exact full-frame diagonal is approximately 43.27 mm.

### Unit assumptions

- Sensor width, sensor height, focal length, and sensor diagonal must all use the same linear unit, conventionally millimeters.

- atan returns radians, so AOV values require multiplication by 180/pi to be reported in degrees.

- The 43.3 constant is in millimeters and represents an approximate 35mm-frame diagonal.

- Preset dimensions must be explicitly defined; APS-C and medium-format dimensions vary by manufacturer and format.

## Boundary hardening

**BREAK_CLAIMED** · SELF_FLAGGED

The zero-diagonal input causes the equivalent-focal-length calculation to divide by zero. The zero-width boundary also produces mathematically finite but physically invalid output, and a negative focal length yields signed negative AOVs unless explicitly rejected or normalized.

## Errata and corrections

No applied erratum is attached to this unique-name record.

## Inspectable example

4 review vectors are recorded. One source-bound sample is shown below.

````
{
  "inputs": {
    "sensor_width_mm": 36,
    "sensor_height_mm": 24,
    "focal_length_mm": 50
  },
  "expected_outputs": {
    "horizontal_aov_deg": 39.6,
    "vertical_aov_deg": 26.99,
    "diagonal_aov_deg": 46.79,
    "equivalent_focal_length_mm": 50.04
  },
  "working": "Diagonal=sqrt(36^2+24^2)=sqrt(1872)=43.2666 mm. Horizontal=2*atan(36/(2*50))*180/pi=2*atan(0.36)*180/pi=2*0.34556*57.2958=39.60 degrees. Vertical=2*atan(24/100)*180/pi=2*atan(0.24)*57.2958=2*0.23554*57.2958=26.99 degrees. Diagonal=2*atan(43.2666/100)*57.2958=2*atan(0.432666)*57.2958=46.79 degrees. Equivalent=50*(43.3/43.2666)=50.04 mm."
}
````

## Related workflows

[Photographer's Exposure Benchframing](<https://guthlabs.ai/docs/instrument-workflows/exposure-bench/>)

## Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

- `VERIFIED_LEDGER.json · VERIFIED_CLEAN`

- `evidence-tranche4/tranche4-results.json`

- `BOUNDARY_HAZARD_CATALOG.json`
