Rf Los Route
rf_los_routeAssess RF line-of-sight coverage from a waypoint, GPX, or GeoJSON route to target repeaters, with clear/marginal segments, coverage gaps, and verdicts at named stops.
Instructions
Assess RF coverage of target repeaters along a route (e.g. a drive or hike).
Provide the route as EXACTLY ONE of waypoints (list of lat/lon, in
order), gpx_path (path to a .gpx file of at most 10 MB readable by
this server, ~ expanded; track points, else route points, else
waypoints) or geojson_path (path to a .geojson/.json file of at most
10 MB, e.g. an OpenStreetMap export; prefer this over copying GeoJSON
coordinates into waypoints, which risks swapping GeoJSON's [lon, lat]
order). The file must be valid RFC 7946 GeoJSON (checked against the
GeoJSON JSON Schema; other JSON is rejected). GeoJSON
LineString/MultiLineString pieces are joined end to end
(branching or disconnected pieces are an error); Point features with a
name property become named waypoints placed on the line (within
500 m); with no lines, the Points are the route. The route must have
non-zero length. Each target has lat, lon, optional name, height_m
(default 25.0 m AGL), height_ref ("agl" or "amsl"), and optional
per-target frequency_mhz / snap_radius_m which override the call-level
values.
Waypoints / GPX points are route GEOMETRY: the route is resampled every
sample_spacing_m metres (default 200) along its length, so dense GPS
tracks are fine. Per-waypoint verdicts are reported ONLY for NAMED
waypoints plus the first ("Start") and last ("End") point: give a
name to each stop you want a result for (summit, hut, camp). GPX
track points are unnamed geometry; GPX route points and waypoints keep
their names. Line of sight is evaluated at the samples, an
approximation that can miss narrow ridges between them. At most 10000
line-of-sight checks (samples x targets) per call; for long routes or
many targets increase sample_spacing_m.
observer_height_m is the antenna height AGL along the route (default 1.5 m). Route positions are in km. Targets farther than max_range_km (default 100, max 300) from a point are reported out_of_range.
There is NO default frequency: without frequency_mhz the result is geometric only (no Fresnel zone) and says so. Take repeater lat/lon and output frequency (MHz) from the repeaterbook tools. Snapping (snap_radius_m, default 1000 m, 0 disables) moves the TARGETS to higher nearby ground, never the observer waypoints.
For an out-and-back route pass the OUTBOUND LEG ONLY: the return leg repeats the same coverage. Output has per-target coverage segments with percent clear/marginal, verdicts at Start/End and named waypoints, and coverage gaps. Vegetation is not modelled. A first query in a new area downloads ~12 MB per 1 degree terrain tile (about a minute each; at most 16 new tiles per call); use dem_prefetch. At most 50 targets per call, and at most 5,000,000 terrain samples in total (target snapping included).
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"targets": "<targets>"
},
"name": "rf_los_route"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | ||
| gpx_path | No | ||
| k_factor | No | Effective earth radius factor | |
| waypoints | No | ||
| geojson_path | No | ||
| max_range_km | No | ||
| frequency_mhz | No | Frequency in MHz (no default; omit for geometric-only check) | |
| snap_radius_m | No | Target snap radius in metres | |
| sample_spacing_m | No | Sample spacing in metres | |
| observer_height_m | No | Height in metres |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| gaps | Yes | ||
| notes | Yes | ||
| summary | Yes | ||
| targets | Yes | ||
| route_km | Yes | ||
| waypoints | Yes | ||
| attribution | Yes | ||
| sample_count | Yes | ||
| waypoint_count | Yes | ||
| skipped_targets | Yes | ||
| sample_spacing_m | Yes |