From 2b7993d11da8df0bac4711fc067d62dd1b9c776d Mon Sep 17 00:00:00 2001 From: LiuRenxi Date: Thu, 30 Jun 2022 17:33:17 +0800 Subject: [PATCH] enable gaussian fitting of multiple snapshots iteratively --- gaussian_fit/input.cpp | 7 + gaussian_fit/input.h | 5 + gaussian_fit/main.cpp | 39 +- gaussian_fit/spot.cpp | 66 +- gaussian_fit/spot.h | 5 +- gaussian_fit/test/{ => gaussian}/INPUT | 0 gaussian_fit/test/{ => gaussian}/Makefile | 9 +- .../test/{ => gaussian}/fitted_intensity.txt | 0 .../test/{ => gaussian}/outIntensity.dat | 0 gaussian_fit/test/{ => gaussian}/plt.py | 0 .../test/{ => gaussian}/single_gaussian3.txt | 0 .../test/{ => gaussian}/test_gaussian_fit.cpp | 0 gaussian_fit/test/quantile/INPUT | 4 + gaussian_fit/test/quantile/Makefile | 18 + gaussian_fit/test/quantile/test.py | 3 + gaussian_fit/test/quantile/test_quantile.cpp | 26 + gaussian_fit/test/running.log | 992 ------------------ 17 files changed, 160 insertions(+), 1014 deletions(-) rename gaussian_fit/test/{ => gaussian}/INPUT (100%) rename gaussian_fit/test/{ => gaussian}/Makefile (85%) rename gaussian_fit/test/{ => gaussian}/fitted_intensity.txt (100%) rename gaussian_fit/test/{ => gaussian}/outIntensity.dat (100%) rename gaussian_fit/test/{ => gaussian}/plt.py (100%) rename gaussian_fit/test/{ => gaussian}/single_gaussian3.txt (100%) rename gaussian_fit/test/{ => gaussian}/test_gaussian_fit.cpp (100%) create mode 100644 gaussian_fit/test/quantile/INPUT create mode 100644 gaussian_fit/test/quantile/Makefile create mode 100644 gaussian_fit/test/quantile/test.py create mode 100644 gaussian_fit/test/quantile/test_quantile.cpp delete mode 100644 gaussian_fit/test/running.log diff --git a/gaussian_fit/input.cpp b/gaussian_fit/input.cpp index b3c22b0..bf0a83f 100644 --- a/gaussian_fit/input.cpp +++ b/gaussian_fit/input.cpp @@ -2,6 +2,8 @@ Input INPUT; ofstream ofs_running; +ofstream ofs_local_max; +ofstream ofs_predict; Input::Input() { @@ -10,6 +12,7 @@ Input::Input() intensity_thre = 0.0; write_local_max = 0; write_predicted_intensity = 0; + top_pctg = 0.0; } Input::~Input(){} @@ -26,6 +29,10 @@ void Input::read() else if (strcmp(keyword, "intensity_thre") == 0) read_value(ifs, intensity_thre); else if (strcmp(keyword, "write_local_max") == 0) read_value(ifs, write_local_max); else if (strcmp(keyword, "write_predicted_intensity") == 0) read_value(ifs, write_predicted_intensity); + else if (strcmp(keyword, "intensity_file") == 0) read_value(ifs, intensity_file); + else if (strcmp(keyword, "nsnapshot") == 0) read_value(ifs, nsnapshot); + else if (strcmp(keyword, "top_pctg") == 0) read_value(ifs, top_pctg); + } return; } \ No newline at end of file diff --git a/gaussian_fit/input.h b/gaussian_fit/input.h index b54c3d8..d40d0c8 100644 --- a/gaussian_fit/input.h +++ b/gaussian_fit/input.h @@ -25,6 +25,9 @@ class Input double intensity_thre; int write_local_max; int write_predicted_intensity; + string intensity_file; + int nsnapshot; + double top_pctg; // The top percentage will be used to calculate the intensity threshold. @@ -40,5 +43,7 @@ class Input extern Input INPUT; extern ofstream ofs_running; +extern ofstream ofs_local_max; +extern ofstream ofs_predict; #endif \ No newline at end of file diff --git a/gaussian_fit/main.cpp b/gaussian_fit/main.cpp index 9eaa4fc..9454d51 100644 --- a/gaussian_fit/main.cpp +++ b/gaussian_fit/main.cpp @@ -6,17 +6,42 @@ int main(int argc, char **argv) { INPUT.read(); ofs_running.open("running.log"); + ofs_local_max.open("local_max.txt"); + ofs_predict.open("predicted_intensity.txt"); Spot spot; ifstream ifs; - ifs.open("outIntensity.dat"); - cout << INPUT.intensity_thre << endl; - spot.readin(ifs); - spot.identify_local_max(); - spot.fit_gaussian(); - spot.predict(); - spot.clean(); + ifs.open(INPUT.intensity_file); + //cout << INPUT.intensity_thre << endl; + for (int isnapshot=0; isnapshot 0) + { + ofs_running << "isnapshot=" << isnapshot << endl; + cout << "isnapshot=" << isnapshot << endl; + } + if (INPUT.top_pctg > 0) + { + spot.calc_quantile(); + } + else + { + spot.quantile = INPUT.intensity_thre; + } + ofs_running << "intensity_thre=" << spot.quantile << endl; + spot.identify_local_max(); + if (INPUT.write_local_max) + { + ofs_local_max << "isnapshot=" << isnapshot << " " << spot.nlocal_max << endl; + } + spot.fit_gaussian(); + spot.predict(); + spot.clean(); + } ofs_running.close(); + ofs_local_max.close(); + ofs_predict.close(); return 0; } \ No newline at end of file diff --git a/gaussian_fit/spot.cpp b/gaussian_fit/spot.cpp index 555d80c..0ef5391 100644 --- a/gaussian_fit/spot.cpp +++ b/gaussian_fit/spot.cpp @@ -21,7 +21,7 @@ void Spot::identify_local_max() { for (int ix=window_width; ixlocal_max_thre) + if (value[iy][ix] < this->quantile) { continue; } @@ -47,7 +47,7 @@ void Spot::identify_local_max() nlocal_max++; if (INPUT.write_local_max > 0) { - ofs_running << "local_max " << nlocal_max-1 << ", ix=" << ix << ", iy=" << iy << endl; + ofs_running << nlocal_max-1 << " " << ix << " " << iy << endl; for (int iy1=-l; iy1 0) + { + ofs_local_max << imax << " " << local_max_coord[imax][1] << " " << local_max_coord[imax][0] << " " << gaussian[imax].I << " " + << gaussian[imax].x0 << " " << gaussian[imax].y0 << " " << gaussian[imax].sigmax2 << " " << gaussian[imax].sigmay2 << " " << gaussian[imax].alpha << endl; + } } fit_ = true; for (int iy=0; iywindow_width; iy++) @@ -109,6 +115,7 @@ void Spot::predict() for (int imax=0; imax 2 or abs(gaussian[imax].y0) > 2) continue; for (int iy=0; iy 0) { - ofstream ofs("fitted_intensity.txt"); - ofs << setprecision(8); + //ofstream ofs("fitted_intensity.txt"); + ofs_predict << setprecision(8); for (int iy=0; iy 0); assert(INPUT.window_width > 0); - assert(INPUT.intensity_thre > 0); + assert(INPUT.intensity_thre > 0 or INPUT.top_pctg > 0); this->width = INPUT.width; this->window_width = INPUT.window_width; - this->local_max_thre = INPUT.intensity_thre; + //this->local_max_thre = INPUT.intensity_thre; this->value = new double*[width]; for (int iy=0; iyvalue[iy] = new double[width]; for (int iy=0; iyread_); + int length = this->width*this->width; + double* intensity1D = new double[length]; + for (int iy=0; iywidth; iy++) + { + for (int ix=0; ixwidth; ix++) + { + intensity1D[iy*this->width + ix] = this->value[iy][ix]; + } + } + + int Ntop_pctg = int(INPUT.top_pctg * length)+1; + //cout << "Ntop_pctg=" << Ntop_pctg << endl; + for (int ii=0; ii + +TEST(Quantile_test, quantile) +{ + cout << 0 << endl; + INPUT.read(); + Spot spot; + ifstream ifs; + cout << 1 << endl; + ifs.open(INPUT.intensity_file); + spot.readin(ifs); + cout << 2 << endl; + ifs.close(); + spot.calc_quantile(); + EXPECT_FLOAT_EQ(spot.quantile, 9.86382); +} + + +int main(int argc, char **argv) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} \ No newline at end of file diff --git a/gaussian_fit/test/running.log b/gaussian_fit/test/running.log deleted file mode 100644 index 01f0e96..0000000 --- a/gaussian_fit/test/running.log +++ /dev/null @@ -1,992 +0,0 @@ -local_max 0, ix=530, iy=361 -0.869053 0.892017 0.852601 -1.03954 1.12225 1.08244 -0.878027 0.934083 1.07658 -local_max 1, ix=532, iy=361 -0.852601 0.795819 0.703283 -1.08244 1.12211 1.03314 -1.07658 1.04902 1.06087 -local_max 2, ix=527, iy=370 -1.30548 1.27261 1.2114 -1.36488 1.39178 1.29458 -1.10707 1.05984 1.26161 -local_max 3, ix=529, iy=371 -1.29458 1.30601 1.28652 -1.26161 1.32872 1.26747 -1.0285 1.13439 1.14746 -local_max 4, ix=549, iy=372 -0.982609 0.905158 0.884841 -1.03979 1.09761 1.07124 -0.912776 0.961926 0.924516 -local_max 5, ix=517, iy=377 -1.27338 1.42224 1.35612 -1.4761 1.64185 1.57649 -1.36163 1.47773 1.53641 -local_max 6, ix=521, iy=378 -1.62214 1.61471 1.42582 -1.66705 1.70892 1.64384 -1.29818 1.32234 1.41972 -local_max 7, ix=523, iy=378 -1.42582 1.39531 1.29681 -1.64384 1.71527 1.55463 -1.41972 1.45756 1.48516 -local_max 8, ix=527, iy=379 -1.44749 1.38814 1.21932 -1.46772 1.48234 1.3042 -1.38116 1.39666 1.3968 -local_max 9, ix=534, iy=379 -1.02538 1.08366 1.07501 -1.08509 1.12983 1.12717 -1.08709 1.09428 1.07584 -local_max 10, ix=544, iy=380 -1.54109 1.59824 1.34164 -1.93277 1.95616 1.75513 -1.78167 1.91402 1.91097 -local_max 11, ix=515, iy=386 -1.79429 1.83803 1.84048 -2.15504 2.26308 2.25459 -2.04673 2.10134 2.11695 -local_max 12, ix=517, iy=386 -1.84048 1.74301 1.79129 -2.25459 2.28957 2.26924 -2.11695 2.13267 2.22369 -local_max 13, ix=539, iy=389 -2.81783 2.76345 2.61896 -2.97789 3.05943 2.96335 -2.41482 2.62306 2.74128 -local_max 14, ix=496, iy=394 -1.11133 1.19516 1.15406 -1.27812 1.36107 1.33621 -1.27406 1.29909 1.25431 -local_max 15, ix=494, iy=395 -1.09419 1.25733 1.27812 -1.219 1.27993 1.27406 -1.08098 1.05133 1.11112 -local_max 16, ix=514, iy=395 -1.90772 1.92764 1.88165 -2.39826 2.45033 2.41015 -2.22711 2.34311 2.37684 -local_max 17, ix=516, iy=395 -1.88165 1.89303 1.90591 -2.41015 2.41475 2.38851 -2.37684 2.32526 2.20358 -local_max 18, ix=527, iy=395 -2.42273 2.57448 2.50095 -2.89777 3.0646 3.02284 -2.75881 2.81788 3.00805 -local_max 19, ix=571, iy=395 -1.01693 1.003 0.892174 -0.991066 1.03489 0.99986 -0.807257 0.923331 1.03235 -local_max 20, ix=534, iy=397 -3.7556 3.42998 3.15264 -4.15257 4.19843 3.99873 -3.59661 3.90381 4.03078 -local_max 21, ix=536, iy=398 -3.99873 3.91729 3.74429 -4.03078 4.11612 4.03101 -3.0886 3.39453 3.48199 -local_max 22, ix=554, iy=400 -1.01951 0.992139 0.919603 -1.04753 1.06325 1.03199 -0.809326 0.880911 0.87905 -local_max 23, ix=584, iy=400 -0.967782 0.973792 0.877882 -1.03637 1.07664 1.02101 -0.933986 1.02384 1.0607 -local_max 24, ix=560, iy=401 -1.21265 1.24359 1.16828 -1.2385 1.36193 1.34013 -0.970533 1.19381 1.3171 -local_max 25, ix=564, iy=402 -1.49041 1.52987 1.31241 -1.54677 1.69553 1.61462 -1.38941 1.55031 1.55287 -local_max 26, ix=507, iy=403 -1.81241 1.74021 1.60563 -1.99809 2.11534 2.10575 -1.97613 2.07451 2.04224 -local_max 27, ix=567, iy=403 -1.45685 1.33405 1.15449 -1.57985 1.58139 1.36501 -1.50608 1.57507 1.45118 -local_max 28, ix=477, iy=404 -0.806819 0.868548 0.858354 -1.00105 1.00934 0.975544 -0.902804 0.883742 0.820554 -local_max 29, ix=495, iy=404 -1.03782 0.975733 1.00756 -1.08916 1.1105 0.969126 -1.07303 1.08034 0.888121 -local_max 30, ix=510, iy=404 -1.93006 1.78169 1.74944 -2.08518 2.12002 2.10391 -1.96731 2.03679 2.08757 -local_max 31, ix=587, iy=404 -0.95502 1.01343 0.945723 -0.897438 1.01548 0.98751 -0.791499 0.88233 0.900621 -local_max 32, ix=527, iy=405 -5.37279 5.18614 4.99387 -5.52085 5.61478 5.52742 -4.58838 4.91199 5.21335 -local_max 33, ix=576, iy=406 -1.04785 1.06339 0.996465 -1.11868 1.19879 1.1822 -1.11576 1.08202 1.1652 -local_max 34, ix=549, iy=408 -1.90394 1.83349 1.67962 -2.0823 2.16794 2.11716 -1.92964 1.90941 1.97097 -local_max 35, ix=552, iy=409 -2.10554 2.02224 2.06968 -2.07039 2.22308 2.14389 -1.65686 1.75556 1.94412 -local_max 36, ix=579, iy=409 -1.28541 1.30322 1.16311 -1.22499 1.30927 1.28017 -1.04155 1.18071 1.2059 -local_max 37, ix=557, iy=410 -2.46781 2.33271 2.31135 -2.57043 2.63526 2.6235 -2.1862 2.30784 2.61033 -local_max 38, ix=503, iy=412 -2.08945 2.30941 2.14279 -2.24694 2.49021 2.33262 -2.08895 2.14164 2.15105 -local_max 39, ix=522, iy=413 -7.42525 7.24389 6.68039 -8.51743 8.64331 8.3456 -8.17659 8.54999 8.48749 -local_max 40, ix=569, iy=414 -1.5755 1.54754 1.48944 -1.62344 1.74693 1.69023 -1.34899 1.51526 1.58876 -local_max 41, ix=475, iy=415 -0.853344 1.03049 1.15262 -1.10663 1.24557 1.2004 -1.14226 1.20081 1.20773 -local_max 42, ix=477, iy=415 -1.15262 1.16594 1.05617 -1.2004 1.25492 1.11448 -1.20773 1.10341 0.909269 -local_max 43, ix=551, iy=418 -4.40464 4.23829 3.74914 -4.69793 4.73906 4.585 -4.07976 4.22847 4.41229 -local_max 44, ix=501, iy=421 -2.5101 2.63116 2.48924 -2.71199 2.72552 2.50379 -2.50518 2.44285 2.25258 -local_max 45, ix=564, iy=422 -2.09046 1.90431 1.58487 -2.10147 2.16373 2.01854 -1.97443 2.00056 2.09994 -local_max 46, ix=520, iy=423 -8.39012 8.37285 8.08664 -8.57489 8.70308 8.40827 -6.59072 6.88338 6.7496 -local_max 47, ix=566, iy=423 -2.01854 1.91321 1.74132 -2.09994 2.13296 2.02425 -1.75794 1.89403 2.02685 -local_max 48, ix=534, iy=424 -5.31653 5.07718 4.6191 -5.53797 5.59838 5.38119 -4.86091 4.85506 4.98106 -local_max 49, ix=545, iy=426 -7.47078 7.21747 6.76881 -8.3725 8.52279 8.36649 -7.74631 8.37118 8.49608 -local_max 50, ix=499, iy=432 -3.66384 3.69619 3.56532 -3.57568 3.71957 3.35865 -3.15881 3.07259 2.83615 -local_max 51, ix=521, iy=432 -10.2603 10.1369 10.095 -10.7019 10.7856 10.6932 -8.65005 8.97348 8.89635 -local_max 52, ix=525, iy=432 -9.71874 9.59651 9.04524 -10.2445 10.2888 9.81298 -8.46373 8.56479 8.27677 -local_max 53, ix=561, iy=432 -3.22319 3.32985 2.99534 -3.105 3.43134 3.40487 -2.57029 3.05235 3.1179 -local_max 54, ix=538, iy=434 -11.8841 11.7631 11.2334 -13.3379 14.0104 13.6922 -12.2424 13.5633 13.8569 -local_max 55, ix=480, iy=437 -1.13403 1.14685 1.20511 -1.26868 1.2735 1.25392 -1.26116 1.25294 1.14879 -local_max 56, ix=492, iy=437 -1.13916 1.26091 1.27616 -1.22257 1.32815 1.30264 -1.15755 1.2554 1.2927 -local_max 57, ix=477, iy=438 -1.2332 1.3811 1.36649 -1.46209 1.47939 1.38033 -1.32802 1.32246 1.23333 -local_max 58, ix=526, iy=441 -21.2853 21.4025 20.5594 -24.6788 25.3681 24.8494 -24.1499 24.422 24.7183 -local_max 59, ix=529, iy=442 -23.7852 22.935 22.0718 -24.5972 24.6333 24.1114 -21.1978 21.8874 22.5887 -local_max 60, ix=533, iy=443 -22.6809 22.0754 20.3327 -23.5871 24.2216 23.7434 -20.0704 22.1002 23.208 -local_max 61, ix=536, iy=444 -23.0223 22.0691 20.6355 -23.5407 24.0807 23.4888 -20.3383 21.7282 22.5724 -local_max 62, ix=456, iy=445 -1.23126 1.42664 1.44984 -1.38569 1.45053 1.39293 -1.3378 1.24201 1.19894 -local_max 63, ix=567, iy=446 -1.11337 1.10471 0.868758 -1.04627 1.13125 1.07301 -0.842435 0.982353 0.987695 -local_max 64, ix=467, iy=447 -1.32197 1.40707 1.42656 -1.40599 1.52142 1.51268 -1.40295 1.40535 1.33768 -local_max 65, ix=507, iy=447 -11.0595 11.3311 10.8399 -12.4943 12.7224 12.3623 -12.5408 12.6919 11.9113 -local_max 66, ix=488, iy=449 -4.52898 4.52831 4.4591 -4.21481 4.55709 4.52409 -3.82664 4.01002 4.19981 -local_max 67, ix=529, iy=452 -21.8525 21.3896 19.6436 -22.4211 23.452 23.0217 -18.2385 20.2515 21.5989 -local_max 68, ix=561, iy=455 -2.93101 3.07303 2.95134 -2.90687 3.14578 3.11266 -2.48117 2.7674 2.88668 -local_max 69, ix=456, iy=457 -2.662 3.08408 2.99781 -3.09669 3.39821 3.26802 -3.17743 3.37402 3.02345 -local_max 70, ix=469, iy=457 -4.00022 4.32451 4.3339 -4.337 4.6809 4.55249 -4.48179 4.51769 4.33131 -local_max 71, ix=489, iy=459 -3.57248 3.57226 3.42069 -3.77712 3.81535 3.68249 -3.31986 3.24731 3.19833 -local_max 72, ix=590, iy=459 -2.97438 3.01148 2.87568 -3.05155 3.18152 3.01075 -2.90151 3.02371 2.98067 -local_max 73, ix=520, iy=460 -74.5454 74.6245 72.1656 -77.0039 79.601 79.0652 -69.726 73.6536 75.1405 -local_max 74, ix=601, iy=462 -1.85207 1.94487 1.91153 -1.87002 1.95476 1.84368 -1.81559 1.8672 1.82959 -local_max 75, ix=532, iy=464 -51.072 48.6149 45.0211 -51.2591 51.3195 49.2895 -46.2749 47.6202 48.0585 -local_max 76, ix=556, iy=464 -8.79803 8.8584 8.20293 -9.07125 9.33529 8.66435 -8.58009 8.8647 8.38133 -local_max 77, ix=571, iy=464 -4.23765 4.24348 3.89032 -4.2898 4.3023 3.91014 -4.118 4.24983 3.9598 -local_max 78, ix=583, iy=464 -5.00563 5.09404 5.04885 -4.92851 5.35373 5.28096 -4.65633 4.95288 5.21722 -local_max 79, ix=614, iy=465 -1.01585 1.02104 1.00475 -0.953354 1.07666 0.998401 -0.909392 0.994577 0.97104 -local_max 80, ix=617, iy=468 -0.987608 0.922066 0.704503 -0.948533 1.01189 0.797485 -0.96931 0.981283 0.796486 -local_max 81, ix=457, iy=469 -1.83097 1.89835 1.773 -1.93718 2.0098 1.70385 -1.86003 1.85192 1.42558 -local_max 82, ix=489, iy=472 -50.9673 53.2709 52.0676 -53.6845 56.1221 54.7311 -53.1137 54.5513 53.1812 -local_max 83, ix=466, iy=473 -2.13865 2.54698 2.34789 -2.37485 2.66619 2.4272 -2.48801 2.49905 2.22348 -local_max 84, ix=475, iy=475 -1.76566 2.3378 2.46436 -2.16797 2.64307 2.59468 -2.31628 2.59085 2.5319 -local_max 85, ix=608, iy=475 -1.08569 1.16961 1.04254 -1.06327 1.18746 1.06078 -1.13198 1.17957 1.15192 -local_max 86, ix=530, iy=476 -69.6745 69.3845 65.9293 -68.2655 71.0883 70.1493 -62.3387 68.3736 69.7837 -local_max 87, ix=516, iy=478 -139.097 136.699 125.915 -139.458 140.077 132.745 -132.21 137.407 134.06 -local_max 88, ix=562, iy=478 -7.84574 8.15446 7.86104 -7.84214 8.2534 8.17627 -7.22058 7.81899 8.19388 -local_max 89, ix=437, iy=482 -2.21709 2.46397 2.45498 -2.33384 2.68665 2.59822 -2.41948 2.61195 2.63612 -local_max 90, ix=449, iy=482 -5.75429 5.91976 5.75034 -5.72624 6.33062 6.22125 -5.49248 6.06826 6.13079 -local_max 91, ix=426, iy=483 -0.935104 0.937854 0.835541 -0.983093 1.05542 0.920153 -1.0204 1.04147 0.947465 -local_max 92, ix=534, iy=487 -103.762 104.184 97.1672 -103.114 104.259 97.8757 -100.289 100.002 93.4613 -local_max 93, ix=549, iy=487 -61.7836 61.1856 56.8347 -62.2416 62.3501 58.673 -59.017 60.9977 58.6203 -local_max 94, ix=598, iy=490 -5.78356 5.77647 5.61905 -5.87448 5.88443 5.60155 -5.51076 5.65184 5.50782 -local_max 95, ix=510, iy=491 -344.901 347.597 340.384 -346.224 351.416 346.55 -325.587 332.615 331.753 -local_max 96, ix=456, iy=493 -8.59568 8.93533 8.0923 -8.67609 9.11781 8.49653 -8.24149 9.02818 8.77268 -local_max 97, ix=468, iy=493 -35.5904 35.1213 32.5383 -34.637 35.976 33.5377 -33.1809 34.6533 33.9545 -local_max 98, ix=483, iy=494 -155.315 155.837 147.904 -159.036 161.334 155.111 -154.319 159.328 155.471 -local_max 99, ix=609, iy=495 -6.57137 6.64666 6.32455 -6.64317 6.74481 6.28135 -6.52571 6.51943 6.18147 -local_max 100, ix=638, iy=495 -0.941606 1.04177 0.946484 -0.983125 1.11891 1.06368 -0.939426 1.11143 1.0794 -local_max 101, ix=457, iy=496 -8.6909 8.83 8.03309 -8.67984 8.94085 8.16934 -8.12256 8.54187 8.19722 -local_max 102, ix=578, iy=497 -27.273 29.0249 28.2072 -27.9891 29.0539 27.669 -28.1552 27.9937 26.2829 -local_max 103, ix=619, iy=497 -4.92025 5.23823 5.26112 -4.90755 5.37907 5.15102 -4.9342 5.12838 5.00679 -local_max 104, ix=447, iy=498 -1.54433 1.73025 1.51039 -1.63698 1.85158 1.74347 -1.48401 1.80504 1.73201 -local_max 105, ix=548, iy=499 -46.5836 50.321 49.868 -49.0388 51.7158 50.0375 -50.3619 51.1211 48.2449 -local_max 106, ix=590, iy=499 -14.8676 15.7206 14.6272 -15.4303 16.1102 14.4907 -15.6318 15.7936 14.0075 -local_max 107, ix=629, iy=499 -2.53359 2.7828 2.69708 -2.46467 2.80468 2.72118 -2.43047 2.78147 2.65751 -local_max 108, ix=638, iy=499 -1.01393 1.11275 1.1167 -1.01774 1.18525 1.16062 -1.01733 1.17922 1.1562 -local_max 109, ix=610, iy=501 -5.87936 5.80975 5.50548 -5.57947 5.93185 5.49876 -5.47327 5.73153 5.35385 -local_max 110, ix=639, iy=502 -1.20186 1.15832 1.1942 -1.19975 1.20281 1.16353 -1.1447 1.14375 1.09829 -local_max 111, ix=629, iy=503 -2.46392 2.57276 2.46037 -2.29704 2.58656 2.35705 -2.28347 2.49798 2.30747 -local_max 112, ix=499, iy=504 -630.279 638.968 617.085 -627.962 650.562 644.48 -588.095 621.25 629.546 -local_max 113, ix=572, iy=504 -27.2674 29.2066 29.2022 -28.3709 29.7555 28.7645 -28.5974 29.3686 27.4428 -local_max 114, ix=589, iy=504 -14.9725 15.9995 15.2805 -15.2267 16.0627 15.188 -15.4108 15.9049 14.6833 -local_max 115, ix=589, iy=506 -15.4108 15.9049 14.6833 -15.4963 16.0211 14.6222 -15.7822 15.7396 14.248 -local_max 116, ix=560, iy=508 -59.7056 60.6452 54.725 -60.4496 60.9065 53.6131 -60.3679 59.6311 51.5363 -local_max 117, ix=600, iy=508 -11.5463 11.8698 10.9849 -11.6207 11.9034 10.7934 -11.7229 11.6538 10.4237 -local_max 118, ix=516, iy=509 -502.165 507.38 496.813 -516.635 519.464 507.091 -496.155 495.356 479.699 -local_max 119, ix=545, iy=509 -70.0298 74.0775 73.7902 -72.4875 75.3273 74.6919 -72.2706 74.0975 73.0222 -local_max 120, ix=481, iy=510 -1.2853 1.22784 0.914589 -1.37459 1.53268 1.06345 -1.03649 1.50002 1.45445 -local_max 121, ix=599, iy=510 -10.1036 11.7229 11.6538 -10.537 11.7939 11.4723 -10.5459 11.649 11.0868 -local_max 122, ix=610, iy=513 -4.53753 4.81495 4.52773 -4.63665 4.89424 4.28112 -4.79507 4.86175 4.19102 -local_max 123, ix=445, iy=514 -15.1288 15.4217 14.3848 -14.6604 15.4788 14.9753 -13.889 15.0894 15.0822 -local_max 124, ix=458, iy=515 -23.3111 23.6321 20.8164 -22.5993 23.8517 21.492 -21.3954 23.1812 21.9674 -local_max 125, ix=389, iy=516 -1.01877 1.01513 0.708091 -1.02563 1.06637 0.764224 -0.983716 1.01074 0.825678 -local_max 126, ix=433, iy=516 -8.12469 8.41942 7.54356 -8.07109 8.52471 7.75378 -7.41209 8.37005 8.00499 -local_max 127, ix=380, iy=517 -1.02905 0.974815 0.781063 -1.05977 1.13463 0.880325 -1.09232 1.12409 0.893157 -local_max 128, ix=473, iy=518 -96.7256 95.2429 86.812 -95.6316 97.1772 91.7551 -88.2226 93.8404 92.4453 -local_max 129, ix=370, iy=519 -0.86186 1.003 0.960764 -0.870587 1.04944 1.00841 -0.852469 1.03963 1.0079 -local_max 130, ix=526, iy=519 -50.4898 53.8356 53.5712 -55.68 58.0449 56.4704 -53.4138 55.9779 53.8256 -local_max 131, ix=608, iy=519 -5.01142 5.64632 5.50666 -5.61052 5.7352 5.24382 -5.70302 5.67747 4.91274 -local_max 132, ix=540, iy=520 -94.3131 100.539 99.0382 -99.4523 105.594 102.806 -99.7662 104.769 101.465 -local_max 133, ix=567, iy=520 -54.4138 60.0898 59.5867 -60.9341 63.606 59.4604 -63.056 62.1671 54.9865 -local_max 134, ix=380, iy=521 -1.107 1.1963 0.991316 -1.09464 1.29079 1.06547 -1.03651 1.20624 1.06047 -local_max 135, ix=607, iy=521 -4.9482 5.70302 5.67747 -5.25836 5.83038 5.29172 -5.48314 5.56024 4.78226 -local_max 136, ix=371, iy=522 -1.06566 1.08463 0.946101 -1.09774 1.14581 0.996247 -1.10421 1.14437 1.005 -local_max 137, ix=618, iy=522 -1.84659 2.29596 2.3961 -2.0308 2.4002 2.27792 -2.23539 2.37419 2.21028 -local_max 138, ix=380, iy=524 -1.06884 1.20182 1.13002 -1.0861 1.38207 1.22953 -1.10028 1.37383 1.24661 -local_max 139, ix=503, iy=524 -464.117 470.109 461.208 -464.563 480.065 476.895 -451.203 473.737 474.501 -local_max 140, ix=618, iy=524 -2.23539 2.37419 2.21028 -2.2843 2.42482 2.2087 -2.37155 2.35057 1.97399 -local_max 141, ix=371, iy=525 -1.02466 1.12845 1.0942 -1.05456 1.22069 1.17415 -1.06553 1.21127 1.18329 -local_max 142, ix=576, iy=526 -30.6874 36.7884 38.7729 -35.2288 39.0056 38.5668 -37.4831 38.5258 35.4698 -local_max 143, ix=490, iy=528 -71.3674 72.2666 63.2749 -68.3892 72.2878 66.0912 -65.0816 71.2187 66.9088 -local_max 144, ix=372, iy=529 -1.23779 1.22644 0.908702 -1.29262 1.33068 0.97057 -1.24198 1.30411 1.08045 -local_max 145, ix=425, iy=529 -5.83226 6.58243 6.25712 -5.6672 6.65784 6.58225 -5.30107 6.36304 6.4161 -local_max 146, ix=363, iy=530 -1.09078 1.09837 0.839401 -1.02423 1.14734 0.923724 -1.0594 1.0441 0.939513 -local_max 147, ix=381, iy=531 -1.53314 1.66724 1.43752 -1.64794 1.84414 1.458 -1.65069 1.80847 1.58944 -local_max 148, ix=414, iy=531 -4.25519 4.82167 4.53536 -4.23683 5.06243 4.91032 -4.07914 4.87751 4.96271 -local_max 149, ix=468, iy=531 -79.1288 79.8552 72.5016 -78.6863 83.5031 78.9569 -75.1923 82.3825 82.3979 -local_max 150, ix=546, iy=531 -92.1007 97.5707 95.8701 -97.7424 99.7546 95.4601 -97.3815 95.7668 88.9313 -local_max 151, ix=586, iy=531 -24.8558 28.1944 28.4235 -27.8698 29.3168 28.3444 -29.1709 29.0366 26.3317 -local_max 152, ix=519, iy=532 -290.732 294.2 278.475 -294.467 294.914 276.433 -273.559 270.526 250.68 -local_max 153, ix=415, iy=533 -4.87751 4.96271 4.45794 -4.71248 5.05829 4.6162 -4.63028 4.97319 4.63002 -local_max 154, ix=363, iy=534 -1.10297 1.1867 0.948747 -1.06456 1.20479 1.0367 -1.08283 1.1458 1.02247 -local_max 155, ix=372, iy=536 -1.37568 1.56505 1.33817 -1.44425 1.68878 1.43713 -1.49629 1.63882 1.517 -local_max 156, ix=391, iy=536 -2.41256 2.52519 2.42096 -2.46772 2.59372 2.51432 -2.42555 2.59113 2.55273 -local_max 157, ix=596, iy=536 -12.2525 13.6935 13.6813 -13.4997 14.382 13.1654 -14.1851 13.8693 12.0957 -local_max 158, ix=363, iy=537 -1.0039 1.14101 0.98784 -1.03937 1.22088 1.0414 -1.09357 1.13488 1.03251 -local_max 159, ix=405, iy=537 -3.15407 3.23726 2.97723 -3.06954 3.25411 3.01947 -3.09847 3.22008 3.04121 -local_max 160, ix=534, iy=537 -67.3629 67.5869 65.1037 -66.9216 67.6446 66.6907 -63.8232 65.8929 65.218 -local_max 161, ix=555, iy=537 -61.5147 64.9412 66.1561 -64.1705 66.6392 65.4841 -65.7504 64.8824 60.788 -local_max 162, ix=566, iy=537 -53.9185 54.6225 52.3905 -54.5075 55.0836 51.967 -55.0382 54.6112 51.1298 -local_max 163, ix=458, iy=538 -46.382 46.418 40.5282 -46.2945 48.1224 43.9331 -45.462 48.0899 45.8054 -local_max 164, ix=391, iy=539 -2.54633 2.68318 2.51984 -2.67413 2.75841 2.63827 -2.50281 2.61473 2.57865 -local_max 165, ix=405, iy=539 -3.09847 3.22008 3.04121 -2.9654 3.27529 3.20408 -2.90219 3.18325 3.1887 -local_max 166, ix=606, iy=540 -5.86999 6.66014 6.50544 -6.35893 6.76323 6.45781 -6.63991 6.72908 5.97903 -local_max 167, ix=363, iy=541 -1.09752 1.21766 1.05181 -1.10231 1.22982 1.09362 -1.14552 1.17668 1.05052 -local_max 168, ix=381, iy=541 -2.17326 2.44583 2.36569 -2.2919 2.55286 2.48794 -2.25428 2.50287 2.42625 -local_max 169, ix=577, iy=541 -23.5735 25.5481 25.4787 -25.7823 26.3126 24.8641 -25.9931 25.6698 23.0214 -local_max 170, ix=372, iy=543 -1.69054 1.90044 1.73238 -1.79986 1.95333 1.73492 -1.83163 1.86979 1.72676 -local_max 171, ix=381, iy=543 -2.25428 2.50287 2.42625 -2.28962 2.52921 2.40916 -2.28259 2.52434 2.51689 -local_max 172, ix=390, iy=543 -2.31792 2.42076 2.46359 -2.35453 2.53282 2.48145 -2.2303 2.341 2.33408 -local_max 173, ix=494, iy=543 -171.857 172.964 166.597 -172.824 178.347 175.042 -167.874 177.039 176.284 -local_max 174, ix=397, iy=544 -2.16636 2.19827 2.03863 -2.15135 2.22649 2.084 -2.05174 2.15982 1.9925 -local_max 175, ix=446, iy=544 -31.8061 35.527 33.5614 -31.3899 35.8524 35.0149 -29.7501 35.0276 35.2134 -local_max 176, ix=362, iy=545 -1.16776 1.22546 1.29762 -1.21812 1.31005 1.26113 -1.28496 1.29794 1.29531 -local_max 177, ix=381, iy=545 -2.28259 2.52434 2.51689 -2.36356 2.55049 2.3535 -2.36066 2.49203 2.21022 -local_max 178, ix=390, iy=545 -2.2303 2.341 2.33408 -2.19183 2.34599 2.30591 -2.19223 2.21463 2.12019 -local_max 179, ix=406, iy=545 -2.58189 2.79295 2.49473 -2.47551 2.81635 2.44669 -2.45646 2.80261 2.51242 -local_max 180, ix=615, iy=545 -2.29064 2.64671 2.63819 -2.50966 2.72863 2.6713 -2.55488 2.59097 2.43212 -local_max 181, ix=372, iy=546 -1.85714 2.01392 1.71909 -1.94119 2.02959 1.76552 -1.89501 1.99219 1.74986 -local_max 182, ix=381, iy=547 -2.36066 2.49203 2.21022 -2.4134 2.54945 2.28164 -2.30267 2.43507 2.24252 -local_max 183, ix=586, iy=547 -12.0014 13.5306 13.5788 -13.3878 14.1719 13.0205 -13.9735 13.6008 11.8647 -local_max 184, ix=353, iy=548 -0.957026 0.926675 0.813688 -0.998469 1.01907 0.841115 -0.978014 0.981503 0.789337 -local_max 185, ix=397, iy=548 -1.83041 1.92549 1.85812 -1.80374 1.93282 1.75571 -1.68039 1.81405 1.62421 -local_max 186, ix=517, iy=548 -149.457 150.148 140.741 -155.825 156.369 146.896 -154.955 156.088 145.052 -local_max 187, ix=371, iy=550 -1.89671 1.98527 1.98215 -1.85026 2.02948 1.99151 -1.81416 1.98141 1.95365 -local_max 188, ix=436, iy=550 -23.2488 25.4704 24.1908 -22.644 25.4811 25.147 -21.4661 24.9211 25.3143 -local_max 189, ix=482, iy=551 -67.444 68.0688 61.5126 -67.1348 68.79 64.4515 -64.3389 67.5092 64.9444 -local_max 190, ix=352, iy=552 -0.977283 1.17556 1.02088 -0.999973 1.20131 1.06585 -1.02953 1.19826 1.13489 -local_max 191, ix=426, iy=552 -13.6394 14.7677 12.8854 -13.5033 14.8778 13.505 -13.1447 14.5705 13.4603 -local_max 192, ix=361, iy=553 -1.37384 1.65082 1.53597 -1.37668 1.70267 1.52 -1.35461 1.59333 1.52786 -local_max 193, ix=397, iy=553 -1.39952 1.5 1.36335 -1.34443 1.50152 1.30547 -1.36467 1.48602 1.34979 -local_max 194, ix=406, iy=553 -2.63529 3.0812 2.84638 -2.78989 3.14103 2.9375 -2.81178 3.13412 2.94446 -local_max 195, ix=595, iy=553 -5.38461 5.83186 5.76365 -5.89049 6.06311 5.54667 -5.88851 5.68036 4.99012 -local_max 196, ix=416, iy=554 -6.89777 7.55573 6.82471 -6.79434 7.61541 7.04488 -6.68771 7.39919 6.99773 -local_max 197, ix=527, iy=554 -91.0077 98.8443 99.9226 -97.2263 101.89 98.8418 -98.065 98.7392 92.1637 -local_max 198, ix=352, iy=555 -1.15454 1.21395 1.08626 -1.15704 1.31044 1.1466 -1.15514 1.25919 1.06215 -local_max 199, ix=361, iy=555 -1.35461 1.59333 1.52786 -1.37029 1.61134 1.46392 -1.41314 1.60841 1.45581 -local_max 200, ix=371, iy=555 -1.75678 1.76383 1.68123 -1.68044 1.76892 1.66883 -1.59105 1.68324 1.58915 -local_max 201, ix=397, iy=555 -1.36467 1.48602 1.34979 -1.31448 1.49621 1.2642 -1.32114 1.37206 1.21591 -local_max 202, ix=406, iy=556 -2.98612 3.2987 3.00364 -3.0024 3.4942 3.21125 -3.03469 3.35529 3.13783 -local_max 203, ix=352, iy=557 -1.15514 1.25919 1.06215 -1.21099 1.31096 1.14204 -1.2068 1.25316 1.06076 -local_max 204, ix=550, iy=557 -43.3483 47.2545 47.3644 -46.2402 47.8077 45.5026 -46.1379 45.3332 40.1759 -local_max 205, ix=361, iy=559 -1.32982 1.45189 1.28498 -1.30512 1.46371 1.3012 -1.19494 1.31137 1.145 -local_max 206, ix=406, iy=559 -3.00784 3.23054 3.07523 -3.11264 3.27218 2.93143 -3.06734 3.21282 2.77517 -local_max 207, ix=503, iy=559 -64.5553 66.8763 66.1585 -66.16 67.3218 66.0356 -63.4084 63.8098 63.1101 -local_max 208, ix=603, iy=559 -2.36372 2.77744 2.79602 -2.67061 2.88435 2.81629 -2.55016 2.71961 2.48035 -local_max 209, ix=351, iy=561 -0.980027 1.13565 1.18939 -0.9527 1.22016 1.17986 -0.97666 1.06624 1.11235 -local_max 210, ix=561, iy=561 -27.3185 31.5873 33.0076 -31.8435 33.7053 32.6951 -33.1281 32.8071 29.9739 -local_max 211, ix=464, iy=563 -10.2406 10.0846 8.8149 -10.2112 10.4256 9.498 -9.79328 10.262 9.50538 -local_max 212, ix=535, iy=563 -26.1926 29.4262 29.3367 -28.6787 29.5643 27.2542 -28.5282 27.4597 23.3687 -local_max 213, ix=614, iy=563 -1.12682 1.33015 1.2338 -1.33405 1.45881 1.28328 -1.38603 1.39657 1.17942 -local_max 214, ix=447, iy=564 -1.39631 1.41857 1.50164 -1.44084 1.53934 1.52486 -1.45112 1.4794 1.53292 -local_max 215, ix=395, iy=565 -1.71843 1.99765 1.79556 -1.83266 2.07268 1.81459 -2.04162 2.05276 1.85149 -local_max 216, ix=569, iy=568 -15.6371 18.6801 19.8039 -18.774 20.4065 19.878 -20.3806 20.1207 18.1099 -local_max 217, ix=395, iy=569 -2.04782 2.16416 1.86106 -1.94499 2.23639 1.87312 -2.0557 2.12411 1.8648 -local_max 218, ix=484, iy=570 -22.6791 24.0528 23.1085 -22.4485 24.4232 23.6919 -21.2371 23.0794 22.5697 -local_max 219, ix=385, iy=571 -1.52367 1.67156 1.51414 -1.55962 1.7648 1.55022 -1.48996 1.73313 1.68494 -local_max 220, ix=541, iy=571 -16.0016 17.84 18.1025 -18.3008 18.8551 18.0831 -18.8036 18.3704 16.2784 -local_max 221, ix=385, iy=573 -1.48996 1.73313 1.68494 -1.50292 1.73524 1.64302 -1.58148 1.72968 1.58011 -local_max 222, ix=492, iy=574 -13.5837 14.0418 14.0775 -13.7459 14.5358 14.4053 -13.4675 14.3558 14.2021 -local_max 223, ix=578, iy=574 -10.2726 11.6317 11.5155 -11.3241 11.6829 10.7065 -11.5188 10.883 9.15643 -local_max 224, ix=376, iy=575 -1.20117 1.32433 1.12017 -1.21981 1.37644 1.14323 -1.19491 1.37141 1.21223 -local_max 225, ix=367, iy=577 -0.896267 0.902957 0.793866 -0.912018 1.03921 0.807785 -0.97714 1.03183 0.829183 -local_max 226, ix=455, iy=578 -4.53924 4.9399 4.53402 -4.44801 4.98142 4.67173 -4.19049 4.72553 4.46107 -local_max 227, ix=493, iy=578 -14.1604 14.19 13.1531 -14.0277 14.3849 13.23 -13.2122 13.7252 12.8324 -local_max 228, ix=514, iy=578 -8.67257 8.94258 8.50808 -9.13169 9.17588 8.72175 -8.89014 8.84506 8.20643 -local_max 229, ix=376, iy=579 -1.09885 1.22744 1.04419 -1.04906 1.2588 1.01159 -0.945439 1.17307 1.00435 -local_max 230, ix=445, iy=581 -2.02743 2.39953 2.24765 -2.05043 2.49113 2.33149 -2.02987 2.47301 2.40735 -local_max 231, ix=585, iy=581 -5.72682 6.7428 6.79646 -6.64329 7.00028 6.27167 -6.87926 6.49794 5.39337 -local_max 232, ix=474, iy=583 -5.16114 5.34093 5.19582 -5.03801 5.57125 5.18389 -4.86154 5.2146 4.91547 -local_max 233, ix=436, iy=586 -1.43689 1.61477 1.48122 -1.38453 1.63824 1.52688 -1.2461 1.47655 1.48887 -local_max 234, ix=519, iy=586 -3.8643 4.4289 4.36384 -3.91366 4.55555 4.50007 -4.05995 4.418 4.33959 -local_max 235, ix=529, iy=586 -2.17227 2.22497 2.17194 -2.22435 2.23085 1.97799 -2.15215 2.04271 1.72212 -local_max 236, ix=482, iy=588 -2.8612 3.12198 3.04742 -3.01356 3.3027 3.20426 -3.12905 3.28279 3.29793 -local_max 237, ix=592, iy=588 -3.58715 4.14583 4.27393 -4.07552 4.44549 4.25555 -4.22652 4.15289 3.71294 -local_max 238, ix=427, iy=589 -1.01798 1.04614 1.02339 -0.979492 1.14382 1.11693 -0.922487 1.10459 1.08677 -local_max 239, ix=519, iy=589 -4.26856 4.49609 4.30121 -4.47288 4.6689 4.14629 -4.41114 4.35903 3.75765 -local_max 240, ix=538, iy=590 -1.84562 2.28592 2.33916 -2.12924 2.43548 2.29819 -2.22422 2.34382 2.19566 -local_max 241, ix=498, iy=593 -3.02529 3.26926 3.35039 -3.19158 3.46293 3.32937 -2.94875 3.12687 2.98842 -local_max 242, ix=600, iy=594 -1.91272 2.21362 2.45715 -2.29512 2.47938 2.46172 -2.47797 2.40248 2.17037 -local_max 243, ix=546, iy=597 -1.3512 1.6005 1.72127 -1.73999 1.83223 1.78323 -1.73727 1.75471 1.70602 -local_max 244, ix=525, iy=600 -1.0832 1.25874 1.22165 -1.25097 1.35653 1.19759 -1.33762 1.25343 1.07266 -local_max 245, ix=507, iy=602 -1.40143 1.33526 1.26796 -1.4731 1.47376 1.33656 -1.46872 1.33199 1.18121 -local_max 246, ix=606, iy=603 -1.21889 1.38979 1.38633 -1.34912 1.41241 1.30669 -1.39506 1.31769 1.11407 -local_max 247, ix=588, iy=605 -0.950644 1.03093 1.03405 -1.00191 1.05218 0.877658 -0.954378 0.8899 0.667761