-
Notifications
You must be signed in to change notification settings - Fork 2
/
Tables.py
161 lines (137 loc) · 25.5 KB
/
Tables.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# Tables for pySDR
############################################################################
#
# Tables.py - Rev 1.0
# Copyright (C) 2021-4 by Joseph B. Attili, aa2il AT arrl DOT net
#
# Various parameter tables for pySDR
#
############################################################################
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
############################################################################
from collections import OrderedDict
#import csv
import numpy as np
import xlrd
from unidecode import unidecode
import sys
from rig_io import bands
############################################################################
BANDS = list(bands.keys())
MODES = ["AM","AM-Synch","SSB","USB","LSB",'CW',"IQ","WFM","WFM2","NFM","RTTY"]
AF_BWs = ['Max', '50 Hz','100 Hz','500 Hz','1 KHz','2 KHz','3 KHz',\
'4 KHz','5 KHz','8 KHz','10 KHz','15 KHz','20 KHz','45 KHz','50 KHz','100 KHz','150 KHz','200 KHz']
PAN_BWs = ['1 KHz','3 KHz','5 KHz','10 KHz','20 KHz','40 KHz','50 KHz','100 KHz','150 KHz','All']
VIDEO_BWs = ['Max','5 KHz','10 KHz','20 KHz','25 KHz','45 KHz','50 KHz','100 KHz','150 KHz','200 KHz','300 KHz', \
'400 KHz','500 KHz','750 KHz','1 MHz','Other']
RTLsrates = [0.25, 1.024, 1.536, 1.792, 1.92, 2.048, 2.16, 2.56, 2.88, 3.2]
SDRplaysrates = [0.25, 0.5, 1, 2, 2.048, 3, 4, 5, 6, 7, 8, 9, 10]
# Function to find best available filter for a given bandwidth (i.e. sampling rate)
def find_filter(max_bw,bw_list):
for bw in bw_list:
if bw!='Max' and bw!='Other':
a=bw.split(" ")
b = int(a[0])
if a[1]=="KHz":
b *= 1e3
elif a[1]=="MHz":
b *= 1e6
if b<=max_bw:
best=bw
print('FIND_FILTER:',max_bw,bw_list,best)
return best
# List of pre-defined stations
stations = OrderedDict([ ("KOGO",(600,'AM')),
("KFMB-AM",(760,'AM')),
("KABC",(790,'AM')),
("KCBQ",(1170,'AM')),
("KFBK",(1530,'AM')),
("KFMB-FM",(100.7e3,'WFM')),
("KGB",(101.5e3,'WFM')),
("KSON",(97.3e3,'WFM')),
("94.9",(94.9e3,'WFM')),
("88.1",(88.1e3,'WFM')),
("88.9",(88.9e3,'WFM')),
("89.5",(89.5e3,'WFM')),
("89.9",(89.9e3,'WFM')),
("95.5",(95.5e3,'WFM')),
("96.5",(96.5e3,'WFM')),
("98.1",(98.1e3,'WFM')),
("102.1",(102.1e3,'WFM')),
("105.3",(105.3e3,'WFM')),
("105.7",(105.7e3,'WFM')),
("107.9",(107.9e3,'WFM')),
("RAM TOWER",(119.875e3,'AM')),
("RAM WX",(132.025e3,'AM')),
("SOCAL APPROACH",(132.2e3,'AM')),
("SOCAL DEPART",(127.3e3,'AM')),
("WWV 2.5",(2500,'AM')),
("WWV 5",(5000,'AM')),
("WWV 10",(10000,'AM')),
("WWV 15",(15000,'AM')),
("WWV 20",(20000,'AM')),
("WWV 25",(25000,'AM')),
("CHU3",(3330,'AM')),
("CHU7",(7850,'AM')),
("CHU14",(14670,'AM')), ])
swl_bands = OrderedDict([ ("AM BCB",(1000,'AM')),
("FM BCB",(87.9e3,'WFM')),
("90m",(3200,'AM')),
("60m",(4750,'AM')),
("49m",(5800,'AM')),
("41m",(7200,'AM')),
("31m",(9400,'AM')),
("25m",(11600,'AM')),
("22m",(13570,'AM')),
("19m",(15100,'AM')),
("16m",(17480,'AM')),
("15m",(18900,'AM')),
("13m",(21450,'AM')),
("11m",(25600,'AM')) ])
if False:
ham_bands = OrderedDict([ ("160m",(1800,'IQ')),
("80m",(3500,'IQ')),
("40m",(7000,'IQ')),
("30m",(10100,'IQ')),
("20m",(14000,'IQ')),
("17m",(18068,'IQ')),
("15m",(21000,'IQ')),
("12m",(24980,'IQ')),
("10m",(28000,'IQ')),
("6m",(50000,'IQ')),
("2m",(144000,'NFM')) ])
other_bands = OrderedDict([ ("11m CB",(26965,'AM')),
("FRS/GMRS",(462.5625e3,'NFM')),
("Air",(118000,'AM')),
("Marine",(156e3,'NFM')),
("Weather",(162.4e3,'NFM')) ])
# The contents of this function was generated from Matlab using the generate_colormaps.m script
#
# < Paste from next line >
COLORMAPS={
'jet' : np.array([[ 0, 0, 143, 255], [ 0, 0, 159, 255], [ 0, 0, 175, 255], [ 0, 0, 191, 255], [ 0, 0, 207, 255], [ 0, 0, 223, 255], [ 0, 0, 239, 255], [ 0, 0, 255, 255], [ 0, 16, 255, 255], [ 0, 32, 255, 255], [ 0, 48, 255, 255], [ 0, 64, 255, 255], [ 0, 80, 255, 255], [ 0, 96, 255, 255], [ 0, 112, 255, 255], [ 0, 128, 255, 255], [ 0, 143, 255, 255], [ 0, 159, 255, 255], [ 0, 175, 255, 255], [ 0, 191, 255, 255], [ 0, 207, 255, 255], [ 0, 223, 255, 255], [ 0, 239, 255, 255], [ 0, 255, 255, 255], [ 16, 255, 239, 255], [ 32, 255, 223, 255], [ 48, 255, 207, 255], [ 64, 255, 191, 255], [ 80, 255, 175, 255], [ 96, 255, 159, 255], [112, 255, 143, 255], [128, 255, 128, 255], [143, 255, 112, 255], [159, 255, 96, 255], [175, 255, 80, 255], [191, 255, 64, 255], [207, 255, 48, 255], [223, 255, 32, 255], [239, 255, 16, 255], [255, 255, 0, 255], [255, 239, 0, 255], [255, 223, 0, 255], [255, 207, 0, 255], [255, 191, 0, 255], [255, 175, 0, 255], [255, 159, 0, 255], [255, 143, 0, 255], [255, 128, 0, 255], [255, 112, 0, 255], [255, 96, 0, 255], [255, 80, 0, 255], [255, 64, 0, 255], [255, 48, 0, 255], [255, 32, 0, 255], [255, 16, 0, 255], [255, 0, 0, 255], [239, 0, 0, 255], [223, 0, 0, 255], [207, 0, 0, 255], [191, 0, 0, 255], [175, 0, 0, 255], [159, 0, 0, 255], [143, 0, 0, 255], [128, 0, 0, 255]], dtype=np.ubyte),
'autumn' : np.array([[255, 0, 0, 255], [255, 4, 0, 255], [255, 8, 0, 255], [255, 12, 0, 255], [255, 16, 0, 255], [255, 20, 0, 255], [255, 24, 0, 255], [255, 28, 0, 255], [255, 32, 0, 255], [255, 36, 0, 255], [255, 40, 0, 255], [255, 45, 0, 255], [255, 49, 0, 255], [255, 53, 0, 255], [255, 57, 0, 255], [255, 61, 0, 255], [255, 65, 0, 255], [255, 69, 0, 255], [255, 73, 0, 255], [255, 77, 0, 255], [255, 81, 0, 255], [255, 85, 0, 255], [255, 89, 0, 255], [255, 93, 0, 255], [255, 97, 0, 255], [255, 101, 0, 255], [255, 105, 0, 255], [255, 109, 0, 255], [255, 113, 0, 255], [255, 117, 0, 255], [255, 121, 0, 255], [255, 125, 0, 255], [255, 130, 0, 255], [255, 134, 0, 255], [255, 138, 0, 255], [255, 142, 0, 255], [255, 146, 0, 255], [255, 150, 0, 255], [255, 154, 0, 255], [255, 158, 0, 255], [255, 162, 0, 255], [255, 166, 0, 255], [255, 170, 0, 255], [255, 174, 0, 255], [255, 178, 0, 255], [255, 182, 0, 255], [255, 186, 0, 255], [255, 190, 0, 255], [255, 194, 0, 255], [255, 198, 0, 255], [255, 202, 0, 255], [255, 206, 0, 255], [255, 210, 0, 255], [255, 215, 0, 255], [255, 219, 0, 255], [255, 223, 0, 255], [255, 227, 0, 255], [255, 231, 0, 255], [255, 235, 0, 255], [255, 239, 0, 255], [255, 243, 0, 255], [255, 247, 0, 255], [255, 251, 0, 255], [255, 255, 0, 255]], dtype=np.ubyte),
'bone' : np.array([[ 0, 0, 1, 255], [ 4, 4, 6, 255], [ 7, 7, 11, 255], [ 11, 11, 16, 255], [ 14, 14, 21, 255], [ 18, 18, 26, 255], [ 21, 21, 31, 255], [ 25, 25, 35, 255], [ 28, 28, 40, 255], [ 32, 32, 45, 255], [ 35, 35, 50, 255], [ 39, 39, 55, 255], [ 43, 43, 60, 255], [ 46, 46, 65, 255], [ 50, 50, 70, 255], [ 53, 53, 74, 255], [ 57, 57, 79, 255], [ 60, 60, 84, 255], [ 64, 64, 89, 255], [ 67, 67, 94, 255], [ 71, 71, 99, 255], [ 74, 74, 104, 255], [ 78, 78, 108, 255], [ 81, 81, 113, 255], [ 85, 86, 117, 255], [ 89, 91, 120, 255], [ 92, 96, 124, 255], [ 96, 101, 128, 255], [ 99, 106, 131, 255], [103, 111, 135, 255], [106, 116, 138, 255], [110, 120, 142, 255], [113, 125, 145, 255], [117, 130, 149, 255], [120, 135, 152, 255], [124, 140, 156, 255], [128, 145, 159, 255], [131, 150, 163, 255], [135, 155, 166, 255], [138, 159, 170, 255], [142, 164, 174, 255], [145, 169, 177, 255], [149, 174, 181, 255], [152, 179, 184, 255], [156, 184, 188, 255], [159, 189, 191, 255], [163, 193, 195, 255], [166, 198, 198, 255], [172, 202, 202, 255], [178, 205, 205, 255], [183, 209, 209, 255], [189, 213, 213, 255], [194, 216, 216, 255], [200, 220, 220, 255], [205, 223, 223, 255], [211, 227, 227, 255], [216, 230, 230, 255], [222, 234, 234, 255], [227, 237, 237, 255], [233, 241, 241, 255], [238, 244, 244, 255], [244, 248, 248, 255], [249, 251, 251, 255], [255, 255, 255, 255]], dtype=np.ubyte),
'colorcube' : np.array([[ 85, 85, 0, 255], [ 85, 170, 0, 255], [ 85, 255, 0, 255], [170, 85, 0, 255], [170, 170, 0, 255], [170, 255, 0, 255], [255, 85, 0, 255], [255, 170, 0, 255], [255, 255, 0, 255], [ 0, 85, 128, 255], [ 0, 170, 128, 255], [ 0, 255, 128, 255], [ 85, 0, 128, 255], [ 85, 85, 128, 255], [ 85, 170, 128, 255], [ 85, 255, 128, 255], [170, 0, 128, 255], [170, 85, 128, 255], [170, 170, 128, 255], [170, 255, 128, 255], [255, 0, 128, 255], [255, 85, 128, 255], [255, 170, 128, 255], [255, 255, 128, 255], [ 0, 85, 255, 255], [ 0, 170, 255, 255], [ 0, 255, 255, 255], [ 85, 0, 255, 255], [ 85, 85, 255, 255], [ 85, 170, 255, 255], [ 85, 255, 255, 255], [170, 0, 255, 255], [170, 85, 255, 255], [170, 170, 255, 255], [170, 255, 255, 255], [255, 0, 255, 255], [255, 85, 255, 255], [255, 170, 255, 255], [ 43, 0, 0, 255], [ 85, 0, 0, 255], [128, 0, 0, 255], [170, 0, 0, 255], [213, 0, 0, 255], [255, 0, 0, 255], [ 0, 43, 0, 255], [ 0, 85, 0, 255], [ 0, 128, 0, 255], [ 0, 170, 0, 255], [ 0, 213, 0, 255], [ 0, 255, 0, 255], [ 0, 0, 43, 255], [ 0, 0, 85, 255], [ 0, 0, 128, 255], [ 0, 0, 170, 255], [ 0, 0, 213, 255], [ 0, 0, 255, 255], [ 0, 0, 0, 255], [ 36, 36, 36, 255], [ 73, 73, 73, 255], [109, 109, 109, 255], [146, 146, 146, 255], [182, 182, 182, 255], [219, 219, 219, 255], [255, 255, 255, 255]], dtype=np.ubyte),
'cool' : np.array([[ 0, 255, 255, 255], [ 4, 251, 255, 255], [ 8, 247, 255, 255], [ 12, 243, 255, 255], [ 16, 239, 255, 255], [ 20, 235, 255, 255], [ 24, 231, 255, 255], [ 28, 227, 255, 255], [ 32, 223, 255, 255], [ 36, 219, 255, 255], [ 40, 215, 255, 255], [ 45, 210, 255, 255], [ 49, 206, 255, 255], [ 53, 202, 255, 255], [ 57, 198, 255, 255], [ 61, 194, 255, 255], [ 65, 190, 255, 255], [ 69, 186, 255, 255], [ 73, 182, 255, 255], [ 77, 178, 255, 255], [ 81, 174, 255, 255], [ 85, 170, 255, 255], [ 89, 166, 255, 255], [ 93, 162, 255, 255], [ 97, 158, 255, 255], [101, 154, 255, 255], [105, 150, 255, 255], [109, 146, 255, 255], [113, 142, 255, 255], [117, 138, 255, 255], [121, 134, 255, 255], [125, 130, 255, 255], [130, 125, 255, 255], [134, 121, 255, 255], [138, 117, 255, 255], [142, 113, 255, 255], [146, 109, 255, 255], [150, 105, 255, 255], [154, 101, 255, 255], [158, 97, 255, 255], [162, 93, 255, 255], [166, 89, 255, 255], [170, 85, 255, 255], [174, 81, 255, 255], [178, 77, 255, 255], [182, 73, 255, 255], [186, 69, 255, 255], [190, 65, 255, 255], [194, 61, 255, 255], [198, 57, 255, 255], [202, 53, 255, 255], [206, 49, 255, 255], [210, 45, 255, 255], [215, 40, 255, 255], [219, 36, 255, 255], [223, 32, 255, 255], [227, 28, 255, 255], [231, 24, 255, 255], [235, 20, 255, 255], [239, 16, 255, 255], [243, 12, 255, 255], [247, 8, 255, 255], [251, 4, 255, 255], [255, 0, 255, 255]], dtype=np.ubyte),
'copper' : np.array([[ 0, 0, 0, 255], [ 5, 3, 2, 255], [ 10, 6, 4, 255], [ 15, 9, 6, 255], [ 20, 13, 8, 255], [ 25, 16, 10, 255], [ 30, 19, 12, 255], [ 35, 22, 14, 255], [ 40, 25, 16, 255], [ 46, 28, 18, 255], [ 51, 32, 20, 255], [ 56, 35, 22, 255], [ 61, 38, 24, 255], [ 66, 41, 26, 255], [ 71, 44, 28, 255], [ 76, 47, 30, 255], [ 81, 51, 32, 255], [ 86, 54, 34, 255], [ 91, 57, 36, 255], [ 96, 60, 38, 255], [101, 63, 40, 255], [106, 66, 42, 255], [111, 70, 44, 255], [116, 73, 46, 255], [121, 76, 48, 255], [126, 79, 50, 255], [132, 82, 52, 255], [137, 85, 54, 255], [142, 89, 56, 255], [147, 92, 58, 255], [152, 95, 60, 255], [157, 98, 62, 255], [162, 101, 64, 255], [167, 104, 66, 255], [172, 108, 68, 255], [177, 111, 70, 255], [182, 114, 72, 255], [187, 117, 75, 255], [192, 120, 77, 255], [197, 123, 79, 255], [202, 126, 81, 255], [207, 130, 83, 255], [212, 133, 85, 255], [218, 136, 87, 255], [223, 139, 89, 255], [228, 142, 91, 255], [233, 145, 93, 255], [238, 149, 95, 255], [243, 152, 97, 255], [248, 155, 99, 255], [253, 158, 101, 255], [255, 161, 103, 255], [255, 164, 105, 255], [255, 168, 107, 255], [255, 171, 109, 255], [255, 174, 111, 255], [255, 177, 113, 255], [255, 180, 115, 255], [255, 183, 117, 255], [255, 187, 119, 255], [255, 190, 121, 255], [255, 193, 123, 255], [255, 196, 125, 255], [255, 199, 127, 255]], dtype=np.ubyte),
'gray' : np.array([[ 0, 0, 0, 255], [ 4, 4, 4, 255], [ 8, 8, 8, 255], [ 12, 12, 12, 255], [ 16, 16, 16, 255], [ 20, 20, 20, 255], [ 24, 24, 24, 255], [ 28, 28, 28, 255], [ 32, 32, 32, 255], [ 36, 36, 36, 255], [ 40, 40, 40, 255], [ 45, 45, 45, 255], [ 49, 49, 49, 255], [ 53, 53, 53, 255], [ 57, 57, 57, 255], [ 61, 61, 61, 255], [ 65, 65, 65, 255], [ 69, 69, 69, 255], [ 73, 73, 73, 255], [ 77, 77, 77, 255], [ 81, 81, 81, 255], [ 85, 85, 85, 255], [ 89, 89, 89, 255], [ 93, 93, 93, 255], [ 97, 97, 97, 255], [101, 101, 101, 255], [105, 105, 105, 255], [109, 109, 109, 255], [113, 113, 113, 255], [117, 117, 117, 255], [121, 121, 121, 255], [125, 125, 125, 255], [130, 130, 130, 255], [134, 134, 134, 255], [138, 138, 138, 255], [142, 142, 142, 255], [146, 146, 146, 255], [150, 150, 150, 255], [154, 154, 154, 255], [158, 158, 158, 255], [162, 162, 162, 255], [166, 166, 166, 255], [170, 170, 170, 255], [174, 174, 174, 255], [178, 178, 178, 255], [182, 182, 182, 255], [186, 186, 186, 255], [190, 190, 190, 255], [194, 194, 194, 255], [198, 198, 198, 255], [202, 202, 202, 255], [206, 206, 206, 255], [210, 210, 210, 255], [215, 215, 215, 255], [219, 219, 219, 255], [223, 223, 223, 255], [227, 227, 227, 255], [231, 231, 231, 255], [235, 235, 235, 255], [239, 239, 239, 255], [243, 243, 243, 255], [247, 247, 247, 255], [251, 251, 251, 255], [255, 255, 255, 255]], dtype=np.ubyte),
'hot' : np.array([[ 11, 0, 0, 255], [ 21, 0, 0, 255], [ 32, 0, 0, 255], [ 43, 0, 0, 255], [ 53, 0, 0, 255], [ 64, 0, 0, 255], [ 74, 0, 0, 255], [ 85, 0, 0, 255], [ 96, 0, 0, 255], [106, 0, 0, 255], [117, 0, 0, 255], [128, 0, 0, 255], [138, 0, 0, 255], [149, 0, 0, 255], [159, 0, 0, 255], [170, 0, 0, 255], [181, 0, 0, 255], [191, 0, 0, 255], [202, 0, 0, 255], [213, 0, 0, 255], [223, 0, 0, 255], [234, 0, 0, 255], [244, 0, 0, 255], [255, 0, 0, 255], [255, 11, 0, 255], [255, 21, 0, 255], [255, 32, 0, 255], [255, 43, 0, 255], [255, 53, 0, 255], [255, 64, 0, 255], [255, 74, 0, 255], [255, 85, 0, 255], [255, 96, 0, 255], [255, 106, 0, 255], [255, 117, 0, 255], [255, 128, 0, 255], [255, 138, 0, 255], [255, 149, 0, 255], [255, 159, 0, 255], [255, 170, 0, 255], [255, 181, 0, 255], [255, 191, 0, 255], [255, 202, 0, 255], [255, 213, 0, 255], [255, 223, 0, 255], [255, 234, 0, 255], [255, 244, 0, 255], [255, 255, 0, 255], [255, 255, 16, 255], [255, 255, 32, 255], [255, 255, 48, 255], [255, 255, 64, 255], [255, 255, 80, 255], [255, 255, 96, 255], [255, 255, 112, 255], [255, 255, 128, 255], [255, 255, 143, 255], [255, 255, 159, 255], [255, 255, 175, 255], [255, 255, 191, 255], [255, 255, 207, 255], [255, 255, 223, 255], [255, 255, 239, 255], [255, 255, 255, 255]], dtype=np.ubyte),
'hsv' : np.array([[255, 0, 0, 255], [255, 24, 0, 255], [255, 48, 0, 255], [255, 72, 0, 255], [255, 96, 0, 255], [255, 120, 0, 255], [255, 143, 0, 255], [255, 167, 0, 255], [255, 191, 0, 255], [255, 215, 0, 255], [255, 239, 0, 255], [247, 255, 0, 255], [223, 255, 0, 255], [199, 255, 0, 255], [175, 255, 0, 255], [151, 255, 0, 255], [128, 255, 0, 255], [104, 255, 0, 255], [ 80, 255, 0, 255], [ 56, 255, 0, 255], [ 32, 255, 0, 255], [ 8, 255, 0, 255], [ 0, 255, 16, 255], [ 0, 255, 40, 255], [ 0, 255, 64, 255], [ 0, 255, 88, 255], [ 0, 255, 112, 255], [ 0, 255, 135, 255], [ 0, 255, 159, 255], [ 0, 255, 183, 255], [ 0, 255, 207, 255], [ 0, 255, 231, 255], [ 0, 255, 255, 255], [ 0, 231, 255, 255], [ 0, 207, 255, 255], [ 0, 183, 255, 255], [ 0, 159, 255, 255], [ 0, 135, 255, 255], [ 0, 112, 255, 255], [ 0, 88, 255, 255], [ 0, 64, 255, 255], [ 0, 40, 255, 255], [ 0, 16, 255, 255], [ 8, 0, 255, 255], [ 32, 0, 255, 255], [ 56, 0, 255, 255], [ 80, 0, 255, 255], [104, 0, 255, 255], [128, 0, 255, 255], [151, 0, 255, 255], [175, 0, 255, 255], [199, 0, 255, 255], [223, 0, 255, 255], [247, 0, 255, 255], [255, 0, 239, 255], [255, 0, 215, 255], [255, 0, 191, 255], [255, 0, 167, 255], [255, 0, 143, 255], [255, 0, 120, 255], [255, 0, 96, 255], [255, 0, 72, 255], [255, 0, 48, 255], [255, 0, 24, 255]], dtype=np.ubyte),
'parula' : np.array([[ 53, 42, 135, 255], [ 54, 48, 147, 255], [ 54, 55, 160, 255], [ 53, 61, 173, 255], [ 50, 67, 186, 255], [ 44, 74, 199, 255], [ 32, 83, 212, 255], [ 15, 92, 221, 255], [ 3, 99, 225, 255], [ 2, 104, 225, 255], [ 4, 109, 224, 255], [ 8, 113, 222, 255], [ 13, 117, 220, 255], [ 16, 121, 218, 255], [ 18, 125, 216, 255], [ 20, 129, 214, 255], [ 20, 133, 212, 255], [ 19, 137, 211, 255], [ 16, 142, 210, 255], [ 12, 147, 210, 255], [ 9, 152, 209, 255], [ 7, 156, 207, 255], [ 6, 160, 205, 255], [ 6, 164, 202, 255], [ 6, 167, 198, 255], [ 7, 169, 194, 255], [ 10, 172, 190, 255], [ 15, 174, 185, 255], [ 21, 177, 180, 255], [ 29, 179, 175, 255], [ 37, 181, 169, 255], [ 46, 183, 164, 255], [ 56, 185, 158, 255], [ 66, 187, 152, 255], [ 77, 188, 146, 255], [ 89, 189, 140, 255], [101, 190, 134, 255], [113, 191, 128, 255], [124, 191, 123, 255], [135, 191, 119, 255], [146, 191, 115, 255], [156, 191, 111, 255], [165, 190, 107, 255], [174, 190, 103, 255], [183, 189, 100, 255], [192, 188, 96, 255], [200, 188, 93, 255], [209, 187, 89, 255], [217, 186, 86, 255], [225, 185, 82, 255], [233, 185, 78, 255], [241, 185, 74, 255], [248, 187, 68, 255], [253, 190, 61, 255], [255, 195, 55, 255], [254, 200, 50, 255], [252, 206, 46, 255], [250, 211, 42, 255], [247, 216, 38, 255], [245, 222, 33, 255], [245, 228, 29, 255], [245, 235, 24, 255], [246, 243, 19, 255], [249, 251, 14, 255]], dtype=np.ubyte),
'pink' : np.array([[ 30, 0, 0, 255], [ 50, 26, 26, 255], [ 64, 37, 37, 255], [ 75, 45, 45, 255], [ 85, 52, 52, 255], [ 94, 59, 59, 255], [102, 64, 64, 255], [110, 69, 69, 255], [117, 74, 74, 255], [123, 79, 79, 255], [130, 83, 83, 255], [136, 87, 87, 255], [141, 91, 91, 255], [147, 95, 95, 255], [152, 98, 98, 255], [157, 102, 102, 255], [162, 105, 105, 255], [167, 108, 108, 255], [172, 111, 111, 255], [176, 114, 114, 255], [181, 117, 117, 255], [185, 120, 120, 255], [189, 123, 123, 255], [194, 126, 126, 255], [195, 132, 129, 255], [197, 138, 131, 255], [199, 144, 134, 255], [201, 149, 136, 255], [202, 154, 139, 255], [204, 159, 141, 255], [206, 164, 144, 255], [207, 169, 146, 255], [209, 174, 148, 255], [211, 178, 151, 255], [212, 183, 153, 255], [214, 187, 155, 255], [216, 191, 157, 255], [217, 195, 160, 255], [219, 199, 162, 255], [220, 203, 164, 255], [222, 207, 166, 255], [223, 211, 168, 255], [225, 215, 170, 255], [226, 218, 172, 255], [228, 222, 174, 255], [229, 225, 176, 255], [231, 229, 178, 255], [232, 232, 180, 255], [234, 234, 185, 255], [235, 235, 191, 255], [237, 237, 196, 255], [238, 238, 201, 255], [240, 240, 206, 255], [241, 241, 211, 255], [243, 243, 216, 255], [244, 244, 221, 255], [245, 245, 225, 255], [247, 247, 230, 255], [248, 248, 234, 255], [250, 250, 238, 255], [251, 251, 243, 255], [252, 252, 247, 255], [254, 254, 251, 255], [255, 255, 255, 255]], dtype=np.ubyte),
'spring' : np.array([[255, 0, 255, 255], [255, 4, 251, 255], [255, 8, 247, 255], [255, 12, 243, 255], [255, 16, 239, 255], [255, 20, 235, 255], [255, 24, 231, 255], [255, 28, 227, 255], [255, 32, 223, 255], [255, 36, 219, 255], [255, 40, 215, 255], [255, 45, 210, 255], [255, 49, 206, 255], [255, 53, 202, 255], [255, 57, 198, 255], [255, 61, 194, 255], [255, 65, 190, 255], [255, 69, 186, 255], [255, 73, 182, 255], [255, 77, 178, 255], [255, 81, 174, 255], [255, 85, 170, 255], [255, 89, 166, 255], [255, 93, 162, 255], [255, 97, 158, 255], [255, 101, 154, 255], [255, 105, 150, 255], [255, 109, 146, 255], [255, 113, 142, 255], [255, 117, 138, 255], [255, 121, 134, 255], [255, 125, 130, 255], [255, 130, 125, 255], [255, 134, 121, 255], [255, 138, 117, 255], [255, 142, 113, 255], [255, 146, 109, 255], [255, 150, 105, 255], [255, 154, 101, 255], [255, 158, 97, 255], [255, 162, 93, 255], [255, 166, 89, 255], [255, 170, 85, 255], [255, 174, 81, 255], [255, 178, 77, 255], [255, 182, 73, 255], [255, 186, 69, 255], [255, 190, 65, 255], [255, 194, 61, 255], [255, 198, 57, 255], [255, 202, 53, 255], [255, 206, 49, 255], [255, 210, 45, 255], [255, 215, 40, 255], [255, 219, 36, 255], [255, 223, 32, 255], [255, 227, 28, 255], [255, 231, 24, 255], [255, 235, 20, 255], [255, 239, 16, 255], [255, 243, 12, 255], [255, 247, 8, 255], [255, 251, 4, 255], [255, 255, 0, 255]], dtype=np.ubyte),
'summer' : np.array([[ 0, 128, 102, 255], [ 4, 130, 102, 255], [ 8, 132, 102, 255], [ 12, 134, 102, 255], [ 16, 136, 102, 255], [ 20, 138, 102, 255], [ 24, 140, 102, 255], [ 28, 142, 102, 255], [ 32, 144, 102, 255], [ 36, 146, 102, 255], [ 40, 148, 102, 255], [ 45, 150, 102, 255], [ 49, 152, 102, 255], [ 53, 154, 102, 255], [ 57, 156, 102, 255], [ 61, 158, 102, 255], [ 65, 160, 102, 255], [ 69, 162, 102, 255], [ 73, 164, 102, 255], [ 77, 166, 102, 255], [ 81, 168, 102, 255], [ 85, 170, 102, 255], [ 89, 172, 102, 255], [ 93, 174, 102, 255], [ 97, 176, 102, 255], [101, 178, 102, 255], [105, 180, 102, 255], [109, 182, 102, 255], [113, 184, 102, 255], [117, 186, 102, 255], [121, 188, 102, 255], [125, 190, 102, 255], [130, 192, 102, 255], [134, 194, 102, 255], [138, 196, 102, 255], [142, 198, 102, 255], [146, 200, 102, 255], [150, 202, 102, 255], [154, 204, 102, 255], [158, 206, 102, 255], [162, 208, 102, 255], [166, 210, 102, 255], [170, 212, 102, 255], [174, 215, 102, 255], [178, 217, 102, 255], [182, 219, 102, 255], [186, 221, 102, 255], [190, 223, 102, 255], [194, 225, 102, 255], [198, 227, 102, 255], [202, 229, 102, 255], [206, 231, 102, 255], [210, 233, 102, 255], [215, 235, 102, 255], [219, 237, 102, 255], [223, 239, 102, 255], [227, 241, 102, 255], [231, 243, 102, 255], [235, 245, 102, 255], [239, 247, 102, 255], [243, 249, 102, 255], [247, 251, 102, 255], [251, 253, 102, 255], [255, 255, 102, 255]], dtype=np.ubyte),
'winter' : np.array([[ 0, 0, 255, 255], [ 0, 4, 253, 255], [ 0, 8, 251, 255], [ 0, 12, 249, 255], [ 0, 16, 247, 255], [ 0, 20, 245, 255], [ 0, 24, 243, 255], [ 0, 28, 241, 255], [ 0, 32, 239, 255], [ 0, 36, 237, 255], [ 0, 40, 235, 255], [ 0, 45, 233, 255], [ 0, 49, 231, 255], [ 0, 53, 229, 255], [ 0, 57, 227, 255], [ 0, 61, 225, 255], [ 0, 65, 223, 255], [ 0, 69, 221, 255], [ 0, 73, 219, 255], [ 0, 77, 217, 255], [ 0, 81, 215, 255], [ 0, 85, 213, 255], [ 0, 89, 210, 255], [ 0, 93, 208, 255], [ 0, 97, 206, 255], [ 0, 101, 204, 255], [ 0, 105, 202, 255], [ 0, 109, 200, 255], [ 0, 113, 198, 255], [ 0, 117, 196, 255], [ 0, 121, 194, 255], [ 0, 125, 192, 255], [ 0, 130, 190, 255], [ 0, 134, 188, 255], [ 0, 138, 186, 255], [ 0, 142, 184, 255], [ 0, 146, 182, 255], [ 0, 150, 180, 255], [ 0, 154, 178, 255], [ 0, 158, 176, 255], [ 0, 162, 174, 255], [ 0, 166, 172, 255], [ 0, 170, 170, 255], [ 0, 174, 168, 255], [ 0, 178, 166, 255], [ 0, 182, 164, 255], [ 0, 186, 162, 255], [ 0, 190, 160, 255], [ 0, 194, 158, 255], [ 0, 198, 156, 255], [ 0, 202, 154, 255], [ 0, 206, 152, 255], [ 0, 210, 150, 255], [ 0, 215, 148, 255], [ 0, 219, 146, 255], [ 0, 223, 144, 255], [ 0, 227, 142, 255], [ 0, 231, 140, 255], [ 0, 235, 138, 255], [ 0, 239, 136, 255], [ 0, 243, 134, 255], [ 0, 247, 132, 255], [ 0, 251, 130, 255], [ 0, 255, 128, 255]], dtype=np.ubyte),
}
# < To this line >