lijian 3 anni fa
parent
commit
4c44be0e11

+ 76 - 0
src/main/java/com/gct/tools/etlcamelhuge/entity/ZDJG_WELL.java

@@ -0,0 +1,76 @@
1
+package com.gct.tools.etlcamelhuge.entity;
2
+
3
+import lombok.Data;
4
+
5
+@Data
6
+public class ZDJG_WELL {
7
+    private String well_common_name;
8
+    private String well_id;
9
+    private String prod_date;
10
+    private String sys_date;
11
+    private String is_device_close;
12
+    private String is_well_close;
13
+    private double prod_time;
14
+    private double stroke;
15
+    private double frequence;
16
+    private double bj;
17
+    private double bs;
18
+    private double cmd;
19
+    private double dym;
20
+    private double yzzj;
21
+    private double sxzh;
22
+    private double xxzh;
23
+    private double qyb;
24
+    private String sgt;//要传入诊断算法的功图数据
25
+    private String bgt;
26
+    private String zdjg;
27
+    private String refrencewell_id;
28
+    private String refrencecjsj;
29
+    private String retrencesgt;
30
+    private double liq_prod_daily;
31
+    private double oil_prod_daily;
32
+    private double gas_prod_daily;
33
+    private double water_prod_daily;
34
+    private String eczdjg;
35
+    private double bx;
36
+    private double hsl;
37
+    private double bdxs;
38
+    private double llpl;
39
+    private double zcc;
40
+    private double ycc;
41
+    private double sjcc;
42
+    private double yxcc;
43
+    private double ccss;
44
+    private double lsss;
45
+    private double gyss;
46
+    private double pumpdepth;
47
+    private String bz;
48
+    private double hy;
49
+    private double yy;
50
+    private double ty;
51
+    private double sxdl;
52
+    private double xxdl;
53
+    private double stroke_ratio;
54
+    private double ybz;
55
+    private double sbz;
56
+    private double model;
57
+    private String errorInfo;
58
+    private String zd_init_sgt;//准东这边的原始功图数据
59
+    private double dcdy;
60
+    private double hjwd;
61
+    private int xhqd;
62
+    private double ybdl;
63
+    private String sbh;
64
+    private int gtzx;//功图是否需要转型的标识,1为需要
65
+    private double pressure;//压力
66
+    private String zyq;//作业区
67
+    private String jlz;//采油站
68
+    private String zh;//计量站
69
+    private double sub_time;//间隔时长
70
+    private double sub_liq_prod_daily;//间隔产液量
71
+    private  double zq; //上行电流、
72
+    private  double dcxc; //下行电流
73
+    private double xsd;
74
+    private double jljcyl;
75
+    private String type;
76
+}

+ 475 - 0
src/main/java/com/gct/tools/etlcamelhuge/util/CALUtil.java

@@ -0,0 +1,475 @@
1
+package com.gct.tools.etlcamelhuge.util;
2
+
3
+import java.math.BigDecimal;
4
+import java.text.DecimalFormat;
5
+
6
+public class CALUtil
7
+
8
+{
9
+
10
+  //默认除法运算精度
11
+
12
+  private static final int DEFAULT_DIV_SCALE = 2;
13
+
14
+ 
15
+
16
+ /**
17
+
18
+  * 提供精确的加法运算。
19
+
20
+  * @param v1
21
+
22
+  * @param v2
23
+
24
+  * @return 两个参数的和
25
+
26
+  */
27
+
28
+  public static double add(double v1, double v2)
29
+
30
+  {
31
+
32
+      BigDecimal b1 = new BigDecimal(Double.toString(v1));
33
+
34
+      BigDecimal b2 = new BigDecimal(Double.toString(v2));
35
+
36
+      return b1.add(b2).doubleValue();
37
+
38
+  }
39
+
40
+  /**
41
+
42
+   * 提供精确的加法运算
43
+
44
+   * @param v1  
45
+
46
+   * @param v2
47
+
48
+   * @return 两个参数数学加和,以字符串格式返回
49
+
50
+   */
51
+
52
+  public static String add(String v1, String v2)
53
+
54
+  {
55
+
56
+      BigDecimal b1 = new BigDecimal(v1);
57
+
58
+      BigDecimal b2 = new BigDecimal(v2);
59
+
60
+      return b1.add(b2).toString();
61
+
62
+  }
63
+
64
+ 
65
+
66
+ /**
67
+
68
+  * 提供精确的减法运算。
69
+
70
+  * @param v1
71
+
72
+  * @param v2
73
+
74
+  * @return 两个参数的差
75
+
76
+  */
77
+
78
+  public static double subtract(double v1, double v2)
79
+
80
+  {
81
+
82
+      BigDecimal b1 = new BigDecimal(Double.toString(v1));
83
+
84
+      BigDecimal b2 = new BigDecimal(Double.toString(v2));
85
+
86
+      return b1.subtract(b2).doubleValue();
87
+
88
+  }
89
+
90
+ 
91
+
92
+  /**
93
+
94
+   * 提供精确的减法运算
95
+
96
+   * @param v1
97
+
98
+   * @param v2
99
+
100
+   * @return 两个参数数学差,以字符串格式返回
101
+
102
+   */
103
+
104
+  public static String subtract(String v1, String v2)
105
+
106
+  {
107
+
108
+      BigDecimal b1 = new BigDecimal(v1);
109
+
110
+      BigDecimal b2 = new BigDecimal(v2);
111
+
112
+      return b1.subtract(b2).toString();
113
+
114
+  }
115
+
116
+ 
117
+
118
+ 
119
+
120
+  /**
121
+
122
+  * 提供精确的乘法运算。
123
+
124
+  * @param v1
125
+
126
+  * @param v2
127
+
128
+  * @return 两个参数的积
129
+
130
+  */
131
+
132
+  public static double multiply(double v1, double v2)
133
+
134
+  {
135
+
136
+      BigDecimal b1 = new BigDecimal(Double.toString(v1));
137
+
138
+      BigDecimal b2 = new BigDecimal(Double.toString(v2));
139
+
140
+      return b1.multiply(b2).doubleValue();
141
+
142
+  }
143
+
144
+ 
145
+
146
+  /**
147
+
148
+   * 提供精确的乘法运算
149
+
150
+   * @param v1
151
+
152
+   * @param v2
153
+
154
+   * @return 两个参数的数学积,以字符串格式返回
155
+
156
+   */
157
+
158
+  public static String multiply(String v1, String v2)
159
+
160
+  {
161
+
162
+      BigDecimal b1 = new BigDecimal(v1);
163
+
164
+      BigDecimal b2 = new BigDecimal(v2);
165
+
166
+      return b1.multiply(b2).toString();
167
+
168
+  }
169
+
170
+ 
171
+
172
+  /**
173
+
174
+  * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
175
+
176
+  * 小数点以后10位,以后的数字四舍五入,舍入模式采用ROUND_HALF_EVEN
177
+
178
+  * @param v1
179
+
180
+  * @param v2
181
+
182
+  * @return 两个参数的商
183
+
184
+  */
185
+
186
+  public static double divide(double v1, double v2)
187
+
188
+  {
189
+
190
+      return divide(v1, v2, DEFAULT_DIV_SCALE);
191
+
192
+  }
193
+
194
+ 
195
+
196
+  /**
197
+
198
+   * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
199
+
200
+   * 定精度,以后的数字四舍五入。舍入模式采用ROUND_HALF_EVEN
201
+
202
+   * @param v1
203
+
204
+   * @param v2
205
+
206
+   * @param scale 表示需要精确到小数点以后几位。
207
+
208
+   * @return 两个参数的商
209
+
210
+   */
211
+
212
+  public static double divide(double v1,double v2, int scale)
213
+
214
+  {
215
+
216
+      return divide(v1, v2, scale, BigDecimal.ROUND_HALF_EVEN);
217
+
218
+  }
219
+
220
+ 
221
+
222
+  /**
223
+
224
+   * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
225
+
226
+   * 定精度,以后的数字四舍五入。舍入模式采用用户指定舍入模式
227
+
228
+   * @param v1
229
+
230
+   * @param v2
231
+
232
+   * @param scale 表示需要精确到小数点以后几位
233
+
234
+   * @param round_mode 表示用户指定的舍入模式
235
+
236
+   * @return 两个参数的商
237
+
238
+   */
239
+
240
+  public static double divide(double v1,double v2,int scale, int round_mode){
241
+
242
+          if(scale < 0)
243
+
244
+          {
245
+
246
+              throw new IllegalArgumentException("The scale must be a positive integer or zero");
247
+
248
+          }
249
+
250
+          BigDecimal b1 = new BigDecimal(Double.toString(v1));
251
+
252
+          BigDecimal b2 = new BigDecimal(Double.toString(v2));
253
+
254
+          return b1.divide(b2, scale, round_mode).doubleValue();
255
+
256
+  }
257
+
258
+ 
259
+
260
+  /**
261
+
262
+   * 提供(相对)精确的除法运算,当发生除不尽的情况时,精确到
263
+
264
+   * 小数点以后10位,以后的数字四舍五入,舍入模式采用ROUND_HALF_EVEN
265
+
266
+   * @param v1
267
+
268
+   * @param v2
269
+
270
+   * @return 两个参数的商,以字符串格式返回
271
+
272
+   */
273
+
274
+  public static String divide(String v1, String v2)
275
+
276
+  {
277
+
278
+      return divide(v1, v2, DEFAULT_DIV_SCALE);
279
+
280
+  }
281
+
282
+ 
283
+
284
+  /**
285
+
286
+   * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
287
+
288
+   * 定精度,以后的数字四舍五入。舍入模式采用ROUND_HALF_EVEN
289
+
290
+   * @param v1
291
+
292
+   * @param v2
293
+
294
+   * @param scale 表示需要精确到小数点以后几位
295
+
296
+   * @return 两个参数的商,以字符串格式返回
297
+
298
+   */
299
+
300
+  public static String divide(String v1, String v2, int scale)
301
+
302
+  {
303
+
304
+      return divide(v1, v2, DEFAULT_DIV_SCALE, BigDecimal.ROUND_HALF_EVEN);
305
+
306
+  }
307
+
308
+ 
309
+
310
+  /**
311
+
312
+   * 提供(相对)精确的除法运算。当发生除不尽的情况时,由scale参数指
313
+
314
+   * 定精度,以后的数字四舍五入。舍入模式采用用户指定舍入模式
315
+
316
+   * @param v1
317
+
318
+   * @param v2
319
+
320
+   * @param scale 表示需要精确到小数点以后几位
321
+
322
+   * @param round_mode 表示用户指定的舍入模式
323
+
324
+   * @return 两个参数的商,以字符串格式返回
325
+
326
+   */
327
+
328
+  public static String divide(String v1, String v2, int scale, int round_mode)
329
+
330
+  {
331
+
332
+      if(scale < 0)
333
+
334
+      {
335
+
336
+          throw new IllegalArgumentException("The scale must be a positive integer or zero");
337
+
338
+      }
339
+
340
+      BigDecimal b1 = new BigDecimal(v1);
341
+
342
+      BigDecimal b2 = new BigDecimal(v2);
343
+
344
+      return b1.divide(b2, scale, round_mode).toString();
345
+
346
+  }
347
+
348
+ 
349
+
350
+  /**
351
+
352
+   * 提供精确的小数位四舍五入处理,舍入模式采用ROUND_HALF_EVEN
353
+
354
+   * @param v 需要四舍五入的数字
355
+
356
+   * @param scale 小数点后保留几位
357
+
358
+   * @return 四舍五入后的结果
359
+
360
+   */
361
+
362
+  public static double round(double v,int scale)
363
+
364
+  {
365
+
366
+      return round(v, scale, BigDecimal.ROUND_HALF_EVEN);
367
+
368
+  }
369
+  public static double round(double v)
370
+  {
371
+	  
372
+	  return round(v,2,BigDecimal.ROUND_HALF_EVEN);
373
+	  
374
+  }
375
+  /**
376
+
377
+   * 提供精确的小数位四舍五入处理
378
+
379
+   * @param v 需要四舍五入的数字
380
+
381
+   * @param scale 小数点后保留几位
382
+
383
+   * @param round_mode 指定的舍入模式
384
+
385
+   * @return 四舍五入后的结果
386
+
387
+   */
388
+
389
+  public static double round(double v, int scale, int round_mode)
390
+
391
+  {
392
+
393
+     if(scale<0)
394
+
395
+     {
396
+
397
+         throw new IllegalArgumentException("The scale must be a positive integer or zero");
398
+
399
+     }
400
+
401
+     BigDecimal b = new BigDecimal(Double.toString(v));
402
+
403
+     return b.setScale(scale, round_mode).doubleValue();
404
+
405
+  }
406
+
407
+ 
408
+
409
+  /**
410
+
411
+   * 提供精确的小数位四舍五入处理,舍入模式采用ROUND_HALF_EVEN
412
+
413
+   * @param v 需要四舍五入的数字
414
+
415
+   * @param scale 小数点后保留几位
416
+
417
+   * @return 四舍五入后的结果,以字符串格式返回
418
+
419
+   */
420
+
421
+  public static String round(String v, int scale)
422
+
423
+  {
424
+
425
+    return round(v, scale, BigDecimal.ROUND_HALF_EVEN);
426
+
427
+  }
428
+
429
+  /**
430
+
431
+   * 提供精确的小数位四舍五入处理
432
+
433
+   * @param v 需要四舍五入的数字
434
+
435
+   * @param scale 小数点后保留几位
436
+
437
+   * @param round_mode 指定的舍入模式
438
+
439
+   * @return 四舍五入后的结果,以字符串格式返回
440
+
441
+   */
442
+
443
+  public static String round(String v, int scale, int round_mode)
444
+
445
+  {
446
+
447
+     if(scale<0)
448
+
449
+     {
450
+
451
+         throw new IllegalArgumentException("The scale must be a positive integer or zero");
452
+
453
+     }
454
+
455
+     BigDecimal b = new BigDecimal(v);
456
+
457
+     return b.setScale(scale, round_mode).toString();
458
+
459
+  }
460
+//计算绝对值
461
+public static double abs(double bdyl, double xtyl) {
462
+	if(bdyl>xtyl){
463
+		return bdyl-xtyl;
464
+	}else{
465
+		return xtyl-bdyl;
466
+	}
467
+	
468
+}
469
+//保留2位有效数字
470
+public static double round2(double in) {
471
+	DecimalFormat    df   = new DecimalFormat("######0.00");
472
+	return Double.valueOf(df.format(in));
473
+}
474
+
475
+}

+ 130 - 0
src/main/java/com/gct/tools/etlcamelhuge/util/TransUtil.java

@@ -0,0 +1,130 @@
1
+package com.gct.tools.etlcamelhuge.util;
2
+
3
+import java.text.DecimalFormat;
4
+
5
+/**
6
+ * @author: Lijian
7
+ * @create: 2020-11-16 11:34
8
+ **/
9
+public class TransUtil {
10
+
11
+
12
+    private static final DecimalFormat decimalFormat = new DecimalFormat("######0.00");
13
+
14
+    String displacement = "[0,0,0,0,0.001,0.002,0.003,0.004,0.006,0.007,0.009,0.011,0.014,0.016,0.019,0.021,0.024,0.028,0.031,0.034," +
15
+            "0.038,0.042,0.046,0.05,0.054,0.058,0.062,0.067,0.071,0.076,0.08,0.085,0.09,0.094,0.099,0.104,0.109,0.114,0.119,0.123," +
16
+            "0.128,0.133,0.138,0.143,0.147,0.152,0.157,0.162,0.166,0.171,0.175,0.18,0.184,0.189,0.193,0.197,0.202,0.206,0.21,0.214," +
17
+            "0.218,0.222,0.226,0.229,0.233,0.237,0.24,0.244,0.247,0.25,0.254,0.257,0.26,0.263,0.266,0.269,0.271,0.274,0.277,0.279," +
18
+            "0.282,0.284,0.286,0.288,0.29,0.292,0.294,0.296,0.297,0.299,0.3,0.302,0.303,0.304,0.305,0.306,0.307,0.307,0.308,0.308," +
19
+            "0.309,0.309,0.309,0.309,0.308,0.308,0.307,0.307,0.306,0.305,0.304,0.303,0.291,0.289,0.287,0.285,0.283,0.281,0.279,0.276," +
20
+            "0.274,0.271,0.268,0.265,0.262,0.259,0.256,0.252,0.249,0.245,0.242,0.238,0.234,0.231,0.227,0.223,0.219,0.215,0.21,0.206," +
21
+            "0.202,0.198,0.193,0.189,0.184,0.18,0.176,0.171,0.167,0.162,0.157,0.153,0.148,0.144,0.139,0.135,0.13,0.126,0.121,0.117," +
22
+            "0.112,0.108,0.103,0.099,0.095,0.09,0.086,0.082,0.078,0.074,0.07,0.066,0.062,0.058,0.054,0.051,0.047,0.043,0.04,0.037," +
23
+            "0.034,0.031,0.028,0.025,0.022,0.02,0.017,0.015,0.013,0.011,0.009,0.007,0.006,0.004,0.003,0.002,0.001,0,0,0]";
24
+
25
+    String dispLoad = "[24.17,24.89,24.63,24.85,25.52,25.99,26.55,26.89,27.83,28.51,29.36,30.36,31.54,32.62,32.81,31.61," +
26
+            "30.65,30.11,30.66,31.58,32.06,32.43,31.42,30.77,30.57,30.41,31.29,31.78,31.69,31.49,30.62,30.36,30.77,30.94," +
27
+            "31.73,31.42,31.08,30.71,30.24,30.58,30.85,30.86,31.36,30.74,30.57,30.59,30.04,30.71,30.77,30.65,30.94,30.28," +
28
+            "30.16,30.44,30.09,30.86,30.6,30.38,30.57,29.85,30.33,30.33,30.09,30.84,30.26,30.46,30.5,29.89,30.49,30.11,30.3," +
29
+            "30.59,30.02,30.41,30.05,30.11,30.37,29.97,30.36,30.13,30.05,30.39,29.95,30.3,30.32,30.12,30.48,30.07,30.16,30.27," +
30
+            "30.05,30.36,30.23,30.26,30.28,30.1,30.26,30.14,30.21,30.29,30.13,29.9,29.11,29.06,28.98,28.88,29.08,28.07,27.8," +
31
+            "27.33,27.22,26.32,25.04,24.49,23.23,22.28,21.69,21.74,22.78,23.57,24.13,23.14,22.6,21.64,21.62,22.59,23.11,23.59," +
32
+            "23.33,22.49,21.65,21.86,22.17,22.72,23.47,23,22.81,21.81,21.77,22.13,22.26,23.27,22.93,22.83,22.16,21.91,21.87," +
33
+            "22.7,22.76,22.99,22.68,21.94,22.12,22.02,22.4,22.83,22.78,22.68,22.31,21.81,22.28,22.08,22.79,22.92,22.66,22.63," +
34
+            "22.12,22.28,22.45,22.85,22.87,22.87,22.49,22.52,22.53,22.58,22.99,22.73,23.04,22.8,22.45,22.78,22.64,23.09,23.24," +
35
+            "22.93,23.26,22.75,22.87,23.18,23.06,23.39,23.27,23.2,23.24,23.04,23.32,23.31,23.54,23.79]";
36
+     String a =    "[14.21,14.68,15.01,15.14,15.04,14.78,14.47,14.24,14.14,14.17,14.32,14.53,14.72,14.79,14.73,14.6,14.44,14.26,14.02,13.85," +
37
+        "13.82,13.91,14.03,14.19,14.32,14.41,14.38,14.28,14.1,13.75,13.54,13.35,13.38,13.52,13.87,14.07,14.2,14.23,14.24," +
38
+        "14.03,13.74,13.52,13.4,13.41,13.6,13.77,13.99,14.17,14.22,14.03,13.73,13.5,13.35,13.36,13.44,13.59,13.77,14,14.06," +
39
+        "14.01,13.83,13.67,13.5,13.44,13.4,13.52,13.68,13.91,13.99,14.05,13.98,13.86,13.67,13.51,13.41,13.43,13.55,13.68,13.81," +
40
+        "13.88,13.88,13.75,13.58,13.35,13.21,13.13,13.17,13.22,13.32,13.36,13.36,13.28,13.14,12.89,12.59,12.31,12.11,12.01,11.95," +
41
+        "11.93,11.65,11.28,10.81,10.47,10.2,10.1,10.14,10.28,10.57,10.81,10.92,10.77,10.61,10.27,9.99,9.68,9.63,9.68,9.93,10.16," +
42
+        "10.35,10.43,10.42,10.25,10.01,9.74,9.53,9.46,9.52,9.68,9.9,10.15,10.27,10.3,10.16,9.97,9.74,9.65,9.59,9.69,9.84,10.08," +
43
+        "10.24,10.37,10.36,10.26,10.07,9.94,9.9,9.95,10.11,10.31,10.53,10.74,10.86,10.89,10.82,10.71,10.61,10.56,10.57,10.63," +
44
+        "10.74,10.89,11.03,11.11,11.11,11.06,11,10.93,10.88,10.86,10.92,11.02,11.14,11.22,11.27,11.27,11.22,11.15,11.07,11.03," +
45
+        "11.03,11.09,11.16,11.25,11.32,11.39,11.42,11.4,11.39,11.39,11.44,11.55,11.75,12.11,12.55,12.97,13.33,13.73]";
46
+    /**
47
+     * 转换为前3后5格式的功图数据
48
+     * @param displacement
49
+     * @param dispLoad
50
+     * @return
51
+     */
52
+    public static String trans(String displacement,String dispLoad){
53
+
54
+        StringBuffer sb = new StringBuffer();
55
+
56
+
57
+        if(displacement == null || dispLoad ==null || "0".equals(displacement) || "0".equals(dispLoad)){
58
+            return "";
59
+        }
60
+        displacement = displacement.substring(1, displacement.length() - 1);
61
+        dispLoad = dispLoad.substring(1,dispLoad.length()-1);
62
+
63
+        String[] s1 = displacement.split(",");
64
+        String[] s2 = dispLoad.split(",");
65
+        for(int i=0;i<s1.length && i< s2.length; i++){
66
+            String s1_i = decimalFormat.format(Double.valueOf(s1[i]));
67
+            sb.append(s1_i.replace(".",""));
68
+            String s2_i = decimalFormat.format(Double.valueOf(s2[i]));
69
+            int index = s2_i.indexOf(".");
70
+            if (index == 2) {
71
+                sb.append("0").append(s2_i.replace(".", ""));
72
+            }else if ( index == 1){
73
+                sb.append("00").append(s2_i.replace(".", ""));
74
+            } else {
75
+                sb.append(s2_i.replace(".", ""));
76
+            }
77
+        }
78
+        return sb.toString();
79
+    }
80
+}
81
+/* "0.00;0.00;0.01;0.01;0.02;0.02;0.03;0.04;0.06;0.07;0.09;0.11;0.12;0.14;0.17;0.19;0.22;0.24;0.27;0.30;0.34;" +
82
+        "0.37;0.40;0.43;0.46;0.49;0.53;0.56;0.59;0.62;0.65;0.69;0.72;0.75;0.78;0.81;0.84;0.88;0.91;0.94;0.97;" +
83
+        "1.00;1.04;1.07;1.10;1.13;1.16;1.20;1.23;1.26;1.29;1.32;1.35;1.39;1.42;1.45;1.48;1.51;1.54;1.58;1.61;" +
84
+        "1.64;1.67;1.71;1.74;1.77;1.80;1.83;1.86;1.90;1.93;1.96;1.99;2.02;2.06;2.09;2.12;2.15;2.18;2.21;2.25;" +
85
+        "2.28;2.31;2.34;2.37;2.40;2.42;2.45;2.47;2.49;2.51;2.52;2.54;2.56;2.57;2.58;2.59;2.60;2.60;2.61;2.61;" +
86
+        "2.61;2.61;2.61;2.61;2.60;2.60;2.59;2.58;2.57;2.56;2.54;2.52;2.51;2.49;2.47;2.45;2.42;2.40;2.37;2.34;" +
87
+        "2.31;2.28;2.25;2.22;2.19;2.16;2.13;2.10;2.07;2.04;2.01;1.98;1.95;1.92;1.89;1.86;1.83;1.80;1.77;1.74;" +
88
+        "1.71;1.68;1.65;1.62;1.59;1.56;1.53;1.50;1.47;1.44;1.41;1.38;1.35;1.32;1.29;1.26;1.23;1.20;1.17;1.14;" +
89
+        "1.11;1.08;1.05;1.02;0.99;0.96;0.93;0.90;0.87;0.84;0.81;0.78;0.75;0.72;0.69;0.66;0.63;0.60;0.57;0.54;" +
90
+        "0.51;0.48;0.45;0.42;0.39;0.36;0.33;0.30;0.27;0.24;0.21;0.18;0.15;0.12;0.09;0.06;0.03;0.00;0.00" */
91
+
92
+
93
+/*
94
+24.82;25.16;25.50;25.90;26.31;26.78;27.25;27.69;28.19;28.74;29.33;29.97;30.69;31.48;32.34;33.24;34.17;35.14;
95
+36.12;37.03;37.83;38.47;38.95;39.29;39.44;39.50;39.45;39.38;39.31;39.32;39.39;39.50;39.59;39.66;39.66;39.68;
96
+39.63;39.55;39.53;39.53;39.56;39.64;39.73;39.81;39.91;39.90;39.87;39.82;39.80;39.78;39.77;39.74;39.76;39.83;
97
+39.82;39.81;39.78;39.74;39.70;39.68;39.62;39.61;39.58;39.54;39.47;39.41;39.34;39.25;39.16;39.06;38.96;38.89;
98
+38.80;38.69;38.55;38.38;38.14;37.87;37.55;37.15;36.64;36.00;35.62;35.19;34.69;34.15;33.58;33.01;32.40;31.80;
99
+31.21;30.64;30.13;29.65;29.23;28.85;28.50;28.21;27.98;27.83;27.79;27.70;27.58;27.42;27.18;26.87;26.58;26.31;
100
+26.03;25.85;25.76;25.70;25.66;25.57;25.46;25.31;25.14;24.97;24.77;24.59;24.47;24.36;24.31;24.23;24.17;24.09;
101
+23.97;23.83;23.68;23.53;23.39;23.31;23.19;23.07;23.01;22.95;22.87;22.80;22.69;22.56;22.51;22.45;22.39;22.36;
102
+22.30;22.22;22.15;22.12;22.06;22.00;21.92;21.88;21.85;21.79;21.75;21.69;21.68;21.64;21.60;21.57;21.57;21.57;
103
+21.59;21.58;21.60;21.63;21.64;21.68;21.72;21.74;21.80;21.83;21.92;22.01;22.11;22.21;22.34;22.43;22.55;22.68;
104
+22.78;22.91;22.98;23.06;23.14;23.21;23.28;23.37;23.48;23.55;23.64;23.72;23.82;23.91;24.01;24.13;24.25;24.36;24.49;24.65
105
+ */
106
+/* "0.00;0.00;0.01;0.01;0.02;0.02;0.03;0.04;0.06;0.07;0.09;0.11;0.12;0.14;0.17;0.19;0.22;0.24;0.27;0.30;0.34;" +
107
+        "0.37;0.40;0.43;0.46;0.49;0.53;0.56;0.59;0.62;0.65;0.69;0.72;0.75;0.78;0.81;0.84;0.88;0.91;0.94;0.97;" +
108
+        "1.00;1.04;1.07;1.10;1.13;1.16;1.20;1.23;1.26;1.29;1.32;1.35;1.39;1.42;1.45;1.48;1.51;1.54;1.58;1.61;" +
109
+        "1.64;1.67;1.71;1.74;1.77;1.80;1.83;1.86;1.90;1.93;1.96;1.99;2.02;2.06;2.09;2.12;2.15;2.18;2.21;2.25;" +
110
+        "2.28;2.31;2.34;2.37;2.40;2.42;2.45;2.47;2.49;2.51;2.52;2.54;2.56;2.57;2.58;2.59;2.60;2.60;2.61;2.61;" +
111
+        "2.61;2.61;2.61;2.61;2.60;2.60;2.59;2.58;2.57;2.56;2.54;2.52;2.51;2.49;2.47;2.45;2.42;2.40;2.37;2.34;" +
112
+        "2.31;2.28;2.25;2.22;2.19;2.16;2.13;2.10;2.07;2.04;2.01;1.98;1.95;1.92;1.89;1.86;1.83;1.80;1.77;1.74;" +
113
+        "1.71;1.68;1.65;1.62;1.59;1.56;1.53;1.50;1.47;1.44;1.41;1.38;1.35;1.32;1.29;1.26;1.23;1.20;1.17;1.14;" +
114
+        "1.11;1.08;1.05;1.02;0.99;0.96;0.93;0.90;0.87;0.84;0.81;0.78;0.75;0.72;0.69;0.66;0.63;0.60;0.57;0.54;" +
115
+        "0.51;0.48;0.45;0.42;0.39;0.36;0.33;0.30;0.27;0.24;0.21;0.18;0.15;0.12;0.09;0.06;0.03;0.00;0.00" */
116
+
117
+
118
+/*
119
+24.82;25.16;25.50;25.90;26.31;26.78;27.25;27.69;28.19;28.74;29.33;29.97;30.69;31.48;32.34;33.24;34.17;35.14;
120
+36.12;37.03;37.83;38.47;38.95;39.29;39.44;39.50;39.45;39.38;39.31;39.32;39.39;39.50;39.59;39.66;39.66;39.68;
121
+39.63;39.55;39.53;39.53;39.56;39.64;39.73;39.81;39.91;39.90;39.87;39.82;39.80;39.78;39.77;39.74;39.76;39.83;
122
+39.82;39.81;39.78;39.74;39.70;39.68;39.62;39.61;39.58;39.54;39.47;39.41;39.34;39.25;39.16;39.06;38.96;38.89;
123
+38.80;38.69;38.55;38.38;38.14;37.87;37.55;37.15;36.64;36.00;35.62;35.19;34.69;34.15;33.58;33.01;32.40;31.80;
124
+31.21;30.64;30.13;29.65;29.23;28.85;28.50;28.21;27.98;27.83;27.79;27.70;27.58;27.42;27.18;26.87;26.58;26.31;
125
+26.03;25.85;25.76;25.70;25.66;25.57;25.46;25.31;25.14;24.97;24.77;24.59;24.47;24.36;24.31;24.23;24.17;24.09;
126
+23.97;23.83;23.68;23.53;23.39;23.31;23.19;23.07;23.01;22.95;22.87;22.80;22.69;22.56;22.51;22.45;22.39;22.36;
127
+22.30;22.22;22.15;22.12;22.06;22.00;21.92;21.88;21.85;21.79;21.75;21.69;21.68;21.64;21.60;21.57;21.57;21.57;
128
+21.59;21.58;21.60;21.63;21.64;21.68;21.72;21.74;21.80;21.83;21.92;22.01;22.11;22.21;22.34;22.43;22.55;22.68;
129
+22.78;22.91;22.98;23.06;23.14;23.21;23.28;23.37;23.48;23.55;23.64;23.72;23.82;23.91;24.01;24.13;24.25;24.36;24.49;24.65
130
+ */