File name changes and major readme updates
This commit is contained in:
parent
c0b3218cac
commit
79bccf28cc
Binary file not shown.
|
Before Width: | Height: | Size: 33 KiB |
@ -1,810 +0,0 @@
|
||||
-2.551330,146.577
|
||||
-2.559320,147.359
|
||||
-2.468040,147.658
|
||||
-2.377662,148.037
|
||||
-2.291219,150.350
|
||||
-2.282701,149.436
|
||||
-2.201699,150.562
|
||||
-2.114140,151.455
|
||||
-2.016523,151.214
|
||||
-2.021160,151.138
|
||||
-1.931157,152.373
|
||||
-1.835527,154.545
|
||||
-1.750495,156.288
|
||||
-1.747580,156.271
|
||||
-1.655665,157.200
|
||||
-1.561584,157.700
|
||||
-1.472658,159.022
|
||||
-1.473689,158.726
|
||||
-1.385178,163.187
|
||||
-1.303134,165.479
|
||||
-1.309201,166.380
|
||||
-1.213878,167.220
|
||||
-1.119556,169.214
|
||||
-1.027553,168.409
|
||||
-1.031092,171.526
|
||||
-0.935920,181.211
|
||||
-0.840410,184.844
|
||||
-0.749365,194.408
|
||||
-0.754224,196.701
|
||||
-0.656968,202.473
|
||||
-0.570845,219.621
|
||||
-0.479354,256.241
|
||||
-0.480470,250.381
|
||||
-0.390544,308.168
|
||||
-0.297065,497.784
|
||||
-0.205259,-3502.258
|
||||
-0.206526,-9683.441
|
||||
-0.119472,-190.529
|
||||
-0.037364,-26.292
|
||||
0.050969,24.922
|
||||
0.064256,32.231
|
||||
0.159602,60.481
|
||||
0.251753,76.913
|
||||
0.243214,73.980
|
||||
0.338061,84.663
|
||||
0.422618,89.473
|
||||
0.513242,96.050
|
||||
0.518559,97.643
|
||||
0.608791,100.787
|
||||
0.700996,105.523
|
||||
0.790413,108.282
|
||||
0.793233,108.507
|
||||
0.879419,110.162
|
||||
0.971886,111.932
|
||||
1.062055,113.126
|
||||
1.058800,113.042
|
||||
1.149099,114.760
|
||||
1.232849,114.805
|
||||
1.321679,116.285
|
||||
1.322026,116.178
|
||||
1.420296,117.329
|
||||
1.515736,119.855
|
||||
1.520187,120.301
|
||||
1.611199,120.557
|
||||
1.698500,121.539
|
||||
1.791081,122.132
|
||||
1.792093,122.072
|
||||
1.873411,121.761
|
||||
1.955346,121.194
|
||||
2.052849,122.315
|
||||
2.064650,123.327
|
||||
2.148349,123.301
|
||||
2.243999,124.031
|
||||
2.339920,125.292
|
||||
2.331527,124.106
|
||||
2.414338,123.462
|
||||
2.510177,124.474
|
||||
2.613505,126.344
|
||||
2.601799,125.393
|
||||
2.690616,125.765
|
||||
2.789141,126.764
|
||||
-2.574735,148.324
|
||||
-2.575143,147.639
|
||||
-2.481704,148.148
|
||||
-2.388541,148.946
|
||||
-2.297629,151.515
|
||||
-2.295381,150.642
|
||||
-2.199380,150.737
|
||||
-2.111052,151.336
|
||||
-2.021967,151.854
|
||||
-2.024937,150.974
|
||||
-1.936116,153.183
|
||||
-1.848769,156.320
|
||||
-1.763482,157.686
|
||||
-1.760643,158.007
|
||||
-1.668421,158.410
|
||||
-1.578948,158.640
|
||||
-1.486042,160.136
|
||||
-1.495252,161.325
|
||||
-1.411263,168.133
|
||||
-1.297125,165.467
|
||||
-1.301517,165.766
|
||||
-1.210345,168.517
|
||||
-1.115181,170.781
|
||||
-1.033512,173.243
|
||||
-1.044634,176.828
|
||||
-0.950448,182.546
|
||||
-0.865405,193.568
|
||||
-0.771007,204.661
|
||||
-0.767041,203.941
|
||||
-0.663421,205.891
|
||||
-0.584616,226.536
|
||||
-0.488449,256.347
|
||||
-0.489279,254.136
|
||||
-0.392588,336.192
|
||||
-0.290269,558.764
|
||||
-0.195860,-2883.048
|
||||
-0.200502,-2562.205
|
||||
-0.113408,-158.602
|
||||
-0.025135,-17.737
|
||||
0.069023,34.404
|
||||
0.069729,33.714
|
||||
0.164456,59.437
|
||||
0.258051,76.366
|
||||
0.257989,76.182
|
||||
0.347807,86.002
|
||||
0.436103,91.516
|
||||
0.521425,96.486
|
||||
0.521857,97.205
|
||||
0.616516,100.860
|
||||
0.709849,106.296
|
||||
0.791532,107.728
|
||||
0.790189,107.503
|
||||
0.880904,110.782
|
||||
0.970762,111.900
|
||||
1.071131,114.579
|
||||
1.060384,112.491
|
||||
1.157920,115.033
|
||||
1.251726,117.522
|
||||
1.338388,118.307
|
||||
1.342244,118.430
|
||||
1.434334,118.682
|
||||
1.527053,120.069
|
||||
1.514612,118.729
|
||||
1.609788,120.141
|
||||
1.701134,121.500
|
||||
1.790380,121.681
|
||||
1.793046,121.724
|
||||
1.883643,122.318
|
||||
1.975696,123.093
|
||||
2.064870,123.290
|
||||
2.064658,123.389
|
||||
2.156166,124.364
|
||||
2.245049,124.318
|
||||
2.337179,125.233
|
||||
2.336056,125.152
|
||||
2.428246,125.097
|
||||
2.528310,125.993
|
||||
2.613792,126.439
|
||||
2.613514,126.300
|
||||
2.698684,126.435
|
||||
2.795269,126.930
|
||||
-2.562973,147.630
|
||||
-2.571558,148.328
|
||||
-2.479153,148.515
|
||||
-2.383528,148.873
|
||||
-2.293840,150.837
|
||||
-2.294431,151.282
|
||||
-2.200246,151.037
|
||||
-2.111276,151.603
|
||||
-2.018401,151.373
|
||||
-2.022055,151.591
|
||||
-1.930836,152.865
|
||||
-1.840059,155.705
|
||||
-1.747642,157.364
|
||||
-1.732047,154.345
|
||||
-1.635700,154.493
|
||||
-1.545004,155.399
|
||||
-1.454316,156.434
|
||||
-1.454528,157.068
|
||||
-1.366153,160.968
|
||||
-1.279542,162.974
|
||||
-1.278479,163.528
|
||||
-1.187027,164.292
|
||||
-1.098278,165.473
|
||||
-1.008932,167.303
|
||||
-1.008748,166.732
|
||||
-0.916724,176.221
|
||||
-0.826177,182.317
|
||||
-0.732041,187.550
|
||||
-0.730575,188.629
|
||||
-0.639986,196.832
|
||||
-0.548195,209.562
|
||||
-0.459635,255.765
|
||||
-0.459555,253.900
|
||||
-0.369391,313.003
|
||||
-0.277070,450.230
|
||||
-0.184502,-3406.293
|
||||
-0.185083,-2211.873
|
||||
-0.098105,-126.483
|
||||
-0.004474,-3.169
|
||||
0.086979,42.176
|
||||
0.085820,41.594
|
||||
0.177208,65.224
|
||||
0.269429,81.378
|
||||
0.268685,81.949
|
||||
0.361132,90.829
|
||||
0.453089,97.621
|
||||
0.541657,102.559
|
||||
0.542787,102.725
|
||||
0.632335,105.138
|
||||
0.720888,109.941
|
||||
0.814642,111.680
|
||||
0.812811,111.493
|
||||
0.901931,113.630
|
||||
0.996592,114.256
|
||||
1.087974,115.788
|
||||
1.086065,116.081
|
||||
1.177068,117.632
|
||||
1.267254,119.213
|
||||
1.359860,120.506
|
||||
1.364226,120.993
|
||||
1.454346,120.885
|
||||
1.543435,121.529
|
||||
1.543158,120.976
|
||||
1.634427,122.550
|
||||
1.724844,123.426
|
||||
1.813204,123.740
|
||||
1.805267,122.671
|
||||
1.895421,122.692
|
||||
1.989951,123.882
|
||||
2.080035,123.888
|
||||
2.082134,124.223
|
||||
2.182781,126.055
|
||||
2.271511,126.188
|
||||
2.356387,125.904
|
||||
2.355848,126.097
|
||||
2.447968,126.679
|
||||
2.537664,126.263
|
||||
2.628496,127.470
|
||||
2.632533,127.667
|
||||
2.727375,127.474
|
||||
2.812782,128.020
|
||||
-2.551585,146.375
|
||||
-2.550310,146.245
|
||||
-2.461710,147.148
|
||||
-2.377286,148.392
|
||||
-2.275829,149.142
|
||||
-2.276004,149.589
|
||||
-2.185265,149.633
|
||||
-2.095463,149.682
|
||||
-2.004498,150.178
|
||||
-2.005017,150.836
|
||||
-1.914977,151.243
|
||||
-1.824248,153.560
|
||||
-1.732231,153.879
|
||||
-1.732679,154.289
|
||||
-1.640900,154.623
|
||||
-1.550076,156.037
|
||||
-1.458353,156.990
|
||||
-1.461316,157.915
|
||||
-1.373876,160.233
|
||||
-1.280723,161.912
|
||||
-1.281478,162.748
|
||||
-1.188227,163.570
|
||||
-1.098078,165.533
|
||||
-1.010681,167.973
|
||||
-1.010369,166.975
|
||||
-0.919108,177.301
|
||||
-0.831079,181.890
|
||||
-0.738696,188.603
|
||||
-0.738007,188.392
|
||||
-0.645523,196.053
|
||||
-0.554393,211.533
|
||||
-0.463397,258.664
|
||||
-0.461174,252.949
|
||||
-0.368889,306.495
|
||||
-0.277677,498.242
|
||||
-0.185360,-5909.838
|
||||
-0.187128,-23374.376
|
||||
-0.094376,-138.289
|
||||
-0.004207,-3.140
|
||||
0.087152,44.000
|
||||
0.085475,44.341
|
||||
0.176035,66.190
|
||||
0.266531,81.375
|
||||
0.266494,82.195
|
||||
0.362914,91.653
|
||||
0.453994,97.866
|
||||
0.545401,103.606
|
||||
0.547390,103.788
|
||||
0.637353,106.642
|
||||
0.725979,111.246
|
||||
0.816483,113.363
|
||||
0.814265,112.086
|
||||
0.906568,114.198
|
||||
0.997333,115.150
|
||||
1.085674,115.954
|
||||
1.086363,115.879
|
||||
1.178479,118.284
|
||||
1.271511,120.259
|
||||
1.362967,120.691
|
||||
1.362071,120.716
|
||||
1.452641,120.506
|
||||
1.532717,120.654
|
||||
1.537141,120.518
|
||||
1.628816,121.701
|
||||
1.727771,123.133
|
||||
1.816149,123.459
|
||||
1.813312,123.208
|
||||
1.901289,123.007
|
||||
1.993024,123.955
|
||||
2.084774,124.360
|
||||
2.089602,124.770
|
||||
2.182880,125.660
|
||||
2.269933,125.995
|
||||
2.361826,126.285
|
||||
2.362744,126.136
|
||||
2.456192,126.379
|
||||
2.546372,126.434
|
||||
2.640285,127.012
|
||||
2.642510,127.055
|
||||
2.730044,127.335
|
||||
2.817845,127.296
|
||||
-2.545392,147.013
|
||||
-2.547852,147.191
|
||||
-2.457937,147.564
|
||||
-2.366702,148.469
|
||||
-2.275224,149.657
|
||||
-2.275591,149.123
|
||||
-2.185265,150.760
|
||||
-2.091722,150.415
|
||||
-2.000431,151.617
|
||||
-2.000370,151.781
|
||||
-1.909141,152.934
|
||||
-1.815586,155.669
|
||||
-1.727797,155.598
|
||||
-1.727236,155.338
|
||||
-1.644994,156.732
|
||||
-1.561773,158.322
|
||||
-1.471073,160.407
|
||||
-1.469730,159.536
|
||||
-1.381103,162.160
|
||||
-1.288335,165.639
|
||||
-1.291180,164.994
|
||||
-1.200920,165.908
|
||||
-1.107945,169.574
|
||||
-1.021804,172.518
|
||||
-1.013164,170.407
|
||||
-0.914780,179.660
|
||||
-0.823350,186.927
|
||||
-0.732857,193.363
|
||||
-0.737848,193.964
|
||||
-0.645305,202.670
|
||||
-0.548684,212.369
|
||||
-0.459742,263.892
|
||||
-0.458432,267.042
|
||||
-0.366579,334.658
|
||||
-0.275214,598.510
|
||||
-0.184827,-1162.571
|
||||
-0.184457,-1284.688
|
||||
-0.093372,-115.911
|
||||
-0.001373,-0.935
|
||||
0.092022,43.417
|
||||
0.092798,43.828
|
||||
0.181709,64.592
|
||||
0.273239,80.547
|
||||
0.272639,80.579
|
||||
0.364086,88.383
|
||||
0.455475,94.931
|
||||
0.546462,100.515
|
||||
0.547892,101.110
|
||||
0.638904,104.439
|
||||
0.726524,107.925
|
||||
0.819796,110.865
|
||||
0.820988,111.550
|
||||
0.910862,113.123
|
||||
1.002595,114.579
|
||||
1.094691,116.063
|
||||
1.095189,116.289
|
||||
1.185300,117.930
|
||||
1.277755,119.152
|
||||
1.369749,119.484
|
||||
1.367120,119.716
|
||||
1.454844,120.656
|
||||
1.543214,120.394
|
||||
1.544345,120.570
|
||||
1.635187,121.883
|
||||
1.724182,122.547
|
||||
1.815038,123.016
|
||||
1.817365,123.206
|
||||
1.907753,123.144
|
||||
2.000442,123.724
|
||||
2.089413,124.419
|
||||
2.089973,124.286
|
||||
2.182315,124.976
|
||||
2.274124,125.820
|
||||
2.364614,125.801
|
||||
2.363814,125.912
|
||||
2.455543,126.455
|
||||
2.540340,126.141
|
||||
2.636892,127.301
|
||||
2.638822,127.124
|
||||
2.727649,127.391
|
||||
2.819119,127.676
|
||||
-2.542784,147.088
|
||||
-2.544198,147.187
|
||||
-2.450928,147.957
|
||||
-2.362500,149.337
|
||||
-2.275846,150.404
|
||||
-2.276770,150.287
|
||||
-2.186347,150.533
|
||||
-2.094797,150.897
|
||||
-2.003111,151.432
|
||||
-2.001129,151.785
|
||||
-1.909539,152.289
|
||||
-1.819549,155.166
|
||||
-1.728283,156.113
|
||||
-1.727090,155.790
|
||||
-1.635908,156.366
|
||||
-1.546473,156.742
|
||||
-1.456139,158.312
|
||||
-1.453802,158.297
|
||||
-1.366964,163.366
|
||||
-1.272010,165.079
|
||||
-1.274462,164.671
|
||||
-1.181785,166.607
|
||||
-1.090247,167.753
|
||||
-1.004550,172.157
|
||||
-1.002847,172.005
|
||||
-0.910041,179.996
|
||||
-0.820496,187.327
|
||||
-0.732646,196.491
|
||||
-0.736195,192.532
|
||||
-0.642417,203.467
|
||||
-0.549311,221.654
|
||||
-0.460341,277.118
|
||||
-0.460462,271.374
|
||||
-0.366896,341.608
|
||||
-0.277032,604.308
|
||||
-0.185307,-1068.605
|
||||
-0.188283,-1039.507
|
||||
-0.096693,-114.386
|
||||
-0.005354,-3.592
|
||||
0.087876,40.264
|
||||
0.088387,40.226
|
||||
0.178362,61.736
|
||||
0.268561,77.490
|
||||
0.269107,77.585
|
||||
0.361730,88.218
|
||||
0.453344,94.974
|
||||
0.542500,99.965
|
||||
0.541887,99.237
|
||||
0.632898,103.801
|
||||
0.724537,107.470
|
||||
0.812194,109.402
|
||||
0.812010,110.061
|
||||
0.905293,113.336
|
||||
0.999995,113.989
|
||||
1.087082,115.720
|
||||
1.087823,115.540
|
||||
1.176891,116.702
|
||||
1.267759,117.837
|
||||
1.361640,119.537
|
||||
1.361401,119.361
|
||||
1.452722,119.399
|
||||
1.543469,120.228
|
||||
1.542385,120.460
|
||||
1.632927,121.600
|
||||
1.723267,122.505
|
||||
1.814624,123.891
|
||||
1.814803,123.793
|
||||
1.907350,123.724
|
||||
2.001481,124.445
|
||||
2.089229,124.773
|
||||
2.091846,124.622
|
||||
2.180606,125.395
|
||||
2.270278,125.898
|
||||
2.360083,126.248
|
||||
2.363808,126.162
|
||||
2.456929,126.727
|
||||
2.544807,126.571
|
||||
2.639100,127.786
|
||||
2.638269,127.539
|
||||
2.728825,127.412
|
||||
2.817141,127.934
|
||||
-2.545225,146.767
|
||||
-2.552161,146.695
|
||||
-2.463846,147.557
|
||||
-2.370546,148.143
|
||||
-2.278668,149.491
|
||||
-2.278271,149.450
|
||||
-2.186992,149.788
|
||||
-2.097079,150.437
|
||||
-2.006686,150.952
|
||||
-2.006845,151.273
|
||||
-1.913529,151.814
|
||||
-1.823074,154.172
|
||||
-1.729596,154.785
|
||||
-1.730968,154.721
|
||||
-1.641777,156.058
|
||||
-1.550598,156.466
|
||||
-1.457588,156.881
|
||||
-1.454146,156.363
|
||||
-1.364392,160.514
|
||||
-1.274162,162.678
|
||||
-1.272397,162.205
|
||||
-1.182738,165.339
|
||||
-1.091899,165.996
|
||||
-1.005629,168.377
|
||||
-1.003455,168.378
|
||||
-0.911524,178.506
|
||||
-0.822525,185.349
|
||||
-0.730090,192.171
|
||||
-0.732608,191.667
|
||||
-0.639878,198.697
|
||||
-0.547296,217.795
|
||||
-0.455002,268.347
|
||||
-0.453826,261.659
|
||||
-0.363582,322.521
|
||||
-0.275056,573.687
|
||||
-0.181469,-1174.991
|
||||
-0.181422,-1264.084
|
||||
-0.088166,-106.336
|
||||
0.001556,1.035
|
||||
0.093782,43.497
|
||||
0.094479,44.005
|
||||
0.184103,64.706
|
||||
0.275391,80.197
|
||||
0.272223,80.201
|
||||
0.361852,88.769
|
||||
0.454777,96.011
|
||||
0.545770,100.001
|
||||
0.548589,100.425
|
||||
0.638837,104.603
|
||||
0.730232,109.346
|
||||
0.818757,110.191
|
||||
0.819358,111.111
|
||||
0.909417,113.425
|
||||
0.999173,113.469
|
||||
1.092655,115.691
|
||||
1.093546,115.931
|
||||
1.185107,117.416
|
||||
1.274890,119.071
|
||||
1.363200,120.277
|
||||
1.363997,120.412
|
||||
1.453742,120.155
|
||||
1.542896,120.337
|
||||
1.540772,120.429
|
||||
1.625330,120.726
|
||||
1.716867,121.964
|
||||
1.800992,122.195
|
||||
1.799154,121.720
|
||||
1.894577,122.083
|
||||
1.991680,123.832
|
||||
2.083358,124.181
|
||||
2.083131,124.276
|
||||
2.174875,125.205
|
||||
2.263838,125.463
|
||||
2.355656,125.719
|
||||
2.357003,125.879
|
||||
2.447301,126.217
|
||||
2.536006,126.365
|
||||
2.630471,127.382
|
||||
2.630153,127.266
|
||||
2.720331,126.830
|
||||
2.808367,126.945
|
||||
-2.559225,148.214
|
||||
-2.564736,148.326
|
||||
-2.475401,148.659
|
||||
-2.383358,149.533
|
||||
-2.294522,151.366
|
||||
-2.289436,151.449
|
||||
-2.203693,151.629
|
||||
-2.111683,151.842
|
||||
-2.020454,152.341
|
||||
-2.016537,151.772
|
||||
-1.925771,152.714
|
||||
-1.835932,155.576
|
||||
-1.742282,156.982
|
||||
-1.738051,156.994
|
||||
-1.645858,156.988
|
||||
-1.556949,157.963
|
||||
-1.465992,159.314
|
||||
-1.466470,159.411
|
||||
-1.376944,162.208
|
||||
-1.286821,165.239
|
||||
-1.288669,164.916
|
||||
-1.198881,166.208
|
||||
-1.106333,167.864
|
||||
-1.014820,170.173
|
||||
-1.014529,170.860
|
||||
-0.924336,181.239
|
||||
-0.833425,187.292
|
||||
-0.743107,197.192
|
||||
-0.743052,195.751
|
||||
-0.652845,205.574
|
||||
-0.562043,222.922
|
||||
-0.471376,275.078
|
||||
-0.470864,276.710
|
||||
-0.379516,358.131
|
||||
-0.274927,659.156
|
||||
-0.179967,-1461.901
|
||||
-0.180719,-1212.227
|
||||
-0.091028,-112.885
|
||||
0.000944,0.640
|
||||
0.091263,43.442
|
||||
0.092468,43.653
|
||||
0.183541,65.422
|
||||
0.276128,82.057
|
||||
0.275569,80.443
|
||||
0.366806,89.558
|
||||
0.458378,96.547
|
||||
0.548515,101.568
|
||||
0.548075,101.770
|
||||
0.638319,105.705
|
||||
0.725730,109.653
|
||||
0.816955,112.866
|
||||
0.816911,111.858
|
||||
0.903369,111.977
|
||||
0.989400,113.279
|
||||
1.082036,114.603
|
||||
1.080257,114.628
|
||||
1.171062,116.613
|
||||
1.262646,117.721
|
||||
1.354978,118.979
|
||||
1.354239,118.865
|
||||
1.442118,118.929
|
||||
1.530302,120.124
|
||||
1.527667,119.922
|
||||
1.613518,119.929
|
||||
1.711066,121.368
|
||||
1.799720,121.781
|
||||
1.801353,122.214
|
||||
1.893041,122.508
|
||||
1.985406,123.607
|
||||
2.075798,123.766
|
||||
2.075114,123.739
|
||||
2.163253,124.736
|
||||
2.252138,124.845
|
||||
2.343832,125.141
|
||||
2.343208,125.140
|
||||
2.442569,125.721
|
||||
2.542455,126.517
|
||||
2.634628,127.519
|
||||
2.633082,126.749
|
||||
2.721244,126.847
|
||||
2.815742,127.459
|
||||
-2.549919,147.193
|
||||
-2.548816,147.085
|
||||
-2.457673,146.718
|
||||
-2.368256,147.404
|
||||
-2.276536,149.259
|
||||
-2.273526,149.755
|
||||
-2.185236,150.176
|
||||
-2.093289,150.752
|
||||
-2.004550,151.848
|
||||
-2.004683,151.374
|
||||
-1.913370,151.645
|
||||
-1.820923,154.660
|
||||
-1.727749,155.060
|
||||
-1.727975,154.663
|
||||
-1.635231,156.372
|
||||
-1.545977,156.831
|
||||
-1.455751,157.647
|
||||
-1.453703,157.575
|
||||
-1.364952,161.475
|
||||
-1.274519,163.488
|
||||
-1.274332,163.485
|
||||
-1.183342,164.564
|
||||
-1.092736,166.032
|
||||
-1.004718,168.973
|
||||
-1.004500,167.727
|
||||
-0.914181,178.094
|
||||
-0.823288,184.540
|
||||
-0.733238,190.829
|
||||
-0.732145,189.819
|
||||
-0.641234,199.834
|
||||
-0.550295,211.331
|
||||
-0.459746,262.809
|
||||
-0.457467,267.531
|
||||
-0.365834,332.175
|
||||
-0.274192,633.161
|
||||
-0.182564,-916.978
|
||||
-0.183242,-875.244
|
||||
-0.093060,-105.821
|
||||
-0.000185,-0.118
|
||||
0.089957,41.295
|
||||
0.088079,40.983
|
||||
0.179296,63.738
|
||||
0.271505,79.719
|
||||
0.270854,78.596
|
||||
0.361571,87.214
|
||||
0.455155,94.274
|
||||
0.546780,99.422
|
||||
0.546503,98.815
|
||||
0.638553,103.674
|
||||
0.726902,108.285
|
||||
0.819091,110.654
|
||||
0.815741,110.068
|
||||
0.908366,112.479
|
||||
1.001382,113.332
|
||||
1.091236,115.428
|
||||
1.091596,115.724
|
||||
1.184328,117.147
|
||||
1.277157,118.384
|
||||
1.365710,119.095
|
||||
1.364737,119.414
|
||||
1.454036,118.952
|
||||
1.544951,120.311
|
||||
1.545161,120.362
|
||||
1.636347,121.572
|
||||
1.723464,122.027
|
||||
1.813156,122.203
|
||||
1.811681,122.722
|
||||
1.905414,123.203
|
||||
1.996020,123.861
|
||||
2.085912,124.227
|
||||
2.085420,124.034
|
||||
2.174409,125.130
|
||||
2.270080,125.884
|
||||
2.360700,125.410
|
||||
2.361859,125.576
|
||||
2.452631,126.439
|
||||
2.543359,126.198
|
||||
2.632890,126.981
|
||||
2.632774,127.301
|
||||
2.721307,127.247
|
||||
2.813881,127.298
|
||||
-2.546406,147.749
|
||||
-2.549213,147.962
|
||||
-2.455121,147.815
|
||||
-2.366221,149.131
|
||||
-2.276889,150.424
|
||||
-2.277761,149.798
|
||||
-2.189300,149.602
|
||||
-2.097191,150.292
|
||||
-2.004964,150.723
|
||||
-2.005234,151.015
|
||||
-1.911743,151.711
|
||||
-1.825621,154.924
|
||||
-1.740516,155.821
|
||||
-1.740773,155.493
|
||||
-1.649437,157.094
|
||||
-1.556425,156.821
|
||||
-1.465079,158.956
|
||||
-1.461947,158.005
|
||||
-1.366624,161.576
|
||||
-1.276211,163.893
|
||||
-1.277508,164.091
|
||||
-1.182463,165.990
|
||||
-1.090378,166.309
|
||||
-1.003401,168.832
|
||||
-1.000896,168.294
|
||||
-0.911470,178.524
|
||||
-0.821379,186.797
|
||||
-0.735657,196.215
|
||||
-0.737258,194.735
|
||||
-0.651393,205.724
|
||||
-0.563653,225.811
|
||||
-0.474892,270.358
|
||||
-0.473866,260.289
|
||||
-0.380700,370.288
|
||||
-0.276382,628.120
|
||||
-0.182370,-1071.218
|
||||
-0.185162,-985.485
|
||||
-0.095463,-110.377
|
||||
-0.002966,-1.918
|
||||
0.088024,41.409
|
||||
0.087324,40.589
|
||||
0.177553,61.635
|
||||
0.269421,78.064
|
||||
0.268892,77.579
|
||||
0.360517,87.053
|
||||
0.449962,94.474
|
||||
0.540236,98.897
|
||||
0.541090,98.580
|
||||
0.631731,103.186
|
||||
0.723462,107.124
|
||||
0.813002,109.223
|
||||
0.811840,109.300
|
||||
0.904978,112.257
|
||||
0.995807,113.721
|
||||
1.085053,114.604
|
||||
1.086587,115.084
|
||||
1.178416,116.830
|
||||
1.267413,118.198
|
||||
1.357629,118.752
|
||||
1.359310,119.572
|
||||
1.447849,119.624
|
||||
1.540555,120.123
|
||||
1.538070,120.003
|
||||
1.630462,121.092
|
||||
1.720538,121.957
|
||||
1.812570,122.957
|
||||
1.810749,123.097
|
||||
1.904246,123.319
|
||||
1.995716,123.860
|
||||
2.089557,125.062
|
||||
2.092263,124.961
|
||||
2.180488,125.412
|
||||
2.271095,125.608
|
||||
2.361120,125.705
|
||||
2.362898,126.048
|
||||
2.455218,126.700
|
||||
2.544680,126.236
|
||||
2.635446,127.360
|
||||
2.634450,127.155
|
||||
2.725615,127.155
|
||||
2.816192,127.719
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,63 +0,0 @@
|
||||
import numpy as np
|
||||
from sklearn.metrics import r2_score
|
||||
import matplotlib.pyplot as plt
|
||||
import os
|
||||
|
||||
# Load data from the CSV file, skipping the first row (header) and handling missing or bad values
|
||||
data = np.genfromtxt('data2.csv', delimiter=',', skip_header=1, invalid_raise=False, missing_values='NaN')
|
||||
|
||||
# Remove rows containing missing values
|
||||
data = data[~np.isnan(data).any(axis=1)]
|
||||
|
||||
# Extract columns
|
||||
diff_amplifier_measured = data[:, 2]
|
||||
wavegen_measured = data[:, 1]
|
||||
real_wavegen_gain = data[:, 4]
|
||||
|
||||
# Define polynomial degree
|
||||
degree = 1
|
||||
|
||||
# Calculate polynomial fits
|
||||
coefficients_measured = np.polyfit(wavegen_measured, diff_amplifier_measured, degree)
|
||||
|
||||
# Generate polynomial functions using the coefficients
|
||||
poly_func_measured = np.poly1d(coefficients_measured)
|
||||
|
||||
# Calculate R^2 value
|
||||
r_squared_measured = r2_score(diff_amplifier_measured, poly_func_measured(wavegen_measured))
|
||||
|
||||
# Calculate absolute percentage error for polynomial fits (handling zero values)
|
||||
non_zero_indices = np.nonzero(diff_amplifier_measured)
|
||||
absolute_percentage_error_measured = np.mean(np.abs((diff_amplifier_measured[non_zero_indices] - poly_func_measured(wavegen_measured[non_zero_indices])) / diff_amplifier_measured[non_zero_indices])) * 100
|
||||
|
||||
# Plot original data and fitted curves for "Wavegen Measured vs Diff Amplifier Measured"
|
||||
plt.figure(figsize=(8, 6))
|
||||
plt.scatter(wavegen_measured, diff_amplifier_measured, color='green', label='Amplifier Output', s=1)
|
||||
plt.plot(wavegen_measured, poly_func_measured(wavegen_measured), color='red', label='Linear Fit')
|
||||
plt.xlabel('Input (mV)')
|
||||
plt.ylabel('Amplifier Output (V)')
|
||||
plt.title('Amplifier Output vs Input')
|
||||
plt.legend()
|
||||
plt.grid(True)
|
||||
plt.savefig("images/Amplifier Output vs Input")
|
||||
plt.show()
|
||||
|
||||
os.system('cls' if os.name == 'nt' else 'clear')
|
||||
|
||||
# Print coefficients, R^2 value, and average absolute percentage error for "Wavegen Measured vs Diff Amplifier Measured"
|
||||
print("\nPolynomial Fit Coefficients for Wavegen Measured vs Diff Amplifier Measured:", coefficients_measured)
|
||||
print("R^2 Value for Wavegen Measured vs Diff Amplifier Measured:", r_squared_measured)
|
||||
print("Average Absolute Percentage Error for Wavegen Measured vs Diff Amplifier Measured:", absolute_percentage_error_measured, "%")
|
||||
|
||||
plt.close()
|
||||
|
||||
# Plot "Wavegen Measured vs Real Wavegen Gain"
|
||||
plt.figure(figsize=(8, 6))
|
||||
plt.scatter(wavegen_measured, real_wavegen_gain, color='blue', label='Amplifier Gain', s=1)
|
||||
plt.xlabel('Input (mV)')
|
||||
plt.ylabel('Amplifier Gain')
|
||||
plt.title('Amplifier Gain vs Input')
|
||||
plt.legend()
|
||||
plt.grid(True)
|
||||
plt.savefig("images/Amplifier Gain vs Input")
|
||||
plt.show()
|
||||
@ -1,39 +0,0 @@
|
||||
import numpy as np
|
||||
from sklearn.linear_model import LinearRegression
|
||||
|
||||
# Load data from the CSV file
|
||||
data = np.genfromtxt('data2.csv', delimiter=',', skip_header=1, invalid_raise=False, missing_values='NaN')
|
||||
|
||||
# Number of data points in each set
|
||||
set_size = 80
|
||||
|
||||
# List to store slopes of individual fitting functions
|
||||
slopes = []
|
||||
|
||||
# Iterate through the data sets
|
||||
for i in range(len(data) // set_size):
|
||||
# Extract data for the current set
|
||||
set_data = data[i * set_size: (i + 1) * set_size]
|
||||
|
||||
# Extract x and y values
|
||||
x_values = set_data[:, 1]
|
||||
y_values = set_data[:, 2]
|
||||
|
||||
# Fit linear regression model
|
||||
model = LinearRegression().fit(x_values.reshape(-1, 1), y_values)
|
||||
|
||||
# Get slope of the linear fitting function
|
||||
slope = model.coef_[0]
|
||||
|
||||
# Append slope to the list
|
||||
slopes.append(slope)
|
||||
|
||||
# Print the slope for the current set
|
||||
print("Slope of linear fitting function for set", i+1, ":", slope)
|
||||
|
||||
# Calculate the average slope
|
||||
average_slope = np.mean(slopes)
|
||||
|
||||
# Print the average slope
|
||||
print("\nAverage slope (V / V):", average_slope*1000)
|
||||
print("STDEV slope :", np.std(slopes)*1000)
|
||||
@ -1,29 +0,0 @@
|
||||
import numpy as np
|
||||
from sklearn.metrics import r2_score
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
# Load data from the CSV file, skipping the first row (header) and handling missing or bad values
|
||||
data = np.genfromtxt('data.csv', delimiter=',', skip_header=1, invalid_raise=False, missing_values='NaN')
|
||||
|
||||
# Remove rows containing missing values
|
||||
data = data[~np.isnan(data).any(axis=1)]
|
||||
|
||||
# Extract columns
|
||||
wavegen_output = data[:, 0]
|
||||
diff_amplifier_measured = data[:, 2]
|
||||
wavegen_measured = data[:, 1]
|
||||
|
||||
# Define polynomial degree
|
||||
degree = 1
|
||||
|
||||
# Calculate polynomial fits
|
||||
coefficients_output = np.polyfit(wavegen_output, diff_amplifier_measured, degree)
|
||||
coefficients_measured = np.polyfit(wavegen_measured, diff_amplifier_measured, degree)
|
||||
|
||||
# Generate polynomial functions using the coefficients
|
||||
poly_func_output = np.poly1d(coefficients_output)
|
||||
poly_func_measured = np.poly1d(coefficients_measured)
|
||||
|
||||
# Calculate R^2 value
|
||||
r_squared_output = r2_score(diff_amplifier_measured, poly_func_output(wavegen_output))
|
||||
r_squared_measured = r2_score(diff_amplifier_measured, poly_func_measured(wavegen_measured))
|
||||
66
README.md
66
README.md
@ -1,55 +1,55 @@
|
||||
# Differential Amplifier for mV/V Instrumentation
|
||||
|
||||
## Overview
|
||||
## Project Overview
|
||||
|
||||
This project showcases the design and calibration of a differential amplifier for mV/V instrumentation, such as load cells. The amplifier provides a gain of approximately 100 and shifts the output so that 2.5V corresponds to 0 differential voltage. This configuration makes it compatible with analog-to-digital converters (ADCs) that have an input range of 0 to 5V, such as those used in Arduino.
|
||||
This project focuses on developing a differential amplifier tailored for mV/V instrumentation, specifically designed for use with load cells and other precision sensors. The amplifier boosts the signal to a level appropriate for reading by standard analog-to-digital converters (ADCs), like those found in Arduino platforms, providing a significant gain while also adjusting the zero-level output voltage for optimal ADC utilization.
|
||||
|
||||
## Key Features
|
||||
|
||||
- **High Gain**: The amplifier provides a gain of around 100, making it suitable for millivolt-range signals from load cells and other precision sensors.
|
||||
- **Offset Shifting**: Shifts the output to 2.5V when the differential input voltage is 0, allowing for full utilization of ADCs with a 0-5V range.
|
||||
- **Calibration via Analog Discovery 3**: Uses the Analog Discovery 3's signal generator and scope to calibrate the amplifier across a range of input voltages.
|
||||
- **High Gain Capability**: Achieves a gain factor of approximately 100, ideal for amplifying millivolt signals from precision sensors to usable levels.
|
||||
- **Output Offset Adjustment**: Ensures that a 0 mV differential input translates to a 2.5V output, maximizing the dynamic range of ADCs that operate within a 0-5V range.
|
||||
- **Calibration with Analog Discovery 3**: Leverages the capabilities of the Analog Discovery 3 to automate the calibration process, enhancing the accuracy and reliability of the amplifier.
|
||||
|
||||
## Calibration Process
|
||||
## Calibration Methodology
|
||||
|
||||
The calibration of the amplifier is automated using the Analog Discovery 3 and Python. Here's how the calibration is carried out:
|
||||
Calibration is conducted using the Analog Discovery 3, which acts as both a signal generator and data logger, ensuring precise control and measurement of input-output relationships. The calibration script must be loaded into the Digilent WaveForms software.
|
||||
|
||||
### 1. **Signal Injection**
|
||||
### Steps Involved:
|
||||
|
||||
- The Analog Discovery 3 generates small differential voltages to simulate the load cell signals, sweeping from -20mV to +20mV in custom increments (e.g., 0.5mV steps).
|
||||
- It logs the generated input signal and the amplifier's output using its own scope.
|
||||
1. **Signal Generation**: Differential voltages ranging from -20mV to +20mV are generated in increments (e.g., 0.5mV steps) to simulate sensor output.
|
||||
2. **Data Logging**: During each input step, the amplifier's output is sampled over a 1-second interval to obtain average values.
|
||||
3. **Repeated Measurements**: Multiple sweeps across the entire voltage range are conducted to ensure data consistency and reliability.
|
||||
4. **Data Analysis**: A linear regression analysis is applied to the logged data to determine the amplifier's gain and offset, along with their respective uncertainties.
|
||||
|
||||
### 2. **Sampling and Logging**
|
||||
## Implementation Details
|
||||
|
||||
- Over a 1-second period, the system samples both the input signal and the amplifier's output.
|
||||
- It calculates the average value of each during this period.
|
||||
The calibration script automates the signal generation, data logging, and analysis process, providing a robust framework for ensuring the amplifier's accuracy. This script is located at `src/analog_discovery_code`.
|
||||
|
||||
### 3. **Multiple Sweeps**
|
||||
- **Customizable Parameters**: Users can set the voltage range, step size, and the number of sweeps.
|
||||
- **Efficient Data Handling**: The script logs both input and output values for each voltage step, ensuring thorough data collection.
|
||||
- **Advanced Analysis**: Uses linear regression to compute key parameters (gain and offset), incorporating uncertainty analysis to gauge calibration precision.
|
||||
|
||||
- The system performs multiple sweeps through the input range (e.g., -20mV to +20mV), repeating this process for a specified number of loops to ensure consistent data.
|
||||
### Workflow Example:
|
||||
|
||||
### 4. **Linear Regression and Analysis**
|
||||
1. **Initiate Calibration**: Load the calibration script into the Digilent WaveForms software and run it to start the process.
|
||||
2. **Configure Parameters**: Define the input sweep range, step size, and loop count.
|
||||
3. **Data Acquisition**: Log input and output voltages, averaging over defined intervals.
|
||||
4. **Compute Results**: The Python script `src/analyze_data.py` analyzes the data, calculates gain and offset, and reports results with uncertainties.
|
||||
|
||||
- Once the data is collected, Python performs a linear regression on each sweep to calculate:
|
||||
- **Average Amplification**: The gain of the amplifier.
|
||||
- **Offset**: Any static offset in the output.
|
||||
- The results include both the average amplification and offset, along with their uncertainties, providing a thorough calibration of the system.
|
||||
## Visual Documentation
|
||||
|
||||
## Python Script Overview
|
||||
Below are visual representations of the amplifier's performance, illustrating the calibration results and the physical setup:
|
||||
|
||||
The Python script used for calibration automates the process of sweeping, logging, and analyzing data from the Analog Discovery 3. Key functions include:
|
||||

|
||||
|
||||
- **Signal Generation**: Customizable step sizes, voltage range, and number of sweeps.
|
||||
- **Data Collection**: Logs both input and output voltages during each sweep.
|
||||
- **Linear Regression**: Fits a line to the data for each sweep to calculate the amplifier's gain and offset.
|
||||
- **Uncertainty Analysis**: Reports uncertainties in both the amplification and offset.
|
||||
### Calibration Outputs
|
||||
|
||||
### Example Workflow:
|
||||
- **Amplifier Gain vs Input**: Displays the relationship between input voltage and amplifier gain.
|
||||
|
||||

|
||||
|
||||
1. **Run the script** to initiate the calibration process.
|
||||
2. **Set the input sweep parameters**: range, step size, and number of loops.
|
||||
3. **Log the data**: Input and output values are sampled and averaged.
|
||||
4. **Perform regression**: Python analyzes the data, calculates gain and offset, and reports results with uncertainties.
|
||||
- **Amplifier Output vs Input**: Shows how the output voltage varies with input signal.
|
||||
|
||||

|
||||
|
||||
# TODO
|
||||
1. Rename files for better easibility
|
||||
This comprehensive documentation and systematic approach ensure that the differential amplifier is well-suited for high-precision applications, offering reliable performance tailored for mV/V instrumentation.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
BIN
readme_media/amplifier_board.jpg
Normal file
BIN
readme_media/amplifier_board.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.9 MiB |
@ -1,16 +1,14 @@
|
||||
clear(); // Clears window
|
||||
|
||||
var total_loops = 100;
|
||||
var average_duration = 1;
|
||||
var lower_end = -20; // Smallest mV to test
|
||||
var upper_end = 20; // Largest mV to test
|
||||
var step_size = 0.5; // Step size in mV
|
||||
var total_loops = 100; // How many times we sweep through the inputs values
|
||||
var average_duration = 1; // How long to sample amplifier output
|
||||
var lower_end = -20; // Smallest mV to test
|
||||
var upper_end = 20; // Largest mV to test
|
||||
var step_size = 0.5; // Step size in mV
|
||||
|
||||
if(!('Scope' in this)) throw "Please open a Scope instrument";
|
||||
|
||||
if (!('Wavegen' in this)) throw "Please open a Wavegen instrument";
|
||||
|
||||
|
||||
Wavegen.Channel1.Mode.text = "Simple";
|
||||
|
||||
Wavegen.run();
|
||||
@ -32,12 +30,13 @@ Supplies.Output.NegativeSupply.Voltage.value = -5;
|
||||
Supplies.MasterEnable.checked = 1;
|
||||
|
||||
print("Wavegen Output (mV),Wavegen Measured (mV),Diff Amplifier Measured (V),Single Amplifier Measured (V),Ideal Wavegen Gain,Real Wavegen Gain");
|
||||
|
||||
for (var i = 0; i < total_loops; i++) {
|
||||
for (var offset = lower_end; offset <= upper_end; offset += step_size) {
|
||||
var desired_output_voltage = offset / 1000
|
||||
Wavegen.Channel1.Simple.Offset.value = desired_output_voltage; // Set offset for desired output voltage
|
||||
|
||||
wait(average_duration + 0.2);
|
||||
wait(average_duration + 0.2); // Waiting for 0.2 extra seconds allows the data to be fully cleared
|
||||
|
||||
var diff_amp_out = Scope.Channel1.measure("Average");
|
||||
var average_wavegen_reading = Scope.Channel2.measure("Average");
|
||||
@ -49,15 +48,6 @@ for (var i = 0; i < total_loops; i++) {
|
||||
|
||||
var output = offset + "," + ((average_wavegen_reading)*1000).toFixed(3) + "," + (diff_amp_out.toFixed(3)) + "," + (single_amp_out.toFixed(3)) + ","+ (ideal_gain.toFixed(3)) + "," + real_gain.toFixed(3);
|
||||
print(output);
|
||||
|
||||
/*
|
||||
// Debug stuff
|
||||
print("Desired Wavegen = " + (offset) + " mV");
|
||||
print("Measured Wavegen = " + (average_wavegen_reading*1000) + " mV");
|
||||
print("Measured Amplifier Output = " + (average_reading) + " V");
|
||||
print("Calculated Gain from Ideal Wavegen = " + (average_reading / offset * 1000));
|
||||
print("Calculated Gain from Actual Wavegen = " + (gain));
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
||||
64
src/analyze_data.py
Normal file
64
src/analyze_data.py
Normal file
@ -0,0 +1,64 @@
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
from sklearn.metrics import r2_score
|
||||
from sklearn.linear_model import LinearRegression
|
||||
import os
|
||||
|
||||
# Load data from CSV file, handling missing or malformed data
|
||||
data = np.genfromtxt('data.csv', delimiter=',', skip_header=1, invalid_raise=False, missing_values='NaN')
|
||||
|
||||
# Remove any rows containing NaN values
|
||||
data = data[~np.isnan(data).any(axis=1)]
|
||||
|
||||
# Data extraction from the cleaned dataset
|
||||
wavegen_measured = data[:, 1] # Input voltage in mV
|
||||
diff_amplifier_measured = data[:, 2] # Amplifier output in volts
|
||||
real_wavegen_gain = data[:, 4] # Real gain from the dataset
|
||||
|
||||
# Linear regression for Wavegen Measured vs Diff Amplifier Measured
|
||||
coefficients_measured = np.polyfit(wavegen_measured, diff_amplifier_measured, 1)
|
||||
poly_func_measured = np.poly1d(coefficients_measured)
|
||||
r_squared_measured = r2_score(diff_amplifier_measured, poly_func_measured(wavegen_measured))
|
||||
|
||||
# Calculate the absolute percentage error for the linear fit, avoiding division by zero
|
||||
non_zero_indices = np.nonzero(diff_amplifier_measured)
|
||||
absolute_percentage_error_measured = np.mean(np.abs((diff_amplifier_measured[non_zero_indices] - poly_func_measured(wavegen_measured[non_zero_indices])) / diff_amplifier_measured[non_zero_indices])) * 100
|
||||
|
||||
# Plotting the linear fit results
|
||||
plt.figure(figsize=(8, 6))
|
||||
plt.scatter(wavegen_measured, diff_amplifier_measured, color='green', label='Amplifier Output', s=1)
|
||||
plt.plot(wavegen_measured, poly_func_measured(wavegen_measured), color='red', label='Linear Fit')
|
||||
plt.xlabel('Input (mV)')
|
||||
plt.ylabel('Amplifier Output (V)')
|
||||
plt.title('Amplifier Output vs Input')
|
||||
plt.legend()
|
||||
plt.grid(True)
|
||||
plt.savefig("images/Amplifier Output vs Input")
|
||||
plt.show()
|
||||
|
||||
# Clear the console after plotting
|
||||
os.system('cls' if os.name == 'nt' else 'clear')
|
||||
|
||||
# Output the results of the linear regression analysis
|
||||
print("\nPolynomial Fit Coefficients for Wavegen Measured vs Diff Amplifier Measured:", coefficients_measured)
|
||||
print("R^2 Value for Wavegen Measured vs Diff Amplifier Measured:", r_squared_measured)
|
||||
print("Average Absolute Percentage Error for Wavegen Measured vs Diff Amplifier Measured:", absolute_percentage_error_measured, "%")
|
||||
|
||||
# Close the current plot
|
||||
plt.close()
|
||||
|
||||
# Segment the data and fit multiple linear regression models
|
||||
set_size = 80
|
||||
slopes = []
|
||||
for i in range(len(data) // set_size):
|
||||
set_data = data[i * set_size: (i + 1) * set_size]
|
||||
x_values = set_data[:, 1] # Input values
|
||||
y_values = set_data[:, 2] # Output values
|
||||
model = LinearRegression().fit(x_values.reshape(-1, 1), y_values)
|
||||
slopes.append(model.coef_[0])
|
||||
print("Slope of linear fitting function for set", i+1, ":", model.coef_[0])
|
||||
|
||||
# Calculate and print the average slope
|
||||
average_slope = np.mean(slopes)
|
||||
print("\nAverage slope (mV/V):", average_slope * 1000)
|
||||
print("Standard Deviation of slopes:", np.std(slopes) * 1000)
|
||||
Loading…
Reference in New Issue
Block a user