Files
ruvnet--RuView/examples/research-sota/r10_foliage_results.json
T
ruv 2e742305ba research(R10): through-foliage wildlife sensing — physics feasibility + per-species gait taxonomy
ITU-R P.833-9 vegetation-attenuation model + ESP32-S3 link-budget
solver produce bounded sensing range estimates per frequency and
foliage density. Plus a biomechanics-grounded gait-frequency taxonomy
spanning bears (0.5 Hz) to mice (15 Hz).

Headline ranges (121 dB link budget, 10 dB SNR margin):

  freq    sparse   moderate   dense
  2.4 GHz 99.6 m   12.0 m     4.1 m
  5 GHz   19.9 m   5.2 m      2.1 m

The 2.4 GHz / sparse cell (~100 m) is the practical sweet spot —
10x camera-trap coverage, always-on rather than PIR-triggered.

Honest scope called out explicitly: this is feasibility math, not
field measurements. Animal cooperation, foliage flutter, regulatory
limits, and BSSID-fingerprint degradation in remote forest are all
real follow-up problems.

Vertical applications (10-20 year horizon) catalogued:
- Endangered-species population census
- Wildlife corridor verification
- Invasive-species early warning
- Anti-poaching (human gait well-separated from wildlife)
- Livestock-on-rangeland tracking
- Agricultural pest control

Cross-connects to:
- R5 (saliency is task-specific — per-species classifier needs own
  saliency map, same lesson as R12)
- R8 (wildlife sensing wants CSI not RSSI for per-subcarrier shape)
- R9 (fingerprint K-NN primitive transfers to per-individual ID)
- R7 (multi-link consistency for corridor coverage)

Pure-NumPy, no framework deps. ITU model + binary search solver.
Coordination: tick avoided PROGRESS.md to prevent races (horizon-
tracker M3+ track concurrent at the time).

Files:
* examples/research-sota/r10_foliage_attenuation.py
* examples/research-sota/r10_foliage_results.json
* docs/research/sota-2026-05-22/R10-through-foliage-wildlife.md
* docs/research/sota-2026-05-22/ticks/tick-6.md
2026-05-22 00:59:11 -04:00

323 lines
7.0 KiB
JSON

{
"model": "ITU-R P.833-9 specific-attenuation + free-space-path-loss",
"link_budget": {
"tx_power_dbm": 20.0,
"tx_gain_dbi": 2.0,
"rx_gain_dbi": 2.0,
"rx_sensitivity_dbm": -97.0,
"link_budget_db": 121.0
},
"snr_margin_db": 10.0,
"curves": {
"2.4": {
"sparse": {
"distance_m": [
1.0,
2.0,
5.0,
10.0,
20.0,
50.0,
100.0,
200.0
],
"foliage_attenuation_db": [
2.948504761030617,
5.616422196068292,
12.191201617409519,
19.585539177106636,
26.790656384622018,
30.775099117538645,
30.982460104284222,
30.983866705796828
],
"fspl_db": [
40.05422483423212,
46.07482474751175,
54.0336249209525,
60.05422483423212,
66.07482474751174,
74.03362492095249,
80.05422483423212,
86.07482474751174
],
"total_loss_db": [
43.00272959526274,
51.69124694358004,
66.22482653836201,
79.63976401133876,
92.86548113213377,
104.80872403849114,
111.03668493851634,
117.05869145330857
]
},
"moderate": {
"distance_m": [
1.0,
2.0,
5.0,
10.0,
20.0,
50.0,
100.0,
200.0
],
"foliage_attenuation_db": [
9.828738843119512,
17.875829597953555,
34.274693559936615,
46.88364867308853,
53.228660545426806,
54.21930518249739,
54.22176673514445,
54.22176684690384
],
"fspl_db": [
40.05422483423212,
46.07482474751175,
54.0336249209525,
60.05422483423212,
66.07482474751174,
74.03362492095249,
80.05422483423212,
86.07482474751174
],
"total_loss_db": [
49.88296367735163,
63.9506543454653,
88.30831848088911,
106.93787350732066,
119.30348529293855,
128.2529301034499,
134.27599156937657,
140.2965915944156
]
},
"dense": {
"distance_m": [
1.0,
2.0,
5.0,
10.0,
20.0,
50.0,
100.0,
200.0
],
"foliage_attenuation_db": [
22.874762209122434,
38.99433469303874,
63.99919514438107,
75.12058766227474,
77.38903285082235,
77.45966497913676,
77.45966692414828,
77.45966692414834
],
"fspl_db": [
40.05422483423212,
46.07482474751175,
54.0336249209525,
60.05422483423212,
66.07482474751174,
74.03362492095249,
80.05422483423212,
86.07482474751174
],
"total_loss_db": [
62.92898704335455,
85.0691594405505,
118.03282006533357,
135.17481249650686,
143.46385759833407,
151.49328990008925,
157.5138917583804,
163.53449167166008
]
}
},
"5.0": {
"sparse": {
"distance_m": [
1.0,
2.0,
5.0,
10.0,
20.0,
50.0,
100.0,
200.0
],
"foliage_attenuation_db": [
4.255800043719799,
8.106607166956543,
17.59648383889097,
28.269290790316198,
38.66898168857072,
44.42002939962088,
44.719329203413345,
44.7213594578182
],
"fspl_db": [
46.42940008672038,
52.45,
60.40880017344075,
66.42940008672038,
72.45,
80.40880017344075,
86.42940008672038,
92.45
],
"total_loss_db": [
50.68520013044018,
60.556607166956546,
78.00528401233171,
94.69869087703657,
111.11898168857073,
124.82882957306163,
131.14872929013373,
137.1713594578182
]
},
"moderate": {
"distance_m": [
1.0,
2.0,
5.0,
10.0,
20.0,
50.0,
100.0,
200.0
],
"foliage_attenuation_db": [
14.186562542173952,
25.801537575915912,
49.471258883053345,
67.67071795499876,
76.82895373626346,
78.25882610597336,
78.26237905118187,
78.26237921249265
],
"fspl_db": [
46.42940008672038,
52.45,
60.40880017344075,
66.42940008672038,
72.45,
80.40880017344075,
86.42940008672038,
92.45
],
"total_loss_db": [
60.61596262889433,
78.25153757591592,
109.8800590564941,
134.10011804171916,
149.27895373626347,
158.6676262794141,
164.69177913790224,
170.71237921249264
]
},
"dense": {
"distance_m": [
1.0,
2.0,
5.0,
10.0,
20.0,
50.0,
100.0,
200.0
],
"foliage_attenuation_db": [
33.01687529771379,
56.2834740797407,
92.3748813613195,
108.42722877124301,
111.70144737186769,
111.80339606760708,
111.80339887498941,
111.80339887498948
],
"fspl_db": [
46.42940008672038,
52.45,
60.40880017344075,
66.42940008672038,
72.45,
80.40880017344075,
86.42940008672038,
92.45
],
"total_loss_db": [
79.44627538443416,
108.7334740797407,
152.78368153476026,
174.8566288579634,
184.15144737186768,
192.21219624104782,
198.2327989617098,
204.2533988749895
]
}
}
},
"max_sensing_range_m": {
"2.4": {
"sparse": 99.57923271861807,
"moderate": 12.034801111889358,
"dense": 4.0622989555207685
},
"5.0": {
"sparse": 19.88605854664752,
"moderate": 5.151689752409455,
"dense": 2.097082570943368
}
},
"species_gait_bands_hz": {
"human-walking": {
"min_hz": 1.2,
"max_hz": 2.5
},
"deer": {
"min_hz": 1.8,
"max_hz": 4.0
},
"wolf": {
"min_hz": 1.5,
"max_hz": 3.5
},
"bear": {
"min_hz": 0.5,
"max_hz": 1.5
},
"fox": {
"min_hz": 2.0,
"max_hz": 4.5
},
"squirrel": {
"min_hz": 4.0,
"max_hz": 10.0
},
"mouse": {
"min_hz": 5.0,
"max_hz": 15.0
},
"raccoon": {
"min_hz": 1.5,
"max_hz": 3.5
},
"wild-boar": {
"min_hz": 1.0,
"max_hz": 2.5
},
"elk": {
"min_hz": 1.5,
"max_hz": 3.0
}
}
}