deployable app

This commit is contained in:
2024-09-17 11:42:44 +02:00
parent b7fb80473b
commit 81799c5eec
22 changed files with 3377 additions and 37 deletions

1
.python-version Normal file
View File

@@ -0,0 +1 @@
3.10

View File

@@ -0,0 +1,334 @@
70CSV
// AQ6370 OPTICAL SPECTRUM ANALYZER //
25
"CTRWL", 696.400000
"SPAN", 0.600000
"START WL", 696.100000
"STOP WL", 696.700000
"WLFREQ", 0
"REFL", -60.000
"LSCL",-2.0
"BASEL",0.00000000000
"RESLN",0.100
"AVG", 1
"SMPLAUTO", 1
"SMPL", 301
"SMPLINTVL",0.0020
"HIGH3"
"RAVG", 20
"LSUNT",1
"NMSKH","OFF"
"RESCOR",0
"RESPARM",10177
"FREQPARM",10177
# Complementary values
"GAS FLOW",500
"VOLTAGE",7900
"FREQUENCY",38800
"[TRACE DATA]"
696.1000,7.338E-009
696.1020,7.591E-009
696.1040,9.639E-009
696.1060,8.682E-009
696.1080,5.240E-009
696.1100,2.041E-008
696.1120,4.934E-009
696.1140,7.068E-009
696.1160,2.225E-008
696.1180,1.875E-008
696.1200,1.231E-008
696.1220,2.037E-008
696.1240,2.496E-008
696.1260,1.785E-008
696.1280,1.672E-008
696.1300,2.225E-008
696.1320,4.458E-009
696.1340,2.409E-008
696.1360,1.587E-008
696.1380,8.883E-009
696.1400,9.415E-009
696.1420,4.547E-009
696.1440,1.358E-008
696.1460,2.302E-008
696.1480,1.370E-008
696.1500,5.619E-009
696.1520,2.849E-008
696.1540,1.897E-008
696.1560,2.569E-008
696.1580,7.989E-009
696.1600,1.109E-008
696.1620,2.978E-008
696.1640,3.374E-008
696.1660,4.647E-009
696.1680,1.471E-008
696.1700,2.971E-008
696.1720,1.358E-008
696.1740,2.331E-008
696.1760,6.827E-010
696.1780,8.818E-009
696.1800,2.340E-008
696.1820,1.988E-008
696.1840,3.221E-008
696.1860,1.569E-008
696.1880,2.894E-008
696.1900,1.944E-008
696.1920,2.562E-008
696.1940,1.391E-008
696.1960,2.334E-008
696.1980,2.119E-008
696.2000,1.438E-008
696.2020,1.362E-008
696.2040,2.040E-008
696.2060,2.266E-008
696.2080,3.277E-008
696.2100,1.639E-008
696.2120,2.603E-008
696.2140,2.250E-008
696.2160,1.801E-008
696.2180,2.338E-008
696.2200,1.527E-008
696.2220,2.057E-008
696.2240,2.250E-008
696.2260,3.479E-008
696.2280,2.111E-008
696.2300,2.669E-008
696.2320,2.601E-008
696.2340,3.034E-008
696.2360,2.754E-008
696.2380,3.175E-008
696.2400,1.585E-008
696.2420,3.666E-008
696.2440,2.487E-008
696.2460,1.633E-008
696.2480,2.161E-008
696.2500,2.462E-008
696.2520,1.165E-008
696.2540,2.986E-008
696.2560,2.710E-008
696.2580,1.281E-008
696.2600,3.003E-008
696.2620,2.028E-008
696.2640,4.174E-008
696.2660,2.350E-008
696.2680,4.735E-008
696.2700,4.693E-008
696.2720,3.607E-008
696.2740,4.648E-008
696.2760,5.627E-008
696.2780,3.976E-008
696.2800,4.811E-008
696.2820,5.326E-008
696.2840,5.671E-008
696.2860,6.082E-008
696.2880,6.519E-008
696.2900,6.144E-008
696.2920,6.282E-008
696.2940,7.846E-008
696.2960,9.078E-008
696.2980,7.970E-008
696.3000,7.075E-008
696.3020,8.600E-008
696.3040,9.402E-008
696.3060,9.820E-008
696.3080,1.017E-007
696.3100,1.074E-007
696.3120,1.174E-007
696.3140,1.083E-007
696.3160,1.169E-007
696.3180,1.267E-007
696.3200,1.252E-007
696.3220,1.545E-007
696.3240,1.492E-007
696.3260,1.611E-007
696.3280,1.730E-007
696.3300,1.523E-007
696.3320,1.797E-007
696.3340,2.001E-007
696.3360,1.936E-007
696.3380,1.940E-007
696.3400,2.151E-007
696.3420,1.997E-007
696.3440,2.122E-007
696.3460,2.186E-007
696.3480,2.179E-007
696.3500,2.212E-007
696.3520,2.357E-007
696.3540,2.452E-007
696.3560,2.565E-007
696.3580,2.388E-007
696.3600,2.591E-007
696.3620,2.553E-007
696.3640,2.612E-007
696.3660,2.628E-007
696.3680,2.748E-007
696.3700,2.864E-007
696.3720,2.698E-007
696.3740,2.803E-007
696.3760,2.809E-007
696.3780,2.827E-007
696.3800,3.039E-007
696.3820,2.903E-007
696.3840,3.197E-007
696.3860,3.081E-007
696.3880,3.171E-007
696.3900,3.201E-007
696.3920,3.154E-007
696.3940,3.119E-007
696.3960,3.128E-007
696.3980,3.215E-007
696.4000,3.178E-007
696.4020,3.341E-007
696.4040,3.088E-007
696.4060,3.054E-007
696.4080,3.143E-007
696.4100,3.173E-007
696.4120,3.203E-007
696.4140,3.235E-007
696.4160,3.110E-007
696.4180,3.091E-007
696.4200,3.180E-007
696.4220,3.152E-007
696.4240,3.091E-007
696.4260,3.110E-007
696.4280,3.067E-007
696.4300,2.975E-007
696.4320,2.991E-007
696.4340,2.985E-007
696.4360,2.946E-007
696.4380,2.847E-007
696.4400,2.906E-007
696.4420,2.777E-007
696.4440,2.713E-007
696.4460,2.834E-007
696.4480,2.714E-007
696.4500,2.474E-007
696.4520,2.759E-007
696.4540,2.481E-007
696.4560,2.476E-007
696.4580,2.455E-007
696.4600,2.646E-007
696.4620,2.473E-007
696.4640,2.289E-007
696.4660,2.390E-007
696.4680,2.323E-007
696.4700,2.220E-007
696.4720,2.133E-007
696.4740,2.128E-007
696.4760,1.975E-007
696.4780,1.954E-007
696.4800,1.911E-007
696.4820,1.957E-007
696.4840,1.738E-007
696.4860,1.734E-007
696.4880,1.748E-007
696.4900,1.684E-007
696.4920,1.565E-007
696.4940,1.355E-007
696.4960,1.414E-007
696.4980,1.400E-007
696.5000,1.272E-007
696.5020,1.316E-007
696.5040,1.267E-007
696.5060,1.181E-007
696.5080,1.138E-007
696.5100,1.010E-007
696.5120,1.101E-007
696.5140,1.065E-007
696.5160,8.187E-008
696.5180,8.912E-008
696.5200,9.110E-008
696.5220,8.377E-008
696.5240,8.179E-008
696.5260,8.251E-008
696.5280,7.279E-008
696.5300,6.516E-008
696.5320,7.550E-008
696.5340,5.438E-008
696.5360,6.593E-008
696.5380,5.066E-008
696.5400,4.232E-008
696.5420,4.845E-008
696.5440,6.049E-008
696.5460,4.499E-008
696.5480,3.859E-008
696.5500,3.534E-008
696.5520,5.310E-008
696.5540,4.068E-008
696.5560,2.990E-008
696.5580,2.782E-008
696.5600,2.569E-008
696.5620,2.951E-008
696.5640,3.309E-008
696.5660,2.027E-008
696.5680,3.353E-008
696.5700,4.190E-008
696.5720,2.809E-008
696.5740,2.238E-008
696.5760,2.847E-008
696.5780,3.224E-008
696.5800,2.280E-008
696.5820,2.183E-008
696.5840,2.698E-008
696.5860,2.896E-008
696.5880,1.712E-008
696.5900,1.085E-008
696.5920,2.582E-008
696.5940,7.439E-009
696.5960,2.304E-008
696.5980,2.363E-008
696.6000,9.333E-010
696.6020,2.625E-008
696.6040,2.148E-008
696.6060,2.759E-008
696.6080,2.690E-008
696.6100,1.554E-008
696.6120,1.041E-008
696.6140,1.773E-008
696.6160,1.559E-008
696.6180,1.580E-008
696.6200,2.129E-008
696.6220,2.126E-008
696.6240,4.100E-009
696.6260,2.839E-008
696.6280,2.455E-008
696.6300,9.609E-009
696.6320,1.258E-008
696.6340,1.437E-008
696.6360,2.004E-008
696.6380,2.800E-008
696.6400,2.104E-008
696.6420,1.205E-008
696.6440,2.049E-009
696.6460,2.654E-008
696.6480,1.741E-008
696.6500,2.169E-008
696.6520,1.174E-008
696.6540,2.097E-008
696.6560,1.105E-008
696.6580,1.130E-008
696.6600,2.942E-008
696.6620,2.298E-008
696.6640,1.540E-008
696.6660,2.112E-008
696.6680,1.575E-008
696.6700,1.168E-008
696.6720,1.591E-008
696.6740,3.348E-008
696.6760,1.864E-008
696.6780,7.248E-009
696.6800,7.188E-009
696.6820,1.960E-008
696.6840,1.900E-008
696.6860,1.921E-008
696.6880,1.618E-008
696.6900,1.524E-008
696.6920,2.712E-008
696.6940,2.281E-008
696.6960,8.831E-009
696.6980,1.317E-008
696.7000,2.163E-008
1 70CSV
2 // AQ6370 OPTICAL SPECTRUM ANALYZER //
3 25
4 CTRWL 696.400000
5 SPAN 0.600000
6 START WL 696.100000
7 STOP WL 696.700000
8 WLFREQ 0
9 REFL -60.000
10 LSCL -2.0
11 BASEL 0.00000000000
12 RESLN 0.100
13 AVG 1
14 SMPLAUTO 1
15 SMPL 301
16 SMPLINTVL 0.0020
17 HIGH3
18 RAVG 20
19 LSUNT 1
20 NMSKH OFF
21 RESCOR 0
22 RESPARM 10177
23 FREQPARM 10177
24 # Complementary values
25 GAS FLOW 500
26 VOLTAGE 7900
27 FREQUENCY 38800
28 [TRACE DATA]
29 696.1000 7.338E-009
30 696.1020 7.591E-009
31 696.1040 9.639E-009
32 696.1060 8.682E-009
33 696.1080 5.240E-009
34 696.1100 2.041E-008
35 696.1120 4.934E-009
36 696.1140 7.068E-009
37 696.1160 2.225E-008
38 696.1180 1.875E-008
39 696.1200 1.231E-008
40 696.1220 2.037E-008
41 696.1240 2.496E-008
42 696.1260 1.785E-008
43 696.1280 1.672E-008
44 696.1300 2.225E-008
45 696.1320 4.458E-009
46 696.1340 2.409E-008
47 696.1360 1.587E-008
48 696.1380 8.883E-009
49 696.1400 9.415E-009
50 696.1420 4.547E-009
51 696.1440 1.358E-008
52 696.1460 2.302E-008
53 696.1480 1.370E-008
54 696.1500 5.619E-009
55 696.1520 2.849E-008
56 696.1540 1.897E-008
57 696.1560 2.569E-008
58 696.1580 7.989E-009
59 696.1600 1.109E-008
60 696.1620 2.978E-008
61 696.1640 3.374E-008
62 696.1660 4.647E-009
63 696.1680 1.471E-008
64 696.1700 2.971E-008
65 696.1720 1.358E-008
66 696.1740 2.331E-008
67 696.1760 6.827E-010
68 696.1780 8.818E-009
69 696.1800 2.340E-008
70 696.1820 1.988E-008
71 696.1840 3.221E-008
72 696.1860 1.569E-008
73 696.1880 2.894E-008
74 696.1900 1.944E-008
75 696.1920 2.562E-008
76 696.1940 1.391E-008
77 696.1960 2.334E-008
78 696.1980 2.119E-008
79 696.2000 1.438E-008
80 696.2020 1.362E-008
81 696.2040 2.040E-008
82 696.2060 2.266E-008
83 696.2080 3.277E-008
84 696.2100 1.639E-008
85 696.2120 2.603E-008
86 696.2140 2.250E-008
87 696.2160 1.801E-008
88 696.2180 2.338E-008
89 696.2200 1.527E-008
90 696.2220 2.057E-008
91 696.2240 2.250E-008
92 696.2260 3.479E-008
93 696.2280 2.111E-008
94 696.2300 2.669E-008
95 696.2320 2.601E-008
96 696.2340 3.034E-008
97 696.2360 2.754E-008
98 696.2380 3.175E-008
99 696.2400 1.585E-008
100 696.2420 3.666E-008
101 696.2440 2.487E-008
102 696.2460 1.633E-008
103 696.2480 2.161E-008
104 696.2500 2.462E-008
105 696.2520 1.165E-008
106 696.2540 2.986E-008
107 696.2560 2.710E-008
108 696.2580 1.281E-008
109 696.2600 3.003E-008
110 696.2620 2.028E-008
111 696.2640 4.174E-008
112 696.2660 2.350E-008
113 696.2680 4.735E-008
114 696.2700 4.693E-008
115 696.2720 3.607E-008
116 696.2740 4.648E-008
117 696.2760 5.627E-008
118 696.2780 3.976E-008
119 696.2800 4.811E-008
120 696.2820 5.326E-008
121 696.2840 5.671E-008
122 696.2860 6.082E-008
123 696.2880 6.519E-008
124 696.2900 6.144E-008
125 696.2920 6.282E-008
126 696.2940 7.846E-008
127 696.2960 9.078E-008
128 696.2980 7.970E-008
129 696.3000 7.075E-008
130 696.3020 8.600E-008
131 696.3040 9.402E-008
132 696.3060 9.820E-008
133 696.3080 1.017E-007
134 696.3100 1.074E-007
135 696.3120 1.174E-007
136 696.3140 1.083E-007
137 696.3160 1.169E-007
138 696.3180 1.267E-007
139 696.3200 1.252E-007
140 696.3220 1.545E-007
141 696.3240 1.492E-007
142 696.3260 1.611E-007
143 696.3280 1.730E-007
144 696.3300 1.523E-007
145 696.3320 1.797E-007
146 696.3340 2.001E-007
147 696.3360 1.936E-007
148 696.3380 1.940E-007
149 696.3400 2.151E-007
150 696.3420 1.997E-007
151 696.3440 2.122E-007
152 696.3460 2.186E-007
153 696.3480 2.179E-007
154 696.3500 2.212E-007
155 696.3520 2.357E-007
156 696.3540 2.452E-007
157 696.3560 2.565E-007
158 696.3580 2.388E-007
159 696.3600 2.591E-007
160 696.3620 2.553E-007
161 696.3640 2.612E-007
162 696.3660 2.628E-007
163 696.3680 2.748E-007
164 696.3700 2.864E-007
165 696.3720 2.698E-007
166 696.3740 2.803E-007
167 696.3760 2.809E-007
168 696.3780 2.827E-007
169 696.3800 3.039E-007
170 696.3820 2.903E-007
171 696.3840 3.197E-007
172 696.3860 3.081E-007
173 696.3880 3.171E-007
174 696.3900 3.201E-007
175 696.3920 3.154E-007
176 696.3940 3.119E-007
177 696.3960 3.128E-007
178 696.3980 3.215E-007
179 696.4000 3.178E-007
180 696.4020 3.341E-007
181 696.4040 3.088E-007
182 696.4060 3.054E-007
183 696.4080 3.143E-007
184 696.4100 3.173E-007
185 696.4120 3.203E-007
186 696.4140 3.235E-007
187 696.4160 3.110E-007
188 696.4180 3.091E-007
189 696.4200 3.180E-007
190 696.4220 3.152E-007
191 696.4240 3.091E-007
192 696.4260 3.110E-007
193 696.4280 3.067E-007
194 696.4300 2.975E-007
195 696.4320 2.991E-007
196 696.4340 2.985E-007
197 696.4360 2.946E-007
198 696.4380 2.847E-007
199 696.4400 2.906E-007
200 696.4420 2.777E-007
201 696.4440 2.713E-007
202 696.4460 2.834E-007
203 696.4480 2.714E-007
204 696.4500 2.474E-007
205 696.4520 2.759E-007
206 696.4540 2.481E-007
207 696.4560 2.476E-007
208 696.4580 2.455E-007
209 696.4600 2.646E-007
210 696.4620 2.473E-007
211 696.4640 2.289E-007
212 696.4660 2.390E-007
213 696.4680 2.323E-007
214 696.4700 2.220E-007
215 696.4720 2.133E-007
216 696.4740 2.128E-007
217 696.4760 1.975E-007
218 696.4780 1.954E-007
219 696.4800 1.911E-007
220 696.4820 1.957E-007
221 696.4840 1.738E-007
222 696.4860 1.734E-007
223 696.4880 1.748E-007
224 696.4900 1.684E-007
225 696.4920 1.565E-007
226 696.4940 1.355E-007
227 696.4960 1.414E-007
228 696.4980 1.400E-007
229 696.5000 1.272E-007
230 696.5020 1.316E-007
231 696.5040 1.267E-007
232 696.5060 1.181E-007
233 696.5080 1.138E-007
234 696.5100 1.010E-007
235 696.5120 1.101E-007
236 696.5140 1.065E-007
237 696.5160 8.187E-008
238 696.5180 8.912E-008
239 696.5200 9.110E-008
240 696.5220 8.377E-008
241 696.5240 8.179E-008
242 696.5260 8.251E-008
243 696.5280 7.279E-008
244 696.5300 6.516E-008
245 696.5320 7.550E-008
246 696.5340 5.438E-008
247 696.5360 6.593E-008
248 696.5380 5.066E-008
249 696.5400 4.232E-008
250 696.5420 4.845E-008
251 696.5440 6.049E-008
252 696.5460 4.499E-008
253 696.5480 3.859E-008
254 696.5500 3.534E-008
255 696.5520 5.310E-008
256 696.5540 4.068E-008
257 696.5560 2.990E-008
258 696.5580 2.782E-008
259 696.5600 2.569E-008
260 696.5620 2.951E-008
261 696.5640 3.309E-008
262 696.5660 2.027E-008
263 696.5680 3.353E-008
264 696.5700 4.190E-008
265 696.5720 2.809E-008
266 696.5740 2.238E-008
267 696.5760 2.847E-008
268 696.5780 3.224E-008
269 696.5800 2.280E-008
270 696.5820 2.183E-008
271 696.5840 2.698E-008
272 696.5860 2.896E-008
273 696.5880 1.712E-008
274 696.5900 1.085E-008
275 696.5920 2.582E-008
276 696.5940 7.439E-009
277 696.5960 2.304E-008
278 696.5980 2.363E-008
279 696.6000 9.333E-010
280 696.6020 2.625E-008
281 696.6040 2.148E-008
282 696.6060 2.759E-008
283 696.6080 2.690E-008
284 696.6100 1.554E-008
285 696.6120 1.041E-008
286 696.6140 1.773E-008
287 696.6160 1.559E-008
288 696.6180 1.580E-008
289 696.6200 2.129E-008
290 696.6220 2.126E-008
291 696.6240 4.100E-009
292 696.6260 2.839E-008
293 696.6280 2.455E-008
294 696.6300 9.609E-009
295 696.6320 1.258E-008
296 696.6340 1.437E-008
297 696.6360 2.004E-008
298 696.6380 2.800E-008
299 696.6400 2.104E-008
300 696.6420 1.205E-008
301 696.6440 2.049E-009
302 696.6460 2.654E-008
303 696.6480 1.741E-008
304 696.6500 2.169E-008
305 696.6520 1.174E-008
306 696.6540 2.097E-008
307 696.6560 1.105E-008
308 696.6580 1.130E-008
309 696.6600 2.942E-008
310 696.6620 2.298E-008
311 696.6640 1.540E-008
312 696.6660 2.112E-008
313 696.6680 1.575E-008
314 696.6700 1.168E-008
315 696.6720 1.591E-008
316 696.6740 3.348E-008
317 696.6760 1.864E-008
318 696.6780 7.248E-009
319 696.6800 7.188E-009
320 696.6820 1.960E-008
321 696.6840 1.900E-008
322 696.6860 1.921E-008
323 696.6880 1.618E-008
324 696.6900 1.524E-008
325 696.6920 2.712E-008
326 696.6940 2.281E-008
327 696.6960 8.831E-009
328 696.6980 1.317E-008
329 696.7000 2.163E-008

280
data/Argon_696_11.CSV Normal file
View File

@@ -0,0 +1,280 @@
70CSV
// AQ6370 OPTICAL SPECTRUM ANALYZER //
25
"CTRWL", 696.408000
"SPAN", 0.500000
"START WL", 696.158000
"STOP WL", 696.658000
"WLFREQ", 0
"REFL", -60.000
"LSCL",-2.0
"BASEL",0.00000000000
"RESLN",0.100
"AVG", 100
"SMPLAUTO", 1
"SMPL", 251
"SMPLINTVL",0.0020
"HIGH3"
"MEAS"
"LSUNT",1
"NMSKH","OFF"
"RESCOR",0
"RESPARM",10177
"FREQPARM",10177
"[TRACE DATA]"
696.1580,-2.652E-009
696.1600,-6.013E-009
696.1620,-5.654E-009
696.1640,3.338E-010
696.1660,-3.481E-009
696.1680,2.329E-010
696.1700,8.646E-009
696.1720,7.403E-010
696.1740,-2.472E-009
696.1760,3.735E-009
696.1780,2.148E-010
696.1800,7.293E-009
696.1820,4.382E-009
696.1840,8.916E-009
696.1860,7.805E-009
696.1880,2.781E-009
696.1900,1.076E-008
696.1920,1.078E-008
696.1940,9.574E-009
696.1960,1.395E-008
696.1980,1.045E-008
696.2000,1.709E-008
696.2020,1.241E-008
696.2040,1.680E-008
696.2060,1.188E-008
696.2080,1.439E-008
696.2100,2.016E-008
696.2120,1.776E-008
696.2140,1.023E-008
696.2160,1.638E-008
696.2180,1.483E-008
696.2200,1.728E-008
696.2220,1.859E-008
696.2240,2.320E-008
696.2260,2.260E-008
696.2280,2.236E-008
696.2300,2.352E-008
696.2320,2.208E-008
696.2340,1.902E-008
696.2360,2.709E-008
696.2380,3.076E-008
696.2400,2.748E-008
696.2420,2.941E-008
696.2440,2.492E-008
696.2460,2.228E-008
696.2480,2.250E-008
696.2500,2.710E-008
696.2520,2.630E-008
696.2540,2.814E-008
696.2560,3.116E-008
696.2580,3.136E-008
696.2600,4.005E-008
696.2620,3.765E-008
696.2640,3.827E-008
696.2660,4.425E-008
696.2680,3.514E-008
696.2700,3.930E-008
696.2720,4.831E-008
696.2740,4.621E-008
696.2760,4.491E-008
696.2780,5.241E-008
696.2800,5.580E-008
696.2820,6.405E-008
696.2840,5.765E-008
696.2860,7.375E-008
696.2880,7.076E-008
696.2900,7.493E-008
696.2920,7.695E-008
696.2940,8.514E-008
696.2960,9.450E-008
696.2980,9.688E-008
696.3000,1.041E-007
696.3020,1.205E-007
696.3040,1.314E-007
696.3060,1.361E-007
696.3080,1.474E-007
696.3100,1.510E-007
696.3120,1.637E-007
696.3140,1.761E-007
696.3160,1.900E-007
696.3180,1.845E-007
696.3200,2.030E-007
696.3220,2.135E-007
696.3240,2.279E-007
696.3260,2.377E-007
696.3280,2.529E-007
696.3300,2.553E-007
696.3320,2.747E-007
696.3340,2.874E-007
696.3360,3.022E-007
696.3380,3.057E-007
696.3400,3.282E-007
696.3420,3.401E-007
696.3440,3.542E-007
696.3460,3.653E-007
696.3480,3.671E-007
696.3500,3.787E-007
696.3520,3.895E-007
696.3540,3.950E-007
696.3560,3.989E-007
696.3580,4.192E-007
696.3600,4.274E-007
696.3620,4.357E-007
696.3640,4.311E-007
696.3660,4.459E-007
696.3680,4.511E-007
696.3700,4.649E-007
696.3720,4.609E-007
696.3740,4.814E-007
696.3760,4.845E-007
696.3780,5.020E-007
696.3800,5.070E-007
696.3820,5.202E-007
696.3840,5.118E-007
696.3860,5.157E-007
696.3880,5.163E-007
696.3900,5.196E-007
696.3920,5.331E-007
696.3940,5.338E-007
696.3960,5.411E-007
696.3980,5.297E-007
696.4000,5.368E-007
696.4020,5.288E-007
696.4040,5.483E-007
696.4060,5.385E-007
696.4080,5.434E-007
696.4100,5.547E-007
696.4120,5.491E-007
696.4140,5.356E-007
696.4160,5.326E-007
696.4180,5.302E-007
696.4200,5.254E-007
696.4220,5.300E-007
696.4240,5.070E-007
696.4260,5.212E-007
696.4280,5.070E-007
696.4300,4.950E-007
696.4320,4.964E-007
696.4340,4.929E-007
696.4360,4.894E-007
696.4380,4.865E-007
696.4400,4.747E-007
696.4420,4.587E-007
696.4440,4.485E-007
696.4460,4.387E-007
696.4480,4.303E-007
696.4500,4.192E-007
696.4520,4.067E-007
696.4540,3.935E-007
696.4560,3.871E-007
696.4580,3.841E-007
696.4600,3.628E-007
696.4620,3.491E-007
696.4640,3.499E-007
696.4660,3.370E-007
696.4680,3.269E-007
696.4700,3.225E-007
696.4720,3.133E-007
696.4740,2.938E-007
696.4760,2.849E-007
696.4780,2.648E-007
696.4800,2.647E-007
696.4820,2.513E-007
696.4840,2.252E-007
696.4860,2.128E-007
696.4880,1.962E-007
696.4900,1.973E-007
696.4920,1.830E-007
696.4940,1.751E-007
696.4960,1.649E-007
696.4980,1.576E-007
696.5000,1.422E-007
696.5020,1.376E-007
696.5040,1.290E-007
696.5060,1.220E-007
696.5080,1.110E-007
696.5100,1.013E-007
696.5120,1.063E-007
696.5140,9.347E-008
696.5160,7.902E-008
696.5180,8.026E-008
696.5200,7.148E-008
696.5220,6.915E-008
696.5240,6.696E-008
696.5260,6.043E-008
696.5280,5.573E-008
696.5300,5.292E-008
696.5320,4.888E-008
696.5340,4.077E-008
696.5360,3.848E-008
696.5380,3.864E-008
696.5400,3.314E-008
696.5420,3.398E-008
696.5440,3.643E-008
696.5460,3.276E-008
696.5480,3.325E-008
696.5500,2.282E-008
696.5520,2.532E-008
696.5540,2.031E-008
696.5560,1.488E-008
696.5580,2.121E-008
696.5600,1.881E-008
696.5620,1.912E-008
696.5640,2.126E-008
696.5660,1.864E-008
696.5680,2.285E-008
696.5700,1.166E-008
696.5720,1.783E-008
696.5740,1.971E-008
696.5760,7.183E-009
696.5780,1.252E-008
696.5800,1.423E-008
696.5820,2.143E-008
696.5840,1.401E-008
696.5860,1.529E-008
696.5880,1.162E-008
696.5900,1.382E-008
696.5920,9.576E-009
696.5940,5.124E-009
696.5960,2.831E-009
696.5980,8.726E-009
696.6000,6.335E-009
696.6020,6.944E-009
696.6040,9.192E-009
696.6060,3.007E-009
696.6080,3.406E-009
696.6100,5.318E-009
696.6120,1.298E-008
696.6140,1.569E-009
696.6160,5.036E-009
696.6180,4.995E-009
696.6200,-6.243E-010
696.6220,7.831E-009
696.6240,-9.772E-011
696.6260,1.631E-009
696.6280,1.110E-008
696.6300,7.807E-010
696.6320,2.456E-009
696.6340,-1.710E-009
696.6360,5.976E-009
696.6380,6.977E-009
696.6400,-2.287E-009
696.6420,2.853E-009
696.6440,2.240E-009
696.6460,5.319E-009
696.6480,4.714E-009
696.6500,2.596E-009
696.6520,5.668E-009
696.6540,6.630E-009
696.6560,3.599E-009
696.6580,3.105E-009
1 70CSV
2 // AQ6370 OPTICAL SPECTRUM ANALYZER //
3 25
4 CTRWL 696.408000
5 SPAN 0.500000
6 START WL 696.158000
7 STOP WL 696.658000
8 WLFREQ 0
9 REFL -60.000
10 LSCL -2.0
11 BASEL 0.00000000000
12 RESLN 0.100
13 AVG 100
14 SMPLAUTO 1
15 SMPL 251
16 SMPLINTVL 0.0020
17 HIGH3
18 MEAS
19 LSUNT 1
20 NMSKH OFF
21 RESCOR 0
22 RESPARM 10177
23 FREQPARM 10177
24 [TRACE DATA]
25 696.1580 -2.652E-009
26 696.1600 -6.013E-009
27 696.1620 -5.654E-009
28 696.1640 3.338E-010
29 696.1660 -3.481E-009
30 696.1680 2.329E-010
31 696.1700 8.646E-009
32 696.1720 7.403E-010
33 696.1740 -2.472E-009
34 696.1760 3.735E-009
35 696.1780 2.148E-010
36 696.1800 7.293E-009
37 696.1820 4.382E-009
38 696.1840 8.916E-009
39 696.1860 7.805E-009
40 696.1880 2.781E-009
41 696.1900 1.076E-008
42 696.1920 1.078E-008
43 696.1940 9.574E-009
44 696.1960 1.395E-008
45 696.1980 1.045E-008
46 696.2000 1.709E-008
47 696.2020 1.241E-008
48 696.2040 1.680E-008
49 696.2060 1.188E-008
50 696.2080 1.439E-008
51 696.2100 2.016E-008
52 696.2120 1.776E-008
53 696.2140 1.023E-008
54 696.2160 1.638E-008
55 696.2180 1.483E-008
56 696.2200 1.728E-008
57 696.2220 1.859E-008
58 696.2240 2.320E-008
59 696.2260 2.260E-008
60 696.2280 2.236E-008
61 696.2300 2.352E-008
62 696.2320 2.208E-008
63 696.2340 1.902E-008
64 696.2360 2.709E-008
65 696.2380 3.076E-008
66 696.2400 2.748E-008
67 696.2420 2.941E-008
68 696.2440 2.492E-008
69 696.2460 2.228E-008
70 696.2480 2.250E-008
71 696.2500 2.710E-008
72 696.2520 2.630E-008
73 696.2540 2.814E-008
74 696.2560 3.116E-008
75 696.2580 3.136E-008
76 696.2600 4.005E-008
77 696.2620 3.765E-008
78 696.2640 3.827E-008
79 696.2660 4.425E-008
80 696.2680 3.514E-008
81 696.2700 3.930E-008
82 696.2720 4.831E-008
83 696.2740 4.621E-008
84 696.2760 4.491E-008
85 696.2780 5.241E-008
86 696.2800 5.580E-008
87 696.2820 6.405E-008
88 696.2840 5.765E-008
89 696.2860 7.375E-008
90 696.2880 7.076E-008
91 696.2900 7.493E-008
92 696.2920 7.695E-008
93 696.2940 8.514E-008
94 696.2960 9.450E-008
95 696.2980 9.688E-008
96 696.3000 1.041E-007
97 696.3020 1.205E-007
98 696.3040 1.314E-007
99 696.3060 1.361E-007
100 696.3080 1.474E-007
101 696.3100 1.510E-007
102 696.3120 1.637E-007
103 696.3140 1.761E-007
104 696.3160 1.900E-007
105 696.3180 1.845E-007
106 696.3200 2.030E-007
107 696.3220 2.135E-007
108 696.3240 2.279E-007
109 696.3260 2.377E-007
110 696.3280 2.529E-007
111 696.3300 2.553E-007
112 696.3320 2.747E-007
113 696.3340 2.874E-007
114 696.3360 3.022E-007
115 696.3380 3.057E-007
116 696.3400 3.282E-007
117 696.3420 3.401E-007
118 696.3440 3.542E-007
119 696.3460 3.653E-007
120 696.3480 3.671E-007
121 696.3500 3.787E-007
122 696.3520 3.895E-007
123 696.3540 3.950E-007
124 696.3560 3.989E-007
125 696.3580 4.192E-007
126 696.3600 4.274E-007
127 696.3620 4.357E-007
128 696.3640 4.311E-007
129 696.3660 4.459E-007
130 696.3680 4.511E-007
131 696.3700 4.649E-007
132 696.3720 4.609E-007
133 696.3740 4.814E-007
134 696.3760 4.845E-007
135 696.3780 5.020E-007
136 696.3800 5.070E-007
137 696.3820 5.202E-007
138 696.3840 5.118E-007
139 696.3860 5.157E-007
140 696.3880 5.163E-007
141 696.3900 5.196E-007
142 696.3920 5.331E-007
143 696.3940 5.338E-007
144 696.3960 5.411E-007
145 696.3980 5.297E-007
146 696.4000 5.368E-007
147 696.4020 5.288E-007
148 696.4040 5.483E-007
149 696.4060 5.385E-007
150 696.4080 5.434E-007
151 696.4100 5.547E-007
152 696.4120 5.491E-007
153 696.4140 5.356E-007
154 696.4160 5.326E-007
155 696.4180 5.302E-007
156 696.4200 5.254E-007
157 696.4220 5.300E-007
158 696.4240 5.070E-007
159 696.4260 5.212E-007
160 696.4280 5.070E-007
161 696.4300 4.950E-007
162 696.4320 4.964E-007
163 696.4340 4.929E-007
164 696.4360 4.894E-007
165 696.4380 4.865E-007
166 696.4400 4.747E-007
167 696.4420 4.587E-007
168 696.4440 4.485E-007
169 696.4460 4.387E-007
170 696.4480 4.303E-007
171 696.4500 4.192E-007
172 696.4520 4.067E-007
173 696.4540 3.935E-007
174 696.4560 3.871E-007
175 696.4580 3.841E-007
176 696.4600 3.628E-007
177 696.4620 3.491E-007
178 696.4640 3.499E-007
179 696.4660 3.370E-007
180 696.4680 3.269E-007
181 696.4700 3.225E-007
182 696.4720 3.133E-007
183 696.4740 2.938E-007
184 696.4760 2.849E-007
185 696.4780 2.648E-007
186 696.4800 2.647E-007
187 696.4820 2.513E-007
188 696.4840 2.252E-007
189 696.4860 2.128E-007
190 696.4880 1.962E-007
191 696.4900 1.973E-007
192 696.4920 1.830E-007
193 696.4940 1.751E-007
194 696.4960 1.649E-007
195 696.4980 1.576E-007
196 696.5000 1.422E-007
197 696.5020 1.376E-007
198 696.5040 1.290E-007
199 696.5060 1.220E-007
200 696.5080 1.110E-007
201 696.5100 1.013E-007
202 696.5120 1.063E-007
203 696.5140 9.347E-008
204 696.5160 7.902E-008
205 696.5180 8.026E-008
206 696.5200 7.148E-008
207 696.5220 6.915E-008
208 696.5240 6.696E-008
209 696.5260 6.043E-008
210 696.5280 5.573E-008
211 696.5300 5.292E-008
212 696.5320 4.888E-008
213 696.5340 4.077E-008
214 696.5360 3.848E-008
215 696.5380 3.864E-008
216 696.5400 3.314E-008
217 696.5420 3.398E-008
218 696.5440 3.643E-008
219 696.5460 3.276E-008
220 696.5480 3.325E-008
221 696.5500 2.282E-008
222 696.5520 2.532E-008
223 696.5540 2.031E-008
224 696.5560 1.488E-008
225 696.5580 2.121E-008
226 696.5600 1.881E-008
227 696.5620 1.912E-008
228 696.5640 2.126E-008
229 696.5660 1.864E-008
230 696.5680 2.285E-008
231 696.5700 1.166E-008
232 696.5720 1.783E-008
233 696.5740 1.971E-008
234 696.5760 7.183E-009
235 696.5780 1.252E-008
236 696.5800 1.423E-008
237 696.5820 2.143E-008
238 696.5840 1.401E-008
239 696.5860 1.529E-008
240 696.5880 1.162E-008
241 696.5900 1.382E-008
242 696.5920 9.576E-009
243 696.5940 5.124E-009
244 696.5960 2.831E-009
245 696.5980 8.726E-009
246 696.6000 6.335E-009
247 696.6020 6.944E-009
248 696.6040 9.192E-009
249 696.6060 3.007E-009
250 696.6080 3.406E-009
251 696.6100 5.318E-009
252 696.6120 1.298E-008
253 696.6140 1.569E-009
254 696.6160 5.036E-009
255 696.6180 4.995E-009
256 696.6200 -6.243E-010
257 696.6220 7.831E-009
258 696.6240 -9.772E-011
259 696.6260 1.631E-009
260 696.6280 1.110E-008
261 696.6300 7.807E-010
262 696.6320 2.456E-009
263 696.6340 -1.710E-009
264 696.6360 5.976E-009
265 696.6380 6.977E-009
266 696.6400 -2.287E-009
267 696.6420 2.853E-009
268 696.6440 2.240E-009
269 696.6460 5.319E-009
270 696.6480 4.714E-009
271 696.6500 2.596E-009
272 696.6520 5.668E-009
273 696.6540 6.630E-009
274 696.6560 3.599E-009
275 696.6580 3.105E-009

View File

@@ -0,0 +1,251 @@
6.961580000000001117e-07,-9.002999999999999620e-09
6.961600000000000610e-07,-8.484999999999999547e-09
6.961620000000001162e-07,-1.175500000000000004e-08
6.961640000000000655e-07,-4.718200000000000519e-09
6.961660000000001207e-07,-4.860000000000000174e-09
6.961680000000000701e-07,-6.557100000000000032e-09
6.961700000000000194e-07,-7.210000000000003020e-10
6.961720000000000746e-07,-5.776999999999999800e-10
6.961740000000000239e-07,-3.299200000000000353e-09
6.961760000000000791e-07,-5.819999999999998514e-10
6.961780000000000285e-07,-9.380199999999999516e-09
6.961799999999999778e-07,-6.816999999999999931e-09
6.961820000000000330e-07,-3.327999999999999261e-09
6.961839999999999823e-07,2.739999999999996742e-10
6.961860000000000375e-07,-1.717000000000001412e-09
6.961879999999999869e-07,-5.915000000000000357e-09
6.961900000000001480e-07,-1.119999999999999441e-09
6.961920000000000973e-07,1.259999999999999371e-09
6.961940000000000466e-07,-2.616000000000000065e-09
6.961960000000001018e-07,8.099999999999986504e-10
6.961980000000000511e-07,-1.350000000000000508e-09
6.962000000000001064e-07,1.412799999999999919e-08
6.962020000000000557e-07,8.115999999999999684e-09
6.962040000000000050e-07,6.841000000000001502e-09
6.962060000000000602e-07,1.869999999999999540e-09
6.962080000000000095e-07,9.599999999999999936e-10
6.962100000000000647e-07,2.400000000000008256e-10
6.962120000000000141e-07,1.186800000000000079e-08
6.962140000000000693e-07,4.375999999999999778e-09
6.962160000000000186e-07,4.719999999999998590e-09
6.962179999999999679e-07,3.560000000000000114e-09
6.962200000000000231e-07,2.530000000000000156e-09
6.962219999999999725e-07,1.344999999999999967e-08
6.962240000000001336e-07,1.149999999999999875e-08
6.962260000000000829e-07,1.272600000000000093e-08
6.962280000000000322e-07,8.299999999999999876e-09
6.962300000000000874e-07,1.522499999999999902e-08
6.962320000000000368e-07,1.353999999999999915e-08
6.962340000000000920e-07,1.639299999999999995e-08
6.962360000000000413e-07,2.009199999999999886e-08
6.962380000000000965e-07,2.703599999999999804e-08
6.962400000000000458e-07,1.665999999999999830e-08
6.962419999999999952e-07,2.216200000000000019e-08
6.962440000000000504e-07,1.200000000000000157e-08
6.962459999999999997e-07,1.535999999999999990e-08
6.962480000000000549e-07,9.699999999999999177e-09
6.962500000000000042e-07,1.021000000000000010e-08
6.962519999999999536e-07,1.422000000000000094e-08
6.962540000000001146e-07,1.543999999999999797e-08
6.962560000000000640e-07,1.503000000000000290e-08
6.962580000000001192e-07,2.860299999999999811e-08
6.962600000000000685e-07,2.249999999999999633e-08
6.962620000000000178e-07,2.225000000000000402e-08
6.962640000000000730e-07,3.013399999999999706e-08
6.962660000000000224e-07,3.225999999999999903e-08
6.962680000000000776e-07,2.839500000000000379e-08
6.962700000000000269e-07,3.103200000000000285e-08
6.962720000000000821e-07,4.235400000000000325e-08
6.962740000000000314e-07,3.280000000000000254e-08
6.962759999999999808e-07,2.690000000000000265e-08
6.962780000000000360e-07,4.555600000000000109e-08
6.962799999999999853e-07,4.255999999999999861e-08
6.962820000000000405e-07,5.213999999999999572e-08
6.962839999999999898e-07,5.222999999999999852e-08
6.962859999999999392e-07,5.873999999999999527e-08
6.962880000000001003e-07,5.591000000000000235e-08
6.962900000000000496e-07,5.841999999999999637e-08
6.962920000000001048e-07,6.325999999999999868e-08
6.962940000000000541e-07,7.484999999999999857e-08
6.962960000000001093e-07,8.138000000000000477e-08
6.962980000000000587e-07,8.734800000000000897e-08
6.963000000000000080e-07,8.626000000000000611e-08
6.963020000000000632e-07,1.089000000000000024e-07
6.963040000000000125e-07,1.196499999999999895e-07
6.963060000000000677e-07,1.219400000000000186e-07
6.963080000000000171e-07,1.391380000000000115e-07
6.963099999999999664e-07,1.377799999999999804e-07
6.963120000000000216e-07,1.496800000000000009e-07
6.963139999999999709e-07,1.708520000000000002e-07
6.963160000000000261e-07,1.758899999999999954e-07
6.963179999999999755e-07,1.689799999999999951e-07
6.963200000000001365e-07,1.903300000000000109e-07
6.963220000000000859e-07,2.026899999999999972e-07
6.963240000000000352e-07,2.107299999999999818e-07
6.963260000000000904e-07,2.254799999999999782e-07
6.963280000000000397e-07,2.394600000000000015e-07
6.963300000000000949e-07,2.429200000000000073e-07
6.963320000000000443e-07,2.644500000000000155e-07
6.963339999999999936e-07,2.735399999999999996e-07
6.963360000000000488e-07,2.940389999999999769e-07
6.963379999999999981e-07,2.921899999999999714e-07
6.963400000000000533e-07,3.111599999999999884e-07
6.963420000000000027e-07,3.368520000000000043e-07
6.963440000000000579e-07,3.435300000000000063e-07
6.963460000000000072e-07,3.524600000000000207e-07
6.963479999999999565e-07,3.561099999999999773e-07
6.963500000000001176e-07,3.675100000000000397e-07
6.963520000000000669e-07,3.748799999999999793e-07
6.963540000000001222e-07,3.798599999999999617e-07
6.963560000000000715e-07,3.930840000000000277e-07
6.963580000000000208e-07,4.102299999999999881e-07
6.963600000000000760e-07,4.138599999999999750e-07
6.963620000000000253e-07,4.272470000000000405e-07
6.963640000000000806e-07,4.187000000000000104e-07
6.963660000000000299e-07,4.314999999999999662e-07
6.963680000000000851e-07,4.368499999999999975e-07
6.963700000000000344e-07,4.551379999999999824e-07
6.963719999999999837e-07,4.517279999999999803e-07
6.963740000000000390e-07,4.718099999999999347e-07
6.963759999999999883e-07,4.762989999999999692e-07
6.963780000000000435e-07,4.923590000000000746e-07
6.963799999999999928e-07,4.952399999999999797e-07
6.963819999999999421e-07,5.100700000000000139e-07
6.963840000000001032e-07,5.049310000000000366e-07
6.963860000000000526e-07,5.144010000000000280e-07
6.963880000000001078e-07,5.077620000000000438e-07
6.963900000000000571e-07,5.105439999999999691e-07
6.963920000000001123e-07,5.220500000000000458e-07
6.963940000000000616e-07,5.238219999999999375e-07
6.963960000000000110e-07,5.367079999999999908e-07
6.963980000000000662e-07,5.218500000000000308e-07
6.964000000000000155e-07,5.215799999999999893e-07
6.964020000000000707e-07,5.123500000000000582e-07
6.964040000000000200e-07,5.428350000000000297e-07
6.964059999999999694e-07,5.294429999999999850e-07
6.964080000000000246e-07,5.296899999999999210e-07
6.964099999999999739e-07,5.448509999999999864e-07
6.964120000000000291e-07,5.340399999999999301e-07
6.964139999999999784e-07,5.317639999999999963e-07
6.964160000000001395e-07,5.197799999999999599e-07
6.964180000000000888e-07,5.173100000000000708e-07
6.964200000000000382e-07,5.095199999999999726e-07
6.964220000000000934e-07,5.246329999999999836e-07
6.964240000000000427e-07,4.987069999999999671e-07
6.964260000000000979e-07,5.117310000000000180e-07
6.964280000000000472e-07,4.999419999999999645e-07
6.964299999999999966e-07,4.869049999999999782e-07
6.964320000000000518e-07,4.881280000000000680e-07
6.964340000000000011e-07,4.796699999999999535e-07
6.964360000000000563e-07,4.754800000000000199e-07
6.964380000000000056e-07,4.753400000000000199e-07
6.964400000000000609e-07,4.604199999999999896e-07
6.964420000000000102e-07,4.562780000000000045e-07
6.964439999999999595e-07,4.391720000000000365e-07
6.964460000000001206e-07,4.280099999999999793e-07
6.964480000000000699e-07,4.152799999999999970e-07
6.964500000000001251e-07,4.038199999999999724e-07
6.964520000000000745e-07,3.956900000000000181e-07
6.964540000000000238e-07,3.821700000000000400e-07
6.964560000000000790e-07,3.741200000000000175e-07
6.964580000000000283e-07,3.757880000000000031e-07
6.964600000000000835e-07,3.552649999999999986e-07
6.964620000000000329e-07,3.362900000000000023e-07
6.964640000000000881e-07,3.471019999999999803e-07
6.964660000000000374e-07,3.313810000000000211e-07
6.964679999999999867e-07,3.147200000000000018e-07
6.964700000000000419e-07,3.125689999999999715e-07
6.964719999999999913e-07,3.059959999999999562e-07
6.964740000000000465e-07,2.862020000000000107e-07
6.964759999999999958e-07,2.798800000000000418e-07
6.964779999999999451e-07,2.581749999999999676e-07
6.964800000000001062e-07,2.557810000000000058e-07
6.964820000000000555e-07,2.458039999999999953e-07
6.964840000000001107e-07,2.114100000000000117e-07
6.964860000000000601e-07,2.053279999999999974e-07
6.964880000000001153e-07,1.858700000000000093e-07
6.964900000000000646e-07,1.863100000000000053e-07
6.964920000000000139e-07,1.748910000000000008e-07
6.964940000000000691e-07,1.670389999999999911e-07
6.964960000000000185e-07,1.576309999999999905e-07
6.964980000000000737e-07,1.445700000000000035e-07
6.965000000000000230e-07,1.369839999999999778e-07
6.965019999999999723e-07,1.243199999999999909e-07
6.965040000000000275e-07,1.169400000000000003e-07
6.965059999999999769e-07,1.146750000000000127e-07
6.965080000000000321e-07,9.652000000000000666e-08
6.965099999999999814e-07,8.906000000000000472e-08
6.965120000000000366e-07,9.556000000000000336e-08
6.965140000000000918e-07,8.716499999999999999e-08
6.965160000000000412e-07,7.364799999999999879e-08
6.965180000000000964e-07,7.451800000000000592e-08
6.965200000000000457e-07,6.672499999999999695e-08
6.965220000000001009e-07,5.898999999999999420e-08
6.965240000000000502e-07,5.938100000000000081e-08
6.965259999999999996e-07,5.685600000000000301e-08
6.965280000000000548e-07,5.357399999999999387e-08
6.965300000000000041e-07,4.590299999999999751e-08
6.965320000000000593e-07,4.297700000000000162e-08
6.965340000000000086e-07,3.502099999999999973e-08
6.965359999999999580e-07,2.381999999999999757e-08
6.965380000000000132e-07,3.434999999999999987e-08
6.965399999999999625e-07,2.276999999999999809e-08
6.965420000000001236e-07,3.071599999999999526e-08
6.965440000000000729e-07,2.993600000000000416e-08
6.965460000000001281e-07,3.010399999999999613e-08
6.965480000000000774e-07,2.889400000000000383e-08
6.965500000000000268e-07,1.585299999999999975e-08
6.965520000000000820e-07,1.514000000000000190e-08
6.965540000000000313e-07,1.301500000000000107e-08
6.965560000000000865e-07,5.718000000000000314e-09
6.965580000000000358e-07,5.799999999999998996e-09
6.965599999999999852e-07,1.544600000000000146e-08
6.965620000000000404e-07,1.329899999999999885e-08
6.965639999999999897e-07,8.360000000000000082e-09
6.965660000000000449e-07,6.290000000000000406e-09
6.965679999999999942e-07,1.330499999999999903e-08
6.965700000000000494e-07,1.081410000000000053e-08
6.965719999999999988e-07,1.167100000000000240e-08
6.965739999999999481e-07,9.732999999999998546e-09
6.965760000000001092e-07,1.543999999999999631e-09
6.965780000000000585e-07,4.510999999999999829e-09
6.965800000000001137e-07,4.210000000000000972e-09
6.965820000000000631e-07,1.646400000000000105e-08
6.965840000000000124e-07,7.263999999999999731e-09
6.965860000000000676e-07,6.959999999999999127e-09
6.965880000000000169e-07,1.530000000000001127e-09
6.965900000000000721e-07,1.040000000000000048e-08
6.965920000000000215e-07,-1.504000000000001424e-09
6.965940000000000767e-07,-3.633999999999999652e-09
6.965960000000000260e-07,-4.168000000000000496e-09
6.965979999999999753e-07,-2.964000000000000932e-09
6.966000000000000305e-07,6.061500000000000213e-09
6.966019999999999799e-07,3.890000000000002077e-10
6.966040000000000351e-07,5.855000000000000151e-09
6.966060000000000903e-07,7.999999999999972374e-12
6.966080000000000396e-07,-6.050000000000002889e-10
6.966100000000000948e-07,3.609999999999998908e-10
6.966120000000000441e-07,1.141199999999999988e-08
6.966140000000000993e-07,-1.205999999999999971e-09
6.966160000000000487e-07,1.579000000000000441e-09
6.966180000000001039e-07,1.692000000000000361e-09
6.966200000000000532e-07,-2.373300000000000066e-09
6.966220000000000025e-07,6.863400000000000928e-09
6.966240000000000577e-07,2.966280000000000225e-09
6.966260000000000071e-07,-7.183000000000000528e-09
6.966280000000000623e-07,5.885999999999999733e-09
6.966300000000000116e-07,-5.854300000000000349e-09
6.966319999999999609e-07,-1.825999999999999691e-09
6.966340000000000161e-07,-9.542000000000000757e-10
6.966359999999999655e-07,2.244000000000000109e-09
6.966380000000001266e-07,-5.400000000000002032e-11
6.966400000000000759e-07,-3.291000000000000319e-09
6.966420000000001311e-07,-4.588000000000000287e-09
6.966440000000000804e-07,-2.419999999999997847e-10
6.966460000000000297e-07,-3.329000000000000395e-09
6.966480000000000850e-07,1.268000000000000171e-09
6.966500000000000343e-07,3.543199999999999924e-09
6.966520000000000895e-07,4.907499999999999442e-09
6.966540000000000388e-07,1.111399999999999946e-08
6.966559999999999881e-07,6.621000000000000194e-09
6.966580000000000434e-07,2.632699999999999811e-09
1 6.961580000000001117e-07 -9.002999999999999620e-09
2 6.961600000000000610e-07 -8.484999999999999547e-09
3 6.961620000000001162e-07 -1.175500000000000004e-08
4 6.961640000000000655e-07 -4.718200000000000519e-09
5 6.961660000000001207e-07 -4.860000000000000174e-09
6 6.961680000000000701e-07 -6.557100000000000032e-09
7 6.961700000000000194e-07 -7.210000000000003020e-10
8 6.961720000000000746e-07 -5.776999999999999800e-10
9 6.961740000000000239e-07 -3.299200000000000353e-09
10 6.961760000000000791e-07 -5.819999999999998514e-10
11 6.961780000000000285e-07 -9.380199999999999516e-09
12 6.961799999999999778e-07 -6.816999999999999931e-09
13 6.961820000000000330e-07 -3.327999999999999261e-09
14 6.961839999999999823e-07 2.739999999999996742e-10
15 6.961860000000000375e-07 -1.717000000000001412e-09
16 6.961879999999999869e-07 -5.915000000000000357e-09
17 6.961900000000001480e-07 -1.119999999999999441e-09
18 6.961920000000000973e-07 1.259999999999999371e-09
19 6.961940000000000466e-07 -2.616000000000000065e-09
20 6.961960000000001018e-07 8.099999999999986504e-10
21 6.961980000000000511e-07 -1.350000000000000508e-09
22 6.962000000000001064e-07 1.412799999999999919e-08
23 6.962020000000000557e-07 8.115999999999999684e-09
24 6.962040000000000050e-07 6.841000000000001502e-09
25 6.962060000000000602e-07 1.869999999999999540e-09
26 6.962080000000000095e-07 9.599999999999999936e-10
27 6.962100000000000647e-07 2.400000000000008256e-10
28 6.962120000000000141e-07 1.186800000000000079e-08
29 6.962140000000000693e-07 4.375999999999999778e-09
30 6.962160000000000186e-07 4.719999999999998590e-09
31 6.962179999999999679e-07 3.560000000000000114e-09
32 6.962200000000000231e-07 2.530000000000000156e-09
33 6.962219999999999725e-07 1.344999999999999967e-08
34 6.962240000000001336e-07 1.149999999999999875e-08
35 6.962260000000000829e-07 1.272600000000000093e-08
36 6.962280000000000322e-07 8.299999999999999876e-09
37 6.962300000000000874e-07 1.522499999999999902e-08
38 6.962320000000000368e-07 1.353999999999999915e-08
39 6.962340000000000920e-07 1.639299999999999995e-08
40 6.962360000000000413e-07 2.009199999999999886e-08
41 6.962380000000000965e-07 2.703599999999999804e-08
42 6.962400000000000458e-07 1.665999999999999830e-08
43 6.962419999999999952e-07 2.216200000000000019e-08
44 6.962440000000000504e-07 1.200000000000000157e-08
45 6.962459999999999997e-07 1.535999999999999990e-08
46 6.962480000000000549e-07 9.699999999999999177e-09
47 6.962500000000000042e-07 1.021000000000000010e-08
48 6.962519999999999536e-07 1.422000000000000094e-08
49 6.962540000000001146e-07 1.543999999999999797e-08
50 6.962560000000000640e-07 1.503000000000000290e-08
51 6.962580000000001192e-07 2.860299999999999811e-08
52 6.962600000000000685e-07 2.249999999999999633e-08
53 6.962620000000000178e-07 2.225000000000000402e-08
54 6.962640000000000730e-07 3.013399999999999706e-08
55 6.962660000000000224e-07 3.225999999999999903e-08
56 6.962680000000000776e-07 2.839500000000000379e-08
57 6.962700000000000269e-07 3.103200000000000285e-08
58 6.962720000000000821e-07 4.235400000000000325e-08
59 6.962740000000000314e-07 3.280000000000000254e-08
60 6.962759999999999808e-07 2.690000000000000265e-08
61 6.962780000000000360e-07 4.555600000000000109e-08
62 6.962799999999999853e-07 4.255999999999999861e-08
63 6.962820000000000405e-07 5.213999999999999572e-08
64 6.962839999999999898e-07 5.222999999999999852e-08
65 6.962859999999999392e-07 5.873999999999999527e-08
66 6.962880000000001003e-07 5.591000000000000235e-08
67 6.962900000000000496e-07 5.841999999999999637e-08
68 6.962920000000001048e-07 6.325999999999999868e-08
69 6.962940000000000541e-07 7.484999999999999857e-08
70 6.962960000000001093e-07 8.138000000000000477e-08
71 6.962980000000000587e-07 8.734800000000000897e-08
72 6.963000000000000080e-07 8.626000000000000611e-08
73 6.963020000000000632e-07 1.089000000000000024e-07
74 6.963040000000000125e-07 1.196499999999999895e-07
75 6.963060000000000677e-07 1.219400000000000186e-07
76 6.963080000000000171e-07 1.391380000000000115e-07
77 6.963099999999999664e-07 1.377799999999999804e-07
78 6.963120000000000216e-07 1.496800000000000009e-07
79 6.963139999999999709e-07 1.708520000000000002e-07
80 6.963160000000000261e-07 1.758899999999999954e-07
81 6.963179999999999755e-07 1.689799999999999951e-07
82 6.963200000000001365e-07 1.903300000000000109e-07
83 6.963220000000000859e-07 2.026899999999999972e-07
84 6.963240000000000352e-07 2.107299999999999818e-07
85 6.963260000000000904e-07 2.254799999999999782e-07
86 6.963280000000000397e-07 2.394600000000000015e-07
87 6.963300000000000949e-07 2.429200000000000073e-07
88 6.963320000000000443e-07 2.644500000000000155e-07
89 6.963339999999999936e-07 2.735399999999999996e-07
90 6.963360000000000488e-07 2.940389999999999769e-07
91 6.963379999999999981e-07 2.921899999999999714e-07
92 6.963400000000000533e-07 3.111599999999999884e-07
93 6.963420000000000027e-07 3.368520000000000043e-07
94 6.963440000000000579e-07 3.435300000000000063e-07
95 6.963460000000000072e-07 3.524600000000000207e-07
96 6.963479999999999565e-07 3.561099999999999773e-07
97 6.963500000000001176e-07 3.675100000000000397e-07
98 6.963520000000000669e-07 3.748799999999999793e-07
99 6.963540000000001222e-07 3.798599999999999617e-07
100 6.963560000000000715e-07 3.930840000000000277e-07
101 6.963580000000000208e-07 4.102299999999999881e-07
102 6.963600000000000760e-07 4.138599999999999750e-07
103 6.963620000000000253e-07 4.272470000000000405e-07
104 6.963640000000000806e-07 4.187000000000000104e-07
105 6.963660000000000299e-07 4.314999999999999662e-07
106 6.963680000000000851e-07 4.368499999999999975e-07
107 6.963700000000000344e-07 4.551379999999999824e-07
108 6.963719999999999837e-07 4.517279999999999803e-07
109 6.963740000000000390e-07 4.718099999999999347e-07
110 6.963759999999999883e-07 4.762989999999999692e-07
111 6.963780000000000435e-07 4.923590000000000746e-07
112 6.963799999999999928e-07 4.952399999999999797e-07
113 6.963819999999999421e-07 5.100700000000000139e-07
114 6.963840000000001032e-07 5.049310000000000366e-07
115 6.963860000000000526e-07 5.144010000000000280e-07
116 6.963880000000001078e-07 5.077620000000000438e-07
117 6.963900000000000571e-07 5.105439999999999691e-07
118 6.963920000000001123e-07 5.220500000000000458e-07
119 6.963940000000000616e-07 5.238219999999999375e-07
120 6.963960000000000110e-07 5.367079999999999908e-07
121 6.963980000000000662e-07 5.218500000000000308e-07
122 6.964000000000000155e-07 5.215799999999999893e-07
123 6.964020000000000707e-07 5.123500000000000582e-07
124 6.964040000000000200e-07 5.428350000000000297e-07
125 6.964059999999999694e-07 5.294429999999999850e-07
126 6.964080000000000246e-07 5.296899999999999210e-07
127 6.964099999999999739e-07 5.448509999999999864e-07
128 6.964120000000000291e-07 5.340399999999999301e-07
129 6.964139999999999784e-07 5.317639999999999963e-07
130 6.964160000000001395e-07 5.197799999999999599e-07
131 6.964180000000000888e-07 5.173100000000000708e-07
132 6.964200000000000382e-07 5.095199999999999726e-07
133 6.964220000000000934e-07 5.246329999999999836e-07
134 6.964240000000000427e-07 4.987069999999999671e-07
135 6.964260000000000979e-07 5.117310000000000180e-07
136 6.964280000000000472e-07 4.999419999999999645e-07
137 6.964299999999999966e-07 4.869049999999999782e-07
138 6.964320000000000518e-07 4.881280000000000680e-07
139 6.964340000000000011e-07 4.796699999999999535e-07
140 6.964360000000000563e-07 4.754800000000000199e-07
141 6.964380000000000056e-07 4.753400000000000199e-07
142 6.964400000000000609e-07 4.604199999999999896e-07
143 6.964420000000000102e-07 4.562780000000000045e-07
144 6.964439999999999595e-07 4.391720000000000365e-07
145 6.964460000000001206e-07 4.280099999999999793e-07
146 6.964480000000000699e-07 4.152799999999999970e-07
147 6.964500000000001251e-07 4.038199999999999724e-07
148 6.964520000000000745e-07 3.956900000000000181e-07
149 6.964540000000000238e-07 3.821700000000000400e-07
150 6.964560000000000790e-07 3.741200000000000175e-07
151 6.964580000000000283e-07 3.757880000000000031e-07
152 6.964600000000000835e-07 3.552649999999999986e-07
153 6.964620000000000329e-07 3.362900000000000023e-07
154 6.964640000000000881e-07 3.471019999999999803e-07
155 6.964660000000000374e-07 3.313810000000000211e-07
156 6.964679999999999867e-07 3.147200000000000018e-07
157 6.964700000000000419e-07 3.125689999999999715e-07
158 6.964719999999999913e-07 3.059959999999999562e-07
159 6.964740000000000465e-07 2.862020000000000107e-07
160 6.964759999999999958e-07 2.798800000000000418e-07
161 6.964779999999999451e-07 2.581749999999999676e-07
162 6.964800000000001062e-07 2.557810000000000058e-07
163 6.964820000000000555e-07 2.458039999999999953e-07
164 6.964840000000001107e-07 2.114100000000000117e-07
165 6.964860000000000601e-07 2.053279999999999974e-07
166 6.964880000000001153e-07 1.858700000000000093e-07
167 6.964900000000000646e-07 1.863100000000000053e-07
168 6.964920000000000139e-07 1.748910000000000008e-07
169 6.964940000000000691e-07 1.670389999999999911e-07
170 6.964960000000000185e-07 1.576309999999999905e-07
171 6.964980000000000737e-07 1.445700000000000035e-07
172 6.965000000000000230e-07 1.369839999999999778e-07
173 6.965019999999999723e-07 1.243199999999999909e-07
174 6.965040000000000275e-07 1.169400000000000003e-07
175 6.965059999999999769e-07 1.146750000000000127e-07
176 6.965080000000000321e-07 9.652000000000000666e-08
177 6.965099999999999814e-07 8.906000000000000472e-08
178 6.965120000000000366e-07 9.556000000000000336e-08
179 6.965140000000000918e-07 8.716499999999999999e-08
180 6.965160000000000412e-07 7.364799999999999879e-08
181 6.965180000000000964e-07 7.451800000000000592e-08
182 6.965200000000000457e-07 6.672499999999999695e-08
183 6.965220000000001009e-07 5.898999999999999420e-08
184 6.965240000000000502e-07 5.938100000000000081e-08
185 6.965259999999999996e-07 5.685600000000000301e-08
186 6.965280000000000548e-07 5.357399999999999387e-08
187 6.965300000000000041e-07 4.590299999999999751e-08
188 6.965320000000000593e-07 4.297700000000000162e-08
189 6.965340000000000086e-07 3.502099999999999973e-08
190 6.965359999999999580e-07 2.381999999999999757e-08
191 6.965380000000000132e-07 3.434999999999999987e-08
192 6.965399999999999625e-07 2.276999999999999809e-08
193 6.965420000000001236e-07 3.071599999999999526e-08
194 6.965440000000000729e-07 2.993600000000000416e-08
195 6.965460000000001281e-07 3.010399999999999613e-08
196 6.965480000000000774e-07 2.889400000000000383e-08
197 6.965500000000000268e-07 1.585299999999999975e-08
198 6.965520000000000820e-07 1.514000000000000190e-08
199 6.965540000000000313e-07 1.301500000000000107e-08
200 6.965560000000000865e-07 5.718000000000000314e-09
201 6.965580000000000358e-07 5.799999999999998996e-09
202 6.965599999999999852e-07 1.544600000000000146e-08
203 6.965620000000000404e-07 1.329899999999999885e-08
204 6.965639999999999897e-07 8.360000000000000082e-09
205 6.965660000000000449e-07 6.290000000000000406e-09
206 6.965679999999999942e-07 1.330499999999999903e-08
207 6.965700000000000494e-07 1.081410000000000053e-08
208 6.965719999999999988e-07 1.167100000000000240e-08
209 6.965739999999999481e-07 9.732999999999998546e-09
210 6.965760000000001092e-07 1.543999999999999631e-09
211 6.965780000000000585e-07 4.510999999999999829e-09
212 6.965800000000001137e-07 4.210000000000000972e-09
213 6.965820000000000631e-07 1.646400000000000105e-08
214 6.965840000000000124e-07 7.263999999999999731e-09
215 6.965860000000000676e-07 6.959999999999999127e-09
216 6.965880000000000169e-07 1.530000000000001127e-09
217 6.965900000000000721e-07 1.040000000000000048e-08
218 6.965920000000000215e-07 -1.504000000000001424e-09
219 6.965940000000000767e-07 -3.633999999999999652e-09
220 6.965960000000000260e-07 -4.168000000000000496e-09
221 6.965979999999999753e-07 -2.964000000000000932e-09
222 6.966000000000000305e-07 6.061500000000000213e-09
223 6.966019999999999799e-07 3.890000000000002077e-10
224 6.966040000000000351e-07 5.855000000000000151e-09
225 6.966060000000000903e-07 7.999999999999972374e-12
226 6.966080000000000396e-07 -6.050000000000002889e-10
227 6.966100000000000948e-07 3.609999999999998908e-10
228 6.966120000000000441e-07 1.141199999999999988e-08
229 6.966140000000000993e-07 -1.205999999999999971e-09
230 6.966160000000000487e-07 1.579000000000000441e-09
231 6.966180000000001039e-07 1.692000000000000361e-09
232 6.966200000000000532e-07 -2.373300000000000066e-09
233 6.966220000000000025e-07 6.863400000000000928e-09
234 6.966240000000000577e-07 2.966280000000000225e-09
235 6.966260000000000071e-07 -7.183000000000000528e-09
236 6.966280000000000623e-07 5.885999999999999733e-09
237 6.966300000000000116e-07 -5.854300000000000349e-09
238 6.966319999999999609e-07 -1.825999999999999691e-09
239 6.966340000000000161e-07 -9.542000000000000757e-10
240 6.966359999999999655e-07 2.244000000000000109e-09
241 6.966380000000001266e-07 -5.400000000000002032e-11
242 6.966400000000000759e-07 -3.291000000000000319e-09
243 6.966420000000001311e-07 -4.588000000000000287e-09
244 6.966440000000000804e-07 -2.419999999999997847e-10
245 6.966460000000000297e-07 -3.329000000000000395e-09
246 6.966480000000000850e-07 1.268000000000000171e-09
247 6.966500000000000343e-07 3.543199999999999924e-09
248 6.966520000000000895e-07 4.907499999999999442e-09
249 6.966540000000000388e-07 1.111399999999999946e-08
250 6.966559999999999881e-07 6.621000000000000194e-09
251 6.966580000000000434e-07 2.632699999999999811e-09

0
data/Argon_750nm.CSV Executable file → Normal file
View File

326
data/Balcon2008.csv Normal file
View File

@@ -0,0 +1,326 @@
485.40000 0.00498
485.40517 0.00498
485.41004 0.00214
485.41522 0.00356
485.42009 0.00118
485.42526 0.00308
485.43013 0.00379
485.43530 0.00095
485.44018 0.00356
485.44535 0.00047
485.45021 0.00427
485.45539 0.00237
485.46026 0.01067
485.46543 0.00569
485.47030 0.00403
485.47548 0.00521
485.48035 0.00427
485.48552 0.00189
485.49039 0.00498
485.49556 0.00237
485.50044 0.00237
485.50561 0.00237
485.51047 0.00545
485.51565 0.00474
485.52053 0.00616
485.52569 0.01114
485.53056 0.00474
485.53574 0.00118
485.54061 0.00521
485.54578 0.00024
485.55065 0.00024
485.55582 0.00332
485.56070 0.00403
485.56587 0.01209
485.57074 0.00616
485.57591 0.00498
485.58079 0.00189
485.58595 0.00071
485.59082 0.00521
485.59600 0.00758
485.60087 0.00616
485.60604 0.00332
485.61091 0.00332
485.61609 0.00427
485.62096 0.00308
485.62613 0.00118
485.63100 0.00592
485.63617 0.00308
485.64105 0.00521
485.64622 0.00189
485.65108 0.00047
485.65626 0.00142
485.66113 0.00189
485.66630 0.00450
485.67117 0.00450
485.67635 0.00285
485.68122 0.00166
485.68639 0.00308
485.69126 0.00332
485.69643 0.00142
485.70131 0.00024
485.70648 0.00024
485.71135 0.00474
485.71652 0.01161
485.72140 0.00260
485.72656 0.00948
485.73143 0.00332
485.73661 0.00900
485.74148 0.00592
485.74665 0.00616
485.75152 0.00285
485.75669 0.00592
485.76157 0.00332
485.76674 0.00166
485.77161 0.00900
485.77678 0.00971
485.78166 0.01185
485.78682 0.00900
485.79169 0.00663
485.79687 0.00948
485.80174 0.01161
485.80691 0.00640
485.81178 0.01778
485.81696 0.01564
485.82183 0.01730
485.82700 0.01303
485.83187 0.02488
485.83704 0.04147
485.84192 0.05166
485.84709 0.04526
485.85195 0.03388
485.85713 0.07038
485.86201 0.05616
485.86717 0.06303
485.87204 0.05498
485.87722 0.06564
485.88209 0.07227
485.88726 0.07701
485.89213 0.08602
485.89730 0.09384
485.90218 0.08720
485.90735 0.09455
485.91222 0.09526
485.91739 0.06967
485.92227 0.07133
485.92743 0.07512
485.93230 0.07725
485.93748 0.09171
485.94235 0.09692
485.94752 0.08531
485.95239 0.09621
485.95756 0.10924
485.96244 0.10497
485.96761 0.08862
485.97248 0.10355
485.97765 0.10332
485.98253 0.11990
485.98770 0.10497
485.99256 0.11517
485.99774 0.12749
486.00261 0.14526
486.00778 0.16493
486.01265 0.15734
486.01783 0.17749
486.02270 0.19005
486.02787 0.22275
486.03274 0.21256
486.03791 0.21185
486.04279 0.22630
486.04796 0.22796
486.05282 0.22369
486.05800 0.23009
486.06288 0.25450
486.06804 0.27512
486.07291 0.28341
486.07809 0.32417
486.08296 0.35261
486.08813 0.34881
486.09300 0.42488
486.09817 0.45474
486.10305 0.49597
486.10822 0.52725
486.11309 0.58625
486.11826 0.60213
486.12314 0.60308
486.12830 0.61019
486.13317 0.65545
486.13835 0.73175
486.14322 0.79383
486.14839 0.81967
486.15326 0.83981
486.15843 0.87441
486.16331 0.90473
486.16848 0.93530
486.17335 0.94573
486.17852 0.98246
486.18340 0.97274
486.18857 0.94360
486.19343 0.93957
486.19861 0.99928
486.20348 1.00166
486.20865 0.95403
486.21352 0.96753
486.21870 0.97014
486.22357 0.93080
486.22874 0.93554
486.23361 0.91635
486.23878 0.94526
486.24366 0.90379
486.24883 0.83270
486.25369 0.79454
486.25887 0.74810
486.26375 0.72251
486.26891 0.67938
486.27378 0.62701
486.27896 0.64383
486.28383 0.59028
486.28900 0.52061
486.29387 0.45616
486.29904 0.45711
486.30392 0.39407
486.30909 0.35379
486.31396 0.34502
486.31913 0.31113
486.32401 0.28554
486.32917 0.26304
486.33404 0.24644
486.33922 0.25971
486.34409 0.23696
486.34926 0.26422
486.35413 0.21208
486.35931 0.22583
486.36418 0.21279
486.36935 0.20687
486.37422 0.20119
486.37939 0.21683
486.38427 0.21848
486.38944 0.21943
486.39430 0.20284
486.39948 0.19218
486.40435 0.17227
486.40952 0.17749
486.41439 0.17441
486.41957 0.15971
486.42444 0.12583
486.42961 0.11682
486.43448 0.11208
486.43965 0.09715
486.44453 0.08554
486.44970 0.08554
486.45457 0.07607
486.45974 0.10853
486.46462 0.05569
486.46978 0.09573
486.47465 0.07986
486.47983 0.09005
486.48470 0.08507
486.48987 0.08887
486.49474 0.06683
486.49991 0.07323
486.50479 0.09076
486.50996 0.07962
486.51483 0.06019
486.52000 0.05948
486.52488 0.06137
486.53004 0.05237
486.53491 0.04621
486.54009 0.05332
486.54496 0.03697
486.55013 0.04597
486.55500 0.04526
486.56018 0.03484
486.56505 0.02891
486.57022 0.02441
486.57509 0.01991
486.58026 0.01185
486.58514 0.02535
486.59031 0.00782
486.59517 0.02014
486.60035 0.00877
486.60523 0.01327
486.61039 0.00806
486.61526 0.01351
486.62044 0.01374
486.62531 0.00214
486.63048 0.00403
486.63535 0.01303
486.64052 0.00403
486.64540 0.00285
486.65057 0.00000
486.65544 0.00403
486.66061 0.00403
486.66549 0.00095
486.67065 0.00237
486.67552 0.00427
486.68070 0.00640
486.68557 0.00285
486.69074 0.00545
486.69561 0.00427
486.70078 0.00166
486.70566 0.00592
486.71083 0.00047
486.71570 0.00260
486.72087 0.00711
486.72575 0.00166
486.73092 0.01114
486.73578 0.00260
486.74096 0.00829
486.74583 0.00427
486.75100 0.00616
486.75587 0.00592
486.76105 0.00616
486.76592 0.00308
486.77109 0.00379
486.77596 0.00332
486.78113 0.00332
486.78601 0.00356
486.79118 0.00237
486.79604 0.00142
486.80122 0.00332
486.80610 0.00474
486.81126 0.00308
486.81613 0.00616
486.82131 0.00142
486.82618 0.00616
486.83135 0.00640
486.83622 0.00356
486.84139 0.00948
486.84627 0.00545
486.85144 0.00308
486.85631 0.00569
486.86148 0.00829
486.86636 0.00095
486.87152 0.00640
486.87639 0.00356
486.88157 0.00214
486.88644 0.00450
486.89161 0.00047
486.89648 0.00521
486.90165 0.00047
486.90653 0.00782
486.91170 0.00071
486.91657 0.00403
486.92174 0.01398
486.92662 0.00095
486.93179 0.00474
486.93665 0.00545
486.94183 0.00450
486.94670 0.00924
486.95187 0.00450
486.95674 0.00403
486.96192 0.00782
486.96679 0.00616
486.97196 0.00521
486.97683 0.00640
486.98200 0.00521
486.98688 0.00592
486.99205 0.00071
486.99691 0.00569
487.00209 0.00521
487.00697 0.01469
487.01213 0.00285
487.01700 0.00569
487.02218 0.00189
487.02705 0.00095
487.03192 0.00379
1 485.40000 0.00498
2 485.40517 0.00498
3 485.41004 0.00214
4 485.41522 0.00356
5 485.42009 0.00118
6 485.42526 0.00308
7 485.43013 0.00379
8 485.43530 0.00095
9 485.44018 0.00356
10 485.44535 0.00047
11 485.45021 0.00427
12 485.45539 0.00237
13 485.46026 0.01067
14 485.46543 0.00569
15 485.47030 0.00403
16 485.47548 0.00521
17 485.48035 0.00427
18 485.48552 0.00189
19 485.49039 0.00498
20 485.49556 0.00237
21 485.50044 0.00237
22 485.50561 0.00237
23 485.51047 0.00545
24 485.51565 0.00474
25 485.52053 0.00616
26 485.52569 0.01114
27 485.53056 0.00474
28 485.53574 0.00118
29 485.54061 0.00521
30 485.54578 0.00024
31 485.55065 0.00024
32 485.55582 0.00332
33 485.56070 0.00403
34 485.56587 0.01209
35 485.57074 0.00616
36 485.57591 0.00498
37 485.58079 0.00189
38 485.58595 0.00071
39 485.59082 0.00521
40 485.59600 0.00758
41 485.60087 0.00616
42 485.60604 0.00332
43 485.61091 0.00332
44 485.61609 0.00427
45 485.62096 0.00308
46 485.62613 0.00118
47 485.63100 0.00592
48 485.63617 0.00308
49 485.64105 0.00521
50 485.64622 0.00189
51 485.65108 0.00047
52 485.65626 0.00142
53 485.66113 0.00189
54 485.66630 0.00450
55 485.67117 0.00450
56 485.67635 0.00285
57 485.68122 0.00166
58 485.68639 0.00308
59 485.69126 0.00332
60 485.69643 0.00142
61 485.70131 0.00024
62 485.70648 0.00024
63 485.71135 0.00474
64 485.71652 0.01161
65 485.72140 0.00260
66 485.72656 0.00948
67 485.73143 0.00332
68 485.73661 0.00900
69 485.74148 0.00592
70 485.74665 0.00616
71 485.75152 0.00285
72 485.75669 0.00592
73 485.76157 0.00332
74 485.76674 0.00166
75 485.77161 0.00900
76 485.77678 0.00971
77 485.78166 0.01185
78 485.78682 0.00900
79 485.79169 0.00663
80 485.79687 0.00948
81 485.80174 0.01161
82 485.80691 0.00640
83 485.81178 0.01778
84 485.81696 0.01564
85 485.82183 0.01730
86 485.82700 0.01303
87 485.83187 0.02488
88 485.83704 0.04147
89 485.84192 0.05166
90 485.84709 0.04526
91 485.85195 0.03388
92 485.85713 0.07038
93 485.86201 0.05616
94 485.86717 0.06303
95 485.87204 0.05498
96 485.87722 0.06564
97 485.88209 0.07227
98 485.88726 0.07701
99 485.89213 0.08602
100 485.89730 0.09384
101 485.90218 0.08720
102 485.90735 0.09455
103 485.91222 0.09526
104 485.91739 0.06967
105 485.92227 0.07133
106 485.92743 0.07512
107 485.93230 0.07725
108 485.93748 0.09171
109 485.94235 0.09692
110 485.94752 0.08531
111 485.95239 0.09621
112 485.95756 0.10924
113 485.96244 0.10497
114 485.96761 0.08862
115 485.97248 0.10355
116 485.97765 0.10332
117 485.98253 0.11990
118 485.98770 0.10497
119 485.99256 0.11517
120 485.99774 0.12749
121 486.00261 0.14526
122 486.00778 0.16493
123 486.01265 0.15734
124 486.01783 0.17749
125 486.02270 0.19005
126 486.02787 0.22275
127 486.03274 0.21256
128 486.03791 0.21185
129 486.04279 0.22630
130 486.04796 0.22796
131 486.05282 0.22369
132 486.05800 0.23009
133 486.06288 0.25450
134 486.06804 0.27512
135 486.07291 0.28341
136 486.07809 0.32417
137 486.08296 0.35261
138 486.08813 0.34881
139 486.09300 0.42488
140 486.09817 0.45474
141 486.10305 0.49597
142 486.10822 0.52725
143 486.11309 0.58625
144 486.11826 0.60213
145 486.12314 0.60308
146 486.12830 0.61019
147 486.13317 0.65545
148 486.13835 0.73175
149 486.14322 0.79383
150 486.14839 0.81967
151 486.15326 0.83981
152 486.15843 0.87441
153 486.16331 0.90473
154 486.16848 0.93530
155 486.17335 0.94573
156 486.17852 0.98246
157 486.18340 0.97274
158 486.18857 0.94360
159 486.19343 0.93957
160 486.19861 0.99928
161 486.20348 1.00166
162 486.20865 0.95403
163 486.21352 0.96753
164 486.21870 0.97014
165 486.22357 0.93080
166 486.22874 0.93554
167 486.23361 0.91635
168 486.23878 0.94526
169 486.24366 0.90379
170 486.24883 0.83270
171 486.25369 0.79454
172 486.25887 0.74810
173 486.26375 0.72251
174 486.26891 0.67938
175 486.27378 0.62701
176 486.27896 0.64383
177 486.28383 0.59028
178 486.28900 0.52061
179 486.29387 0.45616
180 486.29904 0.45711
181 486.30392 0.39407
182 486.30909 0.35379
183 486.31396 0.34502
184 486.31913 0.31113
185 486.32401 0.28554
186 486.32917 0.26304
187 486.33404 0.24644
188 486.33922 0.25971
189 486.34409 0.23696
190 486.34926 0.26422
191 486.35413 0.21208
192 486.35931 0.22583
193 486.36418 0.21279
194 486.36935 0.20687
195 486.37422 0.20119
196 486.37939 0.21683
197 486.38427 0.21848
198 486.38944 0.21943
199 486.39430 0.20284
200 486.39948 0.19218
201 486.40435 0.17227
202 486.40952 0.17749
203 486.41439 0.17441
204 486.41957 0.15971
205 486.42444 0.12583
206 486.42961 0.11682
207 486.43448 0.11208
208 486.43965 0.09715
209 486.44453 0.08554
210 486.44970 0.08554
211 486.45457 0.07607
212 486.45974 0.10853
213 486.46462 0.05569
214 486.46978 0.09573
215 486.47465 0.07986
216 486.47983 0.09005
217 486.48470 0.08507
218 486.48987 0.08887
219 486.49474 0.06683
220 486.49991 0.07323
221 486.50479 0.09076
222 486.50996 0.07962
223 486.51483 0.06019
224 486.52000 0.05948
225 486.52488 0.06137
226 486.53004 0.05237
227 486.53491 0.04621
228 486.54009 0.05332
229 486.54496 0.03697
230 486.55013 0.04597
231 486.55500 0.04526
232 486.56018 0.03484
233 486.56505 0.02891
234 486.57022 0.02441
235 486.57509 0.01991
236 486.58026 0.01185
237 486.58514 0.02535
238 486.59031 0.00782
239 486.59517 0.02014
240 486.60035 0.00877
241 486.60523 0.01327
242 486.61039 0.00806
243 486.61526 0.01351
244 486.62044 0.01374
245 486.62531 0.00214
246 486.63048 0.00403
247 486.63535 0.01303
248 486.64052 0.00403
249 486.64540 0.00285
250 486.65057 0.00000
251 486.65544 0.00403
252 486.66061 0.00403
253 486.66549 0.00095
254 486.67065 0.00237
255 486.67552 0.00427
256 486.68070 0.00640
257 486.68557 0.00285
258 486.69074 0.00545
259 486.69561 0.00427
260 486.70078 0.00166
261 486.70566 0.00592
262 486.71083 0.00047
263 486.71570 0.00260
264 486.72087 0.00711
265 486.72575 0.00166
266 486.73092 0.01114
267 486.73578 0.00260
268 486.74096 0.00829
269 486.74583 0.00427
270 486.75100 0.00616
271 486.75587 0.00592
272 486.76105 0.00616
273 486.76592 0.00308
274 486.77109 0.00379
275 486.77596 0.00332
276 486.78113 0.00332
277 486.78601 0.00356
278 486.79118 0.00237
279 486.79604 0.00142
280 486.80122 0.00332
281 486.80610 0.00474
282 486.81126 0.00308
283 486.81613 0.00616
284 486.82131 0.00142
285 486.82618 0.00616
286 486.83135 0.00640
287 486.83622 0.00356
288 486.84139 0.00948
289 486.84627 0.00545
290 486.85144 0.00308
291 486.85631 0.00569
292 486.86148 0.00829
293 486.86636 0.00095
294 486.87152 0.00640
295 486.87639 0.00356
296 486.88157 0.00214
297 486.88644 0.00450
298 486.89161 0.00047
299 486.89648 0.00521
300 486.90165 0.00047
301 486.90653 0.00782
302 486.91170 0.00071
303 486.91657 0.00403
304 486.92174 0.01398
305 486.92662 0.00095
306 486.93179 0.00474
307 486.93665 0.00545
308 486.94183 0.00450
309 486.94670 0.00924
310 486.95187 0.00450
311 486.95674 0.00403
312 486.96192 0.00782
313 486.96679 0.00616
314 486.97196 0.00521
315 486.97683 0.00640
316 486.98200 0.00521
317 486.98688 0.00592
318 486.99205 0.00071
319 486.99691 0.00569
320 487.00209 0.00521
321 487.00697 0.01469
322 487.01213 0.00285
323 487.01700 0.00569
324 487.02218 0.00189
325 487.02705 0.00095
326 487.03192 0.00379

333
data/Balcon2008.svg Normal file
View File

@@ -0,0 +1,333 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 595 842" version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<path d="M26.584,16.5l-0,175.834l191.666,0" style="fill:none;stroke:#000;stroke-width:1px;"/>
<rect x="25.376" y="190.25" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="26.084" y="190.25" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="26.75" y="190.75" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="27.459" y="190.5" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="28.126" y="190.918" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="28.834" y="190.584" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="29.5" y="190.459" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="30.209" y="190.959" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="30.876" y="190.5" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="31.584" y="191.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="32.25" y="190.375" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="32.959" y="190.709" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="33.626" y="189.25" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="34.334" y="190.125" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="35" y="190.418" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="35.709" y="190.209" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="36.376" y="190.375" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="37.084" y="190.793" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="37.75" y="190.25" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="38.459" y="190.709" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="39.126" y="190.709" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="39.834" y="190.709" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="40.5" y="190.168" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="41.209" y="190.293" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="41.876" y="190.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="42.584" y="189.168" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="43.25" y="190.293" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="43.959" y="190.918" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="44.626" y="190.209" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="45.334" y="191.084" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="46" y="191.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="46.709" y="190.543" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="47.376" y="190.418" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="48.084" y="189" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="48.75" y="190.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="49.459" y="190.25" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="50.126" y="190.793" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="50.834" y="191" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="51.5" y="190.209" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="52.209" y="189.793" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="52.876" y="190.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="53.584" y="190.543" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="54.25" y="190.543" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="54.959" y="190.375" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="55.626" y="190.584" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="56.334" y="190.918" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="57" y="190.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="57.709" y="190.584" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="58.376" y="190.209" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="59.084" y="190.793" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="59.75" y="191.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="60.459" y="190.875" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="61.126" y="190.793" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="61.834" y="190.334" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="62.5" y="190.334" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="63.209" y="190.625" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="63.876" y="190.834" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="64.584" y="190.584" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="65.25" y="190.543" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="65.959" y="190.875" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="66.626" y="191.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="67.334" y="191.084" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="68" y="190.293" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="68.709" y="189.084" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="69.376" y="190.668" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="70.084" y="189.459" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="70.75" y="190.543" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="71.459" y="189.543" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="72.126" y="190.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="72.834" y="190.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="73.5" y="190.625" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="74.209" y="190.084" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="74.876" y="190.543" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="75.584" y="190.834" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="76.25" y="189.543" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="76.959" y="189.418" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="77.626" y="189.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="78.334" y="189.543" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="79" y="189.959" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="79.709" y="189.459" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="80.376" y="189.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="81.084" y="190" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="81.75" y="188" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="82.459" y="188.375" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="83.126" y="188.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="83.834" y="188.834" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="84.5" y="186.75" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="85.209" y="183.834" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="85.876" y="182.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="86.584" y="183.168" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="87.25" y="185.168" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="87.959" y="178.75" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="88.626" y="181.25" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="89.334" y="180.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="90" y="181.459" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="90.709" y="179.584" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="91.376" y="178.418" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="92.084" y="177.584" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="92.75" y="176" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="93.459" y="174.625" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="94.126" y="175.793" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="94.834" y="174.5" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="95.5" y="174.375" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="96.209" y="178.875" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="96.876" y="178.584" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="97.584" y="177.918" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="98.25" y="177.543" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="98.959" y="175" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="99.626" y="174.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="100.334" y="176.125" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="101" y="174.209" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="101.709" y="171.918" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="102.376" y="172.668" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="103.084" y="175.543" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="103.75" y="172.918" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="104.459" y="172.959" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="105.126" y="170.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="105.834" y="172.668" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="106.5" y="170.875" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="107.209" y="168.709" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="107.876" y="165.584" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="108.584" y="162.125" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="109.25" y="163.459" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="109.959" y="159.918" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="110.626" y="157.709" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="111.334" y="151.959" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="112" y="153.75" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="112.709" y="153.875" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="113.376" y="151.334" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="114.084" y="151.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="114.75" y="151.793" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="115.459" y="150.668" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="116.126" y="146.375" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="116.834" y="142.75" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="117.5" y="141.293" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="118.209" y="134.125" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="118.876" y="129.125" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="119.584" y="129.793" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="120.25" y="116.418" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="120.959" y="111.168" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="121.626" y="103.918" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="122.334" y="98.418" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="123" y="88.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="123.709" y="85.25" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="124.376" y="85.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="125.084" y="83.834" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="125.75" y="75.875" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="126.459" y="62.459" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="127.126" y="51.543" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="127.834" y="47" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="128.5" y="43.459" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="129.209" y="37.375" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="129.876" y="32.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="130.584" y="26.668" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="131.25" y="24.834" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="131.959" y="18.375" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="132.626" y="20.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="133.334" y="25.209" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="134" y="25.918" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="134.709" y="15.418" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="135.376" y="15" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="136.084" y="23.375" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="136.75" y="21" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="137.459" y="20.543" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="138.126" y="27.459" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="138.834" y="26.625" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="139.5" y="30" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="140.209" y="24.918" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="140.876" y="32.209" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="141.584" y="44.709" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="142.25" y="51.418" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="142.959" y="59.584" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="143.626" y="64.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="144.334" y="71.668" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="145" y="80.875" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="145.709" y="77.918" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="146.376" y="87.334" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect id="Special" x="147.084" y="99.584" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="147.75" y="110.918" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="148.459" y="110.75" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="149.126" y="121.834" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="149.834" y="128.918" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="150.5" y="130.459" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="151.209" y="136.418" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="151.876" y="140.918" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="152.584" y="144.875" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="153.25" y="147.793" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="153.959" y="145.459" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="154.626" y="149.459" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="155.334" y="144.668" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="156" y="153.834" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="156.709" y="151.418" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="157.376" y="153.709" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="158.084" y="154.75" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="158.75" y="155.75" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="159.459" y="153" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="160.126" y="152.709" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="160.834" y="152.543" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="161.5" y="155.459" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="162.209" y="157.334" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="162.876" y="160.834" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="163.584" y="159.918" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="164.25" y="160.459" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="164.959" y="163.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="165.626" y="169" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="166.334" y="170.584" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="167" y="171.418" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="167.709" y="174.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="168.376" y="176.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="169.084" y="176.084" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="169.75" y="177.75" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="170.459" y="172.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="171.126" y="181.334" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="171.834" y="174.293" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="172.5" y="177.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="173.209" y="175.293" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="173.876" y="176.168" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="174.584" y="175.5" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="175.25" y="179.375" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="175.959" y="178.25" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="176.626" y="175.168" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="177.334" y="177.125" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="178" y="180.543" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="178.709" y="180.668" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="179.376" y="180.334" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="180.084" y="181.918" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="180.75" y="183" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="181.459" y="181.75" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="182.126" y="184.625" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="182.834" y="183.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="183.5" y="183.168" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="184.209" y="185" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="184.876" y="186.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="185.584" y="186.834" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="186.25" y="187.625" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="186.959" y="189.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="187.626" y="186.668" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="188.334" y="189.75" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="189" y="187.584" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="189.709" y="189.584" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="190.376" y="188.793" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="191.084" y="189.709" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="191.75" y="188.75" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="192.459" y="188.709" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="193.126" y="190.75" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="193.834" y="190.418" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="194.5" y="188.834" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="195.209" y="190.418" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="195.876" y="190.625" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="196.584" y="191.125" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="197.25" y="190.418" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="197.959" y="190.418" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="198.626" y="190.959" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="199.334" y="190.709" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="200" y="190.375" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="200.709" y="190" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="201.376" y="190.625" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="202.084" y="190.168" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="202.75" y="190.375" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="203.459" y="190.834" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="204.126" y="190.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="204.834" y="191.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="205.5" y="190.668" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="206.209" y="189.875" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="206.876" y="190.834" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="207.584" y="189.168" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="208.25" y="190.668" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="208.959" y="189.668" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="209.626" y="190.375" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="210.334" y="190.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="211" y="190.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="211.709" y="190.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="212.376" y="190.584" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="213.084" y="190.459" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="213.75" y="190.543" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="214.459" y="190.543" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="215.126" y="190.5" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="215.834" y="190.709" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="216.5" y="190.875" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="217.209" y="190.543" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="217.876" y="190.293" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="218.584" y="190.584" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="219.25" y="190.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="219.959" y="190.875" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="220.626" y="190.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="221.334" y="190" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="222" y="190.5" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="222.709" y="189.459" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="223.376" y="190.168" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="224.084" y="190.584" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="224.75" y="190.125" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="225.459" y="189.668" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="226.126" y="190.959" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="226.834" y="190" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="227.5" y="190.5" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="228.209" y="190.75" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="228.876" y="190.334" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="229.584" y="191.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="230.25" y="190.209" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="230.959" y="191.043" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="231.626" y="189.75" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="232.334" y="191" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="233" y="190.418" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="233.709" y="188.668" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="234.376" y="190.959" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="235.084" y="190.293" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="235.75" y="190.168" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="236.459" y="190.334" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="237.126" y="189.5" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="237.834" y="190.334" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="238.5" y="190.418" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="239.209" y="189.75" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="239.876" y="190.043" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="240.584" y="190.209" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="241.25" y="190" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="241.959" y="190.209" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="242.626" y="190.084" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="243.334" y="191" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="244" y="190.125" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="244.709" y="190.209" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="245.376" y="188.543" width="2.417" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="246.084" y="190.625" width="2.416" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="246.75" y="190.125" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="247.459" y="190.793" width="2.416" height="2.416" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="248.126" y="190.959" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
<rect x="248.792" y="190.459" width="2.417" height="2.417" style="fill:none;stroke:#000;stroke-width:0.25px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;"/>
</svg>

After

Width:  |  Height:  |  Size: 57 KiB

40
data/Dong2005.csv Normal file
View File

@@ -0,0 +1,40 @@
696.04381 -0.00225
696.06985 -0.00171
696.09435 -0.00123
696.11929 -0.00174
696.14330 0.00124
696.16934 -0.00203
696.19456 0.00118
696.21864 -0.00106
696.24349 0.01082
696.26966 0.01746
696.29466 0.05565
696.32044 0.09549
696.34446 0.15323
696.37012 0.21849
696.39437 0.32768
696.41937 0.42239
696.44434 0.53908
696.46883 0.62126
696.49316 0.73833
696.51814 0.78971
696.54375 0.82117
696.56909 0.75724
696.59373 0.66981
696.61780 0.56221
696.64289 0.45523
696.66866 0.31559
696.69373 0.22316
696.71749 0.14534
696.74393 0.08920
696.76871 0.04367
696.79312 0.03693
696.81843 0.02175
696.84298 0.02580
696.86809 0.00841
696.89345 0.01944
696.91828 0.00520
696.94331 0.01124
696.96830 -0.00045
696.99416 0.00808
697.01875 -0.00009
1 696.04381 -0.00225
2 696.06985 -0.00171
3 696.09435 -0.00123
4 696.11929 -0.00174
5 696.14330 0.00124
6 696.16934 -0.00203
7 696.19456 0.00118
8 696.21864 -0.00106
9 696.24349 0.01082
10 696.26966 0.01746
11 696.29466 0.05565
12 696.32044 0.09549
13 696.34446 0.15323
14 696.37012 0.21849
15 696.39437 0.32768
16 696.41937 0.42239
17 696.44434 0.53908
18 696.46883 0.62126
19 696.49316 0.73833
20 696.51814 0.78971
21 696.54375 0.82117
22 696.56909 0.75724
23 696.59373 0.66981
24 696.61780 0.56221
25 696.64289 0.45523
26 696.66866 0.31559
27 696.69373 0.22316
28 696.71749 0.14534
29 696.74393 0.08920
30 696.76871 0.04367
31 696.79312 0.03693
32 696.81843 0.02175
33 696.84298 0.02580
34 696.86809 0.00841
35 696.89345 0.01944
36 696.91828 0.00520
37 696.94331 0.01124
38 696.96830 -0.00045
39 696.99416 0.00808
40 697.01875 -0.00009

View File

Before

Width:  |  Height:  |  Size: 448 KiB

After

Width:  |  Height:  |  Size: 448 KiB

48
data/Dong2005.svg Normal file
View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1237 806" version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<path d="M105,40l0,679l1053,0" style="fill:none;stroke:#000;stroke-width:1px;"/>
<circle cx="473" cy="480" r="12" style="fill:#eee;"/>
<circle cx="451.063" cy="533.587" r="12" style="fill:#eee;"/>
<circle cx="429.778" cy="595.369" r="12" style="fill:#eee;"/>
<circle cx="407.261" cy="632.298" r="12" style="fill:#eee;"/>
<circle cx="386.188" cy="664.969" r="12" style="fill:#eee;"/>
<circle cx="363.561" cy="687.509" r="12" style="fill:#eee;"/>
<circle cx="341.631" cy="709.123" r="12" style="fill:#eee;"/>
<circle cx="318.665" cy="712.879" r="12" style="fill:#eee;"/>
<circle cx="296.854" cy="719.597" r="12" style="fill:#eee;"/>
<circle cx="275.727" cy="718.332" r="12" style="fill:#eee;"/>
<circle cx="253.6" cy="720.149" r="12" style="fill:#eee;"/>
<circle cx="230.745" cy="718.3" r="12" style="fill:#eee;"/>
<circle cx="209.68" cy="719.985" r="12" style="fill:#eee;"/>
<circle cx="187.79" cy="719.694" r="12" style="fill:#eee;"/>
<circle cx="166.29" cy="719.969" r="12" style="fill:#eee;"/>
<circle cx="143.44" cy="720.274" r="12" style="fill:#eee;"/>
<circle cx="494.912" cy="413.973" r="12" style="fill:#eee;"/>
<circle cx="516.402" cy="367.472" r="12" style="fill:#eee;"/>
<circle cx="537.751" cy="301.227" r="12" style="fill:#eee;"/>
<circle cx="559.666" cy="272.154" r="12" style="fill:#eee;"/>
<circle cx="582.142" cy="254.357" r="12" style="fill:#eee;"/>
<circle cx="626" cy="340" r="12" style="fill:#eee;"/>
<circle cx="647.121" cy="400.882" r="12" style="fill:#eee;"/>
<circle cx="669.14" cy="461.414" r="12" style="fill:#eee;"/>
<circle cx="691.753" cy="540.431" r="12" style="fill:#eee;"/>
<circle cx="713.748" cy="592.727" r="12" style="fill:#eee;"/>
<circle cx="734.6" cy="636.761" r="12" style="fill:#eee;"/>
<circle cx="757.795" cy="668.528" r="12" style="fill:#eee;"/>
<circle cx="779.544" cy="694.291" r="12" style="fill:#eee;"/>
<circle cx="800.965" cy="698.101" r="12" style="fill:#eee;"/>
<circle cx="823.168" cy="706.692" r="12" style="fill:#eee;"/>
<circle cx="844.711" cy="704.403" r="12" style="fill:#eee;"/>
<circle cx="866.747" cy="714.243" r="12" style="fill:#eee;"/>
<circle cx="889" cy="708" r="12" style="fill:#eee;"/>
<circle cx="910.788" cy="716.055" r="12" style="fill:#eee;"/>
<circle cx="932.757" cy="712.642" r="12" style="fill:#eee;"/>
<circle cx="954.687" cy="719.253" r="12" style="fill:#eee;"/>
<circle cx="977.379" cy="714.43" r="12" style="fill:#eee;"/>
<circle cx="998.955" cy="719.049" r="12" style="fill:#eee;"/>
<circle cx="604.38" cy="290.527" r="12" style="fill:#eee;"/>
</svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,430 @@
70CSV
// AQ6370 OPTICAL SPECTRUM ANALYZER //
25
"CTRWL", 696.400000
"SPAN", 0.800000
"START WL", 696.000000
"STOP WL", 696.800000
"WLFREQ", 0
"REFL", -66.990
"LSCL",-2.0
"BASEL",0.00000000000
"RESLN",0.100
"AVG", 1
"SMPLAUTO", 1
"SMPL", 401
"SMPLINTVL",0.0020
"HIGH3"
"RAVG", 20
"LSUNT",1
"NMSKH","OFF"
"RESCOR",0
"RESPARM",10177
"FREQPARM",10177
"[TRACE DATA]"
696.0000,4.249E-008
696.0020,4.205E-008
696.0040,7.176E-008
696.0060,5.372E-008
696.0080,-2.693E-008
696.0100,2.163E-008
696.0120,-1.628E-009
696.0140,5.692E-008
696.0160,5.643E-008
696.0180,3.346E-008
696.0200,2.735E-008
696.0220,-6.197E-009
696.0240,5.382E-008
696.0260,8.566E-008
696.0280,-4.472E-008
696.0300,-8.057E-009
696.0320,6.685E-008
696.0340,2.873E-008
696.0360,1.553E-008
696.0380,3.476E-008
696.0400,4.466E-008
696.0420,3.341E-008
696.0440,2.025E-009
696.0460,-4.633E-008
696.0480,2.762E-008
696.0500,7.107E-009
696.0520,1.023E-008
696.0540,5.168E-008
696.0560,7.146E-010
696.0580,7.894E-009
696.0600,2.068E-009
696.0620,1.288E-008
696.0640,1.629E-008
696.0660,-3.342E-008
696.0680,2.956E-008
696.0700,3.387E-008
696.0720,4.733E-008
696.0740,-5.026E-008
696.0760,1.830E-008
696.0780,1.262E-008
696.0800,1.235E-008
696.0820,1.945E-008
696.0840,1.323E-008
696.0860,1.805E-008
696.0880,2.436E-008
696.0900,2.200E-008
696.0920,2.812E-008
696.0940,2.478E-008
696.0960,8.516E-009
696.0980,1.246E-008
696.1000,6.559E-009
696.1020,2.245E-008
696.1040,1.988E-008
696.1060,1.963E-008
696.1080,1.372E-008
696.1100,7.153E-009
696.1120,2.892E-008
696.1140,1.043E-008
696.1160,3.273E-008
696.1180,2.124E-008
696.1200,1.628E-008
696.1220,2.159E-008
696.1240,2.808E-008
696.1260,1.900E-008
696.1280,8.474E-009
696.1300,1.769E-008
696.1320,2.346E-008
696.1340,6.457E-009
696.1360,7.899E-009
696.1380,2.174E-008
696.1400,1.305E-008
696.1420,3.251E-008
696.1440,1.036E-008
696.1460,2.650E-008
696.1480,1.609E-008
696.1500,1.265E-008
696.1520,1.264E-008
696.1540,1.488E-008
696.1560,1.795E-008
696.1580,5.327E-009
696.1600,2.983E-008
696.1620,1.238E-008
696.1640,1.790E-008
696.1660,-4.108E-009
696.1680,1.395E-008
696.1700,2.177E-008
696.1720,3.178E-008
696.1740,1.984E-008
696.1760,2.438E-008
696.1780,1.479E-008
696.1800,1.756E-008
696.1820,1.972E-008
696.1840,1.535E-008
696.1860,1.302E-009
696.1880,2.121E-008
696.1900,1.935E-008
696.1920,8.729E-009
696.1940,1.324E-008
696.1960,2.326E-008
696.1980,1.499E-008
696.2000,2.739E-008
696.2020,1.988E-008
696.2040,1.295E-008
696.2060,2.970E-008
696.2080,9.848E-009
696.2100,8.328E-009
696.2120,3.321E-008
696.2140,1.024E-008
696.2160,1.714E-008
696.2180,1.377E-009
696.2200,1.796E-008
696.2220,1.615E-008
696.2240,1.684E-008
696.2260,9.584E-009
696.2280,2.560E-008
696.2300,2.236E-008
696.2320,9.972E-009
696.2340,1.161E-008
696.2360,1.205E-008
696.2380,8.755E-009
696.2400,1.989E-008
696.2420,1.437E-008
696.2440,2.235E-008
696.2460,-5.355E-010
696.2480,1.583E-008
696.2500,7.850E-009
696.2520,2.724E-008
696.2540,1.724E-008
696.2560,1.556E-008
696.2580,7.003E-009
696.2600,3.208E-008
696.2620,1.199E-008
696.2640,1.514E-008
696.2660,1.899E-008
696.2680,2.346E-008
696.2700,1.015E-008
696.2720,2.317E-008
696.2740,2.603E-008
696.2760,4.479E-008
696.2780,2.125E-008
696.2800,1.480E-008
696.2820,1.927E-008
696.2840,2.876E-008
696.2860,1.808E-008
696.2880,3.035E-008
696.2900,3.362E-008
696.2920,2.027E-008
696.2940,1.173E-008
696.2960,1.483E-008
696.2980,2.433E-008
696.3000,2.582E-008
696.3020,1.589E-008
696.3040,1.518E-008
696.3060,3.039E-008
696.3080,2.150E-008
696.3100,1.886E-008
696.3120,2.677E-008
696.3140,6.738E-009
696.3160,3.003E-008
696.3180,1.940E-008
696.3200,2.978E-008
696.3220,4.505E-008
696.3240,1.884E-008
696.3260,2.766E-008
696.3280,3.305E-008
696.3300,4.083E-008
696.3320,3.923E-008
696.3340,5.902E-008
696.3360,3.221E-008
696.3380,3.809E-008
696.3400,4.573E-008
696.3420,5.441E-008
696.3440,5.111E-008
696.3460,3.893E-008
696.3480,4.787E-008
696.3500,5.196E-008
696.3520,5.863E-008
696.3540,6.471E-008
696.3560,5.732E-008
696.3580,5.635E-008
696.3600,5.743E-008
696.3620,7.430E-008
696.3640,7.266E-008
696.3660,5.455E-008
696.3680,6.577E-008
696.3700,6.819E-008
696.3720,7.750E-008
696.3740,8.329E-008
696.3760,6.680E-008
696.3780,6.697E-008
696.3800,8.997E-008
696.3820,7.986E-008
696.3840,7.744E-008
696.3860,8.465E-008
696.3880,8.155E-008
696.3900,8.882E-008
696.3920,9.971E-008
696.3940,9.204E-008
696.3960,9.632E-008
696.3980,9.824E-008
696.4000,8.538E-008
696.4020,8.209E-008
696.4040,1.019E-007
696.4060,8.518E-008
696.4080,1.128E-007
696.4100,9.314E-008
696.4120,1.018E-007
696.4140,1.042E-007
696.4160,1.090E-007
696.4180,8.962E-008
696.4200,1.154E-007
696.4220,1.090E-007
696.4240,1.129E-007
696.4260,1.111E-007
696.4280,1.156E-007
696.4300,1.034E-007
696.4320,1.184E-007
696.4340,1.143E-007
696.4360,1.021E-007
696.4380,1.001E-007
696.4400,1.093E-007
696.4420,1.096E-007
696.4440,1.094E-007
696.4460,1.044E-007
696.4480,1.247E-007
696.4500,1.094E-007
696.4520,1.105E-007
696.4540,1.120E-007
696.4560,1.076E-007
696.4580,1.167E-007
696.4600,9.959E-008
696.4620,9.672E-008
696.4640,1.049E-007
696.4660,1.037E-007
696.4680,8.314E-008
696.4700,9.654E-008
696.4720,9.038E-008
696.4740,9.516E-008
696.4760,1.124E-007
696.4780,9.128E-008
696.4800,9.862E-008
696.4820,8.927E-008
696.4840,7.415E-008
696.4860,8.364E-008
696.4880,9.555E-008
696.4900,9.106E-008
696.4920,9.195E-008
696.4940,5.989E-008
696.4960,7.083E-008
696.4980,7.905E-008
696.5000,7.130E-008
696.5020,6.422E-008
696.5040,6.787E-008
696.5060,7.520E-008
696.5080,6.274E-008
696.5100,5.099E-008
696.5120,6.238E-008
696.5140,5.296E-008
696.5160,4.944E-008
696.5180,5.319E-008
696.5200,4.690E-008
696.5220,6.096E-008
696.5240,4.520E-008
696.5260,7.005E-008
696.5280,6.278E-008
696.5300,3.913E-008
696.5320,4.941E-008
696.5340,4.851E-008
696.5360,3.214E-008
696.5380,3.922E-008
696.5400,5.762E-008
696.5420,2.454E-008
696.5440,4.306E-008
696.5460,3.971E-008
696.5480,3.372E-008
696.5500,3.131E-008
696.5520,2.588E-008
696.5540,1.783E-008
696.5560,3.261E-008
696.5580,3.939E-008
696.5600,2.644E-008
696.5620,2.638E-008
696.5640,8.500E-009
696.5660,2.834E-008
696.5680,1.919E-008
696.5700,1.995E-008
696.5720,6.568E-009
696.5740,2.209E-008
696.5760,2.433E-008
696.5780,2.169E-008
696.5800,1.979E-008
696.5820,1.618E-008
696.5840,1.616E-008
696.5860,5.835E-009
696.5880,3.124E-008
696.5900,1.401E-008
696.5920,1.932E-008
696.5940,1.284E-008
696.5960,3.616E-008
696.5980,7.565E-009
696.6000,1.777E-008
696.6020,3.018E-008
696.6040,2.756E-008
696.6060,2.632E-008
696.6080,2.508E-008
696.6100,1.610E-008
696.6120,2.048E-008
696.6140,2.276E-008
696.6160,3.312E-008
696.6180,1.827E-008
696.6200,1.413E-008
696.6220,1.066E-008
696.6240,2.336E-008
696.6260,2.827E-008
696.6280,2.613E-008
696.6300,2.697E-008
696.6320,2.651E-008
696.6340,2.774E-008
696.6360,2.892E-008
696.6380,1.307E-008
696.6400,6.363E-009
696.6420,1.860E-008
696.6440,8.710E-009
696.6460,1.427E-008
696.6480,2.932E-008
696.6500,2.683E-008
696.6520,1.777E-008
696.6540,2.264E-008
696.6560,-1.402E-009
696.6580,5.626E-009
696.6600,2.977E-008
696.6620,3.118E-008
696.6640,1.082E-008
696.6660,1.869E-008
696.6680,1.849E-008
696.6700,2.608E-008
696.6720,2.053E-008
696.6740,2.180E-008
696.6760,1.776E-008
696.6780,2.488E-008
696.6800,1.753E-008
696.6820,1.883E-008
696.6840,2.158E-008
696.6860,2.333E-008
696.6880,4.083E-009
696.6900,1.714E-009
696.6920,2.130E-008
696.6940,2.228E-008
696.6960,2.503E-008
696.6980,2.694E-008
696.7000,2.636E-008
696.7020,5.236E-009
696.7040,2.383E-008
696.7060,2.497E-008
696.7080,1.581E-008
696.7100,2.930E-008
696.7120,1.767E-008
696.7140,1.976E-008
696.7160,1.555E-008
696.7180,1.269E-008
696.7200,4.294E-008
696.7220,2.694E-008
696.7240,2.286E-008
696.7260,1.887E-008
696.7280,2.019E-008
696.7300,1.563E-008
696.7320,2.339E-008
696.7340,2.159E-008
696.7360,1.241E-008
696.7380,1.705E-008
696.7400,2.943E-008
696.7420,3.443E-008
696.7440,1.792E-008
696.7460,1.642E-008
696.7480,1.766E-008
696.7500,1.664E-008
696.7520,1.081E-008
696.7540,2.831E-008
696.7560,1.767E-008
696.7580,2.383E-008
696.7600,1.637E-008
696.7620,2.354E-008
696.7640,1.244E-008
696.7660,1.427E-008
696.7680,2.304E-008
696.7700,2.030E-008
696.7720,1.823E-008
696.7740,2.385E-008
696.7760,1.225E-008
696.7780,2.137E-008
696.7800,2.524E-008
696.7820,2.150E-008
696.7840,1.369E-008
696.7860,1.434E-008
696.7880,9.798E-009
696.7900,2.189E-008
696.7920,2.465E-008
696.7940,3.869E-008
696.7960,2.886E-008
696.7980,2.891E-008
696.8000,2.910E-008
1 70CSV
2 // AQ6370 OPTICAL SPECTRUM ANALYZER //
3 25
4 CTRWL 696.400000
5 SPAN 0.800000
6 START WL 696.000000
7 STOP WL 696.800000
8 WLFREQ 0
9 REFL -66.990
10 LSCL -2.0
11 BASEL 0.00000000000
12 RESLN 0.100
13 AVG 1
14 SMPLAUTO 1
15 SMPL 401
16 SMPLINTVL 0.0020
17 HIGH3
18 RAVG 20
19 LSUNT 1
20 NMSKH OFF
21 RESCOR 0
22 RESPARM 10177
23 FREQPARM 10177
24 [TRACE DATA]
25 696.0000 4.249E-008
26 696.0020 4.205E-008
27 696.0040 7.176E-008
28 696.0060 5.372E-008
29 696.0080 -2.693E-008
30 696.0100 2.163E-008
31 696.0120 -1.628E-009
32 696.0140 5.692E-008
33 696.0160 5.643E-008
34 696.0180 3.346E-008
35 696.0200 2.735E-008
36 696.0220 -6.197E-009
37 696.0240 5.382E-008
38 696.0260 8.566E-008
39 696.0280 -4.472E-008
40 696.0300 -8.057E-009
41 696.0320 6.685E-008
42 696.0340 2.873E-008
43 696.0360 1.553E-008
44 696.0380 3.476E-008
45 696.0400 4.466E-008
46 696.0420 3.341E-008
47 696.0440 2.025E-009
48 696.0460 -4.633E-008
49 696.0480 2.762E-008
50 696.0500 7.107E-009
51 696.0520 1.023E-008
52 696.0540 5.168E-008
53 696.0560 7.146E-010
54 696.0580 7.894E-009
55 696.0600 2.068E-009
56 696.0620 1.288E-008
57 696.0640 1.629E-008
58 696.0660 -3.342E-008
59 696.0680 2.956E-008
60 696.0700 3.387E-008
61 696.0720 4.733E-008
62 696.0740 -5.026E-008
63 696.0760 1.830E-008
64 696.0780 1.262E-008
65 696.0800 1.235E-008
66 696.0820 1.945E-008
67 696.0840 1.323E-008
68 696.0860 1.805E-008
69 696.0880 2.436E-008
70 696.0900 2.200E-008
71 696.0920 2.812E-008
72 696.0940 2.478E-008
73 696.0960 8.516E-009
74 696.0980 1.246E-008
75 696.1000 6.559E-009
76 696.1020 2.245E-008
77 696.1040 1.988E-008
78 696.1060 1.963E-008
79 696.1080 1.372E-008
80 696.1100 7.153E-009
81 696.1120 2.892E-008
82 696.1140 1.043E-008
83 696.1160 3.273E-008
84 696.1180 2.124E-008
85 696.1200 1.628E-008
86 696.1220 2.159E-008
87 696.1240 2.808E-008
88 696.1260 1.900E-008
89 696.1280 8.474E-009
90 696.1300 1.769E-008
91 696.1320 2.346E-008
92 696.1340 6.457E-009
93 696.1360 7.899E-009
94 696.1380 2.174E-008
95 696.1400 1.305E-008
96 696.1420 3.251E-008
97 696.1440 1.036E-008
98 696.1460 2.650E-008
99 696.1480 1.609E-008
100 696.1500 1.265E-008
101 696.1520 1.264E-008
102 696.1540 1.488E-008
103 696.1560 1.795E-008
104 696.1580 5.327E-009
105 696.1600 2.983E-008
106 696.1620 1.238E-008
107 696.1640 1.790E-008
108 696.1660 -4.108E-009
109 696.1680 1.395E-008
110 696.1700 2.177E-008
111 696.1720 3.178E-008
112 696.1740 1.984E-008
113 696.1760 2.438E-008
114 696.1780 1.479E-008
115 696.1800 1.756E-008
116 696.1820 1.972E-008
117 696.1840 1.535E-008
118 696.1860 1.302E-009
119 696.1880 2.121E-008
120 696.1900 1.935E-008
121 696.1920 8.729E-009
122 696.1940 1.324E-008
123 696.1960 2.326E-008
124 696.1980 1.499E-008
125 696.2000 2.739E-008
126 696.2020 1.988E-008
127 696.2040 1.295E-008
128 696.2060 2.970E-008
129 696.2080 9.848E-009
130 696.2100 8.328E-009
131 696.2120 3.321E-008
132 696.2140 1.024E-008
133 696.2160 1.714E-008
134 696.2180 1.377E-009
135 696.2200 1.796E-008
136 696.2220 1.615E-008
137 696.2240 1.684E-008
138 696.2260 9.584E-009
139 696.2280 2.560E-008
140 696.2300 2.236E-008
141 696.2320 9.972E-009
142 696.2340 1.161E-008
143 696.2360 1.205E-008
144 696.2380 8.755E-009
145 696.2400 1.989E-008
146 696.2420 1.437E-008
147 696.2440 2.235E-008
148 696.2460 -5.355E-010
149 696.2480 1.583E-008
150 696.2500 7.850E-009
151 696.2520 2.724E-008
152 696.2540 1.724E-008
153 696.2560 1.556E-008
154 696.2580 7.003E-009
155 696.2600 3.208E-008
156 696.2620 1.199E-008
157 696.2640 1.514E-008
158 696.2660 1.899E-008
159 696.2680 2.346E-008
160 696.2700 1.015E-008
161 696.2720 2.317E-008
162 696.2740 2.603E-008
163 696.2760 4.479E-008
164 696.2780 2.125E-008
165 696.2800 1.480E-008
166 696.2820 1.927E-008
167 696.2840 2.876E-008
168 696.2860 1.808E-008
169 696.2880 3.035E-008
170 696.2900 3.362E-008
171 696.2920 2.027E-008
172 696.2940 1.173E-008
173 696.2960 1.483E-008
174 696.2980 2.433E-008
175 696.3000 2.582E-008
176 696.3020 1.589E-008
177 696.3040 1.518E-008
178 696.3060 3.039E-008
179 696.3080 2.150E-008
180 696.3100 1.886E-008
181 696.3120 2.677E-008
182 696.3140 6.738E-009
183 696.3160 3.003E-008
184 696.3180 1.940E-008
185 696.3200 2.978E-008
186 696.3220 4.505E-008
187 696.3240 1.884E-008
188 696.3260 2.766E-008
189 696.3280 3.305E-008
190 696.3300 4.083E-008
191 696.3320 3.923E-008
192 696.3340 5.902E-008
193 696.3360 3.221E-008
194 696.3380 3.809E-008
195 696.3400 4.573E-008
196 696.3420 5.441E-008
197 696.3440 5.111E-008
198 696.3460 3.893E-008
199 696.3480 4.787E-008
200 696.3500 5.196E-008
201 696.3520 5.863E-008
202 696.3540 6.471E-008
203 696.3560 5.732E-008
204 696.3580 5.635E-008
205 696.3600 5.743E-008
206 696.3620 7.430E-008
207 696.3640 7.266E-008
208 696.3660 5.455E-008
209 696.3680 6.577E-008
210 696.3700 6.819E-008
211 696.3720 7.750E-008
212 696.3740 8.329E-008
213 696.3760 6.680E-008
214 696.3780 6.697E-008
215 696.3800 8.997E-008
216 696.3820 7.986E-008
217 696.3840 7.744E-008
218 696.3860 8.465E-008
219 696.3880 8.155E-008
220 696.3900 8.882E-008
221 696.3920 9.971E-008
222 696.3940 9.204E-008
223 696.3960 9.632E-008
224 696.3980 9.824E-008
225 696.4000 8.538E-008
226 696.4020 8.209E-008
227 696.4040 1.019E-007
228 696.4060 8.518E-008
229 696.4080 1.128E-007
230 696.4100 9.314E-008
231 696.4120 1.018E-007
232 696.4140 1.042E-007
233 696.4160 1.090E-007
234 696.4180 8.962E-008
235 696.4200 1.154E-007
236 696.4220 1.090E-007
237 696.4240 1.129E-007
238 696.4260 1.111E-007
239 696.4280 1.156E-007
240 696.4300 1.034E-007
241 696.4320 1.184E-007
242 696.4340 1.143E-007
243 696.4360 1.021E-007
244 696.4380 1.001E-007
245 696.4400 1.093E-007
246 696.4420 1.096E-007
247 696.4440 1.094E-007
248 696.4460 1.044E-007
249 696.4480 1.247E-007
250 696.4500 1.094E-007
251 696.4520 1.105E-007
252 696.4540 1.120E-007
253 696.4560 1.076E-007
254 696.4580 1.167E-007
255 696.4600 9.959E-008
256 696.4620 9.672E-008
257 696.4640 1.049E-007
258 696.4660 1.037E-007
259 696.4680 8.314E-008
260 696.4700 9.654E-008
261 696.4720 9.038E-008
262 696.4740 9.516E-008
263 696.4760 1.124E-007
264 696.4780 9.128E-008
265 696.4800 9.862E-008
266 696.4820 8.927E-008
267 696.4840 7.415E-008
268 696.4860 8.364E-008
269 696.4880 9.555E-008
270 696.4900 9.106E-008
271 696.4920 9.195E-008
272 696.4940 5.989E-008
273 696.4960 7.083E-008
274 696.4980 7.905E-008
275 696.5000 7.130E-008
276 696.5020 6.422E-008
277 696.5040 6.787E-008
278 696.5060 7.520E-008
279 696.5080 6.274E-008
280 696.5100 5.099E-008
281 696.5120 6.238E-008
282 696.5140 5.296E-008
283 696.5160 4.944E-008
284 696.5180 5.319E-008
285 696.5200 4.690E-008
286 696.5220 6.096E-008
287 696.5240 4.520E-008
288 696.5260 7.005E-008
289 696.5280 6.278E-008
290 696.5300 3.913E-008
291 696.5320 4.941E-008
292 696.5340 4.851E-008
293 696.5360 3.214E-008
294 696.5380 3.922E-008
295 696.5400 5.762E-008
296 696.5420 2.454E-008
297 696.5440 4.306E-008
298 696.5460 3.971E-008
299 696.5480 3.372E-008
300 696.5500 3.131E-008
301 696.5520 2.588E-008
302 696.5540 1.783E-008
303 696.5560 3.261E-008
304 696.5580 3.939E-008
305 696.5600 2.644E-008
306 696.5620 2.638E-008
307 696.5640 8.500E-009
308 696.5660 2.834E-008
309 696.5680 1.919E-008
310 696.5700 1.995E-008
311 696.5720 6.568E-009
312 696.5740 2.209E-008
313 696.5760 2.433E-008
314 696.5780 2.169E-008
315 696.5800 1.979E-008
316 696.5820 1.618E-008
317 696.5840 1.616E-008
318 696.5860 5.835E-009
319 696.5880 3.124E-008
320 696.5900 1.401E-008
321 696.5920 1.932E-008
322 696.5940 1.284E-008
323 696.5960 3.616E-008
324 696.5980 7.565E-009
325 696.6000 1.777E-008
326 696.6020 3.018E-008
327 696.6040 2.756E-008
328 696.6060 2.632E-008
329 696.6080 2.508E-008
330 696.6100 1.610E-008
331 696.6120 2.048E-008
332 696.6140 2.276E-008
333 696.6160 3.312E-008
334 696.6180 1.827E-008
335 696.6200 1.413E-008
336 696.6220 1.066E-008
337 696.6240 2.336E-008
338 696.6260 2.827E-008
339 696.6280 2.613E-008
340 696.6300 2.697E-008
341 696.6320 2.651E-008
342 696.6340 2.774E-008
343 696.6360 2.892E-008
344 696.6380 1.307E-008
345 696.6400 6.363E-009
346 696.6420 1.860E-008
347 696.6440 8.710E-009
348 696.6460 1.427E-008
349 696.6480 2.932E-008
350 696.6500 2.683E-008
351 696.6520 1.777E-008
352 696.6540 2.264E-008
353 696.6560 -1.402E-009
354 696.6580 5.626E-009
355 696.6600 2.977E-008
356 696.6620 3.118E-008
357 696.6640 1.082E-008
358 696.6660 1.869E-008
359 696.6680 1.849E-008
360 696.6700 2.608E-008
361 696.6720 2.053E-008
362 696.6740 2.180E-008
363 696.6760 1.776E-008
364 696.6780 2.488E-008
365 696.6800 1.753E-008
366 696.6820 1.883E-008
367 696.6840 2.158E-008
368 696.6860 2.333E-008
369 696.6880 4.083E-009
370 696.6900 1.714E-009
371 696.6920 2.130E-008
372 696.6940 2.228E-008
373 696.6960 2.503E-008
374 696.6980 2.694E-008
375 696.7000 2.636E-008
376 696.7020 5.236E-009
377 696.7040 2.383E-008
378 696.7060 2.497E-008
379 696.7080 1.581E-008
380 696.7100 2.930E-008
381 696.7120 1.767E-008
382 696.7140 1.976E-008
383 696.7160 1.555E-008
384 696.7180 1.269E-008
385 696.7200 4.294E-008
386 696.7220 2.694E-008
387 696.7240 2.286E-008
388 696.7260 1.887E-008
389 696.7280 2.019E-008
390 696.7300 1.563E-008
391 696.7320 2.339E-008
392 696.7340 2.159E-008
393 696.7360 1.241E-008
394 696.7380 1.705E-008
395 696.7400 2.943E-008
396 696.7420 3.443E-008
397 696.7440 1.792E-008
398 696.7460 1.642E-008
399 696.7480 1.766E-008
400 696.7500 1.664E-008
401 696.7520 1.081E-008
402 696.7540 2.831E-008
403 696.7560 1.767E-008
404 696.7580 2.383E-008
405 696.7600 1.637E-008
406 696.7620 2.354E-008
407 696.7640 1.244E-008
408 696.7660 1.427E-008
409 696.7680 2.304E-008
410 696.7700 2.030E-008
411 696.7720 1.823E-008
412 696.7740 2.385E-008
413 696.7760 1.225E-008
414 696.7780 2.137E-008
415 696.7800 2.524E-008
416 696.7820 2.150E-008
417 696.7840 1.369E-008
418 696.7860 1.434E-008
419 696.7880 9.798E-009
420 696.7900 2.189E-008
421 696.7920 2.465E-008
422 696.7940 3.869E-008
423 696.7960 2.886E-008
424 696.7980 2.891E-008
425 696.8000 2.910E-008

18
deploy.nu Normal file
View File

@@ -0,0 +1,18 @@
#!/usr/bin/env nu
let version = (open pyproject.toml).project.version
let zipfile = $"linemeasurement-($version).zip"
let filelist = (
git ls-files |
lines |
where {not ($in | str ends-with ".afphoto")} |
where {$in != "deploy.nu"}
)
^zip $zipfile ...$filelist
scp -O $zipfile $"fibnas:/volume1/web/($zipfile)"
scp -O $zipfile $"fibnas:/volume1/web/linemeasurement-latest.zip"
rm $zipfile

138
extract_points_balcon.py Normal file
View File

@@ -0,0 +1,138 @@
from typing import Union
from xml.dom import minidom
import numpy as np
import matplotlib.pyplot as plt
MX = [485.4, 485.4, 486.8]
MY = [1, 0, 0]
def str_pair_to_float(s: str) -> np.ndarray:
return np.array([float(el) for el in s.split(",")])
def parse_buffer(s: str) -> Union[float, complex]:
x, *y = s.split(",")
if y:
return float(x) + 1j * float(y[0])
else:
return float(x)
def transform_matrix_and_offset(
x: tuple[float, float, float],
y: tuple[float, float, float],
rx: tuple[float, float, float],
ry: tuple[float, float, float],
) -> tuple[np.ndarray, np.ndarray]:
a = -(
rx[0] * y[1] - rx[0] * y[2] - rx[1] * y[0] + rx[1] * y[2] + rx[2] * y[0] - rx[2] * y[1]
) / (x[1] * y[0] - x[2] * y[0] - x[0] * y[1] + x[2] * y[1] + x[0] * y[2] - x[1] * y[2])
b = -(
rx[0] * x[1] - rx[0] * x[2] - rx[1] * x[0] + rx[1] * x[2] + rx[2] * x[0] - rx[2] * x[1]
) / (-x[1] * y[0] + x[2] * y[0] + x[0] * y[1] - x[2] * y[1] - x[0] * y[2] + x[1] * y[2])
c = -(
ry[0] * y[1] - ry[0] * y[2] - ry[1] * y[0] + ry[1] * y[2] + ry[2] * y[0] - ry[2] * y[1]
) / (x[1] * y[0] - x[2] * y[0] - x[0] * y[1] + x[2] * y[1] + x[0] * y[2] - x[1] * y[2])
d = -(
-ry[0] * x[1] + ry[0] * x[2] + ry[1] * x[0] - ry[1] * x[2] - ry[2] * x[0] + ry[2] * x[1]
) / (x[1] * y[0] - x[2] * y[0] - x[0] * y[1] + x[2] * y[1] + x[0] * y[2] - x[1] * y[2])
e = -(
rx[0] * x[2] * y[1]
- rx[0] * x[1] * y[2]
- rx[1] * x[2] * y[0]
+ rx[1] * x[0] * y[2]
+ rx[2] * x[1] * y[0]
- rx[2] * x[0] * y[1]
) / (-x[1] * y[0] + x[2] * y[0] + x[0] * y[1] - x[2] * y[1] - x[0] * y[2] + x[1] * y[2])
f = -(
-ry[0] * x[2] * y[1]
+ ry[0] * x[1] * y[2]
+ ry[1] * x[2] * y[0]
- ry[1] * x[0] * y[2]
- ry[2] * x[1] * y[0]
+ ry[2] * x[0] * y[1]
) / (x[1] * y[0] - x[2] * y[0] - x[0] * y[1] + x[2] * y[1] + x[0] * y[2] - x[1] * y[2])
return np.array([[a, b], [c, d]]), np.array([e, f])
def parse_path(s: str) -> list[tuple[np.ndarray, np.ndarray]]:
INSTRUCTIONS = "mMlLhHvV"
lines: list[list[complex]] = []
current_line: list[complex] = []
pos = 0 + 0j
def add_line_point(new_pos):
nonlocal pos
if not current_line:
current_line.append(pos)
pos = new_pos
current_line.append(pos)
s = iter(s + "M")
instr = next(s)
buffer = ""
for char in s:
if char not in INSTRUCTIONS:
buffer += char
continue
arg = parse_buffer(buffer)
buffer = ""
if instr == "m":
if current_line:
lines.append(current_line)
current_line = []
pos += arg
elif instr == "M":
if current_line:
lines.append(current_line)
current_line = []
pos = arg
elif instr == "l":
add_line_point(pos + arg)
elif instr == "L":
add_line_point(arg)
elif instr == "v":
add_line_point(pos + 1j * arg)
elif instr == "V":
add_line_point(0 + 1j * arg)
elif instr == "h":
add_line_point(pos + arg)
elif instr == "H":
add_line_point(arg)
instr = char
if current_line:
lines.append(current_line)
lines = np.array(lines)
return [(line.real, line.imag) for line in lines]
def main():
with minidom.parse("./data/Balcon2008.svg") as doc:
rects = [
(
float(rect.getAttribute("x")) + float(rect.getAttribute("width")) / 2,
float(rect.getAttribute("y")) + float(rect.getAttribute("height")) / 2,
)
for rect in doc.getElementsByTagName("rect")
]
path_strings = [path.getAttribute("d") for path in doc.getElementsByTagName("path")]
px, py = parse_path(path_strings[0])[0]
M, off = transform_matrix_and_offset(px, py, MX, MY)
x, y = (np.array(rects).dot(M.T) + off).T
s = x.argsort()
x = x[s]
y = y[s]
np.savetxt("data/Balcon2008.csv", np.c_[x, y], fmt="%.5f")
plt.plot(x, y)
plt.show()
if __name__ == "__main__":
main()

135
extract_points_dong.py Normal file
View File

@@ -0,0 +1,135 @@
from typing import Union
from xml.dom import minidom
import numpy as np
import matplotlib.pyplot as plt
MX = [696, 696, 697.2]
MY = [1.2, 0, 0]
def str_pair_to_float(s: str) -> np.ndarray:
return np.array([float(el) for el in s.split(",")])
def parse_buffer(s: str) -> Union[float, complex]:
x, *y = s.split(",")
if y:
return float(x) + 1j * float(y[0])
else:
return float(x)
def transform_matrix_and_offset(
x: tuple[float, float, float],
y: tuple[float, float, float],
rx: tuple[float, float, float],
ry: tuple[float, float, float],
) -> tuple[np.ndarray, np.ndarray]:
a = -(
rx[0] * y[1] - rx[0] * y[2] - rx[1] * y[0] + rx[1] * y[2] + rx[2] * y[0] - rx[2] * y[1]
) / (x[1] * y[0] - x[2] * y[0] - x[0] * y[1] + x[2] * y[1] + x[0] * y[2] - x[1] * y[2])
b = -(
rx[0] * x[1] - rx[0] * x[2] - rx[1] * x[0] + rx[1] * x[2] + rx[2] * x[0] - rx[2] * x[1]
) / (-x[1] * y[0] + x[2] * y[0] + x[0] * y[1] - x[2] * y[1] - x[0] * y[2] + x[1] * y[2])
c = -(
ry[0] * y[1] - ry[0] * y[2] - ry[1] * y[0] + ry[1] * y[2] + ry[2] * y[0] - ry[2] * y[1]
) / (x[1] * y[0] - x[2] * y[0] - x[0] * y[1] + x[2] * y[1] + x[0] * y[2] - x[1] * y[2])
d = -(
-ry[0] * x[1] + ry[0] * x[2] + ry[1] * x[0] - ry[1] * x[2] - ry[2] * x[0] + ry[2] * x[1]
) / (x[1] * y[0] - x[2] * y[0] - x[0] * y[1] + x[2] * y[1] + x[0] * y[2] - x[1] * y[2])
e = -(
rx[0] * x[2] * y[1]
- rx[0] * x[1] * y[2]
- rx[1] * x[2] * y[0]
+ rx[1] * x[0] * y[2]
+ rx[2] * x[1] * y[0]
- rx[2] * x[0] * y[1]
) / (-x[1] * y[0] + x[2] * y[0] + x[0] * y[1] - x[2] * y[1] - x[0] * y[2] + x[1] * y[2])
f = -(
-ry[0] * x[2] * y[1]
+ ry[0] * x[1] * y[2]
+ ry[1] * x[2] * y[0]
- ry[1] * x[0] * y[2]
- ry[2] * x[1] * y[0]
+ ry[2] * x[0] * y[1]
) / (x[1] * y[0] - x[2] * y[0] - x[0] * y[1] + x[2] * y[1] + x[0] * y[2] - x[1] * y[2])
return np.array([[a, b], [c, d]]), np.array([e, f])
def parse_path(s: str) -> list[tuple[np.ndarray, np.ndarray]]:
INSTRUCTIONS = "mMlLhHvV"
lines: list[list[complex]] = []
current_line: list[complex] = []
pos = 0 + 0j
def add_line_point(new_pos):
nonlocal pos
if not current_line:
current_line.append(pos)
pos = new_pos
current_line.append(pos)
s = iter(s + "M")
instr = next(s)
buffer = ""
for char in s:
if char not in INSTRUCTIONS:
buffer += char
continue
arg = parse_buffer(buffer)
buffer = ""
if instr == "m":
if current_line:
lines.append(current_line)
current_line = []
pos += arg
elif instr == "M":
if current_line:
lines.append(current_line)
current_line = []
pos = arg
elif instr == "l":
add_line_point(pos + arg)
elif instr == "L":
add_line_point(arg)
elif instr == "v":
add_line_point(pos + 1j * arg)
elif instr == "V":
add_line_point(0 + 1j * arg)
elif instr == "h":
add_line_point(pos + arg)
elif instr == "H":
add_line_point(arg)
instr = char
if current_line:
lines.append(current_line)
lines = np.array(lines)
return [(line.real, line.imag) for line in lines]
def main():
with minidom.parse("./data/Dong2005.svg") as doc:
circles = [
(float(circ.getAttribute("cx")), float(circ.getAttribute("cy")))
for circ in doc.getElementsByTagName("circle")
]
path_strings = [path.getAttribute("d") for path in doc.getElementsByTagName("path")]
px, py = parse_path(path_strings[0])[0]
M, off = transform_matrix_and_offset(px, py, MX, MY)
x, y = (np.array(circles).dot(M.T) + off).T
s = x.argsort()
x = x[s]
y = y[s]
np.savetxt("data/Dong2005.csv", np.c_[x, y], fmt="%.5f")
plt.plot(x, y)
plt.show()
if __name__ == "__main__":
main()

50
playground.py Normal file
View File

@@ -0,0 +1,50 @@
from collections import namedtuple
import itertools
from scipy.optimize import root
Args = namedtuple("Args", ["alpha", "w", "Te"])
ARG1 = Args(0.04, 0.00409, 5_000)
ARG2 = Args(0.032, 0.00537, 10_000)
ARG3 = Args(0.023, 0.00873, 40_000)
def L_stark(Ne: float, alpha: float, w: float, Te: float) -> float:
"""computes stark broadening
Parameters
----------
Ne : float
free electron density in 1e15 / cm^3
alpha : float
static ion-broadening parameter
w : float
electron impact parameter in nm/1e16/cm^3
Te : float
electron temperature in K
Returns
-------
float
Stark broadening in nm
"""
Ne = 1e15 * Ne
return (
2e-16
* (1 + 1.75e-4 * (Ne ** 0.25) * alpha * (1 - 0.068 * (Te ** -0.5) * (Ne ** (1 / 6))))
* w
* Ne
)
def main():
for ls, args in itertools.product([0.001, 0.003, 0.009], [ARG1, ARG2, ARG3]):
def to_root(Ne):
return L_stark(Ne, *args) - ls
print(ls, args.Te, root(to_root, 1.0).x)
if __name__ == "__main__":
main()

18
pyproject.toml Normal file
View File

@@ -0,0 +1,18 @@
[build-system]
requires = ["setuptools >= 65.0.0"]
build-backend = "setuptools.build_meta"
[project]
name = "linemeasurement"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.10"
dependencies = ["click", "numpy", "plotapp", "scipy"]
[project.scripts]
linemeasurement = "linemeasurement.__main__:main"
[tool.uv.sources]
plotapp = { url = "http://130.92.113.172/plotapp-0.1.1.zip" }

View File

@@ -0,0 +1,296 @@
import click
import numpy as np
from linemeasurement.osa import load as osaload
from linemeasurement.profiles import (
VoigtFitResult,
add_noise,
convolve,
elevated_gaussian,
fft_gaussian,
fft_lorentzian,
fft_voigt,
gaussian,
linear_direct_voigt_fit,
linear_fft_voigt_fit,
log_direct_voigt_fit,
lorentzian,
single_func_fit,
voigt,
)
from plotapp import PlotApp
from scipy.interpolate import interp1d
from scipy.signal import wiener
LN2 = np.log(2)
def setup_axes(n: int, lims=(-10, 10)) -> tuple[np.ndarray, float, np.ndarray, float]:
"""Creates a time-like and a frequency-like array and returns their respective spacing"""
x, dx = np.linspace(*lims, n, retstep=True)
f = np.fft.fftfreq(n, dx)
return x, dx, f, f[1] - f[0]
def freq_axis(x: np.ndarray) -> tuple[np.ndarray, np.ndarray, float]:
"""
given an array with equally spaced values, returns a corresponding frequency array,
an array of indices to automatically sort ffts and the x spacing
"""
dx = np.diff(x).mean()
f = np.fft.fftfreq(len(x), dx)
ind = np.argsort(f)
return f[ind], ind, dx
@click.group()
def main():
pass
@main.command(help="fit a lorentzian with a gaussian")
def demo1():
x = np.linspace(-10, 10, 501)
with PlotApp(
FWHM=np.geomspace(0.1, 10),
relative_noise=np.linspace(0, 2),
absolute_noise=[0, *np.geomspace(0.001, 1)],
) as app:
app.set_antialiasing(True)
app.params["FWHM"].value = 3.7
@app.update
def draw(FWHM, relative_noise, absolute_noise):
lo = lorentzian(x, 1, FWHM, 0)
lo = add_noise(lo, absolute_noise, relative_noise * 0.04)
fit = single_func_fit(x, lo, gaussian)
app[0].set_line_data("Lorentzian", x, lo, width=2)
app[0].set_line_data(
"gaus fit", x, fit.curve, width=2, label=f"Gaussian fit : FWHM = {fit.width}"
)
@main.command(name="default", help="illustrate the influence of noises and fit a voigt profile")
def demo2():
with PlotApp(
n=np.arange(256, 2046),
lorentz_fwhm=np.geomspace(0.1, 1),
gauss_fwhm=np.linspace(1, 10),
relative_noise=np.linspace(0, 2),
absolute_noise=[0, *np.geomspace(1e-6, 1, 201)],
) as app:
app.set_antialiasing(True)
v_ax = app["Voigt"]
l_ax = app["Lorentz"]
g_ax = app["Gauss"]
l_ax.link_x(v_ax)
g_ax.link_x(v_ax)
app.params["gauss_fwhm"].value = 5
app.params["n"].value = 1024
app.params_layout.setSpacing(0)
@app.update
def draw(n, lorentz_fwhm, gauss_fwhm, absolute_noise, relative_noise):
x, dx, f, df = setup_axes(n, (-20, 20))
gaus = gaussian(x, 1, gauss_fwhm, 0)
lore = lorentzian(x, 1, lorentz_fwhm, 0)
g_ax.set_line_data("Gaussian", x, gaus / gaus.max(), width=2)
l_ax.set_line_data("Lorentz", x, lore / lore.max(), width=2)
conv = convolve(gaus, lore)
conv /= conv.max()
conv_noise = add_noise(conv, absolute_noise, relative_noise * 0.1)
gaus_noise = add_noise(gaus, absolute_noise, relative_noise * 0.1)
v_ax.set_line_data("Voigt", x, conv, width=2)
v_ax.set_line_data("Noisy Voigt", x, conv_noise, width=2)
g_ax.set_line_data("Noisy Gaussian", x, gaus_noise, width=2)
lin_fit = linear_direct_voigt_fit(x, conv_noise)
log_fit = log_direct_voigt_fit(x, conv_noise)
transfo = np.fft.fft(np.fft.fftshift(conv_noise)).real
fft_fit = linear_fft_voigt_fit(f, transfo, x, dx)
for fit in lin_fit, log_fit, fft_fit:
display_fit(x, fit)
def display_fit(x: np.ndarray, fit: VoigtFitResult):
v_ax.set_line_data(fit.name, x, fit.curve)
g_ax.set_line_data(
fit.name + "gauss",
x,
gaussian(x, fit.amp, fit.gaussian_width, 0),
label=f"{fit.name} - Gaussian {fit.gaussian_width:.2f}",
width=1.5,
)
l_ax.set_line_data(
fit.name + "loren",
x,
lorentzian(x, fit.amp, fit.lorentzian_width, 0),
label=f"{fit.name} - Lorentzian {fit.lorentzian_width:.2f}",
width=1.5,
)
@main.command(help="Explore fft fitting")
def demo3():
x, dx, f, df = setup_axes(1001, (-20, 20))
with PlotApp(
lorentz_fwhm=np.geomspace(0.1, 1),
gauss_fwhm=np.linspace(1, 10),
relative_noise=np.linspace(0, 2),
absolute_noise=[0, *np.geomspace(1e-6, 1, 201)],
) as app:
app.set_antialiasing(True)
ax = app[0]
ind = np.argsort(f)
@app.update
def draw(lorentz_fwhm, gauss_fwhm, absolute_noise, relative_noise):
gaus_clean = gaussian(x, 1, gauss_fwhm, 0)
lore_clean = lorentzian(x, 1, lorentz_fwhm, 0)
voig_clean = convolve(gaus_clean, lore_clean)
gaus = add_noise(gaus_clean, absolute_noise, relative_noise * 0.1)
lore = add_noise(lore_clean, absolute_noise, relative_noise * 0.1)
voig = add_noise(voig_clean, absolute_noise, relative_noise * 0.1)
gaus_f = np.fft.fft(np.fft.fftshift(gaus)).real
lore_f = np.fft.fft(np.fft.fftshift(lore)).real
voig_f = np.fft.fft(np.fft.fftshift(voig)).real
ax.set_line_data("Transformed Gaussian", f[ind], gaus_f[ind])
ax.set_line_data("Transformed Lorentz", f[ind], lore_f[ind])
ax.set_line_data("Transformed Voigt", f[ind], voig_f[ind])
gaus_ff = fft_gaussian(f, dx, 1, gauss_fwhm)
lore_ff = fft_lorentzian(f, dx, 1, lorentz_fwhm)
voig_ff = fft_voigt(f, dx, gauss_fwhm, lorentz_fwhm) * voig_clean.sum()
ax.set_line_data("Expected Gaussian", f[ind], gaus_ff[ind], width=1)
ax.set_line_data("Expected Lorentz", f[ind], lore_ff[ind], width=1)
ax.set_line_data("Expected Voigt", f[ind], voig_ff[ind], width=1)
@click.option("--all", "show_all", default=False, is_flag=True)
@click.option("--file", "-f", type=click.Path(True, dir_okay=False), required=True, prompt=True)
@main.command(name="fit")
def fit_measurement(file, show_all):
raw_wl, raw_intens = osaload(file, normalize=True)
_o = raw_wl.argsort()
raw_intens = raw_intens[_o]
raw_wl = raw_wl[_o]
del _o
if raw_wl[0] < 1:
raw_wl *= 1e9
with PlotApp(
center_wl=np.linspace(raw_wl.min(), raw_wl.max(), 8192),
span=np.geomspace(0.001, raw_wl[-1] - raw_wl[0], 1024),
filter=range(0, 30, 3),
) as app:
app.set_antialiasing(True)
ax1 = app["Measurement"]
ax2 = app["Fourier domain"]
baseline = 0.0
app.params["center_wl"].value = raw_wl[raw_intens.argmax()]
app.params["span"].value = app.params["span"].values()[-1]
@app.update
def draw(center_wl, span, filter):
nonlocal baseline
# Crop spectrum around peak
left_index = np.argmin(np.abs(raw_wl - (center_wl - span / 2)))
right_index = np.argmin(np.abs(raw_wl - (center_wl + span / 2)))
intens = raw_intens[left_index : right_index + 1]
wl = raw_wl[left_index : right_index + 1]
print(len(wl), len(intens))
# Fit rough gaussian to find peak
gauss_fit = single_func_fit(wl, intens, elevated_gaussian, extra_params=1)
wl0 = gauss_fit.x0
baseline = intens[:10].mean()
# intens -= baseline
# gauss_fit.curve -= baseline
intens[intens < 0] = 0
# center spectrum around 0
ax1.set_line_data("Measured spectrum", raw_wl - wl0, raw_intens, width=2, color="red")
# ax1.set_line_data(
# "Initial Guassian fit", raw_wl - wl0, gauss_fit.curve, width=2, color="blue"
# )
new_wl = np.linspace(-span / 2, span / 2, 1024)
intens = interp1d(wl - wl0, intens, bounds_error=False, fill_value=0)(new_wl)
wl = new_wl
# wl -= wl0
intens_fit = intens - baseline
if filter:
intens_fit = wiener(intens_fit, filter)
f, ind, dwl = freq_axis(wl)
ax1.set_line_data("Spectrum to fit", wl, intens_fit + baseline)
trans = np.abs(np.fft.fft(intens_fit))[ind]
ax2.set_line_data("Transformed", f, trans)
ax2.lines["Transformed"].setZValue(10)
display_fit(wl, dwl, f, linear_direct_voigt_fit(wl, intens_fit))
# display_fit(wl, dwl, f, linear_fft_voigt_fit(f, trans, wl, dwl))
# display_fit(wl, dwl, f, log_direct_voigt_fit(wl, intens_fit))
def display_fit(x: np.ndarray, dx: float, f: np.ndarray, fit: VoigtFitResult):
ax2.set_line_data(
fit.name,
f,
fft_voigt(f, dx, fit.amp, fit.gaussian_width, fit.lorentzian_width),
)
ax1.set_line_data(fit.name, x, fit.curve + baseline)
if show_all:
ax1.set_line_data(
fit.name + "gauss",
x,
gaussian(x, 1, fit.gaussian_width, 0) + baseline,
label=f"{fit.name} - Gaussian {fit.gaussian_width:.4g}",
width=1.5,
)
ax1.set_line_data(
fit.name + "lorentz",
x,
lorentzian(x, 1, fit.lorentzian_width, 0) + baseline,
label=f"{fit.name} - Lorentzian {fit.lorentzian_width:.4g}",
width=1.5,
)
@main.command(name="test", help="test scaling of voigt profile")
def test_amp():
x, dx, f, df = setup_axes(1001, (-20, 20))
with PlotApp(
lorentz_fwhm=np.geomspace(0.1, 1), gauss_fwhm=np.linspace(1, 10), amp=np.linspace(1, 7)
) as app:
app.set_antialiasing(True)
ax1 = app["Main"]
ax2 = app["Fourrier"]
ind = np.argsort(f)
@app.update
def draw(lorentz_fwhm, gauss_fwhm, amp):
vo = voigt(x, amp, gauss_fwhm, lorentz_fwhm)
trans = np.fft.fft(np.fft.fftshift(vo))
expected = fft_voigt(f, dx, amp, gauss_fwhm, lorentz_fwhm)
back_transformed = np.fft.fftshift(np.fft.ifft(expected).real)
ax1.set_line_data("original", x, vo)
ax1.set_line_data("back tranformed", x, back_transformed)
ax2.set_line_data("expected", f[ind], expected[ind])
ax2.set_line_data("original transformed", f[ind], trans[ind].real)
if __name__ == "__main__":
main()

View File

@@ -2,11 +2,13 @@ from dataclasses import dataclass, field
from typing import Callable
import click
import labmodule as lab
import numpy as np
from customfunc.app import PlotApp
from scipy.optimize import curve_fit
from plotapp import PlotApp
from scipy.interpolate import interp1d
from scipy.optimize import curve_fit
from scipy.signal import wiener
from .osa import load as osaload
LN2 = np.log(2)
@@ -43,6 +45,56 @@ class VoigtFitResult:
)
def load_osa_spectrum(
data: Union[os.PathLike, str], lvl_col: int = 1, normalize: bool = True, ret_props=False
) -> tuple[np.ndarray, np.ndarray]:
"""Read files from Yokogawa optical spectrum analyzers
Parameters
----------
data : os.PathLike | str
path to the file or raw data
lvl_col : int, optional
index of the intensity column, by default 1
normalize : bool, optional
whether to shift the maximum to 0, by default True
Returns
-------
wavelength : np.ndarray
wavelength in m
intensity : np.ndarray
recorded intensity in dB
"""
props = {}
if isinstance(data, str) and not os.path.exists(data):
s = data.splitlines()
else:
with open(data) as f:
s = f.readlines()
s = iter(s)
for line in s:
if "[TRACE DATA]" in line:
break
if ret_props and line.startswith('"'):
k, v = parse_osa_prop_line(line)
props[k] = v
to_load = "\n".join([el.strip() for el in s])
wl, intens = np.loadtxt(
StringIO(to_load), delimiter=",", usecols=(0, lvl_col), unpack=True, comments='"'
)
if normalize:
if (intens < 0).sum() < len(intens) / 10:
intens -= intens.min()
intens /= intens.max()
else:
intens -= intens.max()
if ret_props:
return 1e-9 * wl, intens, props
else:
return 1e-9 * wl, intens
def setup_axes(n: int, lims=(-10, 10)) -> tuple[np.ndarray, float, np.ndarray, float]:
"""Creates a time-like and a frequency-like array and returns their respective spacing"""
x, dx = np.linspace(*lims, n, retstep=True)
@@ -61,6 +113,15 @@ def freq_axis(x: np.ndarray) -> tuple[np.ndarray, np.ndarray, float]:
return f[ind], ind, dx
def rough_fwhm(x: np.ndarray, y: np.ndarray) -> float:
m2 = y.max() / 2
ind = np.where(y >= m2)[0]
return (
x[np.minimum(ind + 1, len(x) - 1)][x[ind].argmax()]
- x[np.maximum(0, ind - 1)][x[ind].argmin()]
)
def lorentzian(x: np.ndarray, amp: float, width: float, x0: float) -> np.ndarray:
"""Lorentzian function of max `amp`, FWHM `width` and position `x0`"""
gamma = (width * 0.5) ** 2
@@ -89,13 +150,13 @@ def fft_lorentzian(f: np.ndarray, dx: float, amp: float, width: float) -> np.nda
def gaussian(x: np.ndarray, amp: float, width: float, x0: float) -> np.ndarray:
"""Gaussian function of max `amp`, FWHM `width` and position `x0`"""
sig2 = width ** 2 / (8 * LN2)
sig2 = width**2 / (8 * LN2)
return amp * np.exp(-((x - x0) ** 2) / (2 * sig2))
def elevated_gaussian(x: np.ndarray, amp: float, width: float, x0: float, y0: float) -> np.ndarray:
"""Gaussian function of max `amp`, FWHM `width`, position `x0` and baseline `y0`"""
sig2 = width ** 2 / (8 * LN2)
sig2 = width**2 / (8 * LN2)
return amp * np.exp(-((x - x0) ** 2) / (2 * sig2)) + y0
@@ -177,15 +238,25 @@ def single_func_fit(
fct = _fct
am = y.argmax()
xm = x.mean()
fwhm = rough_fwhm(x, y)
params, cov = curve_fit(
fct, x, y, sigma=1 / y if use_weights else None, p0=[y[am], 1, x[am]] + [0] * extra_params
fct,
x - xm,
y,
sigma=1 / y if use_weights else None,
p0=[y[am], fwhm, x[am] - xm] + [0] * extra_params,
)
params[2] += xm
curve = fct(x, *params)
return FitResult(curve, cov, params[0], params[1], params[2], tuple(params))
def linear_direct_voigt_fit(x: np.ndarray, y: np.ndarray, use_weights=False) -> VoigtFitResult:
params, cov = curve_fit(voigt, x, y, sigma=1 / y if use_weights else None)
fwhm = rough_fwhm(x, y)
params, cov = curve_fit(
voigt, x, y, sigma=1 / y if use_weights else None, p0=[y.max(), fwhm / 2, fwhm / 2]
)
curve = voigt(x, *params)
return VoigtFitResult("Linear direct fit", curve, cov, *params)
@@ -200,8 +271,13 @@ def log_direct_voigt_fit(x: np.ndarray, y: np.ndarray) -> VoigtFitResult:
def linear_fft_voigt_fit(f: np.ndarray, A: np.ndarray, x: np.ndarray, dx: float) -> VoigtFitResult:
fwhm = 4 * LN2 / (np.pi * rough_fwhm(f, A))
params, cov = curve_fit(
lambda _f, _a, _g, _l: fft_voigt(_f, dx, _a, _g, _l), f, A, bounds=[1e-12, np.inf]
lambda _f, _amp, _gau, _lor: fft_voigt(_f, dx, _amp, _gau, _lor),
f,
A,
bounds=[1e-12, np.inf],
p0=[A.max(), fwhm, fwhm / 10],
)
curve = voigt(x, *params)
return VoigtFitResult("Linear FFT fit", curve, cov, *params)
@@ -249,7 +325,11 @@ def demo2():
absolute_noise=[0, *np.geomspace(1e-6, 1, 201)],
) as app:
app.set_antialiasing(True)
ax = app["Main Plot"]
v_ax = app["Voigt"]
l_ax = app["Lorentz"]
g_ax = app["Gauss"]
l_ax.link_x(v_ax)
g_ax.link_x(v_ax)
app.params["gauss_fwhm"].value = 5
app.params["n"].value = 1024
@@ -260,37 +340,37 @@ def demo2():
x, dx, f, df = setup_axes(n, (-20, 20))
gaus = gaussian(x, 1, gauss_fwhm, 0)
lore = lorentzian(x, 1, lorentz_fwhm, 0)
ax.set_line_data("Gaussian", x, gaus / gaus.max(), width=2)
ax.set_line_data("Lorentz", x, lore / lore.max(), width=2)
g_ax.set_line_data("Gaussian", x, gaus / gaus.max(), width=2)
l_ax.set_line_data("Lorentz", x, lore / lore.max(), width=2)
conv = convolve(gaus, lore)
conv /= conv.max()
conv_noise = add_noise(conv, absolute_noise, relative_noise * 0.1)
gaus_noise = add_noise(gaus, absolute_noise, relative_noise * 0.1)
ax.set_line_data("Voigt", x, conv, width=2)
ax.set_line_data("Noisy Voigt", x, conv_noise, width=2)
ax.set_line_data("Noisy Gaussian", x, gaus_noise, width=2)
v_ax.set_line_data("Voigt", x, conv, width=2)
v_ax.set_line_data("Noisy Voigt", x, conv_noise, width=2)
g_ax.set_line_data("Noisy Gaussian", x, gaus_noise, width=2)
lin_fit = linear_direct_voigt_fit(x, conv_noise)
log_fit = log_direct_voigt_fit(x, conv_noise)
transfo = np.fft.fft(np.fft.fftshift(conv_noise)).real
fft_fit = linear_fft_voigt_fit(f, transfo / transfo.max(), x, dx)
fft_fit = linear_fft_voigt_fit(f, transfo, x, dx)
for fit in lin_fit, log_fit, fft_fit:
display_fit(x, fit)
def display_fit(x: np.ndarray, fit: VoigtFitResult):
ax.set_line_data(fit.name, x, fit.curve)
ax.set_line_data(
v_ax.set_line_data(fit.name, x, fit.curve)
g_ax.set_line_data(
fit.name + "gauss",
x,
gaussian(x, 1, fit.gaussian_width, 0),
gaussian(x, fit.amp, fit.gaussian_width, 0),
label=f"{fit.name} - Gaussian {fit.gaussian_width:.2f}",
width=1.5,
)
ax.set_line_data(
l_ax.set_line_data(
fit.name + "loren",
x,
lorentzian(x, 1, fit.lorentzian_width, 0),
lorentzian(x, fit.amp, fit.lorentzian_width, 0),
label=f"{fit.name} - Lorentzian {fit.lorentzian_width:.2f}",
width=1.5,
)
@@ -337,25 +417,26 @@ def demo3():
ax.set_line_data("Expected Voigt", f[ind], voig_ff[ind], width=1)
@click.argument("file", type=click.Path(True, dir_okay=False))
@click.option("--all", "show_all", default=False, is_flag=True)
@click.option("--file", "-f", type=click.Path(True, dir_okay=False), required=True, prompt=True)
@main.command(name="fit")
def fit_measurement(file, show_all):
raw_wl, intens = lab.osa.load_osa_spectrum(file)
raw_wl, intens = osaload(file, normalize=True)
if raw_wl[0] < 1:
raw_wl *= 1e9
gauss_fit = single_func_fit(raw_wl, intens, elevated_gaussian, extra_params=1)
wl0 = gauss_fit.x0
baseline = gauss_fit.params[-1]
intens -= baseline
gauss_fit.curve -= baseline
baseline = intens[:10].mean()
# intens -= baseline
# gauss_fit.curve -= baseline
intens[intens < 0] = 0
lim = np.max(np.abs(raw_wl - wl0))
new_wl = np.linspace(-lim, lim, 2048)
new_wl = np.linspace(-lim, lim, 1024)
intens = interp1d(raw_wl - wl0, intens, bounds_error=False, fill_value=0)(new_wl)
wl = new_wl
with PlotApp(n=np.arange(len(wl) // 2)) as app:
with PlotApp(num_skipped=np.arange(len(wl) // 2), filter=range(0, 30, 3)) as app:
app.set_antialiasing(True)
ax1 = app["Measurement"]
@@ -367,14 +448,17 @@ def fit_measurement(file, show_all):
# ax1.plot_widget.plotItem.setLogMode(y=True)
@app.update
def draw(n):
s = slice(n, -n) if n else slice(None)
def draw(num_skipped, filter):
n, r = divmod(num_skipped, 2)
s = slice(n + r, -n) if n else slice(None)
wl_fit = wl[s]
intens_fit = intens[s] - intens[s].min()
intens_fit = intens[s] - baseline
if filter:
intens_fit = wiener(intens_fit, filter)
f, ind, dwl = freq_axis(wl_fit)
ax1.set_line_data("Fitted spectrum", wl_fit, intens_fit)
ax1.set_line_data("Fitted spectrum", wl_fit, intens_fit + baseline)
trans = np.abs(np.fft.fft(intens_fit))[ind]
ax2.set_line_data("Transformed", f, trans)
@@ -392,20 +476,20 @@ def fit_measurement(file, show_all):
f,
fft_voigt(f, dx, fit.amp, fit.gaussian_width, fit.lorentzian_width),
)
ax1.set_line_data(fit.name, x, fit.curve)
ax1.set_line_data(fit.name, x, fit.curve + baseline)
if show_all:
ax1.set_line_data(
fit.name + "gauss",
x,
gaussian(x, 1, fit.gaussian_width, 0),
label=f"{fit.name} - Gaussian {fit.gaussian_width:.3f}",
gaussian(x, 1, fit.gaussian_width, 0) + baseline,
label=f"{fit.name} - Gaussian {fit.gaussian_width:.4g}",
width=1.5,
)
ax1.set_line_data(
fit.name + "lorentz",
x,
lorentzian(x, 1, fit.lorentzian_width, 0),
label=f"{fit.name} - Lorentzian {fit.lorentzian_width:.3f}",
lorentzian(x, 1, fit.lorentzian_width, 0) + baseline,
label=f"{fit.name} - Lorentzian {fit.lorentzian_width:.4g}",
width=1.5,
)

112
src/linemeasurement/osa.py Normal file
View File

@@ -0,0 +1,112 @@
import os
from functools import lru_cache
from io import StringIO
from pathlib import Path
from typing import Any, Union
import numpy as np
def parse_osa_prop_line(s: str) -> tuple[str, Any]:
vals = s.split('"')
if vals[0]:
raise ValueError()
key = vals[1].lower().replace(" ", "_")
if len(vals) <= 2:
return key, True
val_str = vals[2].replace(",", "").strip()
if val_str == '"OFF"':
return key, False
for fct in int, float:
try:
val = fct(val_str)
return key, val
except ValueError:
continue
return key, val_str
@lru_cache
def load_osa_spectrum(
data: Union[os.PathLike, str], lvl_col: int = 1, normalize: bool = True, ret_props=False
) -> tuple[np.ndarray, np.ndarray]:
"""Read files from Yokogawa optical spectrum analyzers
Parameters
----------
data : os.PathLike | str
path to the file or raw data
lvl_col : int, optional
index of the intensity column, by default 1
normalize : bool, optional
whether to shift the maximum to 0, by default True
Returns
-------
wavelength : np.ndarray
wavelength in m
intensity : np.ndarray
recorded intensity in dB
"""
props = {}
if isinstance(data, str) and not os.path.exists(data):
s = data.splitlines()
else:
with open(data) as f:
s = f.readlines()
s = iter(s)
for line in s:
if "[TRACE DATA]" in line:
break
if ret_props and line.startswith('"'):
k, v = parse_osa_prop_line(line)
props[k] = v
to_load = "\n".join([el.strip() for el in s])
wl, intens = np.loadtxt(
StringIO(to_load), delimiter=",", usecols=(0, lvl_col), unpack=True, comments='"'
)
if normalize:
if (intens < 0).sum() < len(intens) / 10:
intens -= intens.min()
intens /= intens.max()
else:
intens -= intens.max()
if ret_props:
return 1e-9 * wl, intens, props
else:
return 1e-9 * wl, intens
def load_avantes(
data: Union[os.PathLike, str], usecols=(0, 1), skiprows=8
) -> tuple[np.ndarray, np.ndarray]:
if isinstance(data, str):
s = data
else:
s = Path(data).read_text()
s = s.replace(",", ".")
return np.loadtxt(StringIO(s), delimiter=";", usecols=usecols, skiprows=skiprows, unpack=True)
def load(path: os.PathLike, normalize=False) -> tuple[np.ndarray, np.ndarray]:
s = Path(path).read_text()
wl = None
if "[TRACE DATA]" in s:
wl, i = load_osa_spectrum(s, normalize=False)
elif "Integration time [ms]" in s:
wl, i = load_avantes(s)
else:
for lim in [None, ",", ";"]:
try:
wl, i = np.loadtxt(StringIO(s), delimiter=lim, unpack=True)
break
except ValueError:
continue
if wl is None:
raise ValueError(f"Could not load a spectrum from {path}")
if normalize:
i -= i.min()
i /= i.max()
return wl, i

View File

@@ -0,0 +1,214 @@
from dataclasses import dataclass, field
from typing import Callable
import numpy as np
from scipy.optimize import curve_fit
LN2 = np.log(2)
@dataclass
class FitResult:
curve: np.ndarray = field(repr=False)
covariance: np.ndarray
amp: float
width: float
x0: float = 0
params: tuple[float, ...] = field(default_factory=tuple)
@dataclass
class VoigtFitResult:
name: str
curve: np.ndarray = field(repr=False)
covariance: np.ndarray
amp: float
gaussian_width: float
lorentzian_width: float
@property
def descr(self) -> str:
return (
f"{self.name} - Gaussian width : {self.gaussian_width:.2f}, "
f"Lorentzian width : {self.lorentzian_width:.2f}"
)
def rough_fwhm(x: np.ndarray, y: np.ndarray) -> float:
m2 = y.max() / 2
ind = np.where(y >= m2)[0]
return (
x[np.minimum(ind + 1, len(x) - 1)][x[ind].argmax()]
- x[np.maximum(0, ind - 1)][x[ind].argmin()]
)
def lorentzian(x: np.ndarray, amp: float, width: float, x0: float) -> np.ndarray:
"""Lorentzian function of max `amp`, FWHM `width` and position `x0`"""
gamma = (width * 0.5) ** 2
return amp * gamma / ((x - x0) ** 2 + gamma)
def unit_lorentzian(x: np.ndarray, width: float, x0: float) -> np.ndarray:
"""Normalized Lorentzian function of FWHM `width` and position `x0`"""
return lorentzian(x, 1 / (np.pi * width * 0.5), width, x0)
def peak_func(x: np.ndarray, amp: float, width: float, x0: float) -> np.ndarray:
"""2-sided decaying exp of max `amp`, FWHM `width` and position `x0`"""
a = 2 * LN2 / width
return amp * np.exp(-np.abs(x - x0) * a)
def fft_lorentzian(f: np.ndarray, dx: float, amp: float, width: float) -> np.ndarray:
"""
Same as `peak_func` but parametrized as the fourier transform
of a Lorentzian function of max `amp` and FWHM `width`
"""
gamma_sqrt = width / 2
return amp * np.pi * gamma_sqrt * np.exp(-2 * np.pi * gamma_sqrt * np.abs(f)) / dx
def gaussian(x: np.ndarray, amp: float, width: float, x0: float) -> np.ndarray:
"""Gaussian function of max `amp`, FWHM `width` and position `x0`"""
sig2 = width**2 / (8 * LN2)
return amp * np.exp(-((x - x0) ** 2) / (2 * sig2))
def elevated_gaussian(x: np.ndarray, amp: float, width: float, x0: float, y0: float) -> np.ndarray:
"""Gaussian function of max `amp`, FWHM `width`, position `x0` and baseline `y0`"""
sig2 = width**2 / (8 * LN2)
return amp * np.exp(-((x - x0) ** 2) / (2 * sig2)) + y0
def unit_gaussian(x: np.ndarray, width: float, x0: float) -> np.ndarray:
"""Normalized Gaussian function of FWHM `width` and position `x0`"""
return gaussian(x, np.sqrt(4 * LN2 / np.pi) / width, width, x0)
def fft_gaussian(f: np.ndarray, dx: float, amp: float, width: float) -> np.ndarray:
"""
Same as `gaussian` but parametrized as the fourier transform
of another Gaussian function of max `amp` and FWHM `width`
""" # exp_param =
freq_amp = amp * width / 2 * np.sqrt(np.pi / LN2) / dx
freq_width = 4 * LN2 / (width * np.pi)
return gaussian(f, freq_amp, freq_width, 0)
def voigt(x: np.ndarray, amp: float, gaussian_width: float, lorentzian_width: float) -> np.ndarray:
"""Voigt profile of max 1 with specified Gaussian and Lorentzian FWHM"""
conv = convolve(unit_gaussian(x, gaussian_width, 0), unit_lorentzian(x, lorentzian_width, 0))
if conv.max() > 0:
return conv * amp / conv.max()
return conv
def log_voigt(
x: np.ndarray, amp: float, gaussian_width: float, lorentzian_width: float
) -> np.ndarray:
"""log of `voigt`"""
return np.log(voigt(x, amp, gaussian_width, lorentzian_width))
def fft_voigt(
f: np.ndarray, dx: float, amp: float, gaussian_width: float, lorentzian_width: float
) -> np.ndarray:
"""
returns the product of a `peak_func` and a `gaussian`
parameterized as the Fourier transform of a Voigt profile
given by `gaussian_width` and `lorentzian_width`
"""
profile = fft_gaussian(f, dx, 1, gaussian_width) * fft_lorentzian(f, dx, 1, lorentzian_width)
fac = amp / np.abs(np.fft.ifft(np.fft.fftshift(profile))).max()
return profile * fac
def single_func_fit(
x: np.ndarray,
y: np.ndarray,
fct: Callable[[np.ndarray, float, float, float], np.ndarray],
force_center=False,
use_weights=False,
extra_params: int = 0,
) -> FitResult:
"""fits a single bell-like function (Gaussian or Lorentian, not Voigt)
Parameters
----------
x : np.ndarray
x input
y : np.ndarray
corresponding y data
fct : Callable[[np.ndarray, float, float, float], np.ndarray]
function to fit
force_center : bool, optional
assume the bell is centered at x=0, by default False
use_weights : bool, optional
give more importance to higher y values, by default False
Returns
-------
FitResult
resuts of the fit
"""
if force_center:
def _fct(_x: np.ndarray, amp: float, width: float):
return fct(_x, amp, width, 0)
fct = _fct
am = y.argmax()
xm = x.mean()
fwhm = rough_fwhm(x, y)
params, cov = curve_fit(
fct,
x - xm,
y,
sigma=1 / y if use_weights else None,
p0=[y[am], fwhm, x[am] - xm] + [0] * extra_params,
)
params[2] += xm
curve = fct(x, *params)
return FitResult(curve, cov, params[0], params[1], params[2], tuple(params))
def linear_direct_voigt_fit(x: np.ndarray, y: np.ndarray, use_weights=False) -> VoigtFitResult:
fwhm = rough_fwhm(x, y)
params, cov = curve_fit(
voigt, x, y, sigma=1 / y if use_weights else None, p0=[y.max(), fwhm / 2, fwhm / 2]
)
curve = voigt(x, *params)
return VoigtFitResult("Linear direct fit", curve, cov, *params)
def log_direct_voigt_fit(x: np.ndarray, y: np.ndarray) -> VoigtFitResult:
ind = y > 0
y_fit = np.log(y[ind])
x_fit = x[ind]
params, cov = curve_fit(log_voigt, x_fit, y_fit, bounds=[1e-12, np.inf])
curve = voigt(x, *params)
return VoigtFitResult("Log direct fit", curve, cov, *params)
def linear_fft_voigt_fit(f: np.ndarray, A: np.ndarray, x: np.ndarray, dx: float) -> VoigtFitResult:
fwhm = 4 * LN2 / (np.pi * rough_fwhm(f, A))
params, cov = curve_fit(
lambda _f, _amp, _gau, _lor: fft_voigt(_f, dx, _amp, _gau, _lor),
f,
A,
bounds=[1e-12, np.inf],
p0=[A.max(), fwhm, fwhm / 10],
)
curve = voigt(x, *params)
return VoigtFitResult("Linear FFT fit", curve, cov, *params)
def convolve(gau: np.ndarray, lor: np.ndarray) -> np.ndarray:
return np.convolve(gau, lor, mode="same")
def add_noise(arr: np.ndarray, abs_fac: float, rel_fac: float):
return (
arr + abs_fac * np.random.rand(len(arr)) + rel_fac * arr * (np.random.rand(len(arr)) - 0.5)
)

231
uv.lock generated Normal file
View File

@@ -0,0 +1,231 @@
version = 1
requires-python = ">=3.10"
[[package]]
name = "click"
version = "8.1.7"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "colorama", marker = "platform_system == 'Windows'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941 },
]
[[package]]
name = "colorama"
version = "0.4.6"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
]
[[package]]
name = "linemeasurement"
version = "0.1.0"
source = { editable = "." }
dependencies = [
{ name = "click" },
{ name = "numpy" },
{ name = "plotapp" },
{ name = "scipy" },
]
[package.metadata]
requires-dist = [
{ name = "click" },
{ name = "numpy" },
{ name = "plotapp", url = "http://130.92.113.172/plotapp-0.1.1.zip" },
{ name = "scipy" },
]
[[package]]
name = "numpy"
version = "2.1.1"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/59/5f/9003bb3e632f2b58f5e3a3378902dcc73c5518070736c6740fe52454e8e1/numpy-2.1.1.tar.gz", hash = "sha256:d0cf7d55b1051387807405b3898efafa862997b4cba8aa5dbe657be794afeafd", size = 18874860 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/d5/37/e3de47233b3ba458b1021a6f95029198b2f68a83eb886a862640b6ec3e9a/numpy-2.1.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c8a0e34993b510fc19b9a2ce7f31cb8e94ecf6e924a40c0c9dd4f62d0aac47d9", size = 21150738 },
{ url = "https://files.pythonhosted.org/packages/69/30/f41c9b6dab4e1ec56b40d1daa81ce9f9f8d26da6d02af18768a883676bd5/numpy-2.1.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:7dd86dfaf7c900c0bbdcb8b16e2f6ddf1eb1fe39c6c8cca6e94844ed3152a8fd", size = 13758247 },
{ url = "https://files.pythonhosted.org/packages/e1/30/d2f71d3419ada3b3735e2ce9cea7dfe22c268ac9fbb24e0b5ac5fc222633/numpy-2.1.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:5889dd24f03ca5a5b1e8a90a33b5a0846d8977565e4ae003a63d22ecddf6782f", size = 5353756 },
{ url = "https://files.pythonhosted.org/packages/84/64/879bd6877488441cfaa578c96bdc4b43710d7e3ae4f8260fbd04821da395/numpy-2.1.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:59ca673ad11d4b84ceb385290ed0ebe60266e356641428c845b39cd9df6713ab", size = 6886809 },
{ url = "https://files.pythonhosted.org/packages/cd/c4/869f8db87f5c9df86b93ca42036f58911ff162dd091a41e617977ab50d1f/numpy-2.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13ce49a34c44b6de5241f0b38b07e44c1b2dcacd9e36c30f9c2fcb1bb5135db7", size = 13977367 },
{ url = "https://files.pythonhosted.org/packages/7d/4b/a509d346fffede6120cc17610cc500819417ee9c3da7f08d9aaf15cab2a3/numpy-2.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:913cc1d311060b1d409e609947fa1b9753701dac96e6581b58afc36b7ee35af6", size = 16326516 },
{ url = "https://files.pythonhosted.org/packages/4a/0c/fdba41b2ddeb7a052f84d85fb17d5e168af0e8034b3a2d6e369b7cc2966f/numpy-2.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:caf5d284ddea7462c32b8d4a6b8af030b6c9fd5332afb70e7414d7fdded4bfd0", size = 16702642 },
{ url = "https://files.pythonhosted.org/packages/bf/8d/a8da065a46515efdbcf81a92535b816ea17194ce5b767df1f13815c32179/numpy-2.1.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:57eb525e7c2a8fdee02d731f647146ff54ea8c973364f3b850069ffb42799647", size = 14475522 },
{ url = "https://files.pythonhosted.org/packages/b9/d2/5b7cf5851af48c35a73b85750b41f9b622760ee11659665a688e6b3f7cb7/numpy-2.1.1-cp310-cp310-win32.whl", hash = "sha256:9a8e06c7a980869ea67bbf551283bbed2856915f0a792dc32dd0f9dd2fb56728", size = 6535211 },
{ url = "https://files.pythonhosted.org/packages/e5/6a/b1f7d73fec1942ded4b474a78c3fdd11c4fad5232143f41dd7e6ae166080/numpy-2.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:d10c39947a2d351d6d466b4ae83dad4c37cd6c3cdd6d5d0fa797da56f710a6ae", size = 12865289 },
{ url = "https://files.pythonhosted.org/packages/f7/86/2c01070424a42b286ea0271203682c3d3e81e10ce695545b35768307b383/numpy-2.1.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0d07841fd284718feffe7dd17a63a2e6c78679b2d386d3e82f44f0108c905550", size = 21154850 },
{ url = "https://files.pythonhosted.org/packages/ef/4e/d3426d9e620a18bbb979f28e4dc7f9a2c35eb7cf726ffcb33545ebdd3e6a/numpy-2.1.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b5613cfeb1adfe791e8e681128f5f49f22f3fcaa942255a6124d58ca59d9528f", size = 13789477 },
{ url = "https://files.pythonhosted.org/packages/c6/6e/fb6b1b2da9f4c757f55b202f10b6af0fe4fee87ace6e830228a12ab8ae5d/numpy-2.1.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0b8cc2715a84b7c3b161f9ebbd942740aaed913584cae9cdc7f8ad5ad41943d0", size = 5351769 },
{ url = "https://files.pythonhosted.org/packages/58/9a/07c8a9dc7254f3265ae014e33768d1cfd8eb73ee6cf215f4ec3b497e4255/numpy-2.1.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:b49742cdb85f1f81e4dc1b39dcf328244f4d8d1ded95dea725b316bd2cf18c95", size = 6890872 },
{ url = "https://files.pythonhosted.org/packages/08/4e/3b50fa3b1e045793056ed5a1fc6f89dd897ff9cb00900ca6377fe552d442/numpy-2.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8d5f8a8e3bc87334f025194c6193e408903d21ebaeb10952264943a985066ca", size = 13984256 },
{ url = "https://files.pythonhosted.org/packages/d9/37/108d692f7e2544b9ae972c7bfa06c26717871c273ccec86470bc3132b04d/numpy-2.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d51fc141ddbe3f919e91a096ec739f49d686df8af254b2053ba21a910ae518bf", size = 16337778 },
{ url = "https://files.pythonhosted.org/packages/95/2d/df81a1be3be6d3a92fd12dfd6c26a0dc026b276136ec1056562342a484a2/numpy-2.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:98ce7fb5b8063cfdd86596b9c762bf2b5e35a2cdd7e967494ab78a1fa7f8b86e", size = 16710448 },
{ url = "https://files.pythonhosted.org/packages/8f/34/4b2e604c5c44bd64b6c85e89d88871b41e60233b3ddf97419b37ae5b0c72/numpy-2.1.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:24c2ad697bd8593887b019817ddd9974a7f429c14a5469d7fad413f28340a6d2", size = 14489002 },
{ url = "https://files.pythonhosted.org/packages/9f/0d/67c04b6bfefd0abbe7f60f7e4f11e3aca15d688faec1d1df089966105a9a/numpy-2.1.1-cp311-cp311-win32.whl", hash = "sha256:397bc5ce62d3fb73f304bec332171535c187e0643e176a6e9421a6e3eacef06d", size = 6533215 },
{ url = "https://files.pythonhosted.org/packages/94/7a/4c00332a3ca79702bbc86228afd0e84e6f91b47222ec8cdf00677dd16481/numpy-2.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:ae8ce252404cdd4de56dcfce8b11eac3c594a9c16c231d081fb705cf23bd4d9e", size = 12870550 },
{ url = "https://files.pythonhosted.org/packages/36/11/c573ef66c004f991989c2c6218229d9003164525549409aec5ec9afc0285/numpy-2.1.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c803b7934a7f59563db459292e6aa078bb38b7ab1446ca38dd138646a38203e", size = 20884403 },
{ url = "https://files.pythonhosted.org/packages/6b/6c/a9fbef5fd2f9685212af2a9e47485cde9357c3e303e079ccf85127516f2d/numpy-2.1.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6435c48250c12f001920f0751fe50c0348f5f240852cfddc5e2f97e007544cbe", size = 13493375 },
{ url = "https://files.pythonhosted.org/packages/34/f2/1316a6b08ad4c161d793abe81ff7181e9ae2e357a5b06352a383b9f8e800/numpy-2.1.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:3269c9eb8745e8d975980b3a7411a98976824e1fdef11f0aacf76147f662b15f", size = 5088823 },
{ url = "https://files.pythonhosted.org/packages/be/15/fabf78a6d4a10c250e87daf1cd901af05e71501380532ac508879cc46a7e/numpy-2.1.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:fac6e277a41163d27dfab5f4ec1f7a83fac94e170665a4a50191b545721c6521", size = 6619825 },
{ url = "https://files.pythonhosted.org/packages/9f/8a/76ddef3e621541ddd6984bc24d256a4e3422d036790cbbe449e6cad439ee/numpy-2.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fcd8f556cdc8cfe35e70efb92463082b7f43dd7e547eb071ffc36abc0ca4699b", size = 13696705 },
{ url = "https://files.pythonhosted.org/packages/cb/22/2b840d297183916a95847c11f82ae11e248fa98113490b2357f774651e1d/numpy-2.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b9cd92c8f8e7b313b80e93cedc12c0112088541dcedd9197b5dee3738c1201", size = 16041649 },
{ url = "https://files.pythonhosted.org/packages/c7/e8/6f4825d8f576cfd5e4d6515b9eec22bd618868bdafc8a8c08b446dcb65f0/numpy-2.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:afd9c680df4de71cd58582b51e88a61feed4abcc7530bcd3d48483f20fc76f2a", size = 16409358 },
{ url = "https://files.pythonhosted.org/packages/bf/f8/5edf1105b0dc24fd66fc3e9e7f3bca3d920cde571caaa4375ec1566073c3/numpy-2.1.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8661c94e3aad18e1ea17a11f60f843a4933ccaf1a25a7c6a9182af70610b2313", size = 14172488 },
{ url = "https://files.pythonhosted.org/packages/f4/c2/dddca3e69a024d2f249a5b68698328163cbdafb7e65fbf6d36373bbabf12/numpy-2.1.1-cp312-cp312-win32.whl", hash = "sha256:950802d17a33c07cba7fd7c3dcfa7d64705509206be1606f196d179e539111ed", size = 6237195 },
{ url = "https://files.pythonhosted.org/packages/b7/98/5640a09daa3abf0caeaefa6e7bf0d10c0aa28a77c84e507d6a716e0e23df/numpy-2.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:3fc5eabfc720db95d68e6646e88f8b399bfedd235994016351b1d9e062c4b270", size = 12568082 },
{ url = "https://files.pythonhosted.org/packages/6b/9e/8bc6f133bc6d359ccc9ec051853aded45504d217685191f31f46d36b7065/numpy-2.1.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:046356b19d7ad1890c751b99acad5e82dc4a02232013bd9a9a712fddf8eb60f5", size = 20834810 },
{ url = "https://files.pythonhosted.org/packages/32/1b/429519a2fa28681814c511574017d35f3aab7136d554cc65f4c1526dfbf5/numpy-2.1.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6e5a9cb2be39350ae6c8f79410744e80154df658d5bea06e06e0ac5bb75480d5", size = 13507739 },
{ url = "https://files.pythonhosted.org/packages/25/18/c732d7dd9896d11e4afcd487ac65e62f9fa0495563b7614eb850765361fa/numpy-2.1.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:d4c57b68c8ef5e1ebf47238e99bf27657511ec3f071c465f6b1bccbef12d4136", size = 5074465 },
{ url = "https://files.pythonhosted.org/packages/3e/37/838b7ae9262c370ab25312bab365492016f11810ffc03ebebbd54670b669/numpy-2.1.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:8ae0fd135e0b157365ac7cc31fff27f07a5572bdfc38f9c2d43b2aff416cc8b0", size = 6606418 },
{ url = "https://files.pythonhosted.org/packages/8b/b9/7ff3bfb71e316a5b43a124c4b7a5881ab12f3c32636014bef1f757f19dbd/numpy-2.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:981707f6b31b59c0c24bcda52e5605f9701cb46da4b86c2e8023656ad3e833cb", size = 13692464 },
{ url = "https://files.pythonhosted.org/packages/42/78/75bcf16e6737cd196ff7ecf0e1fd3f953293a34dff4fd93fb488e8308536/numpy-2.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ca4b53e1e0b279142113b8c5eb7d7a877e967c306edc34f3b58e9be12fda8df", size = 16037763 },
{ url = "https://files.pythonhosted.org/packages/23/99/36bf5ffe034d06df307bc783e25cf164775863166dcd878879559fe0379f/numpy-2.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e097507396c0be4e547ff15b13dc3866f45f3680f789c1a1301b07dadd3fbc78", size = 16410374 },
{ url = "https://files.pythonhosted.org/packages/7f/16/04c5dab564887d4cd31a9ed30e51467fa70d52a4425f5a9bd1eed5b3d34c/numpy-2.1.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7506387e191fe8cdb267f912469a3cccc538ab108471291636a96a54e599556", size = 14169873 },
{ url = "https://files.pythonhosted.org/packages/09/e0/d1b5adbf1731886c4186c59a9fa208585df9452a43a2b60e79af7c649717/numpy-2.1.1-cp313-cp313-win32.whl", hash = "sha256:251105b7c42abe40e3a689881e1793370cc9724ad50d64b30b358bbb3a97553b", size = 6234118 },
{ url = "https://files.pythonhosted.org/packages/d0/9c/2391ee6e9ebe77232ddcab29d92662b545e99d78c3eb3b4e26d59b9ca1ca/numpy-2.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:f212d4f46b67ff604d11fff7cc62d36b3e8714edf68e44e9760e19be38c03eb0", size = 12561742 },
{ url = "https://files.pythonhosted.org/packages/38/0e/c4f754f9e73f9bb520e8bf418c646f2c4f70c5d5f2bc561e90f884593193/numpy-2.1.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:920b0911bb2e4414c50e55bd658baeb78281a47feeb064ab40c2b66ecba85553", size = 20858403 },
{ url = "https://files.pythonhosted.org/packages/32/fc/d69092b9171efa0cb8079577e71ce0cac0e08f917d33f6e99c916ed51d44/numpy-2.1.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:bab7c09454460a487e631ffc0c42057e3d8f2a9ddccd1e60c7bb8ed774992480", size = 13519851 },
{ url = "https://files.pythonhosted.org/packages/14/2a/d7cf2cd9f15b23f623075546ea64a2c367cab703338ca22aaaecf7e704df/numpy-2.1.1-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:cea427d1350f3fd0d2818ce7350095c1a2ee33e30961d2f0fef48576ddbbe90f", size = 5115444 },
{ url = "https://files.pythonhosted.org/packages/8e/00/e87b2cb4afcecca3b678deefb8fa53005d7054f3b5c39596e5554e5d98f8/numpy-2.1.1-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:e30356d530528a42eeba51420ae8bf6c6c09559051887196599d96ee5f536468", size = 6628903 },
{ url = "https://files.pythonhosted.org/packages/ab/9d/337ae8721b3beec48c3413d71f2d44b2defbf3c6f7a85184fc18b7b61f4a/numpy-2.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8dfa9e94fc127c40979c3eacbae1e61fda4fe71d84869cc129e2721973231ef", size = 13665945 },
{ url = "https://files.pythonhosted.org/packages/c0/90/ee8668e84c5d5cc080ef3beb622c016adf19ca3aa51afe9dbdcc6a9baf59/numpy-2.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910b47a6d0635ec1bd53b88f86120a52bf56dcc27b51f18c7b4a2e2224c29f0f", size = 16023473 },
{ url = "https://files.pythonhosted.org/packages/38/a0/57c24b2131879183051dc698fbb53fd43b77c3fa85b6e6311014f2bc2973/numpy-2.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:13cc11c00000848702322af4de0147ced365c81d66053a67c2e962a485b3717c", size = 16400624 },
{ url = "https://files.pythonhosted.org/packages/bb/4c/14a41eb5c9548c6cee6af0936eabfd985c69230ffa2f2598321431a9aa0a/numpy-2.1.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:53e27293b3a2b661c03f79aa51c3987492bd4641ef933e366e0f9f6c9bf257ec", size = 14155072 },
{ url = "https://files.pythonhosted.org/packages/94/9a/d6a5d138b53ccdc002fdf07f0d1a960326c510e66cbfff7180c88d37c482/numpy-2.1.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7be6a07520b88214ea85d8ac8b7d6d8a1839b0b5cb87412ac9f49fa934eb15d5", size = 20982055 },
{ url = "https://files.pythonhosted.org/packages/40/b5/78d8b5481aeef6d2aad3724c6aa5398045d2657038dfe54c055cae1fcf75/numpy-2.1.1-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:52ac2e48f5ad847cd43c4755520a2317f3380213493b9d8a4c5e37f3b87df504", size = 6750222 },
{ url = "https://files.pythonhosted.org/packages/eb/9a/59a548ad57df8c432bfac4556504a9fae5c082ffea53d108fcf7ce2956e4/numpy-2.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50a95ca3560a6058d6ea91d4629a83a897ee27c00630aed9d933dff191f170cd", size = 16141236 },
{ url = "https://files.pythonhosted.org/packages/02/31/3cbba87e998748b2e33ca5bc6fcc5662c867037f980918e302aebdf139a2/numpy-2.1.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:99f4a9ee60eed1385a86e82288971a51e71df052ed0b2900ed30bc840c0f2e39", size = 12789681 },
]
[[package]]
name = "plotapp"
version = "0.1.1"
source = { url = "http://130.92.113.172/plotapp-0.1.1.zip" }
dependencies = [
{ name = "numpy" },
{ name = "pyqtgraph" },
{ name = "pyside6" },
]
sdist = { url = "http://130.92.113.172/plotapp-0.1.1.zip", hash = "sha256:e2ea15671d57ddfe077f369ef1f5809abbef1334fe549f3416c1e35134233276" }
[package.metadata]
requires-dist = [
{ name = "numpy", specifier = ">=1.23.0" },
{ name = "pyqtgraph", specifier = ">=0.13.1" },
{ name = "pyside6", specifier = ">=6.4.0" },
]
[[package]]
name = "pyqtgraph"
version = "0.13.7"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "numpy" },
]
sdist = { url = "https://files.pythonhosted.org/packages/33/d9/b62d5cddb3caa6e5145664bee5ed90223dee23ca887ed3ee479f2609e40a/pyqtgraph-0.13.7.tar.gz", hash = "sha256:64f84f1935c6996d0e09b1ee66fe478a7771e3ca6f3aaa05f00f6e068321d9e3", size = 2343380 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/7b/34/5702b3b7cafe99be1d94b42f100e8cc5e6957b761fcb1cf5f72d492851da/pyqtgraph-0.13.7-py3-none-any.whl", hash = "sha256:7754edbefb6c367fa0dfb176e2d0610da3ada20aa7a5318516c74af5fb72bf7a", size = 1925473 },
]
[[package]]
name = "pyside6"
version = "6.7.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "pyside6-addons" },
{ name = "pyside6-essentials" },
{ name = "shiboken6" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/df/57/69b9104f6a30a7f2c0ed78c425304ab964e9b10907b5e1d9d744dd1f714e/PySide6-6.7.2-cp39-abi3-macosx_11_0_universal2.whl", hash = "sha256:602debef9ec159b0db48f83b38a0e43e2dad3961f7d99f708d98620f04e9112b", size = 530200 },
{ url = "https://files.pythonhosted.org/packages/34/a6/278c7ed2f76ccfa471c49eb66538243dc0d892fe481b9b6a8bbad8846ba0/PySide6-6.7.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:15e7696a09072ee977f6e6179ab1e48184953df8417bcaa83cfadf0b79747242", size = 530812 },
{ url = "https://files.pythonhosted.org/packages/71/d7/794d490899f0118b2a40221508e4fd7ea67ffd6e790a627a39e7582841cb/PySide6-6.7.2-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:6e0acb471535de303f56e3077aa86f53496b4de659b99ecce80520bcee508a63", size = 530721 },
{ url = "https://files.pythonhosted.org/packages/c2/ee/15cb7e277b3c88806d9baaa334b7923b2f1bdc461b38461bc70d368a8481/PySide6-6.7.2-cp39-abi3-win_amd64.whl", hash = "sha256:f73ae0de77d67f51ca3ce8207b12d3a5fa0107d3d5b6e4aeb3b53ee842b0927a", size = 537990 },
]
[[package]]
name = "pyside6-addons"
version = "6.7.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "pyside6-essentials" },
{ name = "shiboken6" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/3f/8f/8ba019ec6e413c48e2852efea35215d2a340dd0285701712f017dc7ca698/PySide6_Addons-6.7.2-cp39-abi3-macosx_11_0_universal2.whl", hash = "sha256:90b995efce61058d995c603ea480a9a3054fe8206739dcbc273fc3b53d40650f", size = 258221435 },
{ url = "https://files.pythonhosted.org/packages/7f/f2/2128d3876f0c45fcb73000b272be64e1f3b1189f77d79820d7a706051e55/PySide6_Addons-6.7.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:94b9bf6a2a4a7ac671e1776633e50d51326c86f4184f1c6e556f4dd5498fd52a", size = 137499800 },
{ url = "https://files.pythonhosted.org/packages/e8/3c/6250b74da83a8a8a26c27d8a3041a31880b20ede88d004ef9dbe49d108bc/PySide6_Addons-6.7.2-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:22979b1aa09d9cf1d7a86c8a9aa0cb4791d6bd1cc94f96c5b6780c5ef8a9e34e", size = 122681790 },
{ url = "https://files.pythonhosted.org/packages/8a/47/35794fc8c8cab42d924ac0287dfe489201c3743066a1eea34cdde2926cc1/PySide6_Addons-6.7.2-cp39-abi3-win_amd64.whl", hash = "sha256:ebf549eb25998665d8e4ec24014fbbd37bebc5ecdcb050b34db1e1c03e1bf81d", size = 123043845 },
]
[[package]]
name = "pyside6-essentials"
version = "6.7.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "shiboken6" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/3f/41/c97a442a9e334e0c8025465ee63d7b303c5ab42a1e323c2b9cebca58a936/PySide6_Essentials-6.7.2-cp39-abi3-macosx_11_0_universal2.whl", hash = "sha256:4d13666e796ec140ecfb432c4f3d7baef6dfafc11929985a83b22c0025532fb7", size = 153954994 },
{ url = "https://files.pythonhosted.org/packages/75/be/527e41a7744142d931e46685dd9c2bdfff39432962abf8a5263be319c2cb/PySide6_Essentials-6.7.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a1a4c09f1e916b9cfe53151fe4a503a6acb1f6621ba28204d1bfe636f80d6780", size = 87668883 },
{ url = "https://files.pythonhosted.org/packages/42/e0/40994873471ab7fabbff098560a9fe0c08a2182c2eb501e31b1148e7bd44/PySide6_Essentials-6.7.2-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:9135513e1c4c6e2fbb1e4f9afcb3d42e54708b0d9ed870cb3213ea4874cafa1e", size = 87969972 },
{ url = "https://files.pythonhosted.org/packages/69/55/cff72ecb1d36422e7f41f8d64d49c7c7e1f8dc6648e2b30ba72950883444/PySide6_Essentials-6.7.2-cp39-abi3-win_amd64.whl", hash = "sha256:0111d5fa8cf826de3ca9d82fed54726cce116d57f454f88a6467578652032d69", size = 78946678 },
]
[[package]]
name = "scipy"
version = "1.14.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "numpy" },
]
sdist = { url = "https://files.pythonhosted.org/packages/62/11/4d44a1f274e002784e4dbdb81e0ea96d2de2d1045b2132d5af62cc31fd28/scipy-1.14.1.tar.gz", hash = "sha256:5a275584e726026a5699459aa72f828a610821006228e841b94275c4a7c08417", size = 58620554 }
wheels = [
{ url = "https://files.pythonhosted.org/packages/64/68/3bc0cfaf64ff507d82b1e5d5b64521df4c8bf7e22bc0b897827cbee9872c/scipy-1.14.1-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:b28d2ca4add7ac16ae8bb6632a3c86e4b9e4d52d3e34267f6e1b0c1f8d87e389", size = 39069598 },
{ url = "https://files.pythonhosted.org/packages/43/a5/8d02f9c372790326ad405d94f04d4339482ec082455b9e6e288f7100513b/scipy-1.14.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d0d2821003174de06b69e58cef2316a6622b60ee613121199cb2852a873f8cf3", size = 29879676 },
{ url = "https://files.pythonhosted.org/packages/07/42/0e0bea9666fcbf2cb6ea0205db42c81b1f34d7b729ba251010edf9c80ebd/scipy-1.14.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8bddf15838ba768bb5f5083c1ea012d64c9a444e16192762bd858f1e126196d0", size = 23088696 },
{ url = "https://files.pythonhosted.org/packages/15/47/298ab6fef5ebf31b426560e978b8b8548421d4ed0bf99263e1eb44532306/scipy-1.14.1-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:97c5dddd5932bd2a1a31c927ba5e1463a53b87ca96b5c9bdf5dfd6096e27efc3", size = 25470699 },
{ url = "https://files.pythonhosted.org/packages/d8/df/cdb6be5274bc694c4c22862ac3438cb04f360ed9df0aecee02ce0b798380/scipy-1.14.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2ff0a7e01e422c15739ecd64432743cf7aae2b03f3084288f399affcefe5222d", size = 35606631 },
{ url = "https://files.pythonhosted.org/packages/47/78/b0c2c23880dd1e99e938ad49ccfb011ae353758a2dc5ed7ee59baff684c3/scipy-1.14.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e32dced201274bf96899e6491d9ba3e9a5f6b336708656466ad0522d8528f69", size = 41178528 },
{ url = "https://files.pythonhosted.org/packages/5d/aa/994b45c34b897637b853ec04334afa55a85650a0d11dacfa67232260fb0a/scipy-1.14.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8426251ad1e4ad903a4514712d2fa8fdd5382c978010d1c6f5f37ef286a713ad", size = 42784535 },
{ url = "https://files.pythonhosted.org/packages/e7/1c/8daa6df17a945cb1a2a1e3bae3c49643f7b3b94017ff01a4787064f03f84/scipy-1.14.1-cp310-cp310-win_amd64.whl", hash = "sha256:a49f6ed96f83966f576b33a44257d869756df6cf1ef4934f59dd58b25e0327e5", size = 44772117 },
{ url = "https://files.pythonhosted.org/packages/b2/ab/070ccfabe870d9f105b04aee1e2860520460ef7ca0213172abfe871463b9/scipy-1.14.1-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:2da0469a4ef0ecd3693761acbdc20f2fdeafb69e6819cc081308cc978153c675", size = 39076999 },
{ url = "https://files.pythonhosted.org/packages/a7/c5/02ac82f9bb8f70818099df7e86c3ad28dae64e1347b421d8e3adf26acab6/scipy-1.14.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:c0ee987efa6737242745f347835da2cc5bb9f1b42996a4d97d5c7ff7928cb6f2", size = 29894570 },
{ url = "https://files.pythonhosted.org/packages/ed/05/7f03e680cc5249c4f96c9e4e845acde08eb1aee5bc216eff8a089baa4ddb/scipy-1.14.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3a1b111fac6baec1c1d92f27e76511c9e7218f1695d61b59e05e0fe04dc59617", size = 23103567 },
{ url = "https://files.pythonhosted.org/packages/5e/fc/9f1413bef53171f379d786aabc104d4abeea48ee84c553a3e3d8c9f96a9c/scipy-1.14.1-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8475230e55549ab3f207bff11ebfc91c805dc3463ef62eda3ccf593254524ce8", size = 25499102 },
{ url = "https://files.pythonhosted.org/packages/c2/4b/b44bee3c2ddc316b0159b3d87a3d467ef8d7edfd525e6f7364a62cd87d90/scipy-1.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:278266012eb69f4a720827bdd2dc54b2271c97d84255b2faaa8f161a158c3b37", size = 35586346 },
{ url = "https://files.pythonhosted.org/packages/93/6b/701776d4bd6bdd9b629c387b5140f006185bd8ddea16788a44434376b98f/scipy-1.14.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fef8c87f8abfb884dac04e97824b61299880c43f4ce675dd2cbeadd3c9b466d2", size = 41165244 },
{ url = "https://files.pythonhosted.org/packages/06/57/e6aa6f55729a8f245d8a6984f2855696c5992113a5dc789065020f8be753/scipy-1.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b05d43735bb2f07d689f56f7b474788a13ed8adc484a85aa65c0fd931cf9ccd2", size = 42817917 },
{ url = "https://files.pythonhosted.org/packages/ea/c2/5ecadc5fcccefaece775feadcd795060adf5c3b29a883bff0e678cfe89af/scipy-1.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:716e389b694c4bb564b4fc0c51bc84d381735e0d39d3f26ec1af2556ec6aad94", size = 44781033 },
{ url = "https://files.pythonhosted.org/packages/c0/04/2bdacc8ac6387b15db6faa40295f8bd25eccf33f1f13e68a72dc3c60a99e/scipy-1.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:631f07b3734d34aced009aaf6fedfd0eb3498a97e581c3b1e5f14a04164a456d", size = 39128781 },
{ url = "https://files.pythonhosted.org/packages/c8/53/35b4d41f5fd42f5781dbd0dd6c05d35ba8aa75c84ecddc7d44756cd8da2e/scipy-1.14.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:af29a935803cc707ab2ed7791c44288a682f9c8107bc00f0eccc4f92c08d6e07", size = 29939542 },
{ url = "https://files.pythonhosted.org/packages/66/67/6ef192e0e4d77b20cc33a01e743b00bc9e68fb83b88e06e636d2619a8767/scipy-1.14.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:2843f2d527d9eebec9a43e6b406fb7266f3af25a751aa91d62ff416f54170bc5", size = 23148375 },
{ url = "https://files.pythonhosted.org/packages/f6/32/3a6dedd51d68eb7b8e7dc7947d5d841bcb699f1bf4463639554986f4d782/scipy-1.14.1-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:eb58ca0abd96911932f688528977858681a59d61a7ce908ffd355957f7025cfc", size = 25578573 },
{ url = "https://files.pythonhosted.org/packages/f0/5a/efa92a58dc3a2898705f1dc9dbaf390ca7d4fba26d6ab8cfffb0c72f656f/scipy-1.14.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30ac8812c1d2aab7131a79ba62933a2a76f582d5dbbc695192453dae67ad6310", size = 35319299 },
{ url = "https://files.pythonhosted.org/packages/8e/ee/8a26858ca517e9c64f84b4c7734b89bda8e63bec85c3d2f432d225bb1886/scipy-1.14.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f9ea80f2e65bdaa0b7627fb00cbeb2daf163caa015e59b7516395fe3bd1e066", size = 40849331 },
{ url = "https://files.pythonhosted.org/packages/a5/cd/06f72bc9187840f1c99e1a8750aad4216fc7dfdd7df46e6280add14b4822/scipy-1.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:edaf02b82cd7639db00dbff629995ef185c8df4c3ffa71a5562a595765a06ce1", size = 42544049 },
{ url = "https://files.pythonhosted.org/packages/aa/7d/43ab67228ef98c6b5dd42ab386eae2d7877036970a0d7e3dd3eb47a0d530/scipy-1.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:2ff38e22128e6c03ff73b6bb0f85f897d2362f8c052e3b8ad00532198fbdae3f", size = 44521212 },
{ url = "https://files.pythonhosted.org/packages/50/ef/ac98346db016ff18a6ad7626a35808f37074d25796fd0234c2bb0ed1e054/scipy-1.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:1729560c906963fc8389f6aac023739ff3983e727b1a4d87696b7bf108316a79", size = 39091068 },
{ url = "https://files.pythonhosted.org/packages/b9/cc/70948fe9f393b911b4251e96b55bbdeaa8cca41f37c26fd1df0232933b9e/scipy-1.14.1-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:4079b90df244709e675cdc8b93bfd8a395d59af40b72e339c2287c91860deb8e", size = 29875417 },
{ url = "https://files.pythonhosted.org/packages/3b/2e/35f549b7d231c1c9f9639f9ef49b815d816bf54dd050da5da1c11517a218/scipy-1.14.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:e0cf28db0f24a38b2a0ca33a85a54852586e43cf6fd876365c86e0657cfe7d73", size = 23084508 },
{ url = "https://files.pythonhosted.org/packages/3f/d6/b028e3f3e59fae61fb8c0f450db732c43dd1d836223a589a8be9f6377203/scipy-1.14.1-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0c2f95de3b04e26f5f3ad5bb05e74ba7f68b837133a4492414b3afd79dfe540e", size = 25503364 },
{ url = "https://files.pythonhosted.org/packages/a7/2f/6c142b352ac15967744d62b165537a965e95d557085db4beab2a11f7943b/scipy-1.14.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b99722ea48b7ea25e8e015e8341ae74624f72e5f21fc2abd45f3a93266de4c5d", size = 35292639 },
{ url = "https://files.pythonhosted.org/packages/56/46/2449e6e51e0d7c3575f289f6acb7f828938eaab8874dbccfeb0cd2b71a27/scipy-1.14.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5149e3fd2d686e42144a093b206aef01932a0059c2a33ddfa67f5f035bdfe13e", size = 40798288 },
{ url = "https://files.pythonhosted.org/packages/32/cd/9d86f7ed7f4497c9fd3e39f8918dd93d9f647ba80d7e34e4946c0c2d1a7c/scipy-1.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e4f5a7c49323533f9103d4dacf4e4f07078f360743dec7f7596949149efeec06", size = 42524647 },
{ url = "https://files.pythonhosted.org/packages/f5/1b/6ee032251bf4cdb0cc50059374e86a9f076308c1512b61c4e003e241efb7/scipy-1.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:baff393942b550823bfce952bb62270ee17504d02a1801d7fd0719534dfb9c84", size = 44469524 },
]
[[package]]
name = "shiboken6"
version = "6.7.2"
source = { registry = "https://pypi.org/simple" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/64/d4/01c4b37fe224c0d3200a060bfbc1bb912a2a36995178f2dabb19f4a12ff7/shiboken6-6.7.2-cp39-abi3-macosx_11_0_universal2.whl", hash = "sha256:50c33ac6317b673a1eb97a9abaafccb162c4ba0c9ca658a8e449c49a8aadc379", size = 387480 },
{ url = "https://files.pythonhosted.org/packages/57/ba/3e38bb62b285d73e46a86f44e7765cea5c42a79b0bba867dfabbdd12b54d/shiboken6-6.7.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:70e80737b27cd5d83504b373013b55e70462bd4a27217d919ff9a83958731990", size = 188970 },
{ url = "https://files.pythonhosted.org/packages/7c/bb/06a19d1b00d46b3840595e43d7fa648b21683e4e98c4a69d0ea06aaf5e7f/shiboken6-6.7.2-cp39-abi3-manylinux_2_31_aarch64.whl", hash = "sha256:98bedf9a15f1d8ba1af3e4d1e7527f7946ce36da541e08074fd9dc9ab5ff1adf", size = 177052 },
{ url = "https://files.pythonhosted.org/packages/11/9f/50ed659cbce4664374707bf416e2fac2ff94de3253ab093d5dee7f53e02f/shiboken6-6.7.2-cp39-abi3-win_amd64.whl", hash = "sha256:9024e6afb2af1568ebfc8a5d07e4ff6c8829f40923eeb28901f535463e2b6b65", size = 1090289 },
]

1
wolfram.txt Normal file
View File

@@ -0,0 +1 @@
{A = a * x_1 + b * y_1 + e; B = c * x_1 + d * y_1 + f; C = a * x_2 + b * y_2 + e; D = c * x_2 + d * y_2 + f; E = a * x_3 + b * y_3 + e; F = c * x_3 + d * y_3 + f} solve for a, b, c, d, e, f