Files

1667 lines
52 KiB
Python
Raw Permalink Normal View History

import dataclasses
import math
NOT_ALLOCATED = "#fff"
AERONAUTICAL_MOBILE = "#00aee1"
AERONAUTICAL_MOBILE_SATELLITE = "#97c9ec"
AERONAUTICAL_RADIONAVIGATION = "#c15018"
AMATEUR = "#009470"
AMATEUR_SATELLITE = "#d3e9dd"
BROADCASTING = "#3198b9"
BROADCASTING_SATELLITE = "#62bb47"
EARTH_EXPLORATION_SATELLITE = "#f89339"
FIXED = "#df018c"
FIXED_SATELLITE = "#c283ba"
INTER_SATELLITE = "#ffe376"
LAND_MOBILE = "#01a2b4"
LAND_MOBILE_SATELLITE = "#74cdd5"
MARITIME_MOBILE = "#e9e5c2"
MARITIME_MOBILE_SATELLITE = "#99c9bd"
MARITIME_RADIONAVIGATION = "#4c8d75"
METEOROLOGICAL_AIDS = "#f0d7c1"
METEOROLIGICAL_SATELLITE = "#965c08"
MOBILE = "#ead3e7"
MOBILE_SATELLITE = "#995ba6"
RADIO_ASTRONOMY = "#fff300"
RADIODETERMINATION_SATELLITE = "#fbab54"
RADIOLOCATION = "#f4cf1c"
RADIOLOCATION_SATELLITE = "#c4a001"
RADIONAVIGATION = "#aabd26"
RADIONAVIGATION_SATELLITE = "#e9eb7d"
SPACE_OPERATION = "#a34136"
SPACE_RESEARCH = "#e78d96"
STANDARD_FREQUENCY_AND_TIME_SIGNAL = "#8f989d"
STANDARD_FREQUENCY_AND_TIME_SIGNAL_SATELLITE = "#b4b5b9"
# Activity codes
EXCLUSIVE = "#ef324e" # Red
NON_EXCLUSIVE = "#00b185" # Green
SHARED = "#231f20" # Black
KHZ = 1000
MHZ = KHZ * KHZ
GHZ = MHZ * KHZ
@dataclasses.dataclass
class Band:
start: float
end: float
usages: list[tuple[str, str | None]]
band_3khz_300khz = [
Band(3 * KHZ, 9 * KHZ, [(NOT_ALLOCATED, NOT_ALLOCATED)]),
Band(9 * KHZ, 14 * KHZ, [(RADIONAVIGATION, SHARED)]),
Band(
14 * KHZ,
19.95 * KHZ,
[
(FIXED, NON_EXCLUSIVE),
(FIXED, None),
(MARITIME_MOBILE, EXCLUSIVE),
],
),
Band(19.95 * KHZ, 20.05 * KHZ, [(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)]),
Band(
20.05 * KHZ,
30 * KHZ,
[
(MARITIME_MOBILE, EXCLUSIVE),
(FIXED, SHARED),
],
),
# There's a line at 30khz on the chart, so I figure splitting this up is a good idea
Band(
30 * KHZ,
59 * KHZ,
[
(MARITIME_MOBILE, EXCLUSIVE),
(FIXED, SHARED),
],
),
Band(59 * KHZ, 61 * KHZ, [(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)]),
Band(
61 * KHZ,
70 * KHZ,
[
(MARITIME_MOBILE, EXCLUSIVE),
(FIXED, SHARED),
],
),
Band(
70 * KHZ,
90 * KHZ,
[
(MARITIME_MOBILE, EXCLUSIVE),
(RADIOLOCATION, None),
(FIXED, SHARED),
],
),
Band(90 * KHZ, 110 * KHZ, [(RADIONAVIGATION, SHARED)]),
Band(
110 * KHZ,
130 * KHZ,
[
(FIXED, None),
(RADIOLOCATION, None),
(MARITIME_MOBILE, SHARED),
],
),
Band(
130 * KHZ,
160 * KHZ,
[
(FIXED, None),
(MARITIME_MOBILE, SHARED),
],
),
Band(
160 * KHZ,
190 * KHZ,
[
(MARITIME_MOBILE, EXCLUSIVE),
(FIXED, SHARED),
],
),
Band(190 * KHZ, 200 * KHZ, [(AERONAUTICAL_RADIONAVIGATION, SHARED)]),
Band(
200 * KHZ,
275 * KHZ,
[
(AERONAUTICAL_MOBILE, None),
(AERONAUTICAL_RADIONAVIGATION, SHARED),
],
),
Band(
275 * KHZ,
285 * KHZ,
[
(MARITIME_RADIONAVIGATION, None),
(AERONAUTICAL_MOBILE, None),
(AERONAUTICAL_RADIONAVIGATION, SHARED),
],
),
Band(
285 * KHZ,
300 * KHZ,
[
(AERONAUTICAL_RADIONAVIGATION, None),
(MARITIME_RADIONAVIGATION, SHARED),
],
),
]
band_300khz_3mhz = [
Band(
300 * KHZ,
325 * KHZ,
[
(AERONAUTICAL_RADIONAVIGATION, None),
(MARITIME_RADIONAVIGATION, SHARED),
],
),
Band(
325 * KHZ,
335 * KHZ,
[
(AERONAUTICAL_RADIONAVIGATION, None),
(AERONAUTICAL_MOBILE, None),
(MARITIME_RADIONAVIGATION, SHARED),
],
),
Band(
335 * KHZ,
405 * KHZ,
[
(AERONAUTICAL_RADIONAVIGATION, None),
(AERONAUTICAL_MOBILE, SHARED),
],
),
Band(
405 * KHZ,
415 * KHZ,
[
(RADIONAVIGATION, None),
(AERONAUTICAL_MOBILE, SHARED),
],
),
Band(
415 * KHZ,
435 * KHZ,
[(MARITIME_MOBILE, None), (AERONAUTICAL_RADIONAVIGATION, SHARED)],
),
Band(
435 * KHZ,
495 * KHZ,
[
(AERONAUTICAL_RADIONAVIGATION, EXCLUSIVE),
(MARITIME_MOBILE, SHARED),
],
),
Band(495 * KHZ, 505 * KHZ, [(MOBILE, SHARED)]),
Band(505 * KHZ, 510 * KHZ, [(MARITIME_MOBILE, SHARED)]),
Band(
510 * KHZ,
525 * KHZ,
[(AERONAUTICAL_RADIONAVIGATION, None), (MARITIME_MOBILE, SHARED)],
),
Band(
525 * KHZ, 535 * KHZ, [(AERONAUTICAL_RADIONAVIGATION, None), (MOBILE, SHARED)]
),
Band(535 * KHZ, 1605 * KHZ, [(BROADCASTING, NON_EXCLUSIVE)]),
Band(1605 * KHZ, 1615 * KHZ, [(BROADCASTING, NON_EXCLUSIVE), (MOBILE, EXCLUSIVE)]),
Band(1615 * KHZ, 1705 * KHZ, [(BROADCASTING, NON_EXCLUSIVE)]),
Band(
1705 * KHZ,
1800 * KHZ,
[
(FIXED, None),
(MOBILE, None),
(RADIOLOCATION, SHARED),
],
),
Band(1800 * KHZ, 1900 * KHZ, [(AMATEUR, NON_EXCLUSIVE)]),
Band(1900 * KHZ, 2000 * KHZ, [(RADIOLOCATION, SHARED)]),
Band(
2000 * KHZ,
2065 * KHZ,
[(MARITIME_MOBILE, NON_EXCLUSIVE), (FIXED, None), (MOBILE, EXCLUSIVE)],
),
Band(2065 * KHZ, 2107 * KHZ, [(MARITIME_MOBILE, SHARED)]),
Band(
2107 * KHZ,
2170 * KHZ,
[
(MARITIME_MOBILE, None),
(LAND_MOBILE, NON_EXCLUSIVE),
(MOBILE, EXCLUSIVE),
(FIXED, SHARED),
],
),
Band(2170 * KHZ, 2173.5 * KHZ, [(MARITIME_MOBILE, SHARED)]),
Band(2173.5 * KHZ, 2190.5 * KHZ, [(MOBILE, SHARED)]),
Band(2190.5 * KHZ, 2194 * KHZ, [(MARITIME_MOBILE, SHARED)]),
Band(
2194 * KHZ,
2495 * KHZ,
[
(MARITIME_MOBILE, None),
(LAND_MOBILE, NON_EXCLUSIVE),
(MOBILE, EXCLUSIVE),
(FIXED, SHARED),
],
),
Band(2495 * KHZ, 2501 * KHZ, [(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)]),
Band(
2501 * KHZ,
2502 * KHZ,
[(SPACE_RESEARCH, EXCLUSIVE), (STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)],
),
Band(2502 * KHZ, 2505 * KHZ, [(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)]),
Band(
2505 * KHZ,
2850 * KHZ,
[
(MARITIME_MOBILE, None),
(LAND_MOBILE, NON_EXCLUSIVE),
(MOBILE, EXCLUSIVE),
(FIXED, SHARED),
],
),
Band(
2850 * KHZ,
3000 * KHZ,
[
(AERONAUTICAL_MOBILE, SHARED),
],
),
]
band_3mhz_30mhz = [
Band(3 * MHZ, 3.025 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(3.025 * MHZ, 3.155 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(3.155 * MHZ, 3.230 * MHZ, [(FIXED, None), (MOBILE, SHARED)]),
Band(
3.230 * MHZ, 3.4 * MHZ, [(FIXED, None), (MOBILE, None), (RADIOLOCATION, SHARED)]
),
Band(3.4 * MHZ, 3.5 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(3.5 * MHZ, 4.0 * MHZ, [(AMATEUR, NON_EXCLUSIVE)]),
Band(4.0 * MHZ, 4.063 * MHZ, [(MARITIME_MOBILE, None), (FIXED, SHARED)]),
Band(4.063 * MHZ, 4.438 * MHZ, [(MARITIME_MOBILE, SHARED)]),
Band(4.438 * MHZ, 4.65 * MHZ, [(FIXED, None), (MOBILE, SHARED)]),
Band(4.65 * MHZ, 4.7 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(4.7 * MHZ, 4.75 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(4.75 * MHZ, 4.85 * MHZ, [(FIXED, None), (MOBILE, SHARED)]),
Band(4.85 * MHZ, 4.995 * MHZ, [(MOBILE, EXCLUSIVE), (FIXED, SHARED)]),
Band(4.995 * MHZ, 5.003 * MHZ, [(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)]),
Band(
5.003 * MHZ,
5.005 * MHZ,
[(SPACE_RESEARCH, EXCLUSIVE), (STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)],
),
Band(5.005 * MHZ, 5.060 * MHZ, [(FIXED, SHARED)]),
Band(5.060 * MHZ, 5.45 * MHZ, [(FIXED, None), (MOBILE, SHARED)]),
Band(5.45 * MHZ, 5.68 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(5.68 * MHZ, 5.73 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(5.73 * MHZ, 5.90 * MHZ, [(FIXED, None), (MOBILE, SHARED)]),
Band(
5.90 * MHZ, 5.95 * MHZ, [(BROADCASTING, None), (FIXED, None), (MOBILE, SHARED)]
),
Band(5.95 * MHZ, 6.2 * MHZ, [(BROADCASTING, SHARED)]),
Band(6.2 * MHZ, 6.525 * MHZ, [(MARITIME_MOBILE, SHARED)]),
Band(6.525 * MHZ, 6.685 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(6.685 * MHZ, 6.765 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(6.765 * MHZ, 7.0 * MHZ, [(FIXED, None), (MOBILE, SHARED)]),
Band(7.0 * MHZ, 7.1 * MHZ, [(AMATEUR_SATELLITE, None), (AMATEUR, NON_EXCLUSIVE)]),
Band(7.1 * MHZ, 7.3 * MHZ, [(AMATEUR, NON_EXCLUSIVE)]),
Band(
7.3 * MHZ, 7.35 * MHZ, [(BROADCASTING, None), (FIXED, None), (MOBILE, SHARED)]
),
Band(7.35 * MHZ, 8.1 * MHZ, [(FIXED, None), (MOBILE, SHARED)]),
Band(8.1 * MHZ, 8.195 * MHZ, [(MARITIME_MOBILE, None), (FIXED, SHARED)]),
Band(8.195 * MHZ, 8.815 * MHZ, [(MARITIME_MOBILE, SHARED)]),
Band(8.815 * MHZ, 8.965 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(8.965 * MHZ, 9.040 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(9.040 * MHZ, 9.4 * MHZ, [(FIXED, SHARED)]),
Band(9.4 * MHZ, 9.5 * MHZ, [(BROADCASTING, None), (FIXED, SHARED)]),
Band(9.5 * MHZ, 9.9 * MHZ, [(BROADCASTING, SHARED)]),
Band(9.9 * MHZ, 9.995 * MHZ, [(FIXED, SHARED)]),
Band(9.995 * MHZ, 10.003 * MHZ, [(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)]),
Band(
10.003 * MHZ,
10.005 * MHZ,
[(SPACE_RESEARCH, EXCLUSIVE), (STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)],
),
Band(10.005 * MHZ, 10.1 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(10.1 * MHZ, 10.15 * MHZ, [(AMATEUR, NON_EXCLUSIVE)]),
Band(10.15 * MHZ, 11.175 * MHZ, [(FIXED, None), (MOBILE, SHARED)]),
Band(11.175 * MHZ, 11.275 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(11.275 * MHZ, 11.4 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(11.4 * MHZ, 11.6 * MHZ, [(FIXED, SHARED)]),
Band(11.6 * MHZ, 11.65 * MHZ, [(BROADCASTING, None), (FIXED, SHARED)]),
Band(11.65 * MHZ, 12.05 * MHZ, [(BROADCASTING, SHARED)]),
Band(12.05 * MHZ, 12.10 * MHZ, [(BROADCASTING, None), (FIXED, SHARED)]),
Band(12.10 * MHZ, 12.23 * MHZ, [(FIXED, SHARED)]),
Band(12.23 * MHZ, 13.2 * MHZ, [(MARITIME_MOBILE, SHARED)]),
Band(13.2 * MHZ, 13.26 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(13.26 * MHZ, 13.36 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(13.36 * MHZ, 13.41 * MHZ, [(RADIO_ASTRONOMY, SHARED)]),
Band(13.41 * MHZ, 13.57 * MHZ, [(MOBILE, EXCLUSIVE), (FIXED, SHARED)]),
Band(
13.57 * MHZ,
13.6 * MHZ,
[(MOBILE, EXCLUSIVE), (BROADCASTING, None), (FIXED, SHARED)],
),
Band(13.6 * MHZ, 13.8 * MHZ, [(BROADCASTING, FIXED)]),
Band(
13.8 * MHZ,
13.87 * MHZ,
[(MOBILE, EXCLUSIVE), (BROADCASTING, None), (FIXED, SHARED)],
),
Band(13.87 * MHZ, 14.0 * MHZ, [(MOBILE, EXCLUSIVE), (FIXED, SHARED)]),
Band(
14.0 * MHZ, 14.25 * MHZ, [(AMATEUR_SATELLITE, None), (AMATEUR, NON_EXCLUSIVE)]
),
Band(14.25 * MHZ, 14.35 * MHZ, [(AMATEUR, NON_EXCLUSIVE)]),
Band(14.35 * MHZ, 14.99 * MHZ, [(MOBILE, EXCLUSIVE), (FIXED, SHARED)]),
Band(14.99 * MHZ, 15.005 * MHZ, [(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)]),
Band(
15.005 * MHZ,
15.010 * MHZ,
[(SPACE_RESEARCH, EXCLUSIVE), (STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)],
),
Band(15.010 * MHZ, 15.10 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(15.10 * MHZ, 15.6 * MHZ, [(BROADCASTING, SHARED)]),
Band(15.6 * MHZ, 15.8 * MHZ, [(BROADCASTING, None), (FIXED, SHARED)]),
Band(15.8 * MHZ, 16.36 * MHZ, [(FIXED, SHARED)]),
Band(16.36 * MHZ, 17.41 * MHZ, [(MARITIME_MOBILE, SHARED)]),
Band(17.41 * MHZ, 17.48 * MHZ, [(FIXED, SHARED)]),
Band(17.48 * MHZ, 17.55 * MHZ, [(BROADCASTING, None), (FIXED, SHARED)]),
Band(17.55 * MHZ, 17.9 * MHZ, [(BROADCASTING, SHARED)]),
Band(17.9 * MHZ, 17.97 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(17.97 * MHZ, 18.03 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(18.03 * MHZ, 18.068 * MHZ, [(FIXED, SHARED)]),
Band(
18.068 * MHZ,
18.168 * MHZ,
[(AMATEUR, None), (AMATEUR_SATELLITE, NON_EXCLUSIVE)],
),
Band(18.168 * MHZ, 18.78 * MHZ, [(FIXED, None), (MOBILE, SHARED)]),
Band(18.78 * MHZ, 18.9 * MHZ, [(MARITIME_MOBILE, SHARED)]),
Band(18.9 * MHZ, 19.02 * MHZ, [(BROADCASTING, None), (FIXED, SHARED)]),
Band(19.02 * MHZ, 19.68 * MHZ, [(FIXED, SHARED)]),
Band(19.68 * MHZ, 19.80 * MHZ, [(MARITIME_MOBILE, SHARED)]),
Band(19.80 * MHZ, 19.99 * MHZ, [(FIXED, SHARED)]),
Band(
19.99 * MHZ,
19.995 * MHZ,
[(SPACE_RESEARCH, EXCLUSIVE), (STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)],
),
Band(19.995 * MHZ, 20.005 * MHZ, [(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)]),
Band(
20.005 * MHZ,
20.010 * MHZ,
[(SPACE_RESEARCH, EXCLUSIVE), (STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)],
),
Band(20.010 * MHZ, 21.0 * MHZ, [(MOBILE, EXCLUSIVE), (FIXED, SHARED)]),
Band(
21.0 * MHZ, 21.45 * MHZ, [(AMATEUR_SATELLITE, None), (AMATEUR, NON_EXCLUSIVE)]
),
Band(21.45 * MHZ, 21.85 * MHZ, [(BROADCASTING, SHARED)]),
Band(21.85 * MHZ, 21.924 * MHZ, [(FIXED, SHARED)]),
Band(21.924 * MHZ, 22.0 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(22.0 * MHZ, 22.855 * MHZ, [(MARITIME_MOBILE, SHARED)]),
Band(22.855 * MHZ, 23.0 * MHZ, [(FIXED, SHARED)]),
Band(23.0 * MHZ, 23.2 * MHZ, [(MOBILE, EXCLUSIVE), (FIXED, SHARED)]),
Band(23.2 * MHZ, 23.35 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(23.35 * MHZ, 24.89 * MHZ, [(MOBILE, EXCLUSIVE), (FIXED, SHARED)]),
Band(
24.89 * MHZ, 24.99 * MHZ, [(AMATEUR, None), (AMATEUR_SATELLITE, NON_EXCLUSIVE)]
),
Band(24.99 * MHZ, 25.005 * MHZ, [(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)]),
Band(
25.005 * MHZ,
25.01 * MHZ,
[(SPACE_RESEARCH, EXCLUSIVE), (STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)],
),
Band(25.01 * MHZ, 25.07 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(25.07 * MHZ, 25.21 * MHZ, [(MARITIME_MOBILE, SHARED)]),
Band(25.21 * MHZ, 25.33 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(25.33 * MHZ, 25.55 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(25.55 * MHZ, 25.67 * MHZ, [(RADIO_ASTRONOMY, SHARED)]),
Band(25.67 * MHZ, 26.1 * MHZ, [(BROADCASTING, SHARED)]),
Band(26.1 * MHZ, 26.175 * MHZ, [(MARITIME_MOBILE, SHARED)]),
Band(26.175 * MHZ, 26.48 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(26.48 * MHZ, 26.95 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(26.95 * MHZ, 26.96 * MHZ, [(FIXED, NON_EXCLUSIVE)]),
Band(26.96 * MHZ, 27.23 * MHZ, [(MOBILE, NON_EXCLUSIVE)]),
Band(27.23 * MHZ, 27.41 * MHZ, [(MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(27.41 * MHZ, 27.54 * MHZ, [(LAND_MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(27.54 * MHZ, 28.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(28.0 * MHZ, 29.7 * MHZ, [(AMATEUR_SATELLITE, None), (AMATEUR, NON_EXCLUSIVE)]),
Band(29.7 * MHZ, 29.8 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(29.8 * MHZ, 29.89 * MHZ, [(FIXED, NON_EXCLUSIVE)]),
Band(29.89 * MHZ, 29.91 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(29.91 * MHZ, 30.0 * MHZ, [(FIXED, NON_EXCLUSIVE)]),
]
band_30mhz_300mhz = [
Band(30.0 * MHZ, 30.56 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(30.56 * MHZ, 32.0 * MHZ, [(LAND_MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(32.0 * MHZ, 33.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(33.0 * MHZ, 34.0 * MHZ, [(LAND_MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(34.0 * MHZ, 35.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(35.0 * MHZ, 36.0 * MHZ, [(LAND_MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(36.0 * MHZ, 37.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(37.0 * MHZ, 37.5 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(
37.5 * MHZ,
38.0 * MHZ,
[(LAND_MOBILE, NON_EXCLUSIVE), (RADIO_ASTRONOMY, SHARED)],
),
Band(
38.0 * MHZ,
38.25 * MHZ,
[(MOBILE, None), (FIXED, EXCLUSIVE), (RADIO_ASTRONOMY, SHARED)],
),
Band(38.25 * MHZ, 39.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(39.0 * MHZ, 40.0 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(40.0 * MHZ, 42.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(42.0 * MHZ, 43.69 * MHZ, [(LAND_MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(43.69 * MHZ, 46.6 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(46.6 * MHZ, 47.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(47.0 * MHZ, 49.6 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(49.6 * MHZ, 50.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(50.0 * MHZ, 54.0 * MHZ, [(AMATEUR, NON_EXCLUSIVE)]),
Band(54.0 * MHZ, 72.0 * MHZ, [(BROADCASTING, NON_EXCLUSIVE)]),
Band(72.0 * MHZ, 73.0 * MHZ, [(MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(73.0 * MHZ, 74.6 * MHZ, [(RADIO_ASTRONOMY, SHARED)]),
Band(74.6 * MHZ, 74.8 * MHZ, [(MOBILE, None), (FIXED, SHARED)]),
Band(74.8 * MHZ, 75.2 * MHZ, [(AERONAUTICAL_RADIONAVIGATION, SHARED)]),
Band(75.2 * MHZ, 75.4 * MHZ, [(MOBILE, None), (FIXED, SHARED)]),
Band(75.4 * MHZ, 76.0 * MHZ, [(MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(76.0 * MHZ, 88.0 * MHZ, [(BROADCASTING, NON_EXCLUSIVE)]),
Band(88.0 * MHZ, 108.0 * MHZ, [(BROADCASTING, NON_EXCLUSIVE)]),
Band(108.0 * MHZ, 117.975 * MHZ, [(AERONAUTICAL_RADIONAVIGATION, SHARED)]),
Band(117.975 * MHZ, 121.9375 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(121.9375 * MHZ, 123.0875 * MHZ, [(AERONAUTICAL_MOBILE, NON_EXCLUSIVE)]),
Band(123.0875 * MHZ, 128.8125 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(128.8125 * MHZ, 132.0125 * MHZ, [(AERONAUTICAL_MOBILE, NON_EXCLUSIVE)]),
Band(132.0125 * MHZ, 136.0 * MHZ, [(AERONAUTICAL_MOBILE, SHARED)]),
Band(136.0 * MHZ, 137.0 * MHZ, [(AERONAUTICAL_MOBILE, NON_EXCLUSIVE)]),
Band(
137.0 * MHZ,
137.025 * MHZ,
[
(METEOROLIGICAL_SATELLITE, None),
(SPACE_OPERATION, None),
(SPACE_RESEARCH, None),
(MOBILE_SATELLITE, SHARED),
],
),
Band(
137.025 * MHZ,
137.175 * MHZ,
[
(METEOROLIGICAL_SATELLITE, None),
(SPACE_OPERATION, None),
(SPACE_RESEARCH, None),
(MOBILE_SATELLITE, SHARED),
],
),
Band(
137.175 * MHZ,
137.825 * MHZ,
[
(METEOROLIGICAL_SATELLITE, None),
(SPACE_OPERATION, None),
(SPACE_RESEARCH, None),
(MOBILE_SATELLITE, SHARED),
],
),
Band(
137.825 * MHZ,
138.0 * MHZ,
[
(METEOROLIGICAL_SATELLITE, None),
(SPACE_OPERATION, None),
(SPACE_RESEARCH, None),
(MOBILE_SATELLITE, SHARED),
],
),
Band(138.0 * MHZ, 144.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(
144.0 * MHZ, 146.0 * MHZ, [(AMATEUR_SATELLITE, None), (AMATEUR, NON_EXCLUSIVE)]
),
Band(146.0 * MHZ, 148.0 * MHZ, [(AMATEUR, NON_EXCLUSIVE)]),
Band(
148.0 * MHZ,
149.9 * MHZ,
[(MOBILE, None), (FIXED, EXCLUSIVE), (MOBILE_SATELLITE, SHARED)],
),
Band(
149.9 * MHZ,
150.05 * MHZ,
[(MOBILE_SATELLITE, None), (RADIONAVIGATION_SATELLITE, SHARED)],
),
Band(150.05 * MHZ, 150.8 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(150.8 * MHZ, 152.855 * MHZ, [(LAND_MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(152.855 * MHZ, 154.0 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(154.0 * MHZ, 156.2475 * MHZ, [(LAND_MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(156.2475 * MHZ, 157.0375 * MHZ, [(MARITIME_MOBILE, NON_EXCLUSIVE)]),
Band(157.0375 * MHZ, 157.1875 * MHZ, [(MARITIME_MOBILE, EXCLUSIVE)]),
Band(
157.1875 * MHZ,
157.45 * MHZ,
[(LAND_MOBILE, None), (MARITIME_MOBILE, NON_EXCLUSIVE)],
),
Band(157.45 * MHZ, 161.575 * MHZ, [(LAND_MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(161.575 * MHZ, 161.625 * MHZ, [(MARITIME_MOBILE, NON_EXCLUSIVE)]),
Band(161.625 * MHZ, 161.775 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(
161.775 * MHZ,
162.0125 * MHZ,
[(LAND_MOBILE, None), (MARITIME_MOBILE, NON_EXCLUSIVE)],
),
Band(162.0125 * MHZ, 173.2 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(173.2 * MHZ, 173.4 * MHZ, [(LAND_MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(173.4 * MHZ, 174.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(174.0 * MHZ, 216.0 * MHZ, [(BROADCASTING, NON_EXCLUSIVE)]),
Band(
216.0 * MHZ,
220.0 * MHZ,
[
(AMATEUR, None),
(MOBILE, None),
(FIXED, NON_EXCLUSIVE),
(RADIOLOCATION, None),
(MOBILE, None),
(FIXED, EXCLUSIVE),
],
),
Band(
220.0 * MHZ,
222.0 * MHZ,
[(RADIOLOCATION, EXCLUSIVE), (FIXED, None), (LAND_MOBILE, SHARED)],
),
Band(
222.0 * MHZ, 225.0 * MHZ, [(RADIOLOCATION, EXCLUSIVE), (AMATEUR, NON_EXCLUSIVE)]
),
Band(225.0 * MHZ, 235.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(
235.0 * MHZ,
300.0 * MHZ,
[(MOBILE, None), (MOBILE_SATELLITE, None), (FIXED, EXCLUSIVE)],
),
]
band_300mhz_3ghz = [
Band(
300.0 * MHZ,
322.0 * MHZ,
[(MOBILE, None), (MOBILE_SATELLITE, None), (FIXED, EXCLUSIVE)],
),
Band(322.0 * MHZ, 328.6 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(328.6 * MHZ, 335.4 * MHZ, [(AERONAUTICAL_RADIONAVIGATION, SHARED)]),
Band(
335.4 * MHZ,
399.9 * MHZ,
[(MOBILE, None), (MOBILE_SATELLITE, None), (FIXED, EXCLUSIVE)],
),
Band(
399.9 * MHZ,
400.05 * MHZ,
[(MOBILE_SATELLITE, None), (RADIODETERMINATION_SATELLITE, SHARED)],
),
Band(400.05 * MHZ, 400.15 * MHZ, [(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED)]),
Band(
400.15 * MHZ,
401.0 * MHZ,
[
(METEOROLIGICAL_SATELLITE, EXCLUSIVE),
(SPACE_OPERATION, None),
(SPACE_RESEARCH, None),
(MOBILE_SATELLITE, None),
(METEOROLOGICAL_AIDS, SHARED),
],
),
Band(
401.0 * MHZ,
402.0 * MHZ,
[
(EARTH_EXPLORATION_SATELLITE, None),
(METEOROLIGICAL_SATELLITE, NON_EXCLUSIVE),
(EARTH_EXPLORATION_SATELLITE, None),
(METEOROLIGICAL_SATELLITE, EXCLUSIVE),
(SPACE_OPERATION, None),
(METEOROLOGICAL_AIDS, SHARED),
],
),
Band(
402.0 * MHZ,
403.0 * MHZ,
[
(EARTH_EXPLORATION_SATELLITE, None),
(METEOROLIGICAL_SATELLITE, NON_EXCLUSIVE),
(EARTH_EXPLORATION_SATELLITE, None),
(METEOROLIGICAL_SATELLITE, EXCLUSIVE),
(METEOROLOGICAL_AIDS, SHARED),
],
),
Band(403.0 * MHZ, 406.0 * MHZ, [(METEOROLOGICAL_AIDS, SHARED)]),
Band(406.0 * MHZ, 406.1 * MHZ, [(MOBILE_SATELLITE, SHARED)]),
Band(
406.1 * MHZ,
410.0 * MHZ,
[(MOBILE, None), (FIXED, EXCLUSIVE), (RADIO_ASTRONOMY, SHARED)],
),
Band(
410.0 * MHZ,
420.0 * MHZ,
[(SPACE_RESEARCH, None), (MOBILE, None), (FIXED, EXCLUSIVE)],
),
Band(
420.0 * MHZ, 450.0 * MHZ, [(AMATEUR, NON_EXCLUSIVE), (RADIOLOCATION, EXCLUSIVE)]
),
Band(450.0 * MHZ, 454.0 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(454.0 * MHZ, 455.0 * MHZ, [(LAND_MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(455.0 * MHZ, 456.0 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(456.0 * MHZ, 460.0 * MHZ, [(LAND_MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(
460.0 * MHZ,
462.5375 * MHZ,
[
(METEOROLIGICAL_SATELLITE, EXCLUSIVE),
(FIXED, None),
(LAND_MOBILE, NON_EXCLUSIVE),
],
),
Band(
462.5375 * MHZ,
462.7375 * MHZ,
[(METEOROLIGICAL_SATELLITE, EXCLUSIVE), (LAND_MOBILE, NON_EXCLUSIVE)],
),
Band(
462.7375 * MHZ,
467.5375 * MHZ,
[
(METEOROLIGICAL_SATELLITE, EXCLUSIVE),
(FIXED, None),
(LAND_MOBILE, NON_EXCLUSIVE),
],
),
Band(
467.5375 * MHZ,
467.7375 * MHZ,
[(METEOROLIGICAL_SATELLITE, EXCLUSIVE), (LAND_MOBILE, NON_EXCLUSIVE)],
),
Band(
467.7375 * MHZ,
470.0 * MHZ,
[
(METEOROLIGICAL_SATELLITE, EXCLUSIVE),
(FIXED, None),
(LAND_MOBILE, NON_EXCLUSIVE),
],
),
Band(
470.0 * MHZ,
512.0 * MHZ,
[(BROADCASTING, None), (FIXED, None), (LAND_MOBILE, NON_EXCLUSIVE)],
),
Band(512.0 * MHZ, 608.0 * MHZ, [(BROADCASTING, NON_EXCLUSIVE)]),
Band(608.0 * MHZ, 614.0 * MHZ, [(RADIO_ASTRONOMY, None), (LAND_MOBILE, SHARED)]),
Band(614.0 * MHZ, 698.0 * MHZ, [(BROADCASTING, NON_EXCLUSIVE)]),
Band(
698.0 * MHZ,
746.0 * MHZ,
[(BROADCASTING, None), (MOBILE, None), (FIXED, NON_EXCLUSIVE)],
),
Band(
746.0 * MHZ,
764.0 * MHZ,
[(BROADCASTING, None), (MOBILE, None), (FIXED, NON_EXCLUSIVE)],
),
Band(764.0 * MHZ, 776.0 * MHZ, [(MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(
776.0 * MHZ,
794.0 * MHZ,
[(BROADCASTING, None), (MOBILE, None), (FIXED, NON_EXCLUSIVE)],
),
Band(794.0 * MHZ, 806.0 * MHZ, [(MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(806.0 * MHZ, 821.0 * MHZ, [(FIXED, None), (LAND_MOBILE, NON_EXCLUSIVE)]),
Band(821.0 * MHZ, 824.0 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(824.0 * MHZ, 849.0 * MHZ, [(FIXED, None), (LAND_MOBILE, NON_EXCLUSIVE)]),
Band(849.0 * MHZ, 851.0 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(851.0 * MHZ, 866.0 * MHZ, [(FIXED, None), (LAND_MOBILE, NON_EXCLUSIVE)]),
Band(866.0 * MHZ, 869.0 * MHZ, [(LAND_MOBILE, NON_EXCLUSIVE)]),
Band(869.0 * MHZ, 894.0 * MHZ, [(FIXED, None), (LAND_MOBILE, NON_EXCLUSIVE)]),
Band(894.0 * MHZ, 896.0 * MHZ, [(AERONAUTICAL_MOBILE, NON_EXCLUSIVE)]),
Band(896.0 * MHZ, 901.0 * MHZ, [(FIXED, None), (LAND_MOBILE, NON_EXCLUSIVE)]),
Band(901.0 * MHZ, 902.0 * MHZ, [(FIXED, None), (MOBILE, NON_EXCLUSIVE)]),
Band(
902.0 * MHZ, 928.0 * MHZ, [(AMATEUR, NON_EXCLUSIVE), (RADIOLOCATION, EXCLUSIVE)]
),
Band(928.0 * MHZ, 929.0 * MHZ, [(FIXED, NON_EXCLUSIVE)]),
Band(929.0 * MHZ, 930.0 * MHZ, [(FIXED, None), (LAND_MOBILE, NON_EXCLUSIVE)]),
Band(930.0 * MHZ, 931.0 * MHZ, [(FIXED, None), (MOBILE, NON_EXCLUSIVE)]),
Band(931.0 * MHZ, 932.0 * MHZ, [(FIXED, None), (LAND_MOBILE, NON_EXCLUSIVE)]),
Band(932.0 * MHZ, 935.0 * MHZ, [(FIXED, SHARED)]),
Band(935.0 * MHZ, 940.0 * MHZ, [(FIXED, None), (LAND_MOBILE, NON_EXCLUSIVE)]),
Band(940.0 * MHZ, 941.0 * MHZ, [(FIXED, None), (LAND_MOBILE, NON_EXCLUSIVE)]),
Band(941.0 * MHZ, 944.0 * MHZ, [(FIXED, SHARED)]),
Band(944.0 * MHZ, 960.0 * MHZ, [(FIXED, NON_EXCLUSIVE)]),
Band(960.0 * MHZ, 1215.0 * MHZ, [(AERONAUTICAL_RADIONAVIGATION, SHARED)]),
Band(
1215.0 * MHZ,
1240.0 * MHZ,
[(RADIOLOCATION, None), (RADIONAVIGATION_SATELLITE, EXCLUSIVE)],
),
Band(
1240.0 * MHZ,
1300.0 * MHZ,
[(AMATEUR, NON_EXCLUSIVE), (RADIOLOCATION, EXCLUSIVE)],
),
Band(
1300.0 * MHZ,
1350.0 * MHZ,
[(RADIOLOCATION, EXCLUSIVE), (AERONAUTICAL_RADIONAVIGATION, SHARED)],
),
Band(
1350.0 * MHZ,
1390.0 * MHZ,
[(RADIOLOCATION, None), (MOBILE, None), (FIXED, EXCLUSIVE)],
),
Band(
1390.0 * MHZ,
1392.0 * MHZ,
[(FIXED_SATELLITE, None), (MOBILE, None), (FIXED, NON_EXCLUSIVE)],
),
Band(1392.0 * MHZ, 1395.0 * MHZ, [(FIXED, None), (MOBILE, NON_EXCLUSIVE)]),
Band(1395.0 * MHZ, 1400.0 * MHZ, [(LAND_MOBILE, SHARED)]),
Band(
1400.0 * MHZ,
1427.0 * MHZ,
[
(SPACE_RESEARCH, None),
(EARTH_EXPLORATION_SATELLITE, None),
(RADIO_ASTRONOMY, SHARED),
],
),
Band(1427.0 * MHZ, 1429.5 * MHZ, [(FIXED, NON_EXCLUSIVE), (LAND_MOBILE, SHARED)]),
Band(1429.5 * MHZ, 1430.0 * MHZ, [(FIXED, None), (LAND_MOBILE, NON_EXCLUSIVE)]),
Band(
1430.0 * MHZ,
1432.0 * MHZ,
[(LAND_MOBILE, None), (FIXED, None), (FIXED_SATELLITE, NON_EXCLUSIVE)],
),
Band(1432.0 * MHZ, 1435.0 * MHZ, [(MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(1435.0 * MHZ, 1525.0 * MHZ, [(MOBILE, SHARED)]),
Band(1525.0 * MHZ, 1530.0 * MHZ, [(MOBILE_SATELLITE, None), (MOBILE, SHARED)]),
Band(
1530.0 * MHZ,
1535.0 * MHZ,
[(MOBILE, None), (MOBILE_SATELLITE, None), (MARITIME_MOBILE_SATELLITE, SHARED)],
),
Band(
1535.0 * MHZ,
1544.0 * MHZ,
[(MOBILE_SATELLITE, None), (MARITIME_MOBILE_SATELLITE, SHARED)],
),
Band(1544.0 * MHZ, 1545.0 * MHZ, [(MOBILE_SATELLITE, SHARED)]),
Band(
1545.0 * MHZ,
1549.5 * MHZ,
[(MOBILE_SATELLITE, None), (AERONAUTICAL_MOBILE_SATELLITE, SHARED)],
),
Band(
1549.5 * MHZ,
1558.5 * MHZ,
[(MOBILE_SATELLITE, None), (AERONAUTICAL_MOBILE_SATELLITE, SHARED)],
),
Band(1558.5 * MHZ, 1559.0 * MHZ, [(AERONAUTICAL_MOBILE_SATELLITE, SHARED)]),
Band(
1559.0 * MHZ,
1610.0 * MHZ,
[(RADIONAVIGATION_SATELLITE, None), (AERONAUTICAL_RADIONAVIGATION, SHARED)],
),
Band(
1610.0 * MHZ,
1610.6 * MHZ,
[
(MOBILE_SATELLITE, None),
(RADIODETERMINATION_SATELLITE, None),
(AERONAUTICAL_RADIONAVIGATION, SHARED),
],
),
Band(
1610.6 * MHZ,
1613.8 * MHZ,
[
(RADIO_ASTRONOMY, None),
(MOBILE_SATELLITE, None),
(RADIODETERMINATION_SATELLITE, None),
(AERONAUTICAL_RADIONAVIGATION, SHARED),
],
),
Band(
1613.8 * MHZ,
1626.5 * MHZ,
[
(MOBILE_SATELLITE, None),
(MOBILE_SATELLITE, None),
(RADIODETERMINATION_SATELLITE, None),
(AERONAUTICAL_RADIONAVIGATION, SHARED),
],
),
Band(1626.5 * MHZ, 1660.0 * MHZ, [(MOBILE_SATELLITE, SHARED)]),
Band(
1660.0 * MHZ,
1660.5 * MHZ,
[(MOBILE_SATELLITE, None), (RADIO_ASTRONOMY, SHARED)],
),
Band(
1660.5 * MHZ, 1668.4 * MHZ, [(SPACE_RESEARCH, None), (RADIO_ASTRONOMY, SHARED)]
),
Band(
1668.4 * MHZ,
1670.0 * MHZ,
[(METEOROLOGICAL_AIDS, None), (RADIO_ASTRONOMY, SHARED)],
),
Band(1670.0 * MHZ, 1675.0 * MHZ, [(FIXED, None), (MOBILE, NON_EXCLUSIVE)]),
Band(
1675.0 * MHZ,
1700.0 * MHZ,
[(METEOROLOGICAL_AIDS, None), (METEOROLIGICAL_SATELLITE, SHARED)],
),
Band(
1700.0 * MHZ,
1710.0 * MHZ,
[
(FIXED, NON_EXCLUSIVE),
(FIXED, EXCLUSIVE),
(METEOROLIGICAL_SATELLITE, SHARED),
],
),
Band(1710.0 * MHZ, 1755.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(1755.0 * MHZ, 1850.0 * MHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(1850.0 * MHZ, 2000.0 * MHZ, [(MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(2000.0 * MHZ, 2020.0 * MHZ, [(MOBILE_SATELLITE, NON_EXCLUSIVE)]),
Band(2020.0 * MHZ, 2025.0 * MHZ, [(MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(
2025.0 * MHZ,
2110.0 * MHZ,
[
(FIXED, None),
(MOBILE, NON_EXCLUSIVE),
(SPACE_OPERATION, None),
(EARTH_EXPLORATION_SATELLITE, None),
(SPACE_RESEARCH, EXCLUSIVE),
],
),
Band(2110.0 * MHZ, 2155.0 * MHZ, [(MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(2155.0 * MHZ, 2160.0 * MHZ, [(FIXED, NON_EXCLUSIVE)]),
Band(2160.0 * MHZ, 2180.0 * MHZ, [(MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(2180.0 * MHZ, 2200.0 * MHZ, [(MOBILE_SATELLITE, NON_EXCLUSIVE)]),
Band(
2200.0 * MHZ,
2290.0 * MHZ,
[
(EARTH_EXPLORATION_SATELLITE, None),
(SPACE_OPERATION, None),
(SPACE_RESEARCH, None),
(MOBILE, None),
(FIXED, EXCLUSIVE),
],
),
Band(
2290.0 * MHZ,
2300.0 * MHZ,
[(MOBILE, None), (FIXED, EXCLUSIVE), (SPACE_RESEARCH, SHARED)],
),
Band(2300.0 * MHZ, 2305.0 * MHZ, [(AMATEUR, NON_EXCLUSIVE)]),
Band(
2305.0 * MHZ,
2310.0 * MHZ,
[
(FIXED, None),
(MOBILE, None),
(RADIOLOCATION, None),
(AMATEUR, NON_EXCLUSIVE),
],
),
Band(
2310.0 * MHZ,
2320.0 * MHZ,
[
(BROADCASTING_SATELLITE, None),
(RADIOLOCATION, None),
(FIXED, None),
(MOBILE, NON_EXCLUSIVE),
(FIXED, None),
(MOBILE, None),
(RADIOLOCATION, EXCLUSIVE),
],
),
Band(
2320.0 * MHZ,
2345.0 * MHZ,
[
(BROADCASTING_SATELLITE, NON_EXCLUSIVE),
(FIXED, None),
(RADIOLOCATION, None),
(MOBILE, EXCLUSIVE),
],
),
Band(
2345.0 * MHZ,
2360.0 * MHZ,
[
(BROADCASTING_SATELLITE, None),
(RADIOLOCATION, None),
(FIXED, None),
(MOBILE, NON_EXCLUSIVE),
(FIXED, None),
(MOBILE, None),
(RADIOLOCATION, EXCLUSIVE),
],
),
Band(
2360.0 * MHZ,
2385.0 * MHZ,
[(FIXED, None), (RADIOLOCATION, EXCLUSIVE), (MOBILE, SHARED)],
),
Band(2385.0 * MHZ, 2390.0 * MHZ, [(FIXED, None), (MOBILE, NON_EXCLUSIVE)]),
Band(2390.0 * MHZ, 2400.0 * MHZ, [(AMATEUR, NON_EXCLUSIVE)]),
Band(2400.0 * MHZ, 2417.0 * MHZ, [(AMATEUR, NON_EXCLUSIVE)]),
Band(
2417.0 * MHZ,
2450.0 * MHZ,
[(AMATEUR, NON_EXCLUSIVE), (RADIOLOCATION, EXCLUSIVE)],
),
Band(
2450.0 * MHZ,
2483.5 * MHZ,
[(RADIOLOCATION, None), (MOBILE, None), (FIXED, NON_EXCLUSIVE)],
),
Band(
2483.5 * MHZ,
2500.0 * MHZ,
[(MOBILE_SATELLITE, None), (RADIODETERMINATION_SATELLITE, SHARED)],
),
Band(
2500.0 * MHZ,
2655.0 * MHZ,
[
(FIXED, None),
(FIXED_SATELLITE, None),
(MOBILE, None),
(BROADCASTING_SATELLITE, NON_EXCLUSIVE),
],
),
Band(
2655.0 * MHZ,
2690.0 * MHZ,
[
(FIXED_SATELLITE, None),
(FIXED, None),
(BROADCASTING_SATELLITE, None),
(MOBILE, NON_EXCLUSIVE),
(SPACE_RESEARCH, None),
(RADIO_ASTRONOMY, None),
(EARTH_EXPLORATION_SATELLITE, SHARED),
],
),
Band(
2690.0 * MHZ,
2700.0 * MHZ,
[
(EARTH_EXPLORATION_SATELLITE, None),
(SPACE_RESEARCH, None),
(RADIO_ASTRONOMY, SHARED),
],
),
Band(
2700.0 * MHZ,
2900.0 * MHZ,
[
(RADIOLOCATION, None),
(METEOROLOGICAL_AIDS, None),
(AERONAUTICAL_RADIONAVIGATION, EXCLUSIVE),
],
),
Band(
2900.0 * MHZ,
3000.0 * MHZ,
[(RADIOLOCATION, None), (MARITIME_RADIONAVIGATION, SHARED)],
),
]
band_3ghz_30ghz = [
Band(
3.0 * GHZ,
3.1 * GHZ,
[(RADIOLOCATION, None), (MARITIME_RADIONAVIGATION, SHARED)],
),
Band(
3.1 * GHZ,
3.3 * GHZ,
[(RADIOLOCATION, NON_EXCLUSIVE), (RADIOLOCATION, EXCLUSIVE)],
),
Band(
3.3 * GHZ,
3.5 * GHZ,
[(AMATEUR, None), (RADIOLOCATION, NON_EXCLUSIVE), (RADIOLOCATION, EXCLUSIVE)],
),
Band(
3.5 * GHZ,
3.6 * GHZ,
[
(RADIOLOCATION, NON_EXCLUSIVE),
(RADIOLOCATION, None),
(AERONAUTICAL_RADIONAVIGATION, EXCLUSIVE),
],
),
Band(
3.6 * GHZ,
3.65 * GHZ,
[
(RADIOLOCATION, None),
(FIXED_SATELLITE, NON_EXCLUSIVE),
(RADIOLOCATION, None),
(AERONAUTICAL_RADIONAVIGATION, EXCLUSIVE),
],
),
Band(
3.65 * GHZ,
3.7 * GHZ,
[(FIXED, None), (FIXED_SATELLITE, None), (MOBILE, NON_EXCLUSIVE)],
),
Band(3.7 * GHZ, 4.2 * GHZ, [(FIXED_SATELLITE, None), (FIXED, NON_EXCLUSIVE)]),
Band(4.2 * GHZ, 4.4 * GHZ, [(AERONAUTICAL_RADIONAVIGATION, SHARED)]),
Band(4.4 * GHZ, 4.5 * GHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(
4.5 * GHZ,
4.8 * GHZ,
[(FIXED, None), (MOBILE, EXCLUSIVE), (FIXED_SATELLITE, NON_EXCLUSIVE)],
),
Band(4.8 * GHZ, 4.94 * GHZ, [(MOBILE, None), (FIXED, EXCLUSIVE)]),
Band(4.94 * GHZ, 4.99 * GHZ, [(MOBILE, None), (FIXED, NON_EXCLUSIVE)]),
Band(4.99 * GHZ, 5.0 * GHZ, [(SPACE_RESEARCH, None), (RADIO_ASTRONOMY, SHARED)]),
Band(5.0 * GHZ, 5.15 * GHZ, [(AERONAUTICAL_RADIONAVIGATION, SHARED)]),
Band(
5.15 * GHZ,
5.25 * GHZ,
[(FIXED_SATELLITE, NON_EXCLUSIVE), (AERONAUTICAL_RADIONAVIGATION, SHARED)],
),
Band(
5.25 * GHZ,
5.35 * GHZ,
[
(RADIOLOCATION, NON_EXCLUSIVE),
(RADIOLOCATION, EXCLUSIVE),
],
),
Band(
5.35 * GHZ,
5.46 * GHZ,
[
(RADIOLOCATION, NON_EXCLUSIVE),
(RADIOLOCATION, EXCLUSIVE),
(AERONAUTICAL_RADIONAVIGATION, SHARED),
],
),
Band(5.46 * GHZ, 5.47 * GHZ, [(RADIOLOCATION, None), (RADIONAVIGATION, SHARED)]),
Band(
5.47 * GHZ,
5.6 * GHZ,
[(RADIOLOCATION, None), (MARITIME_RADIONAVIGATION, SHARED)],
),
Band(
5.6 * GHZ,
5.65 * GHZ,
[
(RADIOLOCATION, None),
(METEOROLOGICAL_AIDS, None),
(MARITIME_RADIONAVIGATION, SHARED),
],
),
Band(
5.65 * GHZ, 5.83 * GHZ, [(AMATEUR, NON_EXCLUSIVE), (RADIOLOCATION, EXCLUSIVE)]
),
Band(
5.83 * GHZ,
5.85 * GHZ,
[
(AMATEUR, None),
(AMATEUR_SATELLITE, NON_EXCLUSIVE),
(RADIOLOCATION, EXCLUSIVE),
],
),
Band(
5.85 * GHZ,
5.925 * GHZ,
[(AMATEUR, None), (FIXED_SATELLITE, None), (RADIOLOCATION, EXCLUSIVE)],
),
Band(5.925 * GHZ, 6.425 * GHZ, [(FIXED_SATELLITE, None), (FIXED, NON_EXCLUSIVE)]),
Band(6.425 * GHZ, 6.525 * GHZ, [(MOBILE, None), (FIXED_SATELLITE, NON_EXCLUSIVE)]),
Band(6.525 * GHZ, 6.70 * GHZ, [(FIXED, None), (FIXED_SATELLITE, NON_EXCLUSIVE)]),
Band(6.70 * GHZ, 6.875 * GHZ, [(FIXED, None), (FIXED_SATELLITE, NON_EXCLUSIVE)]),
Band(
6.875 * GHZ,
7.025 * GHZ,
[(FIXED, None), (FIXED_SATELLITE, None), (MOBILE, NON_EXCLUSIVE)],
),
Band(
7.025 * GHZ,
7.075 * GHZ,
[(FIXED, None), (FIXED_SATELLITE, None), (MOBILE, NON_EXCLUSIVE)],
),
Band(7.075 * GHZ, 7.125 * GHZ, [(FIXED, None), (MOBILE, NON_EXCLUSIVE)]),
Band(7.125 * GHZ, 7.19 * GHZ, [(FIXED, EXCLUSIVE)]),
Band(7.19 * GHZ, 7.235 * GHZ, [(SPACE_RESEARCH, None), (FIXED, EXCLUSIVE)]),
Band(7.235 * GHZ, 7.25 * GHZ, [(FIXED, EXCLUSIVE)]),
Band(
7.25 * GHZ,
7.3 * GHZ,
[(FIXED, None), (MOBILE_SATELLITE, None), (FIXED_SATELLITE, EXCLUSIVE)],
),
Band(
7.3 * GHZ,
7.45 * GHZ,
[(MOBILE_SATELLITE, None), (FIXED, None), (FIXED_SATELLITE, EXCLUSIVE)],
),
Band(
7.45 * GHZ,
7.55 * GHZ,
[
(MOBILE_SATELLITE, None),
(FIXED, None),
(METEOROLIGICAL_SATELLITE, None),
(FIXED_SATELLITE, EXCLUSIVE),
],
),
Band(
7.55 * GHZ,
7.75 * GHZ,
[(MOBILE_SATELLITE, None), (FIXED, None), (FIXED_SATELLITE, EXCLUSIVE)],
),
Band(7.75 * GHZ, 7.90 * GHZ, [(FIXED, EXCLUSIVE)]),
Band(
7.90 * GHZ,
8.025 * GHZ,
[(FIXED, None), (MOBILE_SATELLITE, None), (FIXED_SATELLITE, EXCLUSIVE)],
),
Band(
8.025 * GHZ,
8.175 * GHZ,
[
(MOBILE_SATELLITE, None),
(FIXED, None),
(EARTH_EXPLORATION_SATELLITE, None),
(FIXED_SATELLITE, EXCLUSIVE),
],
),
Band(
8.175 * GHZ,
8.215 * GHZ,
[
(MOBILE_SATELLITE, None),
(METEOROLIGICAL_SATELLITE, None),
(FIXED, None),
(FIXED_SATELLITE, None),
(EARTH_EXPLORATION_SATELLITE, EXCLUSIVE),
],
),
Band(
8.215 * GHZ,
8.4 * GHZ,
[
(MOBILE_SATELLITE, None),
(FIXED, None),
(FIXED_SATELLITE, None),
(EARTH_EXPLORATION_SATELLITE, EXCLUSIVE),
],
),
Band(8.4 * GHZ, 8.45 * GHZ, [(SPACE_RESEARCH, None), (FIXED, EXCLUSIVE)]),
Band(8.45 * GHZ, 8.5 * GHZ, [(FIXED, EXCLUSIVE), (SPACE_RESEARCH, SHARED)]),
Band(
8.5 * GHZ,
9.0 * GHZ,
[(RADIOLOCATION, NON_EXCLUSIVE), (RADIOLOCATION, EXCLUSIVE)],
),
Band(
9.0 * GHZ,
9.2 * GHZ,
[(RADIOLOCATION, None), (AERONAUTICAL_RADIONAVIGATION, SHARED)],
),
Band(
9.2 * GHZ,
9.3 * GHZ,
[(RADIOLOCATION, None), (MARITIME_RADIONAVIGATION, SHARED)],
),
Band(
9.3 * GHZ,
9.5 * GHZ,
[(RADIOLOCATION, None), (METEOROLOGICAL_AIDS, None), (RADIONAVIGATION, SHARED)],
),
Band(
9.5 * GHZ,
10.0 * GHZ,
[(RADIOLOCATION, NON_EXCLUSIVE), (RADIOLOCATION, EXCLUSIVE)],
),
Band(
10.0 * GHZ,
10.45 * GHZ,
[(AMATEUR, None), (RADIOLOCATION, NON_EXCLUSIVE), (RADIOLOCATION, EXCLUSIVE)],
),
Band(
10.45 * GHZ,
10.5 * GHZ,
[(AMATEUR_SATELLITE, None), (AMATEUR, NON_EXCLUSIVE), (RADIOLOCATION, SHARED)],
),
Band(10.5 * GHZ, 10.55 * GHZ, [(RADIOLOCATION, SHARED)]),
Band(10.55 * GHZ, 10.6 * GHZ, [(FIXED, NON_EXCLUSIVE)]),
Band(
10.6 * GHZ,
10.68 * GHZ,
[
(FIXED, NON_EXCLUSIVE),
(RADIO_ASTRONOMY, None),
(EARTH_EXPLORATION_SATELLITE, None),
(SPACE_RESEARCH, SHARED),
],
),
Band(
10.68 * GHZ,
10.7 * GHZ,
[
(EARTH_EXPLORATION_SATELLITE, None),
(SPACE_RESEARCH, None),
(RADIO_ASTRONOMY, SHARED),
],
),
Band(10.7 * GHZ, 11.7 * GHZ, [(FIXED_SATELLITE, None), (FIXED, NON_EXCLUSIVE)]),
Band(11.7 * GHZ, 12.2 * GHZ, [(FIXED_SATELLITE, None), (MOBILE, NON_EXCLUSIVE)]),
Band(
12.2 * GHZ, 12.7 * GHZ, [(FIXED, None), (BROADCASTING_SATELLITE, NON_EXCLUSIVE)]
),
Band(
12.7 * GHZ,
12.75 * GHZ,
[(FIXED, None), (MOBILE, None), (FIXED_SATELLITE, NON_EXCLUSIVE)],
),
Band(
12.75 * GHZ,
13.25 * GHZ,
[
(FIXED, None),
(MOBILE, None),
(FIXED_SATELLITE, NON_EXCLUSIVE),
(SPACE_RESEARCH, SHARED),
],
),
Band(
13.25 * GHZ,
13.4 * GHZ,
[(SPACE_RESEARCH, None), (AERONAUTICAL_RADIONAVIGATION, SHARED)],
),
Band(
13.4 * GHZ,
13.75 * GHZ,
[
(RADIOLOCATION, NON_EXCLUSIVE),
(RADIOLOCATION, EXCLUSIVE),
(STANDARD_FREQUENCY_AND_TIME_SIGNAL, None),
(SPACE_RESEARCH, SHARED),
],
),
Band(
13.75 * GHZ,
14.0 * GHZ,
[
(RADIOLOCATION, None),
(FIXED_SATELLITE, NON_EXCLUSIVE),
(RADIOLOCATION, EXCLUSIVE),
(STANDARD_FREQUENCY_AND_TIME_SIGNAL, None),
(SPACE_RESEARCH, SHARED),
],
),
Band(
14.0 * GHZ,
14.2 * GHZ,
[
(LAND_MOBILE_SATELLITE, None),
(FIXED_SATELLITE, NON_EXCLUSIVE),
(RADIONAVIGATION, None),
(SPACE_RESEARCH, SHARED),
],
),
Band(
14.2 * GHZ,
14.4 * GHZ,
[(LAND_MOBILE, None), (FIXED_SATELLITE, None), (MOBILE, NON_EXCLUSIVE)],
),
Band(
14.4 * GHZ,
14.47 * GHZ,
[
(LAND_MOBILE_SATELLITE, None),
(FIXED_SATELLITE, NON_EXCLUSIVE),
(MOBILE, None),
(FIXED, EXCLUSIVE),
],
),
Band(
14.47 * GHZ,
14.5 * GHZ,
[
(LAND_MOBILE_SATELLITE, None),
(FIXED_SATELLITE, NON_EXCLUSIVE),
(MOBILE, None),
(FIXED, EXCLUSIVE),
],
),
Band(
14.5 * GHZ,
14.7145 * GHZ,
[(SPACE_RESEARCH, None), (MOBILE, None), (FIXED, EXCLUSIVE)],
),
Band(
14.7145 * GHZ,
15.1365 * GHZ,
[(SPACE_RESEARCH, None), (FIXED, None), (MOBILE, EXCLUSIVE)],
),
Band(
15.1365 * GHZ,
15.35 * GHZ,
[(SPACE_RESEARCH, None), (MOBILE, None), (FIXED, EXCLUSIVE)],
),
Band(
15.35 * GHZ,
15.4 * GHZ,
[
(EARTH_EXPLORATION_SATELLITE, None),
(SPACE_RESEARCH, None),
(RADIO_ASTRONOMY, SHARED),
],
),
Band(15.4 * GHZ, 15.43 * GHZ, [(AERONAUTICAL_RADIONAVIGATION, None)]),
Band(
15.43 * GHZ,
15.63 * GHZ,
[(FIXED_SATELLITE, NON_EXCLUSIVE), (AERONAUTICAL_RADIONAVIGATION, SHARED)],
),
Band(15.63 * GHZ, 15.7 * GHZ, [(AERONAUTICAL_RADIONAVIGATION, SHARED)]),
Band(
15.7 * GHZ,
16.6 * GHZ,
[(RADIOLOCATION, NON_EXCLUSIVE), (RADIOLOCATION, EXCLUSIVE)],
),
Band(
16.6 * GHZ,
17.1 * GHZ,
[
(RADIOLOCATION, NON_EXCLUSIVE),
(SPACE_RESEARCH, None),
(RADIOLOCATION, EXCLUSIVE),
],
),
Band(
17.1 * GHZ,
17.2 * GHZ,
[
(RADIOLOCATION, NON_EXCLUSIVE),
(RADIOLOCATION, EXCLUSIVE),
],
),
Band(
17.2 * GHZ,
17.3 * GHZ,
[
(RADIOLOCATION, NON_EXCLUSIVE),
(RADIOLOCATION, EXCLUSIVE),
(SPACE_RESEARCH, None),
(EARTH_EXPLORATION_SATELLITE, SHARED),
],
),
Band(
17.3 * GHZ,
17.7 * GHZ,
[
(RADIOLOCATION, EXCLUSIVE),
(FIXED_SATELLITE, None),
(BROADCASTING_SATELLITE, NON_EXCLUSIVE),
],
),
Band(17.7 * GHZ, 17.8 * GHZ, [(FIXED, None), (FIXED_SATELLITE, NON_EXCLUSIVE)]),
Band(
17.8 * GHZ, 18.3 * GHZ, [(FIXED, NON_EXCLUSIVE), (FIXED_SATELLITE, EXCLUSIVE)]
),
Band(18.3 * GHZ, 18.6 * GHZ, [(FIXED_SATELLITE, SHARED)]),
Band(
18.6 * GHZ,
18.8 * GHZ,
[
(EARTH_EXPLORATION_SATELLITE, None),
(FIXED_SATELLITE, None),
(SPACE_RESEARCH, SHARED),
],
),
Band(18.8 * GHZ, 19.3 * GHZ, [(FIXED_SATELLITE, SHARED)]),
Band(19.3 * GHZ, 19.7 * GHZ, [(FIXED, NON_EXCLUSIVE), (FIXED_SATELLITE, SHARED)]),
Band(
19.7 * GHZ,
20.1 * GHZ,
[(MOBILE_SATELLITE, NON_EXCLUSIVE), (FIXED_SATELLITE, SHARED)],
),
Band(
20.1 * GHZ,
20.2 * GHZ,
[(MOBILE_SATELLITE, NON_EXCLUSIVE), (FIXED_SATELLITE, SHARED)],
),
Band(
20.2 * GHZ,
21.2 * GHZ,
[
(MOBILE_SATELLITE, None),
(FIXED_SATELLITE, EXCLUSIVE),
(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED),
],
),
Band(
21.2 * GHZ,
21.4 * GHZ,
[
(EARTH_EXPLORATION_SATELLITE, None),
(MOBILE, None),
(FIXED, None),
(SPACE_RESEARCH, SHARED),
],
),
Band(21.4 * GHZ, 22.0 * GHZ, [(MOBILE, None), (FIXED, SHARED)]),
Band(22.0 * GHZ, 22.21 * GHZ, [(MOBILE, None), (FIXED, SHARED)]),
Band(
22.21 * GHZ,
22.5 * GHZ,
[
(EARTH_EXPLORATION_SATELLITE, None),
(FIXED, None),
(MOBILE, None),
(RADIO_ASTRONOMY, None),
(SPACE_RESEARCH, SHARED),
],
),
Band(22.5 * GHZ, 22.55 * GHZ, [(FIXED, None), (MOBILE, SHARED)]),
Band(
22.55 * GHZ,
23.55 * GHZ,
[(INTER_SATELLITE, None), (MOBILE, None), (FIXED, SHARED)],
),
Band(23.55 * GHZ, 23.6 * GHZ, [(MOBILE, None), (FIXED, SHARED)]),
Band(
23.6 * GHZ,
24.0 * GHZ,
[
(EARTH_EXPLORATION_SATELLITE, None),
(SPACE_RESEARCH, None),
(RADIO_ASTRONOMY, SHARED),
],
),
Band(
24.0 * GHZ, 24.05 * GHZ, [(AMATEUR_SATELLITE, None), (AMATEUR, NON_EXCLUSIVE)]
),
Band(
24.05 * GHZ,
24.25 * GHZ,
[
(RADIOLOCATION, None),
(AMATEUR, NON_EXCLUSIVE),
(RADIOLOCATION, EXCLUSIVE),
(EARTH_EXPLORATION_SATELLITE, SHARED),
],
),
Band(24.25 * GHZ, 24.45 * GHZ, [(FIXED, NON_EXCLUSIVE)]),
Band(
24.45 * GHZ, 24.65 * GHZ, [(INTER_SATELLITE, None), (RADIONAVIGATION, SHARED)]
),
Band(
24.65 * GHZ,
24.75 * GHZ,
[(RADIOLOCATION_SATELLITE, None), (INTER_SATELLITE, SHARED)],
),
Band(
24.75 * GHZ,
25.05 * GHZ,
[(FIXED_SATELLITE, NON_EXCLUSIVE), (RADIONAVIGATION, SHARED)],
),
Band(25.05 * GHZ, 25.25 * GHZ, [(FIXED_SATELLITE, None), (FIXED, NON_EXCLUSIVE)]),
Band(
25.25 * GHZ,
25.5 * GHZ,
[
(MOBILE, None),
(INTER_SATELLITE, None),
(FIXED, EXCLUSIVE),
(EARTH_EXPLORATION_SATELLITE, NON_EXCLUSIVE),
(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED),
],
),
Band(
25.5 * GHZ,
27.0 * GHZ,
[
(MOBILE, None),
(INTER_SATELLITE, None),
(FIXED, EXCLUSIVE),
(EARTH_EXPLORATION_SATELLITE, None),
(STANDARD_FREQUENCY_AND_TIME_SIGNAL, SHARED),
],
),
Band(
27.0 * GHZ,
27.5 * GHZ,
[
(MOBILE, None),
(INTER_SATELLITE, None),
(FIXED, EXCLUSIVE),
(EARTH_EXPLORATION_SATELLITE, NON_EXCLUSIVE),
],
),
Band(
27.5 * GHZ,
29.5 * GHZ,
[(FIXED_SATELLITE, None), (MOBILE, None), (FIXED, NON_EXCLUSIVE)],
),
Band(
29.5 * GHZ,
29.9 * GHZ,
[(MOBILE_SATELLITE, None), (FIXED_SATELLITE, NON_EXCLUSIVE)],
),
Band(
29.9 * GHZ,
30.0 * GHZ,
[(MOBILE_SATELLITE, None), (FIXED_SATELLITE, NON_EXCLUSIVE)],
),
]
band_30ghz_300ghz = [
]
def hz(amount: float) -> str:
if amount < KHZ:
return f"{amount} hz"
elif amount < MHZ:
return f"{amount / KHZ} khz"
elif amount < GHZ:
return f"{amount / MHZ} mhz"
else:
return f"{amount / GHZ} ghz"
def to_svg(
bands: list[Band], width: int, height: int, activity_code_height: int, y_offset: int
) -> str:
start = bands[0].start
end = bands[-1].end
scale = end / start
svg = ""
for band in bands:
pos_start = int((math.log(band.start / start) / math.log(scale)) * width)
pos_end = int((math.log(band.end / start) / math.log(scale)) * width)
shape_width = pos_end - pos_start
usage_len = len(band.usages)
shape_height = height / usage_len
for i, (color_fill, color_bottom) in enumerate(band.usages):
y = i * shape_height + y_offset
# print(y)
svg += (
f' <rect x="{pos_start}" y="{y}" width="{shape_width}"'
f' height="{shape_height}" fill="{color_fill}" />\n'
)
# Add mini-rectangle below it, if it's part of this band usage
if color_bottom:
bottom_y = y + shape_height - activity_code_height
svg += (
f' <rect x="{pos_start}" y="{bottom_y}" width="{shape_width}"'
f' height="{activity_code_height}" fill="{color_bottom}" />\n'
)
return svg
ACTIVITY_CODE_HEIGHT = 6
ROW_WIDTH = 2048
ROW_HEIGHT = 192
ALL_BANDS = [
band_3khz_300khz,
band_300khz_3mhz,
band_3mhz_30mhz,
band_30mhz_300mhz,
band_300mhz_3ghz,
band_3ghz_30ghz,
band_30ghz_300ghz,
]
width = ROW_WIDTH
height = ROW_HEIGHT * len(ALL_BANDS)
svg = f'<svg width="{width}" height="{height}">\n'
for i, bands in enumerate(ALL_BANDS):
svg += to_svg(bands, ROW_WIDTH, ROW_HEIGHT, ACTIVITY_CODE_HEIGHT, i * ROW_HEIGHT)
svg += "</svg>"
print(svg)