diff --git a/.gitignore b/.gitignore index 26075e41..d39bf03a 100644 --- a/.gitignore +++ b/.gitignore @@ -15,8 +15,12 @@ examples/analysis_workflow/colored_trj.xyz examples/info_gain/trj_*.npy tests/systems/coex/.* tests/systems/.* +.DS_Store +.ice_water_ox.xtc_offsets.lock +.ice_water_ox.xtc_offsets.npz .mypy_cache .pytest_cache .ruff_cache .venv + diff --git a/README.rst b/README.rst index 3a2835ab..a85efd99 100644 --- a/README.rst +++ b/README.rst @@ -81,10 +81,14 @@ Developer Setup .. _`just`: https://github.com/casey/just -Examples -======== +Tutorials and examples +====================== + +We provide and continuously update a set of tutorials to help new users to +get started with ``dynsight``. They are available at the following link: +https://dynsight.readthedocs.io/en/latest/tutorials_menu.html. -There are examples throughout the documentation and available in +There are also examples throughout the documentation and available in the ``examples/`` directory of this repository. Related works and packages diff --git a/docs/source/_static/empty b/docs/source/_static/empty deleted file mode 100644 index e69de29b..00000000 diff --git a/docs/source/_static/recipes/getting_started.py b/docs/source/_static/recipes/getting_started.py new file mode 100644 index 00000000..21e276a3 --- /dev/null +++ b/docs/source/_static/recipes/getting_started.py @@ -0,0 +1,45 @@ +"""Code from the Getting Started tutorial.""" + +from pathlib import Path + +from dynsight.trajectory import Trj + + +def main() -> None: + """Code from the Getting Started tutorial.""" + # Loading an example trajectory + files_path = Path("Path/to/the/folder/where/files/are/stored") + trj = Trj.init_from_xtc( + traj_file=files_path / "ice_water_ox.xtc", + topo_file=files_path / "ice_water_ox.gro", + ) + # Computing a descriptor + # Adjust n_jobs according to your computer capabilities + lens = trj.get_lens(r_cut=10, n_jobs=4) + + # Performing Onion Clustering on the descriptor computed + lens_onion = lens.get_onion_smooth(delta_t=10) + + # Plotting the results + lens_onion.plot_output( + file_path=files_path / "output_plot.png", + data_insight=lens, + ) + lens_onion.plot_one_trj( + file_path=files_path / "single_trj.png", + data_insight=lens, + particle_id=1234, + ) + + # Exporting a colored trajectory based on the clustering results + trajslice = slice(0, -1, 1) + sliced_trj = trj.with_slice(trajslice=trajslice) + + lens_onion.dump_colored_trj( + trj=sliced_trj, + file_path=files_path / "colored_trj.xyz", + ) + + +if __name__ == "__main__": + main() diff --git a/docs/source/_static/recipes/spatial_denoising.py b/docs/source/_static/recipes/spatial_denoising.py new file mode 100644 index 00000000..a03c0678 --- /dev/null +++ b/docs/source/_static/recipes/spatial_denoising.py @@ -0,0 +1,68 @@ +"""Code from the Spatial Denoising tutorial.""" + +from pathlib import Path + +from dynsight.trajectory import Trj + + +def main() -> None: + """Code from the Spatial Denoising tutorial.""" + # Loading an example trajectory + files_path = Path("INPUT") + trj = Trj.init_from_xtc( + traj_file=files_path / "ice_water_ox.xtc", + topo_file=files_path / "ice_water_ox.gro", + ) + + # Computing SOAP descriptor + soap = trj.get_soap( + r_cut=10, + n_max=8, + l_max=8, + n_jobs=4, # Adjust n_jobs according to your computer capabilities + ) + + # Computing TimeSOAP descriptor + _, tsoap = trj.get_timesoap( + soap_insight=soap, + ) + + # Performing Onion Clustering on the descriptor computed + tsoap.get_onion_analysis( + delta_t_min=2, + delta_t_num=20, + fig1_path=files_path / "onion_analysis.png", + ) + + # Applying Spatial Denoising + sliced_trj = trj.with_slice(slice(0, -1, 1)) + sp_denoised_tsoap = tsoap.spatial_average( + trj=sliced_trj, + r_cut=10, + n_jobs=4, # Adjust n_jobs according to your computer capabilities + ) + + # Performing Onion Clustering on the descriptor computed + sp_denoised_tsoap.get_onion_analysis( + delta_t_min=2, + delta_t_num=20, + fig1_path=files_path / "denoised_onion_analysis.png", + ) + + single_point_onion = tsoap.get_onion_smooth( + delta_t=37, + ) + single_point_onion.dump_colored_trj( + sliced_trj, files_path / "onion_trj.xyz" + ) + + denoised_single_point_onion = sp_denoised_tsoap.get_onion_smooth( + delta_t=37, + ) + denoised_single_point_onion.dump_colored_trj( + sliced_trj, files_path / "onion_trj_denoised.xyz" + ) + + +if __name__ == "__main__": + main() diff --git a/docs/source/_static/simulations/ice_water_ox.gro b/docs/source/_static/simulations/ice_water_ox.gro new file mode 100644 index 00000000..cba9542f --- /dev/null +++ b/docs/source/_static/simulations/ice_water_ox.gro @@ -0,0 +1,2051 @@ +water TIP4P/Ice + 2048 + 1water OW 1 1.431 0.290 2.350 0.2866 0.5208 -0.4787 + 2water OW 2 2.578 2.265 3.560 -0.3347 -0.3458 -0.1302 + 3water OW 3 3.005 2.182 3.691 0.0444 -0.0525 0.0516 + 4water OW 4 0.442 0.152 0.454 -0.0563 -0.0035 0.0758 + 5water OW 5 0.195 2.813 0.506 0.2924 0.1686 -0.3279 + 6water OW 6 0.175 0.267 0.521 0.0244 -0.1040 -0.0965 + 7water OW 7 1.598 1.827 5.581 0.1548 -0.5300 0.2143 + 8water OW 8 0.585 2.763 0.281 0.1452 0.2231 0.0824 + 9water OW 9 0.075 0.132 0.738 -0.2063 -0.1145 -0.7367 + 10water OW 10 0.051 0.191 0.279 -0.6426 -0.0342 0.2160 + 11water OW 11 1.689 0.602 2.509 -0.3315 0.0465 -0.5898 + 12water OW 12 0.848 2.878 0.267 0.3076 0.3112 -0.1256 + 13water OW 13 0.095 0.977 6.088 -0.0467 -0.2119 0.3864 + 14water OW 14 0.615 2.744 0.688 -0.1286 0.2383 0.2163 + 15water OW 15 0.605 0.238 0.687 0.6574 0.0022 0.2888 + 16water OW 16 0.098 2.862 0.770 0.1798 -0.0110 0.4340 + 17water OW 17 3.174 2.704 3.958 -0.1172 -0.2370 0.0468 + 18water OW 18 2.358 2.402 5.815 0.0592 -0.4704 0.0121 + 19water OW 19 0.458 1.925 6.390 0.4595 0.0301 -0.2606 + 20water OW 20 1.382 2.488 0.236 -0.0520 0.0432 0.2442 + 21water OW 21 0.971 2.781 0.505 -0.2155 0.4258 -0.6866 + 22water OW 22 0.996 0.233 0.495 -0.1542 -0.0149 -0.1455 + 23water OW 23 0.444 0.625 2.297 0.2765 0.6198 0.1493 + 24water OW 24 0.560 2.383 4.534 0.2396 -0.2790 0.0449 + 25water OW 25 0.860 0.156 0.722 0.2014 0.4068 -0.4609 + 26water OW 26 0.987 1.702 2.754 -0.9773 -0.5215 -0.1332 + 27water OW 27 2.238 1.264 3.369 0.9049 0.2672 0.6475 + 28water OW 28 2.429 1.971 5.352 0.6859 0.5650 -0.4171 + 29water OW 29 1.220 2.849 0.512 0.0750 0.8030 -0.0691 + 30water OW 30 1.397 2.754 0.696 -0.4189 0.1198 0.4155 + 31water OW 31 1.245 0.121 0.478 0.1580 -0.2724 -0.0627 + 32water OW 32 0.861 2.873 0.737 0.0173 0.4355 0.5476 + 33water OW 33 1.959 1.614 5.764 0.2751 0.8877 0.1410 + 34water OW 34 1.800 0.785 4.485 -0.0359 -0.0522 -0.0720 + 35water OW 35 2.548 0.975 0.485 -0.0685 0.0269 -0.6370 + 36water OW 36 2.035 0.873 0.072 0.0397 0.6138 0.1192 + 37water OW 37 2.835 0.868 2.979 -0.5525 -0.0882 -0.0668 + 38water OW 38 1.802 0.517 0.484 0.2378 -0.7637 -0.3752 + 39water OW 39 2.847 0.888 0.069 0.0960 -0.1059 -0.2496 + 40water OW 40 1.829 2.779 0.494 -0.0694 -0.3653 0.1455 + 41water OW 41 1.666 0.170 0.708 -0.1205 -0.1044 0.3322 + 42water OW 42 2.019 0.161 2.699 -0.2893 0.3417 -0.1961 + 43water OW 43 2.941 2.798 6.655 0.1403 -0.4483 0.2200 + 44water OW 44 2.412 1.419 3.027 0.4316 -0.1521 0.4028 + 45water OW 45 2.078 2.429 0.462 -0.0898 0.8092 -0.5025 + 46water OW 46 2.228 2.807 0.713 0.0801 -0.0633 0.3141 + 47water OW 47 2.217 0.232 0.697 0.2617 -0.2983 -0.2763 + 48water OW 48 1.669 2.889 0.721 0.1683 -0.3276 -0.3462 + 49water OW 49 2.822 2.833 0.069 0.6310 0.1542 -0.0946 + 50water OW 50 2.055 2.357 0.009 -0.0570 0.3960 0.6718 + 51water OW 51 2.740 2.087 5.758 0.3500 0.1091 -0.1586 + 52water OW 52 2.567 0.243 0.457 0.0489 0.1552 -0.0577 + 53water OW 53 0.063 2.398 0.307 -0.2980 -0.1212 0.7291 + 54water OW 54 2.827 0.151 0.510 -0.4826 -0.0744 0.2077 + 55water OW 55 1.380 0.229 0.255 -0.4013 0.1246 0.2073 + 56water OW 56 2.904 2.844 0.529 -0.0631 -0.1911 -0.1318 + 57water OW 57 2.474 0.143 0.702 -0.0808 0.4281 -0.0129 + 58water OW 58 0.537 1.024 6.654 0.2375 -0.0154 -0.3218 + 59water OW 59 0.998 0.951 4.271 -0.0340 0.2285 -0.1626 + 60water OW 60 2.860 1.351 6.142 -0.0557 -0.1349 0.1730 + 61water OW 61 2.719 0.886 4.996 0.0038 0.4427 -0.1279 + 62water OW 62 3.016 2.771 0.766 0.6514 -0.1937 -0.7284 + 63water OW 63 3.007 0.216 0.728 -0.3481 -0.1999 0.6127 + 64water OW 64 2.488 2.866 0.727 -0.0267 0.0877 -0.2551 + 65water OW 65 0.605 1.434 4.759 0.0429 0.4902 -0.0915 + 66water OW 66 0.455 0.812 3.620 -0.7744 -0.1080 0.2275 + 67water OW 67 1.616 0.631 0.279 -0.2264 0.6271 -0.0192 + 68water OW 68 0.433 0.886 0.517 0.1011 0.1383 -0.1583 + 69water OW 69 0.190 0.556 0.511 -0.0791 0.1361 0.6688 + 70water OW 70 0.408 1.560 4.144 -0.0883 -0.2825 -0.0929 + 71water OW 71 3.037 2.809 5.230 -0.5289 -0.6151 0.3053 + 72water OW 72 0.185 0.992 0.535 -0.1026 -0.0262 -0.8032 + 73water OW 73 0.009 0.894 0.734 -0.3770 -0.0824 -0.0039 + 74water OW 74 0.884 0.865 2.930 -0.0307 0.1549 0.1630 + 75water OW 75 3.199 1.398 0.138 -0.1044 0.0489 0.5757 + 76water OW 76 0.543 2.066 5.532 0.1790 0.3808 0.1370 + 77water OW 77 1.863 1.704 5.529 -0.0986 -0.7827 0.7717 + 78water OW 78 0.605 0.516 0.688 0.2248 -0.5719 0.1504 + 79water OW 79 0.609 1.007 0.692 -0.1224 0.2639 -0.1612 + 80water OW 80 0.019 0.633 0.724 0.3065 -0.2560 -0.0727 + 81water OW 81 3.068 0.260 6.151 -0.2725 -0.0869 0.4894 + 82water OW 82 0.055 0.891 6.752 0.0064 0.7692 0.1176 + 83water OW 83 3.146 1.773 3.792 -0.1663 -0.0795 0.3720 + 84water OW 84 1.437 0.990 0.733 0.1550 -0.0346 0.0439 + 85water OW 85 0.961 0.536 0.474 -0.1708 -0.1162 -0.0814 + 86water OW 86 1.290 0.874 0.526 0.1129 -0.1491 -0.0340 + 87water OW 87 3.094 1.312 4.717 0.0952 0.3769 -0.0633 + 88water OW 88 2.483 0.553 5.645 -0.1416 -0.2225 0.3795 + 89water OW 89 0.892 0.941 0.735 0.4314 0.0380 -0.2123 + 90water OW 90 0.495 1.646 6.026 0.4970 -0.4750 0.1148 + 91water OW 91 0.640 0.393 3.294 0.2294 0.0438 0.2085 + 92water OW 92 2.702 2.228 3.798 0.1865 -0.2678 0.0730 + 93water OW 93 1.852 2.469 5.721 -0.3115 -0.4903 -0.4433 + 94water OW 94 1.792 0.239 0.460 0.0415 0.6502 0.2609 + 95water OW 95 1.788 0.975 0.498 -0.4620 -0.5053 0.0897 + 96water OW 96 0.826 0.651 0.688 0.1420 -0.0960 0.3171 + 97water OW 97 0.284 1.032 3.540 0.3213 0.5926 -0.0130 + 98water OW 98 0.570 2.349 3.483 0.0778 0.0022 0.5357 + 99water OW 99 1.627 1.661 0.269 0.1132 -0.7046 -0.2133 + 100water OW 100 2.060 0.182 0.493 0.0299 -0.1686 -0.0096 + 101water OW 101 2.525 1.804 6.381 0.6549 0.3490 -0.0429 + 102water OW 102 2.053 0.633 0.492 0.0436 0.4454 0.0837 + 103water OW 103 2.968 2.667 4.547 -0.0390 -0.7077 0.3699 + 104water OW 104 2.573 0.526 0.477 0.1710 0.2645 0.0143 + 105water OW 105 1.681 0.874 0.720 0.0252 0.1202 0.4505 + 106water OW 106 0.153 2.546 4.358 0.0987 -0.2278 0.4102 + 107water OW 107 0.241 2.506 5.451 0.0248 0.0944 0.1415 + 108water OW 108 0.864 0.193 4.304 0.4152 -0.2111 0.5924 + 109water OW 109 0.659 2.418 2.949 0.3014 0.2350 0.0211 + 110water OW 110 2.181 0.511 0.682 0.1842 0.4260 0.5063 + 111water OW 111 2.264 0.994 0.687 -0.2205 -0.0043 0.1739 + 112water OW 112 1.656 0.600 0.711 0.2709 -0.2610 -0.0034 + 113water OW 113 1.228 2.733 4.096 0.1888 0.6293 -0.7090 + 114water OW 114 0.248 0.629 3.382 -0.4654 -0.4572 0.1067 + 115water OW 115 1.923 2.398 3.202 0.6131 -0.6577 0.1382 + 116water OW 116 1.097 1.955 2.868 0.3579 -1.0190 -0.2105 + 117water OW 117 2.840 0.600 0.499 0.4065 0.0492 -0.4441 + 118water OW 118 2.490 1.342 0.720 -0.1217 0.8487 -0.2816 + 119water OW 119 2.546 1.268 0.058 -0.1875 -0.5680 -0.0919 + 120water OW 120 2.148 0.224 4.780 0.2735 -0.0461 0.0185 + 121water OW 121 2.499 0.850 0.728 0.2020 -0.4114 -0.1828 + 122water OW 122 2.647 0.012 6.127 0.1656 0.5513 -0.1471 + 123water OW 123 0.237 0.122 5.514 0.2292 -0.4509 0.2814 + 124water OW 124 2.542 2.448 4.908 -0.0039 -0.5112 -0.0591 + 125water OW 125 1.528 2.110 6.223 0.2225 0.1270 -0.2780 + 126water OW 126 2.973 0.484 0.712 -0.5365 0.0067 0.0453 + 127water OW 127 2.944 0.978 0.711 -0.4571 0.3480 0.6861 + 128water OW 128 2.427 0.571 0.705 -0.3817 0.9882 -0.3001 + 129water OW 129 1.301 2.600 4.910 -0.3210 0.5263 -0.5256 + 130water OW 130 0.072 2.398 2.491 -0.1588 -0.4577 0.6336 + 131water OW 131 2.427 1.416 6.207 -0.2091 -0.0237 -0.1387 + 132water OW 132 0.417 1.636 0.492 0.1614 -0.2022 0.2006 + 133water OW 133 0.149 1.270 0.512 0.2253 -0.1866 0.4133 + 134water OW 134 0.169 1.748 0.496 -0.3615 -0.4779 0.4083 + 135water OW 135 1.381 0.503 0.730 -0.5091 0.3640 -0.3576 + 136water OW 136 0.424 1.363 0.498 -0.3570 0.7583 0.5619 + 137water OW 137 0.014 1.636 0.745 0.8280 0.0981 0.3160 + 138water OW 138 1.042 2.684 5.836 0.2726 0.6078 -0.1493 + 139water OW 139 0.206 0.635 4.229 0.0036 -0.1047 0.0884 + 140water OW 140 2.296 1.148 4.952 -0.2451 -0.0676 0.0344 + 141water OW 141 0.770 0.025 5.997 0.0862 -0.1996 -0.3286 + 142water OW 142 0.600 1.279 0.706 0.5133 -0.3513 0.0688 + 143water OW 143 0.553 1.752 0.719 0.0589 -0.3772 -0.2016 + 144water OW 144 0.006 1.363 0.740 0.2935 -0.3796 0.1626 + 145water OW 145 0.526 0.566 6.583 0.0568 -0.4728 -0.3999 + 146water OW 146 2.959 1.765 2.062 -0.5619 0.6739 0.4508 + 147water OW 147 2.053 2.772 6.690 0.2075 0.3388 -0.4972 + 148water OW 148 3.199 0.578 4.868 0.6357 -0.2014 -0.7036 + 149water OW 149 0.971 1.275 0.513 -0.1331 0.3183 -0.0470 + 150water OW 150 0.974 1.752 0.485 0.4018 -0.0272 0.1621 + 151water OW 151 3.141 0.952 6.324 -0.1116 0.4670 -0.2077 + 152water OW 152 1.442 1.928 3.950 0.0851 -0.4264 -0.1548 + 153water OW 153 0.817 1.659 0.729 0.5972 0.6785 -0.4483 + 154water OW 154 1.825 2.868 4.648 0.2332 0.5720 0.7128 + 155water OW 155 1.232 1.648 0.476 0.1547 0.4833 0.4017 + 156water OW 156 0.181 2.199 4.715 -0.1182 0.5157 0.5210 + 157water OW 157 0.824 1.697 0.267 -0.0921 -0.3974 0.1950 + 158water OW 158 1.427 1.272 0.731 0.4108 -0.3290 -0.0941 + 159water OW 159 1.372 1.759 0.670 -0.1742 -0.7598 0.4597 + 160water OW 160 0.838 1.384 0.736 0.5378 0.1882 0.5354 + 161water OW 161 1.800 1.727 0.470 0.0239 -0.4441 0.4344 + 162water OW 162 0.461 0.615 0.465 -0.2497 0.1985 0.8539 + 163water OW 163 0.231 0.425 5.514 -0.1556 0.5125 0.1450 + 164water OW 164 2.197 1.730 0.703 0.0669 -0.4220 -0.6223 + 165water OW 165 1.781 1.281 0.459 -0.4325 -0.1831 -0.5207 + 166water OW 166 0.283 2.335 5.650 0.0470 -0.6887 0.3710 + 167water OW 167 2.700 2.497 2.919 0.5166 -0.0711 -0.6291 + 168water OW 168 2.048 1.348 0.519 0.0121 -0.2568 -0.3928 + 169water OW 169 1.636 1.650 0.686 0.3949 -0.6332 -0.3342 + 170water OW 170 0.890 2.462 4.337 -0.1699 0.0542 -0.2871 + 171water OW 171 2.081 0.819 5.884 -0.3154 0.2991 -0.3622 + 172water OW 172 1.923 1.021 3.539 -0.4264 -0.4528 0.2532 + 173water OW 173 1.616 0.622 6.608 0.1802 0.1272 -0.1269 + 174water OW 174 2.458 1.634 0.680 0.7158 -0.2159 -0.2915 + 175water OW 175 2.060 1.618 0.486 0.2846 -0.1043 -0.3662 + 176water OW 176 1.677 1.368 0.714 -0.2547 0.5207 0.2524 + 177water OW 177 0.155 0.235 2.744 0.0843 0.4349 -0.4338 + 178water OW 178 1.714 2.883 5.894 -0.5268 0.9480 -0.0741 + 179water OW 179 2.967 1.733 0.245 -0.4395 -0.3568 -0.2006 + 180water OW 180 2.843 1.644 0.494 -0.5439 0.1524 0.5728 + 181water OW 181 2.575 1.236 0.487 -0.3743 -0.3010 0.1485 + 182water OW 182 2.190 1.738 0.265 0.1516 -0.0179 -0.4945 + 183water OW 183 1.110 1.978 3.165 0.0978 0.0469 -0.5100 + 184water OW 184 2.824 1.380 0.473 -0.1043 0.4404 -0.1759 + 185water OW 185 2.607 1.777 0.495 0.2793 0.2429 0.3454 + 186water OW 186 1.529 1.178 3.674 0.0941 -0.2323 -0.0352 + 187water OW 187 0.717 0.204 6.411 -0.5018 -0.7806 0.3444 + 188water OW 188 1.343 2.136 6.415 0.1533 -0.3263 -0.0560 + 189water OW 189 1.656 0.237 5.988 -0.3514 0.0024 0.4610 + 190water OW 190 2.951 1.251 0.690 0.2475 -0.0574 0.2907 + 191water OW 191 2.955 1.714 0.742 0.3066 -0.6318 0.0027 + 192water OW 192 2.219 1.269 0.715 0.3304 -0.4421 -0.4190 + 193water OW 193 0.878 1.329 2.909 0.0880 0.2438 -0.4723 + 194water OW 194 1.308 0.529 5.918 -0.6029 0.0383 -0.1764 + 195water OW 195 2.736 0.911 3.697 0.4504 0.0803 0.1872 + 196water OW 196 0.459 2.411 0.492 0.2614 0.6026 0.4633 + 197water OW 197 0.200 2.021 0.467 0.1361 0.6221 -0.6004 + 198water OW 198 0.198 2.531 0.501 -0.3352 0.1386 0.3087 + 199water OW 199 2.577 2.472 2.307 -0.0448 0.2329 -0.2511 + 200water OW 200 0.452 2.148 0.496 -0.7783 0.1869 0.2551 + 201water OW 201 0.049 2.417 0.701 -0.3887 -0.3226 -0.2587 + 202water OW 202 0.024 2.101 0.290 -0.5574 -0.2314 0.2262 + 203water OW 203 1.596 1.824 6.283 0.1789 0.0972 -0.1817 + 204water OW 204 2.846 1.025 5.782 -0.4286 -0.2989 -0.1330 + 205water OW 205 0.812 0.093 4.039 -0.3227 0.3885 -0.1234 + 206water OW 206 0.588 2.048 0.731 0.0862 -0.0904 0.1788 + 207water OW 207 0.612 2.471 0.715 0.0718 -0.2868 -0.5908 + 208water OW 208 0.103 2.123 0.708 0.3835 -0.2087 0.2253 + 209water OW 209 0.832 1.706 4.656 0.2324 -0.0163 0.8578 + 210water OW 210 0.529 0.032 3.648 0.1751 -0.0726 -0.0798 + 211water OW 211 2.974 1.444 5.196 -0.0759 -0.3688 -0.4544 + 212water OW 212 1.266 2.408 0.468 -0.1604 0.0032 -0.6037 + 213water OW 213 0.987 2.012 0.522 -0.3458 -0.6655 -0.4548 + 214water OW 214 0.974 2.515 0.537 0.0756 0.2509 -0.0293 + 215water OW 215 2.902 2.380 6.397 0.4117 0.5631 -0.1309 + 216water OW 216 2.455 2.385 0.263 0.3958 -0.4788 -0.3910 + 217water OW 217 0.862 2.371 0.743 0.3679 0.1374 0.1473 + 218water OW 218 2.435 2.092 2.487 -0.2275 -0.0207 0.1639 + 219water OW 219 2.764 0.024 4.076 0.2146 -0.1702 0.0690 + 220water OW 220 3.181 1.165 5.710 0.1873 -0.1128 -0.0906 + 221water OW 221 0.536 1.848 5.371 -0.3759 -0.0171 -0.4289 + 222water OW 222 1.386 2.057 0.671 -0.1880 0.0458 -0.1344 + 223water OW 223 1.403 2.471 0.701 0.1616 -0.3427 -0.5707 + 224water OW 224 0.849 2.101 0.753 0.3198 -0.1198 -0.2710 + 225water OW 225 1.822 2.683 6.297 -0.2998 -0.0011 -0.4063 + 226water OW 226 2.451 1.619 6.590 0.1864 0.0186 0.1365 + 227water OW 227 2.193 0.256 0.250 -0.6115 0.1475 0.1106 + 228water OW 228 1.654 2.129 0.323 0.0483 0.0316 -0.1809 + 229water OW 229 1.661 2.120 0.683 0.0245 0.1862 0.2818 + 230water OW 230 0.096 2.454 6.622 0.7210 0.0146 -0.4094 + 231water OW 231 0.820 2.914 3.646 0.0616 0.1483 -0.2235 + 232water OW 232 1.818 1.999 0.497 0.2202 0.7272 0.3034 + 233water OW 233 2.817 2.917 4.323 -0.5995 0.3392 -0.2849 + 234water OW 234 1.257 0.632 3.790 -0.7138 -0.5151 -0.7263 + 235water OW 235 1.400 0.579 3.372 -0.1492 0.1509 -0.4749 + 236water OW 236 1.509 2.001 3.411 0.2780 -0.6095 -0.1428 + 237water OW 237 0.991 2.722 4.254 0.1371 0.4311 0.4269 + 238water OW 238 2.192 2.018 0.694 0.4197 -0.2009 -0.6947 + 239water OW 239 2.172 2.492 0.729 0.0627 -0.4544 0.0788 + 240water OW 240 1.665 2.391 0.677 -0.0661 -0.2545 -0.0137 + 241water OW 241 2.163 2.898 5.964 -0.4933 -0.0539 0.0431 + 242water OW 242 2.540 1.608 4.531 0.1622 -0.0306 0.1032 + 243water OW 243 2.292 1.689 4.442 -0.3704 0.2131 0.5287 + 244water OW 244 2.844 2.389 0.543 0.2876 0.0265 -0.0740 + 245water OW 245 2.634 2.054 0.503 0.4160 -0.1944 0.7018 + 246water OW 246 2.569 2.482 0.496 -0.2633 -0.4356 -0.1903 + 247water OW 247 0.380 2.744 6.178 -0.3304 0.1179 0.4376 + 248water OW 248 2.897 2.117 0.508 0.2193 -0.7006 -0.2262 + 249water OW 249 2.438 2.393 0.728 -0.0078 0.0494 0.3218 + 250water OW 250 2.931 1.560 5.976 -0.2036 -0.3756 0.4709 + 251water OW 251 1.234 0.604 0.482 0.1608 -0.1016 0.2120 + 252water OW 252 0.253 1.280 3.402 0.5053 0.4718 -0.0332 + 253water OW 253 1.518 2.619 3.312 -0.6998 0.3848 -0.3113 + 254water OW 254 3.048 2.007 0.723 -0.2054 -0.5019 -0.3117 + 255water OW 255 2.988 2.499 0.742 0.4514 0.5712 -0.2077 + 256water OW 256 2.453 2.107 0.707 0.0020 0.2282 0.1146 + 257water OW 257 0.076 2.848 1.214 0.1364 -0.3556 -0.1584 + 258water OW 258 0.468 0.141 0.934 0.7906 -0.1331 0.1149 + 259water OW 259 0.619 0.239 1.149 0.2824 0.1332 -0.1677 + 260water OW 260 0.485 0.119 1.400 0.4813 -0.2031 -0.3226 + 261water OW 261 0.190 2.713 1.419 -0.0807 0.3163 -0.5038 + 262water OW 262 0.237 0.237 1.403 0.0874 0.0156 -0.1293 + 263water OW 263 0.480 2.841 0.930 0.1417 -0.1374 -0.5182 + 264water OW 264 0.449 2.840 1.403 -0.5781 -0.3997 -0.5472 + 265water OW 265 0.049 0.130 1.577 0.0224 -0.1194 0.6282 + 266water OW 266 0.060 0.130 1.214 0.0919 -0.7417 -0.0335 + 267water OW 267 0.193 0.216 0.993 0.3948 0.3185 0.2680 + 268water OW 268 0.214 2.750 0.994 0.3618 -0.1765 -0.4887 + 269water OW 269 0.598 2.786 1.177 -0.1008 -0.2530 -0.1041 + 270water OW 270 0.611 2.771 1.626 0.5290 -0.0560 -0.2543 + 271water OW 271 0.602 0.210 1.653 -0.8529 -0.4721 0.3128 + 272water OW 272 0.021 2.853 1.569 0.3140 0.3235 -0.1285 + 273water OW 273 0.852 2.875 1.174 -0.1308 0.0358 0.1161 + 274water OW 274 1.281 0.126 0.924 0.2373 -0.1085 -0.2056 + 275water OW 275 1.398 0.256 1.151 0.2511 0.7297 0.2770 + 276water OW 276 1.405 2.753 1.613 -0.5885 0.2658 0.1552 + 277water OW 277 1.008 2.757 1.381 0.1535 0.1095 -0.3514 + 278water OW 278 1.004 0.205 1.418 -0.4144 0.1586 -0.7350 + 279water OW 279 1.270 2.829 0.917 0.5335 0.0410 -0.5898 + 280water OW 280 1.271 2.850 1.380 0.1166 0.0024 -0.3176 + 281water OW 281 0.850 0.121 1.635 -0.2861 -0.5533 -0.0256 + 282water OW 282 0.891 0.167 1.150 -0.3476 -0.4224 -0.0245 + 283water OW 283 1.024 0.253 0.918 -0.7347 -0.0202 0.2490 + 284water OW 284 1.004 2.777 0.947 0.1974 -0.0602 1.2026 + 285water OW 285 1.385 2.763 1.147 -0.3105 -0.1494 0.4616 + 286water OW 286 1.008 2.764 1.840 0.7075 0.4056 -0.0585 + 287water OW 287 1.411 0.213 1.627 0.1498 0.1860 0.3515 + 288water OW 288 0.881 2.841 1.606 -0.2282 0.3678 0.1563 + 289water OW 289 1.628 2.878 1.180 -0.5116 0.8016 -0.2447 + 290water OW 290 2.060 0.155 0.899 -0.3604 0.4977 0.1289 + 291water OW 291 2.203 0.219 1.143 0.0166 -0.4263 -0.4376 + 292water OW 292 2.070 0.085 1.348 -0.1803 -0.1171 0.0969 + 293water OW 293 1.766 2.742 1.414 -0.3873 0.0461 -0.0998 + 294water OW 294 1.805 0.244 1.341 0.0810 -0.5873 -0.0425 + 295water OW 295 2.043 2.883 0.935 -0.4286 0.2253 0.0397 + 296water OW 296 2.027 2.802 1.383 -0.4535 -0.6741 -0.0640 + 297water OW 297 1.672 0.153 1.558 0.1509 0.2318 -0.1342 + 298water OW 298 1.652 0.155 1.148 -0.4404 0.0907 0.1270 + 299water OW 299 1.811 0.245 0.918 -0.4191 0.2090 0.0513 + 300water OW 300 1.780 2.808 0.958 0.7917 0.1066 0.2320 + 301water OW 301 2.175 2.755 1.157 -0.8438 -0.2777 0.3861 + 302water OW 302 2.172 2.736 1.646 -0.5023 0.1829 -0.0332 + 303water OW 303 2.165 0.218 1.570 -0.1728 0.2054 0.0092 + 304water OW 304 1.639 2.874 1.632 -0.6920 0.1204 -0.1533 + 305water OW 305 2.430 2.828 1.148 -0.7472 0.3510 -0.0115 + 306water OW 306 2.880 0.193 0.961 -0.1299 -0.4631 -0.9017 + 307water OW 307 3.018 0.231 1.199 -0.1690 0.0400 -0.2817 + 308water OW 308 2.833 0.093 1.434 -0.4438 0.1571 0.4316 + 309water OW 309 2.563 2.765 1.371 -0.8992 0.1579 -0.5029 + 310water OW 310 2.590 0.226 1.379 0.4563 -0.8613 0.2739 + 311water OW 311 2.893 2.897 0.973 0.2990 0.2224 -0.3332 + 312water OW 312 2.841 2.828 1.435 0.4186 -0.0157 0.1684 + 313water OW 313 2.438 0.148 1.599 -0.1552 0.3092 -0.1002 + 314water OW 314 2.461 0.097 1.163 -0.0239 -0.6097 -0.6224 + 315water OW 315 2.594 0.249 0.950 -0.1824 -0.0934 0.6959 + 316water OW 316 2.625 2.773 0.947 0.0516 -0.0623 -0.2027 + 317water OW 317 2.988 2.790 1.201 0.2154 -0.2990 0.1041 + 318water OW 318 2.994 2.694 1.647 0.5800 0.1846 0.3558 + 319water OW 319 2.980 0.254 1.619 0.6622 -0.3453 0.2192 + 320water OW 320 2.408 2.851 1.593 0.4130 0.0148 0.0902 + 321water OW 321 0.046 0.606 1.150 0.5600 -0.3433 0.1177 + 322water OW 322 0.486 0.903 0.916 -0.2817 -0.2277 0.0324 + 323water OW 323 0.593 0.939 1.155 -0.6012 -0.3933 -0.2627 + 324water OW 324 0.474 0.834 1.400 0.0252 -0.6251 -0.4510 + 325water OW 325 0.149 0.483 1.387 0.6621 -0.7944 -0.0590 + 326water OW 326 0.182 0.979 1.379 0.3680 0.0867 -0.4454 + 327water OW 327 0.455 0.599 0.913 -0.4900 -0.5957 0.0752 + 328water OW 328 0.443 0.563 1.434 0.6888 -0.4966 0.0475 + 329water OW 329 0.084 0.906 1.620 -0.0124 -0.0841 0.0314 + 330water OW 330 0.046 0.871 1.173 -0.1118 -0.2808 0.2103 + 331water OW 331 0.177 0.962 0.945 0.1540 -1.0441 -0.1370 + 332water OW 332 0.139 0.489 0.911 0.2689 -0.4275 -0.1749 + 333water OW 333 0.575 0.521 1.163 0.3167 -0.0425 0.1306 + 334water OW 334 0.604 0.484 1.626 0.1240 0.7405 -0.7542 + 335water OW 335 0.638 0.997 1.579 0.1484 0.2702 0.6990 + 336water OW 336 0.053 0.604 1.617 0.3309 -0.4534 0.1709 + 337water OW 337 0.849 0.547 1.152 -0.1574 -0.3956 0.1247 + 338water OW 338 1.270 0.919 0.928 -0.1474 0.6694 -0.0199 + 339water OW 339 1.426 1.010 1.176 0.2157 0.4795 -0.3094 + 340water OW 340 1.282 0.907 1.391 -0.0488 0.1699 0.2815 + 341water OW 341 1.279 0.132 1.381 0.9875 -0.1367 -0.3084 + 342water OW 342 0.995 0.966 1.412 0.2934 0.0893 0.3678 + 343water OW 343 1.233 0.609 0.936 -0.4406 0.2202 -0.1788 + 344water OW 344 1.272 0.620 1.393 0.1125 0.0993 0.4087 + 345water OW 345 0.877 0.909 1.672 0.2244 0.0560 0.0608 + 346water OW 346 0.848 0.836 1.214 0.1705 -0.3157 0.0011 + 347water OW 347 1.003 0.982 0.997 -0.3685 0.0217 0.0306 + 348water OW 348 0.981 0.529 0.886 0.3246 -0.3322 0.1016 + 349water OW 349 1.434 0.541 1.156 -0.0881 -0.4197 -0.3404 + 350water OW 350 1.416 0.497 1.599 0.1649 -0.0690 -0.6682 + 351water OW 351 1.402 1.002 1.605 0.3903 -0.1695 0.0452 + 352water OW 352 0.845 0.621 1.595 -0.4946 -0.0380 0.1661 + 353water OW 353 1.709 0.630 1.174 -0.6989 -0.0536 0.0930 + 354water OW 354 2.089 0.883 0.933 -0.6097 -0.6493 0.1511 + 355water OW 355 2.222 1.013 1.154 0.6037 0.6140 0.2993 + 356water OW 356 2.060 0.863 1.328 0.0147 0.8043 0.3477 + 357water OW 357 1.801 0.524 1.419 0.5861 0.7253 0.8660 + 358water OW 358 1.824 0.984 1.391 0.7061 0.0948 -0.8656 + 359water OW 359 2.045 0.619 0.918 0.1240 0.8447 0.5286 + 360water OW 360 2.068 0.600 1.385 0.0982 0.3910 0.2116 + 361water OW 361 1.661 0.888 1.616 0.2590 -0.1918 -0.5262 + 362water OW 362 1.681 0.919 1.172 -0.0559 0.1938 0.1054 + 363water OW 363 1.814 1.010 0.930 -0.2636 0.3096 0.1485 + 364water OW 364 1.790 0.517 0.947 -0.3273 0.1196 -0.0603 + 365water OW 365 2.168 0.510 1.138 0.1637 -0.2509 0.0395 + 366water OW 366 2.184 0.489 1.605 0.4463 0.2252 -0.0895 + 367water OW 367 2.185 0.988 1.554 -0.3082 0.2181 0.1923 + 368water OW 368 1.653 0.609 1.618 -0.3455 -0.1928 -0.0166 + 369water OW 369 2.415 0.611 1.134 -0.1157 -0.2015 -0.4555 + 370water OW 370 2.860 0.864 0.959 -0.8846 -0.0571 0.3143 + 371water OW 371 3.000 0.983 1.161 -0.1525 -0.5927 0.5470 + 372water OW 372 2.886 0.857 1.364 -0.1055 0.5574 0.1754 + 373water OW 373 2.549 0.510 1.355 -0.2685 -0.0782 -0.4217 + 374water OW 374 2.647 0.999 1.361 -0.1022 -0.5382 0.0960 + 375water OW 375 2.854 0.578 0.947 0.2016 -0.3946 0.4868 + 376water OW 376 2.829 0.591 1.398 0.6368 -0.8002 -0.0987 + 377water OW 377 2.459 0.914 1.554 -0.7731 0.8876 0.1301 + 378water OW 378 2.465 0.908 1.172 0.0275 0.1640 0.1822 + 379water OW 379 2.616 0.978 0.958 0.2113 -0.4702 -0.8916 + 380water OW 380 2.580 0.535 0.933 0.4071 0.2801 0.9417 + 381water OW 381 2.983 0.515 1.170 0.4802 0.4005 -0.1120 + 382water OW 382 2.983 0.517 1.606 0.5192 0.2114 -0.0213 + 383water OW 383 0.053 1.340 1.601 -0.4426 -0.4868 -0.0414 + 384water OW 384 2.433 0.636 1.560 0.1493 0.5040 -0.0204 + 385water OW 385 0.084 1.318 1.161 -0.1735 0.2281 0.1889 + 386water OW 386 0.452 1.610 0.939 -0.2432 -0.2910 -0.1501 + 387water OW 387 0.580 1.742 1.164 -0.1819 -0.3089 0.1141 + 388water OW 388 0.443 1.606 1.370 0.0067 0.8529 -0.0539 + 389water OW 389 1.006 0.499 1.387 -0.4753 -0.0007 -0.6380 + 390water OW 390 0.181 1.709 1.401 0.4190 0.0480 -1.1845 + 391water OW 391 0.454 1.324 0.941 0.2355 -0.0195 -0.4368 + 392water OW 392 0.482 1.317 1.320 0.2102 -0.1374 0.0980 + 393water OW 393 0.078 1.615 1.640 -0.2054 -0.0791 0.0252 + 394water OW 394 0.072 1.613 1.174 -0.6923 -0.2336 0.5204 + 395water OW 395 0.185 1.727 0.943 0.7818 0.0712 0.9266 + 396water OW 396 0.181 1.248 0.910 0.3639 -0.4477 0.1073 + 397water OW 397 0.649 1.214 1.126 -0.2121 -0.7969 -0.0473 + 398water OW 398 0.557 1.263 1.604 -0.3997 0.4846 0.0585 + 399water OW 399 0.583 1.709 1.594 -0.0891 0.1756 0.1936 + 400water OW 400 0.210 1.259 1.384 0.0895 -0.1470 0.3887 + 401water OW 401 0.898 1.353 1.163 0.2734 0.3655 0.1279 + 402water OW 402 1.243 1.645 0.879 0.2987 0.2969 0.1166 + 403water OW 403 1.364 1.717 1.122 -1.0224 -0.3526 0.4522 + 404water OW 404 1.215 1.628 1.345 -0.0420 0.6062 -0.4311 + 405water OW 405 0.990 1.242 1.410 -0.5449 -0.4474 0.3630 + 406water OW 406 0.954 1.748 1.392 0.0074 0.7986 -0.6639 + 407water OW 407 1.255 1.391 0.965 -0.5324 -0.2353 -0.2581 + 408water OW 408 1.254 1.350 1.388 -0.6871 -0.3096 -0.2145 + 409water OW 409 0.861 1.628 1.623 0.2272 -0.4203 -0.1721 + 410water OW 410 0.844 1.671 1.161 0.8930 -0.0601 -0.0092 + 411water OW 411 0.992 1.732 0.933 0.5886 0.1218 -0.0293 + 412water OW 412 1.009 1.262 0.933 0.2100 -0.0999 -0.5052 + 413water OW 413 1.405 1.282 1.178 -0.2377 -0.4071 0.0977 + 414water OW 414 1.395 1.293 1.604 0.0416 0.0873 0.2440 + 415water OW 415 1.369 1.751 1.575 -0.0373 -0.1529 -0.1741 + 416water OW 416 0.824 1.349 1.628 -0.3512 -0.4711 -0.4207 + 417water OW 417 1.673 1.398 1.212 0.6367 -0.0712 1.3368 + 418water OW 418 2.059 1.646 0.930 0.1411 -0.2802 -0.1834 + 419water OW 419 2.198 1.761 1.161 0.1081 -0.6786 0.7003 + 420water OW 420 2.089 1.665 1.402 0.1127 0.2541 -0.9493 + 421water OW 421 1.798 1.282 1.438 -0.6553 0.3864 0.0422 + 422water OW 422 1.825 1.731 1.344 -0.0112 0.0766 -0.0224 + 423water OW 423 2.106 1.368 0.976 -0.1666 -0.2504 0.2109 + 424water OW 424 2.041 1.400 1.409 0.0712 -0.0609 -0.3353 + 425water OW 425 1.659 1.713 1.567 0.2845 0.7322 0.1580 + 426water OW 426 1.652 1.659 1.157 0.1428 -0.3570 -0.2727 + 427water OW 427 1.790 1.709 0.918 -0.3267 0.6065 0.5377 + 428water OW 428 1.819 1.307 0.977 0.1444 -0.0626 0.2408 + 429water OW 429 2.214 1.280 1.218 0.0711 0.3063 0.3987 + 430water OW 430 2.208 1.273 1.579 -0.0239 0.1236 0.4069 + 431water OW 431 2.229 1.735 1.623 0.1258 -0.3375 0.2578 + 432water OW 432 1.651 1.421 1.628 -0.0189 -0.1618 0.0004 + 433water OW 433 2.455 1.411 1.155 -0.3449 0.2413 0.1016 + 434water OW 434 2.838 1.593 0.947 -0.5465 0.3489 -0.4098 + 435water OW 435 3.009 1.689 1.132 -0.1127 0.3083 -0.1885 + 436water OW 436 2.905 1.619 1.399 -0.1018 -0.1121 0.0016 + 437water OW 437 2.614 1.278 1.366 -0.3212 0.6822 -0.4477 + 438water OW 438 2.632 1.723 1.377 0.2818 0.1036 -0.2740 + 439water OW 439 2.831 1.314 0.948 -0.3954 0.0220 -0.1933 + 440water OW 440 2.870 1.340 1.365 -0.3119 0.5013 0.1367 + 441water OW 441 2.491 1.626 1.577 0.4722 0.0175 -0.2444 + 442water OW 442 2.463 1.688 1.139 -0.1016 -0.0780 0.4220 + 443water OW 443 2.613 1.746 0.910 -0.1798 -0.1179 -0.0961 + 444water OW 444 2.574 1.252 0.958 -0.1631 -0.0500 -0.2558 + 445water OW 445 3.005 1.253 1.135 -0.3954 0.1645 0.4659 + 446water OW 446 2.994 1.230 1.598 0.0772 -0.2081 -0.5146 + 447water OW 447 3.034 1.732 1.609 0.1354 0.2813 -0.3308 + 448water OW 448 2.465 1.343 1.575 0.0373 -0.2669 0.2941 + 449water OW 449 0.054 2.089 1.153 -0.0159 0.1672 0.1341 + 450water OW 450 0.443 2.427 0.926 0.1100 -0.1443 -0.1494 + 451water OW 451 0.582 2.507 1.135 0.0562 0.4349 0.0376 + 452water OW 452 0.497 2.373 1.367 -0.1074 -0.3678 0.3981 + 453water OW 453 0.199 2.000 1.402 0.6706 0.1932 -0.0510 + 454water OW 454 0.228 2.446 1.362 0.3522 0.4907 0.2044 + 455water OW 455 0.464 2.108 0.960 0.3113 -0.0331 0.1963 + 456water OW 456 0.455 2.106 1.393 0.2506 -0.1285 0.3690 + 457water OW 457 0.099 2.360 1.607 0.2181 0.6998 0.8530 + 458water OW 458 0.059 2.354 1.143 -0.2622 0.1732 -0.1530 + 459water OW 459 0.185 2.489 0.932 0.1830 -0.1165 -0.1337 + 460water OW 460 0.204 1.999 0.943 -0.3930 0.1021 0.6401 + 461water OW 461 0.609 2.013 1.195 -0.2543 0.0604 0.1769 + 462water OW 462 0.606 1.963 1.617 0.1878 0.0847 -0.1609 + 463water OW 463 0.607 2.496 1.615 0.2438 0.2012 0.0171 + 464water OW 464 0.084 2.090 1.640 -0.0108 0.2238 0.2161 + 465water OW 465 0.896 2.120 1.174 -0.2009 -0.0270 -0.1471 + 466water OW 466 1.246 2.405 0.920 -0.3530 0.2719 -0.1966 + 467water OW 467 1.409 2.483 1.131 0.1426 -0.1642 -0.3721 + 468water OW 468 1.258 2.368 1.350 0.1287 0.5855 0.3944 + 469water OW 469 1.015 2.019 1.390 -0.2747 -0.4794 0.1010 + 470water OW 470 0.982 2.453 1.397 0.0760 -0.2700 0.4819 + 471water OW 471 1.261 2.122 0.921 -0.3332 0.2151 0.1855 + 472water OW 472 1.280 2.100 1.380 -0.3708 -0.2245 0.4445 + 473water OW 473 0.859 2.371 1.625 -0.0976 0.2823 -0.4289 + 474water OW 474 0.832 2.401 1.159 -0.2190 0.2735 -0.1597 + 475water OW 475 0.980 2.486 0.946 -0.0540 -0.6909 0.0065 + 476water OW 476 1.022 2.013 0.950 -0.1307 -0.0626 -0.3800 + 477water OW 477 1.413 2.024 1.145 0.1587 -0.5802 0.1759 + 478water OW 478 1.422 2.031 1.618 -0.0491 -0.1784 -0.0235 + 479water OW 479 1.416 2.477 1.586 0.0737 0.4214 0.0515 + 480water OW 480 0.878 2.095 1.621 -0.3698 0.1071 -0.3824 + 481water OW 481 1.676 2.083 1.142 -0.1774 0.1038 0.4636 + 482water OW 482 2.017 2.385 0.939 -0.6832 0.5056 0.2658 + 483water OW 483 2.171 2.478 1.162 -0.1000 0.3609 0.0028 + 484water OW 484 2.072 2.380 1.388 -0.4923 -0.2160 0.4683 + 485water OW 485 1.800 2.018 1.375 -0.1616 -0.2544 -0.0661 + 486water OW 486 1.807 2.451 1.341 0.0007 -0.1086 0.2420 + 487water OW 487 2.037 2.088 0.903 0.3908 0.4328 -0.0870 + 488water OW 488 2.086 2.095 1.358 -0.4815 -0.3264 0.2778 + 489water OW 489 1.668 2.360 1.587 0.0605 0.0430 -0.2887 + 490water OW 490 1.682 2.385 1.109 0.2576 -0.1898 -0.4377 + 491water OW 491 1.791 2.527 0.906 0.8944 -0.0437 0.0673 + 492water OW 492 1.773 1.988 0.915 -0.0206 -0.1730 0.1555 + 493water OW 493 2.205 2.033 1.117 0.5435 -0.3136 -0.0997 + 494water OW 494 2.200 2.010 1.599 0.1918 0.0131 -0.1875 + 495water OW 495 2.205 2.451 1.618 0.0538 -0.3333 0.3214 + 496water OW 496 1.682 2.083 1.628 0.0998 0.4381 0.2224 + 497water OW 497 2.464 2.135 1.139 0.4604 0.0463 0.1563 + 498water OW 498 2.851 2.381 0.948 -0.1562 0.4211 0.5536 + 499water OW 499 3.001 2.502 1.172 0.0141 -0.2216 -0.0228 + 500water OW 500 2.849 2.419 1.400 -0.2189 -0.1793 0.5505 + 501water OW 501 2.610 2.022 1.372 0.4389 -0.4838 -0.5282 + 502water OW 502 2.549 2.497 1.396 0.4277 -0.4583 0.0620 + 503water OW 503 2.891 2.109 0.920 0.1420 0.8037 -0.0126 + 504water OW 504 2.854 2.148 1.376 0.3185 0.1141 0.0387 + 505water OW 505 2.462 2.409 1.653 -0.1609 -0.9261 0.5529 + 506water OW 506 2.440 2.414 1.144 0.1236 -0.0129 0.1641 + 507water OW 507 2.607 2.485 0.924 0.2858 0.4409 -0.3504 + 508water OW 508 2.613 2.011 0.940 -0.4100 -0.2646 0.4355 + 509water OW 509 2.975 1.977 1.146 -0.0985 -0.0324 -0.9030 + 510water OW 510 3.022 2.013 1.626 -0.6583 0.3600 0.3600 + 511water OW 511 3.013 2.437 1.601 -0.2117 0.6917 0.7280 + 512water OW 512 2.458 2.128 1.597 0.5260 -0.2890 -0.3452 + 513water OW 513 2.234 0.580 6.196 0.0903 -0.0926 -0.4657 + 514water OW 514 0.440 0.119 1.851 0.2425 0.4429 -0.4307 + 515water OW 515 0.569 0.242 2.058 0.0904 -0.4145 -0.1034 + 516water OW 516 0.534 0.209 5.935 -0.1591 -0.1159 0.1857 + 517water OW 517 2.570 0.193 2.696 -0.4194 -0.3292 -0.2452 + 518water OW 518 3.161 1.046 5.056 0.0679 -0.2282 -0.1599 + 519water OW 519 0.436 2.852 1.816 -0.0981 0.3362 -0.5010 + 520water OW 520 0.991 2.489 2.281 0.2297 -0.3679 -0.5740 + 521water OW 521 0.043 0.838 5.422 0.3671 0.0360 -0.4214 + 522water OW 522 0.028 0.124 2.057 0.0064 -0.1906 -0.5784 + 523water OW 523 0.164 0.208 1.823 0.4373 -0.0200 -1.1035 + 524water OW 524 0.174 2.779 1.811 0.0124 0.3624 0.2603 + 525water OW 525 2.262 0.835 6.084 0.1503 0.0394 -0.2212 + 526water OW 526 0.912 0.813 6.192 -0.3526 0.3876 -0.5119 + 527water OW 527 1.536 0.325 4.035 0.1482 -0.4649 0.4409 + 528water OW 528 2.300 2.619 4.966 0.1985 -0.2933 -0.3142 + 529water OW 529 0.848 2.851 2.035 0.5721 -0.1778 0.2285 + 530water OW 530 1.259 0.149 1.873 0.2093 0.7749 0.4169 + 531water OW 531 1.672 0.138 2.068 0.6390 0.1953 0.1621 + 532water OW 532 0.910 2.298 2.892 0.0347 -0.0252 0.1381 + 533water OW 533 2.826 2.837 2.271 -0.5304 0.1961 -0.2109 + 534water OW 534 1.360 2.145 4.328 -0.2000 0.3578 -0.5003 + 535water OW 535 1.285 2.866 1.822 -0.2347 -0.1744 0.4065 + 536water OW 536 2.698 2.660 5.498 0.1619 0.0839 0.2244 + 537water OW 537 0.933 0.947 3.181 0.0690 -0.8819 -0.7230 + 538water OW 538 0.813 0.153 2.088 0.0394 0.0645 0.2741 + 539water OW 539 0.981 0.252 1.842 -0.1123 0.5155 0.3599 + 540water OW 540 1.365 2.501 2.027 0.3712 0.1818 0.2892 + 541water OW 541 1.400 1.991 2.973 -0.1566 -0.1707 0.2578 + 542water OW 542 1.455 0.926 6.160 0.6206 0.2347 -0.1166 + 543water OW 543 0.395 0.259 4.012 0.6054 -0.2604 0.3470 + 544water OW 544 2.726 0.322 5.829 0.2366 -0.2130 -0.3749 + 545water OW 545 1.348 1.561 4.879 0.2212 -0.2594 -0.0838 + 546water OW 546 2.018 0.143 1.798 -0.0905 -0.0442 0.2943 + 547water OW 547 0.720 0.982 3.907 0.1138 -0.1625 0.6400 + 548water OW 548 2.066 2.810 5.713 -0.3872 -0.5067 -0.2114 + 549water OW 549 0.609 0.728 4.021 -0.3362 0.1320 0.2358 + 550water OW 550 1.633 1.677 2.954 -0.4399 -0.5318 -0.1062 + 551water OW 551 2.022 2.869 1.834 -0.1334 0.1091 0.3240 + 552water OW 552 1.652 2.868 2.080 -0.0160 -0.4628 -0.0422 + 553water OW 553 0.397 1.611 2.696 0.1412 -0.2298 0.8692 + 554water OW 554 2.136 0.134 5.355 0.0831 0.4185 -0.0480 + 555water OW 555 1.770 0.233 1.811 -0.0063 -0.0464 -0.2878 + 556water OW 556 1.765 2.740 1.844 0.1973 -0.5253 0.2689 + 557water OW 557 2.432 2.346 2.079 -0.2100 -0.0332 0.2470 + 558water OW 558 2.493 2.081 2.983 -0.3301 -0.3082 0.2935 + 559water OW 559 3.064 0.177 5.448 0.2559 -0.1205 0.0883 + 560water OW 560 1.599 2.208 3.973 0.0565 0.5179 -0.1796 + 561water OW 561 2.650 2.381 4.516 0.0302 -0.2792 0.6967 + 562water OW 562 2.859 0.125 1.842 -0.0328 0.2184 0.4159 + 563water OW 563 0.636 1.281 5.300 -0.6169 -0.2998 0.1849 + 564water OW 564 2.426 0.132 2.053 0.3004 0.1289 0.0327 + 565water OW 565 1.097 2.950 4.658 0.5716 -0.0210 -0.4307 + 566water OW 566 1.263 1.346 2.309 -0.3681 -0.3616 -0.4647 + 567water OW 567 2.838 2.831 1.835 0.4900 0.8427 -0.1230 + 568water OW 568 2.220 2.018 2.916 -0.7272 0.1822 -0.2139 + 569water OW 569 0.414 1.577 5.214 0.5691 -0.1017 -0.6868 + 570water OW 570 2.981 0.499 2.047 -0.3976 0.1699 -0.5470 + 571water OW 571 2.545 0.246 1.830 0.5043 0.1969 -0.0771 + 572water OW 572 2.560 2.747 1.815 -0.1818 0.2361 -0.4314 + 573water OW 573 2.949 2.725 2.063 0.0125 0.4030 -0.0414 + 574water OW 574 0.480 2.323 4.162 -0.5780 0.2670 0.1240 + 575water OW 575 1.417 2.848 6.159 -0.0808 -0.0291 0.0621 + 576water OW 576 1.253 2.495 6.065 -0.2178 0.0543 0.6838 + 577water OW 577 2.049 0.648 2.271 -0.2466 -0.0161 -0.4942 + 578water OW 578 0.488 0.953 1.798 -0.3038 -0.2597 -0.1062 + 579water OW 579 3.132 0.506 3.474 0.3527 -0.6247 -0.1587 + 580water OW 580 2.750 2.991 3.386 -0.4376 0.8364 -0.5053 + 581water OW 581 2.056 0.753 5.221 0.3815 -0.0462 -0.7822 + 582water OW 582 1.588 1.143 4.587 -0.8065 -0.2566 0.0147 + 583water OW 583 0.442 0.592 1.807 -0.6685 -0.3582 0.1445 + 584water OW 584 2.578 0.941 2.647 0.2777 -0.3609 0.1954 + 585water OW 585 1.314 0.268 6.248 -0.3674 -0.2299 0.4002 + 586water OW 586 1.353 2.004 2.493 -0.4105 -0.3781 0.7058 + 587water OW 587 0.197 1.007 1.867 0.3372 0.3491 0.0649 + 588water OW 588 0.185 0.476 1.805 0.4125 0.2349 -0.1759 + 589water OW 589 0.570 0.545 2.049 0.0929 -0.0687 0.0245 + 590water OW 590 1.891 0.080 4.078 -0.4372 -0.2023 0.2727 + 591water OW 591 1.013 1.187 3.091 0.0677 -0.2336 0.0308 + 592water OW 592 2.908 0.598 5.479 -0.0132 -0.4816 -0.2220 + 593water OW 593 0.834 0.613 1.993 0.0090 0.4909 -0.5801 + 594water OW 594 1.318 0.903 1.869 0.2976 -0.0806 0.1692 + 595water OW 595 1.181 2.570 4.478 -0.5373 -0.1586 0.1903 + 596water OW 596 0.591 2.733 2.014 -0.4602 -0.9211 0.5716 + 597water OW 597 1.523 0.685 5.510 0.1033 -0.0752 -0.1563 + 598water OW 598 1.440 0.934 2.109 -0.5551 0.0256 0.6319 + 599water OW 599 1.292 0.622 1.815 -0.2920 0.1705 0.3153 + 600water OW 600 2.605 0.714 6.073 -0.3578 0.0298 -0.1047 + 601water OW 601 1.443 2.951 4.895 0.0142 0.3232 0.0811 + 602water OW 602 0.882 0.885 2.033 -0.8257 0.6212 0.0058 + 603water OW 603 1.046 1.018 1.871 0.6860 0.0240 0.7718 + 604water OW 604 0.998 0.538 1.795 -0.0858 -0.2200 -0.4263 + 605water OW 605 1.414 0.247 2.071 -0.2525 -0.0643 -0.1978 + 606water OW 606 2.150 0.369 6.002 -0.2734 0.2115 -0.1205 + 607water OW 607 1.049 0.212 4.710 -0.7006 0.4788 -0.2492 + 608water OW 608 2.426 2.374 2.534 -0.5587 -0.1686 0.4717 + 609water OW 609 1.640 0.564 2.097 -0.0757 -0.0436 0.2734 + 610water OW 610 2.028 0.885 1.787 0.0124 0.4670 0.0645 + 611water OW 611 2.166 0.981 2.018 -0.5674 0.0128 0.6850 + 612water OW 612 0.048 1.944 4.083 -0.0880 0.2258 -0.5269 + 613water OW 613 3.176 2.023 5.377 0.2332 -0.2696 0.0608 + 614water OW 614 0.480 2.382 5.263 -0.1725 0.3324 -0.3707 + 615water OW 615 2.019 0.599 1.801 0.2400 0.2994 0.2236 + 616water OW 616 0.629 0.956 2.908 -0.5828 -1.0083 -0.0061 + 617water OW 617 2.215 2.923 5.517 0.2913 0.1783 -0.3305 + 618water OW 618 1.669 1.348 2.082 0.1399 -0.1486 0.5325 + 619water OW 619 1.783 1.006 1.834 -0.4733 0.1382 -0.0370 + 620water OW 620 1.758 0.515 1.863 0.1816 -0.1529 -0.3370 + 621water OW 621 2.179 0.533 2.033 0.9376 0.6081 0.2439 + 622water OW 622 2.760 2.388 5.068 0.5619 0.0512 0.1138 + 623water OW 623 2.871 2.106 6.429 -0.1039 -0.6572 -0.0801 + 624water OW 624 0.464 1.625 4.929 0.1368 0.5450 0.5422 + 625water OW 625 2.448 0.602 2.060 -0.4799 0.2968 0.1117 + 626water OW 626 2.865 0.861 1.838 0.2542 -0.1758 -0.0102 + 627water OW 627 3.007 0.955 1.596 -0.5531 0.2153 -0.6352 + 628water OW 628 3.002 2.466 2.046 0.0526 -0.0481 -0.1378 + 629water OW 629 1.244 2.385 0.027 0.7406 0.0313 -0.1458 + 630water OW 630 0.061 0.541 2.521 -0.3895 -0.2139 0.2477 + 631water OW 631 2.825 0.582 1.822 0.1963 0.5979 0.0241 + 632water OW 632 0.363 1.331 5.564 -0.0305 -0.2888 0.0157 + 633water OW 633 0.552 1.793 4.659 1.0467 -0.1499 0.0051 + 634water OW 634 2.447 0.884 2.015 -0.5451 -0.1935 -0.5057 + 635water OW 635 2.604 0.982 1.792 -0.6115 0.1358 0.6687 + 636water OW 636 2.542 0.522 1.803 0.0147 0.1401 -0.0039 + 637water OW 637 2.238 1.511 4.844 -0.3917 0.0947 0.1172 + 638water OW 638 1.225 0.113 2.355 -0.4576 0.2780 -0.5936 + 639water OW 639 1.321 0.222 2.931 -0.0041 0.1971 0.1960 + 640water OW 640 1.774 2.026 2.721 0.1621 -0.2930 0.2133 + 641water OW 641 1.981 1.952 3.365 0.4395 0.0189 -0.1396 + 642water OW 642 0.455 1.603 1.830 -0.2149 -0.3107 -0.0398 + 643water OW 643 1.548 1.233 4.292 0.4498 -0.2432 0.0842 + 644water OW 644 2.999 1.929 4.887 0.2373 0.3682 -0.5850 + 645water OW 645 1.707 1.858 6.008 -0.2688 -0.6769 -0.4505 + 646water OW 646 0.690 1.012 3.293 -0.3872 0.1579 0.0622 + 647water OW 647 0.484 1.317 1.869 0.1666 -0.8387 -0.0517 + 648water OW 648 0.443 1.656 4.404 0.5303 0.2676 0.5066 + 649water OW 649 2.419 1.678 2.953 0.3530 -0.5378 -0.1459 + 650water OW 650 0.028 1.630 2.031 0.0408 -0.1003 -0.4113 + 651water OW 651 0.213 1.722 1.868 1.1783 -0.2598 0.4082 + 652water OW 652 0.205 1.293 1.812 0.4183 -0.1473 0.5340 + 653water OW 653 1.711 2.081 6.665 -0.0382 0.2118 0.2272 + 654water OW 654 1.138 0.561 4.426 0.0358 0.5971 -0.1341 + 655water OW 655 0.313 2.530 6.426 0.2164 0.5644 0.2943 + 656water OW 656 2.036 0.097 2.298 -0.1738 0.0591 0.3016 + 657water OW 657 0.845 1.375 2.070 0.0718 -0.3561 -0.0461 + 658water OW 658 1.292 1.626 1.826 0.0901 -0.1655 0.5683 + 659water OW 659 1.392 2.029 2.069 0.1982 0.1453 -0.1284 + 660water OW 660 0.021 0.829 2.480 0.5234 -0.0999 0.1124 + 661water OW 661 1.410 1.751 2.055 -0.5492 -0.2312 -0.0761 + 662water OW 662 1.498 1.806 5.141 -0.5007 0.5275 0.2414 + 663water OW 663 1.270 1.347 1.855 -0.6453 0.0915 -0.2864 + 664water OW 664 0.842 0.227 3.177 0.5199 -0.1788 -0.0498 + 665water OW 665 1.415 0.966 4.236 -0.0112 -0.0782 -0.5070 + 666water OW 666 2.002 1.150 5.588 -0.5528 -0.4167 0.1035 + 667water OW 667 1.031 1.739 1.817 0.1191 0.0102 -0.4635 + 668water OW 668 1.014 1.322 1.865 -0.0994 0.2227 -0.2343 + 669water OW 669 1.413 1.217 2.083 0.5362 0.0578 0.0886 + 670water OW 670 0.467 0.013 5.355 0.1711 0.2393 0.4693 + 671water OW 671 1.246 2.369 2.237 0.1402 0.9492 0.1207 + 672water OW 672 0.605 1.248 2.105 -0.0388 -0.3231 -0.1189 + 673water OW 673 1.836 1.734 6.419 -0.2267 0.1708 -0.3063 + 674water OW 674 2.045 1.627 1.816 -0.7388 0.4217 -0.1016 + 675water OW 675 1.576 2.069 5.721 -0.2147 0.7030 -0.2979 + 676water OW 676 2.163 1.752 2.956 -0.0007 0.1543 0.6067 + 677water OW 677 2.642 1.116 5.373 0.1034 0.0890 -0.2700 + 678water OW 678 0.705 1.589 4.235 0.4289 0.0951 0.4764 + 679water OW 679 2.060 1.361 1.808 0.5969 -0.3685 -0.4979 + 680water OW 680 1.729 0.164 5.555 -0.0336 -0.1158 -0.2231 + 681water OW 681 1.957 1.177 4.321 -0.0703 1.0752 0.5000 + 682water OW 682 2.063 0.046 3.644 0.2245 0.0170 0.6917 + 683water OW 683 1.802 1.749 1.817 -0.1139 -0.1095 -0.4523 + 684water OW 684 1.790 1.289 1.846 -0.3099 0.5737 -0.0947 + 685water OW 685 2.197 1.244 2.047 -0.2147 0.6836 0.4282 + 686water OW 686 2.328 2.969 6.739 0.0914 -0.5961 0.2714 + 687water OW 687 0.586 1.196 3.818 -0.1477 0.5924 0.0577 + 688water OW 688 1.679 1.615 2.045 0.2124 -0.0494 0.5307 + 689water OW 689 2.437 1.387 2.048 -0.2064 -0.4250 0.2469 + 690water OW 690 2.853 1.628 1.838 0.1419 0.3880 0.2128 + 691water OW 691 2.861 1.333 2.192 -0.2799 0.0724 0.2569 + 692water OW 692 0.527 1.992 2.480 -0.1697 0.3501 0.2413 + 693water OW 693 2.493 0.128 3.716 0.0494 -0.1147 -0.0628 + 694water OW 694 0.993 1.390 4.128 -0.0568 0.1994 -0.2306 + 695water OW 695 2.850 1.328 1.818 0.5609 -0.2707 0.4397 + 696water OW 696 2.933 0.686 3.395 -0.0162 -0.0645 0.1095 + 697water OW 697 0.040 0.704 5.670 0.5689 -0.3242 -0.2728 + 698water OW 698 2.451 1.650 2.072 -0.4665 0.3140 0.8373 + 699water OW 699 2.574 1.690 1.838 -0.4067 0.2231 0.0559 + 700water OW 700 2.595 1.288 1.816 -0.1806 -0.2846 -0.6565 + 701water OW 701 3.026 0.923 2.055 0.0944 -0.7677 -0.5085 + 702water OW 702 1.623 2.215 5.293 -0.7182 0.0033 -0.8331 + 703water OW 703 0.407 0.419 3.795 0.8251 -0.0243 -0.0849 + 704water OW 704 2.326 0.882 4.858 0.0095 -0.1396 0.2392 + 705water OW 705 1.558 1.385 4.729 -0.1427 0.0281 -0.6702 + 706water OW 706 0.457 2.376 1.830 -0.0269 -0.1820 -0.2291 + 707water OW 707 2.965 0.075 5.207 0.3063 0.3312 0.2067 + 708water OW 708 1.414 2.933 5.521 -0.4422 -0.2275 -0.0848 + 709water OW 709 1.477 0.887 5.037 0.3130 0.4778 -0.2093 + 710water OW 710 1.707 2.612 5.254 -0.0227 -0.0114 -0.5787 + 711water OW 711 0.476 2.107 1.816 0.2126 -0.6664 0.0450 + 712water OW 712 2.806 0.632 3.656 0.5828 -0.5409 -0.1485 + 713water OW 713 2.049 1.959 4.672 -0.1632 0.0867 -0.2535 + 714water OW 714 0.059 2.389 2.043 -0.5387 -0.3488 -0.5248 + 715water OW 715 0.212 2.518 1.832 -0.0009 -0.1545 -0.0519 + 716water OW 716 0.223 1.996 1.876 0.1876 0.1840 -0.0475 + 717water OW 717 0.845 2.775 5.271 0.5580 0.1087 0.2194 + 718water OW 718 2.445 2.067 2.021 0.2631 0.3695 0.7265 + 719water OW 719 2.020 0.587 4.951 0.2080 0.2068 0.1361 + 720water OW 720 2.453 0.674 5.047 -1.3730 0.2784 0.2549 + 721water OW 721 0.172 1.986 2.244 -0.4162 0.9824 0.1264 + 722water OW 722 1.253 2.374 1.820 -0.2179 -0.5069 -0.3146 + 723water OW 723 2.636 2.523 0.102 -0.0548 0.4322 -0.3018 + 724water OW 724 2.141 2.764 2.051 -0.1705 0.7140 -0.1214 + 725water OW 725 2.532 2.866 2.940 0.1092 -0.2524 0.1693 + 726water OW 726 1.251 2.038 5.503 0.5406 0.2222 0.0461 + 727water OW 727 1.257 2.097 1.823 0.0188 -0.3092 -0.5116 + 728water OW 728 2.825 1.969 3.798 0.1862 -0.1891 -0.4050 + 729water OW 729 2.448 2.442 6.718 -0.1659 -0.0010 -0.0201 + 730water OW 730 0.864 2.352 2.088 0.0800 -0.1963 -0.0900 + 731water OW 731 1.009 2.489 1.853 -0.3944 -0.1361 0.1605 + 732water OW 732 1.014 2.011 1.853 0.1828 0.9978 0.4166 + 733water OW 733 1.654 2.113 2.109 -0.0023 -0.3587 0.0297 + 734water OW 734 2.574 2.686 3.398 0.0716 -0.1099 -0.4655 + 735water OW 735 0.447 2.096 2.723 0.0901 0.0352 -0.0550 + 736water OW 736 0.454 0.227 3.431 0.3956 0.0541 -0.3077 + 737water OW 737 1.914 1.477 4.107 -0.1435 0.7083 0.1771 + 738water OW 738 2.027 2.357 1.840 0.5121 -0.0238 -0.1724 + 739water OW 739 2.188 0.879 4.502 -0.1823 -0.1744 -0.7492 + 740water OW 740 1.785 1.706 2.292 0.1458 -0.4106 0.5002 + 741water OW 741 1.131 1.471 4.524 0.4488 -0.1013 0.3290 + 742water OW 742 0.051 2.781 2.901 0.4861 -0.2377 0.3193 + 743water OW 743 2.041 2.082 1.825 0.3800 0.0296 0.1337 + 744water OW 744 2.125 0.328 5.554 0.0943 -0.2796 -0.2858 + 745water OW 745 1.902 0.295 3.766 -0.5428 -0.3030 0.0726 + 746water OW 746 1.606 2.392 2.072 0.1684 0.4954 -0.2514 + 747water OW 747 1.745 2.455 1.854 -0.1698 -0.1519 0.0516 + 748water OW 748 1.777 2.017 1.879 0.6546 -0.1968 0.1794 + 749water OW 749 2.180 1.694 2.058 0.5219 -0.4367 0.1567 + 750water OW 750 0.809 1.378 2.483 0.2323 -0.1306 0.0495 + 751water OW 751 0.341 2.367 3.322 0.5969 0.0109 -0.6440 + 752water OW 752 2.666 0.948 4.299 0.0494 0.0491 0.2630 + 753water OW 753 2.816 2.120 2.268 0.2946 -0.1298 0.6332 + 754water OW 754 2.867 2.374 1.822 -0.0443 0.2309 -0.3353 + 755water OW 755 2.989 0.227 2.060 -0.1858 -0.1910 0.7000 + 756water OW 756 0.202 0.241 2.259 0.2443 -0.4725 0.1905 + 757water OW 757 2.696 0.285 6.097 -0.5198 0.0624 -0.7580 + 758water OW 758 1.641 1.355 2.517 -0.4413 -0.5842 0.3873 + 759water OW 759 2.836 2.088 1.822 0.0940 0.4569 0.2901 + 760water OW 760 0.350 1.447 3.743 -0.7001 -0.1845 0.1267 + 761water OW 761 2.061 1.590 2.280 -0.1567 -0.4933 -0.7535 + 762water OW 762 2.532 2.843 3.999 0.0455 -0.2717 0.0467 + 763water OW 763 2.595 2.446 1.884 -0.4386 0.1148 -0.0004 + 764water OW 764 2.593 1.981 1.795 -0.1659 -0.1146 -0.3173 + 765water OW 765 2.964 2.048 2.053 0.1833 0.1709 -0.5626 + 766water OW 766 2.854 1.601 2.251 0.3011 -0.1349 -0.2979 + 767water OW 767 0.811 2.078 5.017 0.0592 0.6888 0.3230 + 768water OW 768 0.318 1.182 3.757 -0.4334 -0.3957 -0.0673 + 769water OW 769 0.321 1.070 5.516 0.2808 -0.1329 0.0790 + 770water OW 770 0.558 0.369 5.411 0.0613 0.3006 -0.3556 + 771water OW 771 2.534 2.747 5.961 0.1629 -0.5364 0.2009 + 772water OW 772 0.580 2.497 2.515 -0.1342 0.4851 0.2518 + 773water OW 773 1.121 0.545 3.057 0.5400 -0.1814 -0.2837 + 774water OW 774 0.957 1.437 5.642 -0.2887 -0.1443 0.0070 + 775water OW 775 1.382 2.248 5.628 0.1987 0.2719 -0.2054 + 776water OW 776 1.267 0.906 2.329 0.0749 0.1085 -0.5496 + 777water OW 777 0.287 1.271 4.454 -0.5394 -0.1859 -0.2002 + 778water OW 778 0.801 2.834 2.470 -0.5326 -0.0321 -0.6281 + 779water OW 779 0.279 1.892 4.419 -0.0381 0.2936 -0.3869 + 780water OW 780 0.181 2.960 5.896 -0.3106 0.3777 0.0715 + 781water OW 781 3.018 0.972 6.671 0.4662 -0.3249 0.4935 + 782water OW 782 1.780 0.044 3.622 -0.1404 0.3421 0.4301 + 783water OW 783 0.202 1.577 3.369 0.3941 -0.3439 0.8803 + 784water OW 784 0.540 0.454 6.222 0.0349 -0.5108 0.0889 + 785water OW 785 2.492 0.942 5.622 -0.4010 -0.2953 -0.1984 + 786water OW 786 0.331 1.872 6.113 -0.0781 0.0456 -0.2292 + 787water OW 787 1.477 2.741 3.694 0.3724 0.0751 -0.2537 + 788water OW 788 2.656 1.212 2.663 -0.1795 -0.2411 -0.0781 + 789water OW 789 0.437 2.875 2.239 -0.1467 -0.0010 0.1133 + 790water OW 790 2.735 1.338 4.006 0.1195 0.3521 0.4199 + 791water OW 791 3.059 2.214 3.414 -0.0847 0.0520 -0.1032 + 792water OW 792 0.381 1.329 2.745 0.2757 0.2561 -0.1678 + 793water OW 793 0.960 0.483 3.759 0.4313 -0.3032 -0.1154 + 794water OW 794 2.433 1.288 3.696 0.1426 0.6983 -0.2879 + 795water OW 795 2.594 1.715 2.293 -0.4958 0.0576 -0.3435 + 796water OW 796 2.987 0.677 5.777 0.4898 0.0962 0.2057 + 797water OW 797 1.416 2.065 5.963 0.1269 -0.3478 -0.6017 + 798water OW 798 0.979 1.688 2.279 0.0079 -0.7042 0.1188 + 799water OW 799 0.470 2.403 2.288 0.4803 -0.2250 0.0014 + 800water OW 800 0.661 0.328 4.084 0.2040 0.0808 0.2137 + 801water OW 801 1.631 1.528 5.813 -0.6854 -0.3755 0.3364 + 802water OW 802 1.255 0.644 2.287 -0.2289 -0.0361 -0.3459 + 803water OW 803 1.423 0.266 5.833 -0.2693 0.0496 0.1527 + 804water OW 804 0.438 1.781 3.739 -0.4286 0.1748 -0.1233 + 805water OW 805 3.170 0.397 4.546 0.4938 0.7549 0.3163 + 806water OW 806 0.161 0.504 2.766 0.6169 -0.3558 -0.5187 + 807water OW 807 0.305 2.183 3.105 -0.8378 -0.2991 0.4823 + 808water OW 808 0.188 0.975 2.293 -0.0760 -0.0415 -0.3809 + 809water OW 809 2.004 0.064 4.334 0.3197 -0.3074 0.1859 + 810water OW 810 2.077 1.658 3.207 0.6633 -0.1435 -0.1068 + 811water OW 811 1.503 1.145 5.770 0.1466 -0.3467 -0.0070 + 812water OW 812 0.704 2.842 3.873 0.4145 -0.3842 -0.4197 + 813water OW 813 1.535 0.653 4.662 0.0040 0.1611 -0.0526 + 814water OW 814 0.209 2.455 2.723 -0.0092 -0.1155 -0.5282 + 815water OW 815 1.273 0.726 4.605 -0.7347 0.0471 -0.2489 + 816water OW 816 2.831 0.879 2.270 0.0213 -0.0136 -0.0966 + 817water OW 817 1.740 0.732 3.732 -0.1406 -0.0923 -0.6810 + 818water OW 818 2.328 2.186 3.897 -0.4950 -0.0438 -0.4670 + 819water OW 819 1.130 1.002 5.189 -0.8006 0.4969 0.2575 + 820water OW 820 0.162 1.275 4.705 0.3461 0.1113 0.0746 + 821water OW 821 2.426 0.154 4.338 0.3595 -0.3810 -0.2404 + 822water OW 822 1.264 0.347 5.334 -0.4173 -0.1676 0.1425 + 823water OW 823 2.729 2.776 6.449 0.2116 0.2555 -0.0656 + 824water OW 824 1.100 1.792 4.959 -0.2185 -0.2706 -0.2166 + 825water OW 825 3.011 2.726 5.504 -0.1154 0.4408 -0.5010 + 826water OW 826 2.350 0.665 3.987 0.1879 -0.6189 -0.0617 + 827water OW 827 0.334 2.168 5.375 0.2668 0.3244 -0.2383 + 828water OW 828 3.199 0.087 4.146 -0.3521 -0.1630 0.1161 + 829water OW 829 1.611 0.486 6.350 -0.1548 -0.3381 -0.0888 + 830water OW 830 1.193 1.728 3.166 0.1412 0.0178 0.3891 + 831water OW 831 1.254 1.625 2.247 0.5386 -0.1599 0.0507 + 832water OW 832 2.902 2.347 2.760 0.4360 -0.1834 0.0482 + 833water OW 833 3.079 2.540 4.306 -0.4821 0.1757 -0.0284 + 834water OW 834 2.989 2.760 2.511 -0.1020 -0.3840 0.3215 + 835water OW 835 2.704 0.258 4.902 -0.4721 0.0881 0.1347 + 836water OW 836 3.140 1.566 3.343 0.0533 0.0871 -0.0846 + 837water OW 837 2.602 1.837 3.378 0.0318 0.2809 0.1020 + 838water OW 838 0.762 1.521 5.821 -0.0260 -0.1798 -0.0717 + 839water OW 839 1.816 0.504 2.287 0.2339 0.0773 0.1149 + 840water OW 840 2.010 1.916 5.469 0.2302 -0.1434 0.2585 + 841water OW 841 0.516 1.406 4.480 0.2816 0.3174 -0.1405 + 842water OW 842 0.514 1.159 6.063 -0.2396 -0.4037 0.2192 + 843water OW 843 2.930 2.403 3.278 -0.0725 -0.3594 0.1069 + 844water OW 844 0.482 0.859 5.462 -0.5937 -0.3848 0.1119 + 845water OW 845 1.690 1.632 6.643 0.1625 -0.3453 -0.3649 + 846water OW 846 2.415 0.765 5.813 0.7306 -0.1492 -0.3312 + 847water OW 847 1.742 1.825 4.541 -0.4161 -0.1202 -0.0692 + 848water OW 848 0.974 2.479 2.695 -0.1159 -0.1221 -0.7007 + 849water OW 849 0.090 2.832 2.498 0.2086 -0.3291 0.3100 + 850water OW 850 2.424 0.901 2.891 0.3933 -0.0874 -0.0974 + 851water OW 851 0.558 1.255 2.526 0.2704 0.3625 0.0462 + 852water OW 852 2.286 2.416 4.475 -0.4050 0.5637 -0.3230 + 853water OW 853 3.039 2.345 3.003 -0.1525 -0.2125 -0.0465 + 854water OW 854 2.002 0.564 5.882 0.4823 -0.3825 0.3099 + 855water OW 855 2.076 2.896 2.706 0.1463 -0.4240 0.1199 + 856water OW 856 1.162 0.600 5.272 0.5719 -0.0392 -0.2559 + 857water OW 857 2.529 0.137 3.428 0.2133 -0.0563 0.3780 + 858water OW 858 0.121 2.371 2.992 0.1633 -0.6116 0.2743 + 859water OW 859 1.146 1.609 4.120 0.4363 0.1028 0.0424 + 860water OW 860 1.991 1.191 4.736 0.4651 0.1723 0.0882 + 861water OW 861 0.044 2.097 2.457 -0.4706 -0.6260 -0.0139 + 862water OW 862 1.659 2.814 2.959 -0.1812 -0.1303 0.7056 + 863water OW 863 1.449 1.164 6.039 -0.1844 -0.1280 0.1934 + 864water OW 864 2.168 1.237 5.185 0.7997 0.2854 -0.1105 + 865water OW 865 1.336 2.460 2.483 -0.2417 0.2261 -0.0646 + 866water OW 866 1.794 2.474 2.708 0.4948 0.5000 -0.2358 + 867water OW 867 2.633 0.420 3.717 0.2531 -0.2415 -0.0692 + 868water OW 868 1.328 2.339 4.129 0.0514 -0.0318 0.2010 + 869water OW 869 0.385 2.914 4.804 -0.1061 -0.7262 -0.1197 + 870water OW 870 3.074 1.777 3.520 -0.2243 -0.1689 -0.1650 + 871water OW 871 2.022 2.810 2.286 0.2205 0.4669 -0.2420 + 872water OW 872 1.236 1.592 2.708 0.4231 0.2176 0.2628 + 873water OW 873 1.772 2.079 3.500 0.2923 -0.4774 -0.3132 + 874water OW 874 0.595 2.796 6.011 -0.8214 -0.0321 0.0586 + 875water OW 875 0.400 2.977 4.020 0.2638 -0.0897 0.2916 + 876water OW 876 0.451 2.667 5.295 0.9532 -0.1478 -0.2609 + 877water OW 877 1.528 1.757 4.733 -0.4494 0.1401 0.4265 + 878water OW 878 0.031 2.903 6.631 -0.1738 -0.3436 -0.0507 + 879water OW 879 2.417 0.010 5.940 -0.2174 0.3438 -0.7511 + 880water OW 880 2.547 2.930 4.421 0.6688 0.1597 -0.0728 + 881water OW 881 1.065 1.158 6.312 -0.3029 -0.0500 0.0510 + 882water OW 882 0.130 2.458 5.199 -0.0193 0.1806 0.4039 + 883water OW 883 2.632 1.389 5.764 -0.0770 0.2246 0.0610 + 884water OW 884 2.271 1.286 5.541 -0.2955 -0.2944 -0.2955 + 885water OW 885 2.247 0.643 3.296 -0.6853 -0.0118 -0.0979 + 886water OW 886 2.693 2.651 4.586 0.1711 -0.1257 -0.7020 + 887water OW 887 2.415 0.581 2.908 0.2140 0.5114 -0.0248 + 888water OW 888 0.024 0.062 2.900 0.6034 -0.1207 0.4128 + 889water OW 889 2.222 1.739 4.183 -0.2281 -0.0094 0.0926 + 890water OW 890 1.855 1.049 4.555 0.1340 -0.1039 -0.0230 + 891water OW 891 1.476 2.960 3.845 0.0168 -0.0317 0.0848 + 892water OW 892 2.135 0.575 5.424 0.4050 -0.4004 -1.0361 + 893water OW 893 2.773 2.449 5.743 -0.2983 -0.1564 -0.0193 + 894water OW 894 0.033 2.116 2.042 0.2494 -0.1835 0.1298 + 895water OW 895 0.103 2.177 5.946 0.5627 0.3878 -0.5646 + 896water OW 896 2.958 1.236 6.614 0.3704 0.0591 0.4468 + 897water OW 897 3.049 1.047 4.637 0.2469 0.1361 -0.3936 + 898water OW 898 1.159 2.286 5.208 -0.0312 -0.0794 0.3633 + 899water OW 899 0.959 0.368 6.034 -0.1336 0.1305 0.0413 + 900water OW 900 1.323 1.746 6.384 -0.2067 -0.0251 -0.3439 + 901water OW 901 0.108 2.987 3.473 0.1610 0.2357 -0.2553 + 902water OW 902 2.651 2.702 4.851 0.3072 0.1116 -0.0533 + 903water OW 903 2.935 0.942 3.499 -0.3682 0.4472 -0.0180 + 904water OW 904 2.619 0.990 4.751 -0.7486 0.3479 0.4084 + 905water OW 905 2.465 0.041 5.524 0.2510 0.2744 0.3602 + 906water OW 906 0.316 2.522 4.841 0.1087 -0.0202 0.3470 + 907water OW 907 2.469 0.596 2.488 -0.4808 -0.9175 -0.2292 + 908water OW 908 2.430 1.986 4.667 0.5238 0.2897 0.4158 + 909water OW 909 0.154 1.771 2.704 -0.2611 0.1247 -0.3369 + 910water OW 910 1.883 0.528 3.612 -0.0290 0.3527 -0.1466 + 911water OW 911 1.256 0.753 3.203 0.1235 0.2171 -0.1821 + 912water OW 912 1.637 1.368 6.636 0.4394 0.1054 0.4834 + 913water OW 913 1.211 0.944 5.832 0.5167 0.3237 -0.0638 + 914water OW 914 0.967 1.256 2.300 0.7759 -0.3111 -0.2974 + 915water OW 915 1.283 1.255 3.173 -0.1443 0.6588 -0.4187 + 916water OW 916 2.424 1.648 2.508 0.8193 0.4948 0.1990 + 917water OW 917 2.426 0.586 4.243 0.2591 -0.2270 -0.4107 + 918water OW 918 0.027 0.685 3.820 0.1677 0.0332 0.2725 + 919water OW 919 2.857 0.113 2.269 0.7277 0.2988 -0.4341 + 920water OW 920 0.675 0.109 5.506 -0.2693 -0.0538 0.3235 + 921water OW 921 1.716 2.395 2.983 0.1354 -0.0932 -0.3113 + 922water OW 922 0.661 2.895 4.579 -0.0559 -0.0859 -0.5160 + 923water OW 923 1.716 0.871 2.551 0.3673 0.0132 0.2604 + 924water OW 924 2.668 1.887 5.990 -0.4276 -0.5235 -0.4448 + 925water OW 925 2.838 0.631 3.145 0.8479 0.0626 -0.2614 + 926water OW 926 2.694 2.914 5.423 -0.0192 0.3157 0.0820 + 927water OW 927 1.378 1.014 6.608 0.2294 -0.4523 -0.1083 + 928water OW 928 1.636 2.823 2.535 -0.0308 0.0271 0.1297 + 929water OW 929 0.296 0.404 3.559 -0.0102 -0.0587 -0.2321 + 930water OW 930 2.282 1.507 3.855 -0.0948 0.0618 -0.6694 + 931water OW 931 2.463 0.266 5.389 0.0415 -0.3331 -0.3166 + 932water OW 932 1.924 1.284 3.644 0.6249 0.2288 -0.3313 + 933water OW 933 2.613 2.755 0.252 0.2504 -0.2126 0.7157 + 934water OW 934 0.449 0.137 2.292 0.2106 0.1471 0.4953 + 935water OW 935 1.254 2.995 4.014 0.2811 0.4573 -0.2346 + 936water OW 936 2.931 1.643 3.888 -0.2896 0.3984 0.1568 + 937water OW 937 1.771 1.319 3.177 -0.5565 -0.3395 -0.1966 + 938water OW 938 1.213 1.102 4.846 0.0632 -0.6997 0.0278 + 939water OW 939 0.847 1.599 2.946 0.0902 0.4542 0.9556 + 940water OW 940 2.524 0.895 4.049 0.5551 0.2621 0.3113 + 941water OW 941 0.526 2.642 3.819 0.8645 -0.9803 -0.1050 + 942water OW 942 0.094 2.159 5.567 -0.5816 -0.1895 0.2950 + 943water OW 943 0.195 0.421 4.411 0.2259 -0.5597 -0.2449 + 944water OW 944 3.021 0.620 4.658 -0.1832 -0.1427 -0.0724 + 945water OW 945 2.156 1.724 2.502 0.1736 -0.2529 -0.0597 + 946water OW 946 1.246 0.562 2.748 -0.3415 -0.2392 -0.0726 + 947water OW 947 2.575 0.160 2.963 0.9342 -0.2011 0.4056 + 948water OW 948 2.268 0.464 4.988 0.1571 -0.0905 0.0193 + 949water OW 949 0.203 0.272 0.066 -0.0146 -0.5090 -0.7144 + 950water OW 950 1.658 2.431 5.994 -0.1438 0.3966 0.1119 + 951water OW 951 2.456 1.183 4.711 0.7189 0.0548 -0.0528 + 952water OW 952 0.400 2.140 2.267 0.8788 -0.1638 0.0289 + 953water OW 953 2.027 1.661 2.739 0.2585 -0.4267 0.3914 + 954water OW 954 0.450 0.573 3.192 -0.4331 0.3867 0.0999 + 955water OW 955 2.613 1.006 3.080 0.0742 -0.0687 0.5824 + 956water OW 956 2.918 1.010 4.212 -0.5839 0.1929 0.4232 + 957water OW 957 1.373 0.535 2.069 0.1024 -0.4951 0.4865 + 958water OW 958 1.731 2.769 3.583 -0.5880 0.2321 -0.0725 + 959water OW 959 1.406 1.726 6.664 0.3139 -0.0431 -0.1145 + 960water OW 960 0.433 0.602 2.702 0.7458 0.1500 -0.3472 + 961water OW 961 2.495 1.817 5.066 0.9386 0.2875 -0.4208 + 962water OW 962 2.052 0.652 6.400 0.0122 0.0343 -0.1253 + 963water OW 963 0.057 1.843 6.378 -0.2670 0.7248 0.5362 + 964water OW 964 0.009 1.709 6.617 -0.6869 0.5911 -0.2213 + 965water OW 965 0.406 0.916 5.923 0.2618 -0.0246 0.3172 + 966water OW 966 1.374 2.729 2.509 -0.3269 -0.5202 0.0920 + 967water OW 967 2.572 0.468 2.704 0.5408 -0.0252 0.0861 + 968water OW 968 2.168 2.114 5.005 -0.0241 0.4092 0.0048 + 969water OW 969 1.655 2.693 6.090 0.0764 -0.0003 -0.2360 + 970water OW 970 1.985 1.962 3.914 -0.2627 -0.6001 -0.2571 + 971water OW 971 0.614 2.456 2.043 -0.7341 -0.4538 0.4491 + 972water OW 972 1.443 0.204 5.557 0.2293 -0.5981 -0.5858 + 973water OW 973 2.458 1.180 5.738 -0.2033 0.4806 0.4570 + 974water OW 974 0.999 2.512 5.616 0.0463 0.3467 0.6059 + 975water OW 975 0.442 2.799 6.451 -0.3438 0.0949 -0.2484 + 976water OW 976 1.955 1.738 4.096 -0.6934 -0.3596 -0.1973 + 977water OW 977 2.658 1.051 6.007 -0.0007 0.0383 -0.6367 + 978water OW 978 2.614 1.853 3.083 0.8662 -0.5854 -0.0880 + 979water OW 979 1.192 0.649 0.037 -0.3285 -0.4145 -0.8367 + 980water OW 980 0.805 1.010 5.713 -0.5136 -0.3658 0.7291 + 981water OW 981 0.364 0.172 6.247 0.3619 0.3269 -0.1838 + 982water OW 982 2.491 0.918 5.177 -0.3160 -0.1360 -0.1914 + 983water OW 983 1.682 2.896 4.037 0.0347 0.1307 -0.1292 + 984water OW 984 0.323 2.149 4.342 0.2845 0.6041 -0.4960 + 985water OW 985 1.120 0.204 3.584 -0.0928 -0.2332 -0.4916 + 986water OW 986 1.581 2.374 5.085 0.2923 -0.1287 -0.1349 + 987water OW 987 1.736 2.180 4.393 0.1659 0.0592 -0.5316 + 988water OW 988 2.421 2.840 2.038 -0.4081 0.4021 0.2339 + 989water OW 989 0.695 0.519 3.855 0.1448 0.3771 -0.0100 + 990water OW 990 1.118 1.752 4.459 0.1761 -0.8508 0.2950 + 991water OW 991 1.749 2.077 3.798 -0.0699 0.1630 -0.3169 + 992water OW 992 0.241 2.820 5.449 0.2880 -0.1249 0.4596 + 993water OW 993 2.487 1.547 4.930 -0.0412 -0.1065 0.4959 + 994water OW 994 3.197 2.099 2.902 0.1155 0.1098 -0.2277 + 995water OW 995 2.023 1.402 3.189 0.3211 -0.1925 -0.6811 + 996water OW 996 2.995 2.514 6.653 -0.2542 -0.1146 1.1866 + 997water OW 997 1.563 1.886 3.709 0.5629 -0.0834 -0.1454 + 998water OW 998 2.586 2.897 5.183 -0.0422 0.3804 0.1701 + 999water OW 999 2.464 0.093 2.467 -0.3540 0.1798 0.0115 + 1000water OW 1000 0.120 0.214 3.628 -0.2963 -0.2485 -0.3078 + 1001water OW 1001 0.081 0.188 3.172 0.8415 0.1870 0.2013 + 1002water OW 1002 3.135 0.116 4.957 -0.3232 -0.3568 -0.7498 + 1003water OW 1003 1.946 0.597 4.680 -0.3056 -0.2870 0.2663 + 1004water OW 1004 2.176 2.993 3.121 -0.3662 -0.0842 -0.0952 + 1005water OW 1005 0.237 2.960 6.152 -0.1212 0.3216 0.0970 + 1006water OW 1006 1.227 1.361 6.387 -0.4601 -0.2929 -0.2819 + 1007water OW 1007 2.762 2.221 5.996 -0.3598 0.1325 0.4930 + 1008water OW 1008 3.041 1.061 3.018 0.1527 -0.1684 0.0871 + 1009water OW 1009 2.793 1.796 3.568 0.3153 0.4540 0.1237 + 1010water OW 1010 1.395 2.678 4.662 0.3398 0.2756 -0.3171 + 1011water OW 1011 1.875 2.438 4.979 -0.4952 0.0005 -0.1314 + 1012water OW 1012 0.814 2.179 3.888 -0.2962 -0.3822 -0.0831 + 1013water OW 1013 2.612 0.040 4.673 0.1633 0.0089 0.5645 + 1014water OW 1014 0.188 1.939 5.729 -0.4366 0.4421 -0.3132 + 1015water OW 1015 3.092 1.960 3.311 -0.0614 -0.3643 -0.1893 + 1016water OW 1016 0.542 1.732 3.343 -0.2359 0.5364 -0.3350 + 1017water OW 1017 1.159 1.123 4.454 0.2495 0.1230 0.3679 + 1018water OW 1018 1.982 1.854 4.928 0.8922 -0.3648 -0.0005 + 1019water OW 1019 1.376 1.163 5.080 -0.4849 0.5773 -0.3475 + 1020water OW 1020 2.510 0.711 4.734 -0.3818 -0.3955 0.6072 + 1021water OW 1021 3.140 1.080 3.283 0.1750 -0.6641 -0.0564 + 1022water OW 1022 0.937 1.234 5.951 0.2058 0.5063 0.0034 + 1023water OW 1023 0.578 2.032 2.081 0.2129 -0.0691 0.0801 + 1024water OW 1024 1.639 2.507 4.837 0.1974 -0.4151 0.0919 + 1025water OW 1025 2.606 2.536 4.253 -0.1179 -0.2558 0.6221 + 1026water OW 1026 0.468 2.406 0.040 0.3316 0.3731 -0.2722 + 1027water OW 1027 1.125 0.526 5.707 0.3739 0.5307 -0.4827 + 1028water OW 1028 2.031 2.906 3.340 -0.5391 -0.4563 -0.5537 + 1029water OW 1029 2.314 1.037 3.683 -0.1794 0.2587 0.0162 + 1030water OW 1030 1.288 2.132 2.746 -0.1876 0.1027 0.0125 + 1031water OW 1031 2.022 2.155 4.386 0.0566 0.2198 0.2910 + 1032water OW 1032 2.936 1.631 3.151 -0.4340 -0.0601 -0.3864 + 1033water OW 1033 2.918 0.823 6.399 0.0928 -0.2150 -0.0373 + 1034water OW 1034 0.214 0.854 4.392 -0.3470 0.0372 0.0285 + 1035water OW 1035 1.381 0.489 2.976 -0.5911 0.2887 0.2169 + 1036water OW 1036 1.172 0.469 3.505 -0.5481 -0.3693 0.2998 + 1037water OW 1037 2.031 1.734 3.515 -0.9308 -0.0540 0.3151 + 1038water OW 1038 0.120 1.986 3.136 0.5868 0.1148 0.3968 + 1039water OW 1039 0.878 0.582 4.516 -0.2355 0.0869 0.0888 + 1040water OW 1040 2.966 0.235 6.678 0.0485 -0.1130 -0.1405 + 1041water OW 1041 2.861 2.069 2.695 0.3933 0.4140 -0.6030 + 1042water OW 1042 3.155 1.443 6.672 -0.0345 -0.6064 -0.6903 + 1043water OW 1043 1.805 1.472 6.072 0.1336 1.1929 0.2318 + 1044water OW 1044 1.755 2.944 3.211 0.2202 0.7030 0.1450 + 1045water OW 1045 1.000 2.047 0.043 0.1431 0.0900 -0.2548 + 1046water OW 1046 2.322 2.561 3.882 -0.1967 -0.0608 -0.3547 + 1047water OW 1047 0.447 2.894 5.097 -0.1401 0.3456 0.2660 + 1048water OW 1048 2.187 2.514 6.643 0.5039 -0.4554 -0.3011 + 1049water OW 1049 2.618 1.877 4.173 0.1338 0.2926 0.0761 + 1050water OW 1050 0.914 1.977 6.419 0.0397 0.0350 0.1702 + 1051water OW 1051 2.990 1.262 5.009 0.0584 -0.2756 0.2460 + 1052water OW 1052 2.621 1.317 6.036 0.4747 0.1487 -0.4076 + 1053water OW 1053 2.060 2.093 2.710 0.0780 -0.0610 -0.2744 + 1054water OW 1054 0.587 1.271 5.021 -0.1718 0.9838 -0.2728 + 1055water OW 1055 1.015 0.929 3.879 -0.5816 -0.2647 0.5142 + 1056water OW 1056 0.995 2.975 5.822 0.3325 0.0083 0.3634 + 1057water OW 1057 0.195 1.697 2.233 0.4415 0.0196 0.2191 + 1058water OW 1058 1.954 2.027 3.106 0.2852 0.0606 0.3481 + 1059water OW 1059 0.789 0.108 2.931 0.2847 -0.0548 -0.7053 + 1060water OW 1060 2.162 1.288 6.668 0.1528 -0.0929 -0.4483 + 1061water OW 1061 0.342 2.457 5.899 0.4093 0.1835 0.1655 + 1062water OW 1062 0.924 2.427 6.592 0.2226 0.0273 0.3665 + 1063water OW 1063 2.398 2.199 6.293 -0.2462 -0.0955 -0.5920 + 1064water OW 1064 2.742 1.147 5.100 0.0550 0.1064 -0.0520 + 1065water OW 1065 0.137 1.106 4.264 -0.0666 -0.2330 0.5341 + 1066water OW 1066 2.050 1.388 6.432 -0.3888 -0.5596 0.0950 + 1067water OW 1067 2.635 2.693 3.114 -0.0838 -0.1200 0.4954 + 1068water OW 1068 0.568 2.665 4.198 -0.1090 -0.0142 0.2571 + 1069water OW 1069 2.854 1.432 6.399 -0.1316 -0.1546 -0.4620 + 1070water OW 1070 0.598 0.263 0.234 -0.2427 0.4673 0.0938 + 1071water OW 1071 1.793 1.993 2.313 -0.0918 0.1400 -0.2250 + 1072water OW 1072 2.450 1.730 5.963 -0.4870 0.0992 0.0905 + 1073water OW 1073 1.162 1.622 5.580 -0.2503 0.1417 0.1020 + 1074water OW 1074 0.094 1.516 3.889 0.1530 -0.1030 0.6543 + 1075water OW 1075 1.364 1.265 0.299 -0.5056 -0.0891 -0.4352 + 1076water OW 1076 2.618 1.229 2.944 -0.7548 0.2330 -0.5497 + 1077water OW 1077 2.371 1.084 5.985 0.6053 0.2651 -0.1367 + 1078water OW 1078 1.817 1.029 2.741 -0.4126 0.0677 -0.0408 + 1079water OW 1079 1.871 0.856 4.950 -0.3872 0.5493 -0.1883 + 1080water OW 1080 1.321 2.330 4.538 -0.1902 -0.3355 -0.0917 + 1081water OW 1081 2.651 0.459 5.091 -0.5134 -0.5849 -0.1684 + 1082water OW 1082 1.661 1.400 2.919 0.0035 0.0907 -0.2189 + 1083water OW 1083 3.020 0.518 3.816 -0.0907 0.6636 0.3130 + 1084water OW 1084 2.451 2.892 4.844 -0.1366 0.1963 -0.1821 + 1085water OW 1085 0.193 0.517 2.281 -0.0805 -0.8854 0.2292 + 1086water OW 1086 2.977 2.013 0.258 0.3190 -0.6825 -0.8901 + 1087water OW 1087 1.501 2.390 3.735 -0.3272 -0.7776 -0.1126 + 1088water OW 1088 0.107 1.445 5.585 -0.1865 0.5242 0.0927 + 1089water OW 1089 1.388 2.778 2.052 0.1635 -0.2064 0.2401 + 1090water OW 1090 0.919 2.546 3.464 -0.4654 0.3885 -0.3534 + 1091water OW 1091 2.962 1.945 4.020 0.0914 0.4709 0.0767 + 1092water OW 1092 2.432 2.226 4.315 0.2819 0.6522 0.5665 + 1093water OW 1093 2.453 2.502 6.046 -0.1753 0.6607 -0.0502 + 1094water OW 1094 2.631 2.757 2.697 -0.1204 0.1961 -0.0560 + 1095water OW 1095 2.499 1.295 5.096 -0.1560 -0.4115 0.0422 + 1096water OW 1096 1.885 2.856 6.482 -0.3839 0.3120 0.3651 + 1097water OW 1097 0.402 0.641 0.024 -0.0392 0.0633 -0.0844 + 1098water OW 1098 1.384 0.214 0.690 0.4800 0.2922 0.1109 + 1099water OW 1099 1.847 2.211 5.158 -0.6367 0.0061 -0.1062 + 1100water OW 1100 0.134 1.516 4.171 0.2278 0.2976 -0.5032 + 1101water OW 1101 1.086 0.160 6.133 0.6320 -0.5930 -0.1636 + 1102water OW 1102 1.598 0.143 2.906 0.2028 -0.1488 0.0952 + 1103water OW 1103 1.227 1.755 5.217 0.8081 -0.1851 1.0977 + 1104water OW 1104 0.804 2.644 4.046 -0.5979 -0.2941 0.8172 + 1105water OW 1105 1.045 2.345 5.961 -0.2637 -0.3729 -0.4921 + 1106water OW 1106 2.388 1.944 3.742 -0.0257 0.1274 0.2723 + 1107water OW 1107 1.770 1.765 0.041 -0.5518 -0.5993 -0.0042 + 1108water OW 1108 2.471 1.464 3.482 0.2168 0.6115 0.0903 + 1109water OW 1109 1.680 1.093 3.899 -0.0151 -0.0410 -0.0092 + 1110water OW 1110 2.187 0.318 4.378 -0.3198 -0.0792 0.0948 + 1111water OW 1111 1.533 2.469 4.564 0.1346 -0.3061 0.2213 + 1112water OW 1112 2.022 2.688 6.102 0.9899 -0.4050 0.0636 + 1113water OW 1113 1.237 1.295 2.708 0.1346 0.1429 0.3505 + 1114water OW 1114 1.355 0.267 6.644 0.5895 -0.0257 -0.1099 + 1115water OW 1115 0.989 1.560 3.536 -0.0741 0.3766 0.2592 + 1116water OW 1116 2.150 0.245 6.569 -0.6977 -0.5230 -0.5762 + 1117water OW 1117 0.002 1.605 5.943 -0.1116 0.7497 -0.0666 + 1118water OW 1118 0.917 0.174 6.584 0.0987 -0.3734 0.2275 + 1119water OW 1119 1.877 2.737 5.061 0.2116 -0.2480 0.3574 + 1120water OW 1120 1.828 0.605 6.228 -0.4036 0.1180 -0.0600 + 1121water OW 1121 0.865 1.169 4.985 -0.6761 -0.3692 -0.2716 + 1122water OW 1122 1.232 2.125 0.463 0.4300 -0.3063 -0.3395 + 1123water OW 1123 1.414 1.225 2.516 0.1390 0.7427 0.2679 + 1124water OW 1124 0.481 2.822 2.774 -0.0006 -0.2602 -0.4027 + 1125water OW 1125 1.937 0.215 4.976 -0.3097 0.4378 -0.0766 + 1126water OW 1126 3.029 0.633 6.048 -0.0088 -0.1535 0.1397 + 1127water OW 1127 0.450 0.504 4.424 0.1902 0.2073 0.1088 + 1128water OW 1128 0.085 0.471 3.248 -0.4889 0.3327 0.0534 + 1129water OW 1129 1.199 1.243 3.577 0.0747 -0.0217 -0.4443 + 1130water OW 1130 2.364 0.142 4.931 -0.1143 -0.2566 0.0888 + 1131water OW 1131 2.807 1.622 2.675 -0.2997 0.0379 -0.0272 + 1132water OW 1132 2.056 0.908 2.284 0.7780 -0.1936 -0.0767 + 1133water OW 1133 0.654 2.174 4.381 0.1595 0.0392 0.3774 + 1134water OW 1134 1.211 0.575 4.823 -0.1688 -0.5511 -0.1554 + 1135water OW 1135 2.742 0.581 4.675 -0.6402 0.1531 0.1209 + 1136water OW 1136 1.832 0.909 5.291 -0.3505 0.2108 -0.0962 + 1137water OW 1137 0.189 2.745 4.982 0.0529 -0.0338 0.3875 + 1138water OW 1138 0.690 1.983 6.267 -0.1246 0.4358 -0.2199 + 1139water OW 1139 2.234 0.973 5.542 0.2421 0.4395 0.2724 + 1140water OW 1140 0.643 2.768 6.646 0.4041 0.0488 -0.1105 + 1141water OW 1141 0.228 1.098 4.002 0.2286 0.2660 -0.1127 + 1142water OW 1142 2.054 2.954 5.041 -0.2541 -0.2650 -0.1381 + 1143water OW 1143 1.360 0.119 3.493 -0.2067 0.6778 0.2536 + 1144water OW 1144 1.550 2.790 4.286 0.0805 -0.0560 -0.2554 + 1145water OW 1145 2.941 2.033 6.685 0.2247 0.1672 -0.2859 + 1146water OW 1146 2.991 1.700 2.485 -0.7712 0.5670 -0.1592 + 1147water OW 1147 1.262 2.831 5.922 -0.4296 -0.1737 -0.3241 + 1148water OW 1148 0.209 2.775 0.051 -0.0080 0.1065 0.0841 + 1149water OW 1149 0.152 1.386 5.852 -0.5687 0.1028 0.0797 + 1150water OW 1150 1.239 2.362 4.819 0.1797 0.4036 0.6433 + 1151water OW 1151 1.626 2.482 4.102 -0.1501 -0.0231 -0.0445 + 1152water OW 1152 2.353 1.676 6.219 0.1660 0.7415 -0.6367 + 1153water OW 1153 2.179 1.004 2.510 -0.4775 0.2594 -0.3004 + 1154water OW 1154 1.747 1.329 5.388 0.4808 -0.2502 0.0478 + 1155water OW 1155 1.796 0.995 0.049 0.1723 0.0669 0.2126 + 1156water OW 1156 0.317 2.568 4.121 0.2961 -0.0790 0.1146 + 1157water OW 1157 0.672 0.983 5.272 -0.6175 0.1557 0.0196 + 1158water OW 1158 0.876 0.916 0.287 -0.5183 -0.4019 -0.2375 + 1159water OW 1159 2.825 1.343 6.815 -0.0074 0.0530 -0.6459 + 1160water OW 1160 1.238 2.863 0.006 0.3362 -0.4715 -0.2461 + 1161water OW 1161 1.069 2.657 5.401 -0.0433 0.2266 0.1759 + 1162water OW 1162 0.457 1.738 6.576 -0.0778 0.1728 -0.4231 + 1163water OW 1163 0.160 0.592 6.452 0.3969 -0.0851 -0.0052 + 1164water OW 1164 2.509 0.493 6.219 0.0635 0.0109 0.5683 + 1165water OW 1165 1.717 1.803 4.262 -0.5437 -0.1104 -0.2869 + 1166water OW 1166 2.091 0.760 3.993 -0.2702 -0.1522 -0.9021 + 1167water OW 1167 0.422 1.371 0.074 0.2828 0.0819 -0.1258 + 1168water OW 1168 0.955 1.963 2.336 0.5136 -0.1039 0.0601 + 1169water OW 1169 2.814 1.630 0.059 0.0237 0.2520 -0.5377 + 1170water OW 1170 0.136 0.988 6.499 -0.0491 -0.0091 -0.3056 + 1171water OW 1171 2.489 1.362 2.500 0.2069 -0.0020 -0.0874 + 1172water OW 1172 1.594 2.049 4.193 -0.2159 -0.1607 -0.8293 + 1173water OW 1173 1.791 0.217 2.308 -0.4375 0.1753 0.2880 + 1174water OW 1174 1.694 2.643 3.886 -0.5386 0.3077 0.2151 + 1175water OW 1175 2.132 2.102 6.358 -0.0151 -0.1490 0.4515 + 1176water OW 1176 2.758 0.768 3.964 0.2471 -0.4970 0.3622 + 1177water OW 1177 2.043 2.970 4.764 0.9635 -0.0220 -0.1380 + 1178water OW 1178 0.549 2.939 4.248 -0.0920 -0.2049 -0.3428 + 1179water OW 1179 0.071 1.855 5.966 -0.0456 -0.0819 -0.2471 + 1180water OW 1180 1.767 0.952 2.292 -0.3102 0.4090 0.0910 + 1181water OW 1181 2.464 2.271 4.699 -0.3421 -0.0409 0.2280 + 1182water OW 1182 1.436 1.609 5.547 -0.0260 -0.1942 -0.4881 + 1183water OW 1183 0.860 1.821 4.331 -0.0482 -0.4029 0.2908 + 1184water OW 1184 1.758 1.687 3.879 -0.2470 -0.1555 -0.2371 + 1185water OW 1185 2.957 1.321 2.965 0.4200 0.4038 0.4413 + 1186water OW 1186 1.360 1.374 5.760 0.3374 0.1397 0.3022 + 1187water OW 1187 0.114 0.883 3.367 -0.0143 0.5318 -0.4115 + 1188water OW 1188 2.667 2.832 5.741 0.5717 -0.0756 0.3895 + 1189water OW 1189 3.132 2.211 4.955 -0.0137 0.1388 -0.0472 + 1190water OW 1190 1.344 0.998 4.611 0.1095 -0.1826 0.3747 + 1191water OW 1191 1.086 2.874 3.311 0.0307 -0.3202 0.7485 + 1192water OW 1192 3.037 1.994 6.253 0.0556 -0.3219 0.4658 + 1193water OW 1193 2.457 1.616 5.722 0.3160 -0.0346 -0.2493 + 1194water OW 1194 1.827 1.429 4.761 -0.1526 0.4125 0.4842 + 1195water OW 1195 2.551 1.025 6.401 -0.7801 -0.2889 0.3369 + 1196water OW 1196 1.255 1.594 5.950 0.6372 -0.0163 0.4521 + 1197water OW 1197 0.157 1.013 0.153 0.0212 0.1589 0.1859 + 1198water OW 1198 2.847 1.585 4.731 0.2600 -0.2576 -0.5835 + 1199water OW 1199 2.043 0.886 2.763 -0.2694 -0.2081 0.3583 + 1200water OW 1200 2.230 2.777 4.716 -0.1321 0.4164 -0.4220 + 1201water OW 1201 2.047 0.920 6.434 -0.4607 -0.0893 0.6736 + 1202water OW 1202 0.831 0.624 5.167 -0.1306 0.0097 -0.4496 + 1203water OW 1203 0.952 1.348 3.299 0.0833 0.4032 0.0422 + 1204water OW 1204 2.720 0.424 5.524 -0.4132 0.3330 0.2890 + 1205water OW 1205 3.064 2.030 5.909 0.4055 -0.4301 0.2475 + 1206water OW 1206 2.203 0.221 2.475 0.4209 -0.5969 0.3015 + 1207water OW 1207 2.069 2.071 0.047 0.4959 0.0484 0.1234 + 1208water OW 1208 0.971 1.035 0.056 0.2381 -0.1700 0.3750 + 1209water OW 1209 1.589 1.463 3.318 1.1297 0.6609 -0.3668 + 1210water OW 1210 0.097 1.590 6.233 -0.0085 0.0336 0.1586 + 1211water OW 1211 0.575 0.841 5.056 -0.3846 -0.0536 -0.2365 + 1212water OW 1212 0.469 1.648 2.240 0.3143 0.2152 0.2295 + 1213water OW 1213 0.875 0.152 0.242 -0.1751 0.2442 0.7805 + 1214water OW 1214 1.495 2.913 3.305 -0.5289 0.7153 -0.5105 + 1215water OW 1215 0.809 1.685 5.336 -0.0453 -0.1485 0.5872 + 1216water OW 1216 0.451 0.155 0.028 -0.3518 0.3995 -0.3594 + 1217water OW 1217 0.487 0.343 5.128 -0.4111 -0.2738 -0.2659 + 1218water OW 1218 1.007 0.554 2.230 0.0439 -0.0927 0.5757 + 1219water OW 1219 2.174 1.253 0.293 -0.5318 -0.2244 -0.1882 + 1220water OW 1220 2.418 2.654 4.524 0.0342 0.3787 -0.0501 + 1221water OW 1221 2.505 0.196 5.756 0.0716 0.4705 -0.4292 + 1222water OW 1222 3.101 2.704 3.576 0.5642 0.5166 -0.0693 + 1223water OW 1223 2.079 0.763 5.630 0.2930 0.2834 0.0127 + 1224water OW 1224 2.902 2.843 4.847 -0.1089 0.2980 -0.5989 + 1225water OW 1225 0.694 0.642 4.854 0.4929 -0.1655 0.1285 + 1226water OW 1226 2.334 2.643 3.473 0.1299 0.2583 -0.2391 + 1227water OW 1227 2.041 1.654 0.031 -0.1039 -0.3868 0.2355 + 1228water OW 1228 0.644 0.816 6.123 -0.3225 0.3378 -0.3493 + 1229water OW 1229 0.611 1.039 6.294 -0.1711 -0.2324 0.1807 + 1230water OW 1230 0.665 2.499 6.677 -0.4496 -0.2596 -0.2281 + 1231water OW 1231 0.166 2.054 0.058 -0.3197 0.1901 0.1908 + 1232water OW 1232 1.477 1.398 5.352 -0.0568 -0.1455 0.3332 + 1233water OW 1233 1.136 2.917 5.495 0.0319 -0.2771 -0.0120 + 1234water OW 1234 1.389 2.394 3.478 -0.2277 0.2136 0.5264 + 1235water OW 1235 0.702 1.837 5.123 -0.5074 -0.1189 -0.4931 + 1236water OW 1236 3.001 2.536 5.141 0.2685 -0.1878 0.2096 + 1237water OW 1237 1.386 0.999 3.208 0.7405 0.7217 0.5077 + 1238water OW 1238 1.282 1.494 5.172 0.4382 0.3892 -0.4673 + 1239water OW 1239 2.774 1.390 3.169 -0.4428 -0.8493 0.3909 + 1240water OW 1240 1.367 0.382 3.819 -0.2945 0.2048 -0.1031 + 1241water OW 1241 3.050 0.915 5.958 -0.4573 -0.0757 -0.1336 + 1242water OW 1242 1.245 2.847 2.287 -0.2350 0.1282 -0.5226 + 1243water OW 1243 2.830 0.816 2.709 -0.2439 0.0402 0.0720 + 1244water OW 1244 1.805 1.788 3.134 -0.0453 -0.2194 0.2330 + 1245water OW 1245 2.121 0.263 3.472 0.5197 -0.4673 -0.3885 + 1246water OW 1246 1.120 0.298 3.896 -0.1313 -0.0605 -0.1177 + 1247water OW 1247 0.530 1.508 5.462 -0.0343 -0.3347 -0.3710 + 1248water OW 1248 0.545 1.764 0.302 -0.2718 -0.4841 0.1065 + 1249water OW 1249 1.664 1.571 5.130 0.2923 0.0111 0.3664 + 1250water OW 1250 1.908 1.177 5.226 0.3557 0.0559 -0.5842 + 1251water OW 1251 1.363 2.567 4.269 -0.5053 -0.0870 -0.3032 + 1252water OW 1252 1.212 1.099 4.009 0.2353 -0.0018 0.1075 + 1253water OW 1253 1.770 2.531 3.405 0.5363 -0.5310 0.3972 + 1254water OW 1254 2.874 1.149 5.508 0.0620 0.0275 -0.0914 + 1255water OW 1255 2.303 0.385 5.772 -0.4915 -0.2976 0.3103 + 1256water OW 1256 3.001 2.505 0.325 0.3689 -0.4741 0.2359 + 1257water OW 1257 0.595 0.995 0.273 -0.4905 0.1949 -0.4342 + 1258water OW 1258 2.178 1.719 6.605 0.1101 -0.3668 0.0195 + 1259water OW 1259 1.993 2.877 0.117 0.2819 -0.0634 0.1873 + 1260water OW 1260 0.778 2.225 5.462 0.1168 -0.1088 -0.4378 + 1261water OW 1261 2.487 1.315 3.262 0.2233 -0.1121 -0.5163 + 1262water OW 1262 2.798 1.713 6.406 0.2044 -0.0703 0.4803 + 1263water OW 1263 2.190 2.128 3.415 -0.8116 0.5147 0.1031 + 1264water OW 1264 2.385 2.431 3.644 0.2554 0.3108 0.5817 + 1265water OW 1265 0.182 2.770 2.235 -0.0986 -0.0474 0.3164 + 1266water OW 1266 1.988 2.432 3.801 -0.7331 0.2681 -0.4782 + 1267water OW 1267 0.887 0.110 2.489 0.5283 -0.6229 -0.6776 + 1268water OW 1268 0.858 1.393 0.281 -0.1460 -0.1217 0.2196 + 1269water OW 1269 2.819 0.887 0.484 0.1637 0.2981 0.4287 + 1270water OW 1270 2.671 1.613 4.292 -0.5667 0.2778 0.4108 + 1271water OW 1271 1.887 1.580 4.531 -0.1841 0.3005 -0.0336 + 1272water OW 1272 0.702 1.040 3.590 0.4151 -0.1348 0.3600 + 1273water OW 1273 1.414 0.769 5.910 -0.6220 -0.8802 -0.7516 + 1274water OW 1274 2.177 2.025 0.307 -0.0912 0.1557 -0.1068 + 1275water OW 1275 1.243 0.733 5.521 -0.0508 0.2090 0.5534 + 1276water OW 1276 0.214 2.076 6.415 -0.5109 -0.3385 -0.2668 + 1277water OW 1277 0.831 1.267 4.722 -0.1349 -0.0482 0.2499 + 1278water OW 1278 1.782 0.333 4.534 -0.4883 0.2436 -0.5333 + 1279water OW 1279 2.745 1.325 4.450 -0.1728 0.4472 0.0971 + 1280water OW 1280 1.568 1.330 5.011 -0.6938 0.1124 -0.1229 + 1281water OW 1281 1.008 1.512 6.459 -0.2003 -0.0728 0.3470 + 1282water OW 1282 0.583 1.453 6.204 -0.2513 0.1859 -0.5822 + 1283water OW 1283 2.397 0.867 2.432 -0.4406 -0.0397 0.5050 + 1284water OW 1284 0.926 0.652 6.411 0.0006 0.0969 -0.1934 + 1285water OW 1285 0.582 0.539 0.219 0.1403 0.0929 -0.1736 + 1286water OW 1286 1.922 0.341 5.720 0.7109 0.2776 -0.5889 + 1287water OW 1287 1.088 0.333 3.226 0.0614 0.1768 -0.1003 + 1288water OW 1288 0.541 2.120 6.597 0.7235 0.4002 -0.3642 + 1289water OW 1289 0.019 1.648 0.269 -0.3152 -0.4398 -0.1508 + 1290water OW 1290 0.016 1.039 3.863 -0.3200 -0.1893 -0.3071 + 1291water OW 1291 1.617 0.099 2.479 0.0405 -0.2246 0.2486 + 1292water OW 1292 1.893 0.976 6.016 0.0125 -0.0976 0.7036 + 1293water OW 1293 2.962 0.966 2.518 0.0007 -0.2282 -0.2184 + 1294water OW 1294 2.919 1.709 4.167 0.0986 0.2935 0.4431 + 1295water OW 1295 0.472 2.173 3.664 0.0351 0.2537 -0.0400 + 1296water OW 1296 2.030 0.761 4.293 0.1629 0.0819 0.1067 + 1297water OW 1297 0.125 2.986 4.769 -0.0978 0.1285 -0.2247 + 1298water OW 1298 3.076 2.494 4.748 -0.3112 0.1766 0.3175 + 1299water OW 1299 0.682 2.565 3.600 0.3829 0.5456 0.0308 + 1300water OW 1300 1.863 2.023 6.438 -0.1003 0.1839 -0.4808 + 1301water OW 1301 3.019 0.497 4.221 0.6843 0.1197 0.9730 + 1302water OW 1302 0.618 0.979 2.064 -0.3192 -0.1885 -0.5162 + 1303water OW 1303 1.680 2.823 6.648 -0.4682 -0.0082 0.0812 + 1304water OW 1304 2.860 2.492 6.001 0.1152 0.0537 -0.1486 + 1305water OW 1305 0.883 1.049 4.559 -0.3095 -0.1733 0.5820 + 1306water OW 1306 1.054 2.038 4.864 0.0935 0.0109 -0.2000 + 1307water OW 1307 1.144 0.304 4.315 -0.4208 0.4963 -0.3499 + 1308water OW 1308 2.205 1.254 6.191 0.8606 -0.0526 -0.1433 + 1309water OW 1309 0.123 1.221 2.736 -0.9967 0.0507 -0.0794 + 1310water OW 1310 2.020 1.337 3.894 -0.4823 0.2788 0.3853 + 1311water OW 1311 1.790 1.131 4.991 0.3711 -0.3841 0.1733 + 1312water OW 1312 0.465 2.380 2.739 -0.2316 0.1174 0.4054 + 1313water OW 1313 0.773 0.734 6.619 0.2685 -0.2362 -0.2242 + 1314water OW 1314 2.553 1.986 2.254 0.2755 -0.3915 -0.2997 + 1315water OW 1315 0.570 0.568 5.985 -0.4933 0.5114 -0.1411 + 1316water OW 1316 1.154 0.974 3.622 -0.2102 -0.5112 -0.5726 + 1317water OW 1317 0.275 2.643 3.692 0.6130 -0.1227 0.0153 + 1318water OW 1318 2.955 0.482 0.294 0.0124 -0.0606 -0.5419 + 1319water OW 1319 0.176 1.431 5.215 0.2136 -0.4279 -0.2823 + 1320water OW 1320 1.035 0.365 5.502 0.3142 0.2333 0.1967 + 1321water OW 1321 2.061 0.623 2.668 0.4010 -0.0410 0.1350 + 1322water OW 1322 2.353 1.675 3.353 0.0139 -0.1764 0.1443 + 1323water OW 1323 3.193 1.829 5.062 0.1784 0.2702 -0.0711 + 1324water OW 1324 0.072 0.135 2.487 0.5181 0.6219 -0.0116 + 1325water OW 1325 0.415 0.675 6.343 -0.0787 0.3294 -0.0755 + 1326water OW 1326 2.230 2.557 6.230 0.0435 0.4817 0.0201 + 1327water OW 1327 2.125 1.081 3.914 0.1410 -0.5654 0.3410 + 1328water OW 1328 2.475 0.431 4.789 -0.1945 -0.5645 0.0020 + 1329water OW 1329 2.200 2.472 2.055 -0.1684 0.3315 0.4631 + 1330water OW 1330 0.649 2.397 4.791 -0.8507 -0.7347 -0.0070 + 1331water OW 1331 1.345 2.539 3.906 0.1030 0.7385 -0.0070 + 1332water OW 1332 1.801 2.514 0.458 -0.3823 0.0373 0.0174 + 1333water OW 1333 2.961 1.947 2.928 -0.1250 0.2708 0.0384 + 1334water OW 1334 1.079 2.492 3.816 -0.4911 0.4378 -0.0452 + 1335water OW 1335 3.024 0.065 3.920 0.6388 -0.0056 -0.8924 + 1336water OW 1336 1.671 0.388 3.506 0.7764 0.0635 0.0512 + 1337water OW 1337 3.014 2.989 6.285 -0.0583 0.3619 0.6960 + 1338water OW 1338 1.217 0.169 5.126 -0.1709 0.1097 -0.1407 + 1339water OW 1339 3.082 0.408 5.653 -0.7890 0.3962 -0.3022 + 1340water OW 1340 1.213 0.673 6.393 0.4981 0.0667 0.8989 + 1341water OW 1341 0.968 2.758 2.272 -0.3684 -0.1836 0.3326 + 1342water OW 1342 2.203 0.333 3.982 -0.6369 0.7553 0.1902 + 1343water OW 1343 2.890 2.383 0.090 0.0377 0.0116 0.0733 + 1344water OW 1344 0.055 0.606 6.193 -0.1192 0.1385 0.1137 + 1345water OW 1345 2.589 2.057 2.722 -0.2770 0.3573 0.0120 + 1346water OW 1346 1.124 0.701 4.015 -0.5247 -0.1917 -0.1833 + 1347water OW 1347 0.609 2.488 0.274 0.0532 0.3168 -0.1906 + 1348water OW 1348 0.810 0.435 6.289 -0.3278 -0.3210 0.0797 + 1349water OW 1349 0.066 2.901 0.262 0.1854 -0.2725 -0.0486 + 1350water OW 1350 0.918 2.951 4.427 -0.6926 -0.3034 -0.6180 + 1351water OW 1351 2.111 0.080 3.926 -0.3687 0.2796 -0.0065 + 1352water OW 1352 1.679 0.926 2.955 -0.2333 -0.5938 0.1130 + 1353water OW 1353 3.196 2.424 3.958 0.1959 0.3952 -0.5336 + 1354water OW 1354 0.630 0.272 4.882 -0.1066 0.1817 0.2978 + 1355water OW 1355 0.706 2.770 5.025 0.1977 0.4974 0.6524 + 1356water OW 1356 2.159 2.271 3.644 -0.1433 0.0203 -0.2387 + 1357water OW 1357 2.887 1.634 5.705 -0.5571 -0.3679 -0.0564 + 1358water OW 1358 1.773 1.683 3.604 -0.0717 0.1925 -0.2929 + 1359water OW 1359 2.542 1.764 2.704 -0.4644 -0.2820 -0.2732 + 1360water OW 1360 0.300 1.381 4.931 0.2536 -0.4622 0.1139 + 1361water OW 1361 2.391 2.948 0.195 0.7282 0.0630 -0.3200 + 1362water OW 1362 0.861 0.553 3.237 0.0483 0.0312 0.2272 + 1363water OW 1363 1.184 1.617 3.757 0.0974 0.3315 -0.4209 + 1364water OW 1364 2.531 2.283 4.071 0.3687 0.1231 0.3806 + 1365water OW 1365 1.357 0.541 6.639 0.3346 -0.2813 0.2919 + 1366water OW 1366 0.228 0.219 5.916 0.1575 0.5433 0.0391 + 1367water OW 1367 2.917 1.344 3.566 -0.2065 -0.2158 -0.6544 + 1368water OW 1368 0.149 1.260 6.540 0.0435 -0.6527 -0.7673 + 1369water OW 1369 1.813 2.081 4.647 -0.0132 -0.0043 -0.4287 + 1370water OW 1370 0.670 1.218 5.844 0.3535 -0.2523 -0.1171 + 1371water OW 1371 1.505 0.040 4.396 0.0199 0.3776 -0.0957 + 1372water OW 1372 2.902 2.726 3.918 0.0169 -0.3298 0.7792 + 1373water OW 1373 2.684 0.673 4.231 -0.0741 -0.1998 0.1322 + 1374water OW 1374 2.166 0.522 0.261 -0.1768 0.3521 0.4047 + 1375water OW 1375 2.570 0.565 0.017 0.0071 0.7405 -0.1941 + 1376water OW 1376 2.035 1.323 2.271 -0.5032 -0.3768 0.3910 + 1377water OW 1377 2.088 1.379 2.694 0.3260 0.0748 0.3243 + 1378water OW 1378 2.565 0.465 6.492 1.0086 0.2062 -0.5959 + 1379water OW 1379 2.588 0.279 6.805 -0.4229 0.5590 0.1746 + 1380water OW 1380 2.878 1.175 3.352 -0.0905 0.3743 -0.2496 + 1381water OW 1381 0.016 0.886 0.353 0.3117 -0.1616 -0.2594 + 1382water OW 1382 0.597 0.516 2.932 -0.5007 -0.2954 -0.0297 + 1383water OW 1383 2.003 0.580 0.044 0.1095 -0.1559 0.1353 + 1384water OW 1384 1.030 0.988 0.503 -0.4239 -0.0898 -0.2827 + 1385water OW 1385 2.979 0.214 0.260 0.1474 0.0669 0.3365 + 1386water OW 1386 1.481 1.763 5.907 0.1546 0.0650 0.8747 + 1387water OW 1387 2.817 0.493 3.995 -0.1040 -0.5576 -0.4000 + 1388water OW 1388 2.171 2.475 2.509 -0.0831 0.2422 0.3700 + 1389water OW 1389 1.334 2.999 3.092 -0.0791 0.6848 -0.4543 + 1390water OW 1390 1.956 0.109 6.377 -0.3808 -0.2226 0.0962 + 1391water OW 1391 1.250 0.750 5.039 0.2119 -0.5721 -0.2319 + 1392water OW 1392 2.100 1.649 6.360 0.1663 0.0417 -0.3168 + 1393water OW 1393 2.367 2.752 6.410 -0.0280 -0.0287 -0.1508 + 1394water OW 1394 0.523 0.851 3.150 -0.4256 0.1112 -0.3313 + 1395water OW 1395 0.037 0.517 4.039 0.4656 0.0179 -0.6470 + 1396water OW 1396 0.273 1.253 3.129 -0.0774 -0.1535 0.0310 + 1397water OW 1397 0.857 0.869 2.483 0.6549 0.4079 -0.5893 + 1398water OW 1398 0.366 2.639 3.271 0.0029 -0.5105 0.5019 + 1399water OW 1399 0.981 0.484 2.728 -0.4796 0.2395 0.5314 + 1400water OW 1400 0.047 0.599 3.000 0.1990 0.0798 0.1107 + 1401water OW 1401 1.470 2.813 5.750 0.8414 -0.0293 -0.4083 + 1402water OW 1402 1.345 1.724 2.482 0.0275 0.8643 -0.0564 + 1403water OW 1403 1.546 1.030 3.430 -0.3838 -0.4536 -0.0203 + 1404water OW 1404 0.861 2.364 2.478 0.3214 0.2145 0.4063 + 1405water OW 1405 1.920 0.560 3.077 -0.5780 0.1652 -0.4412 + 1406water OW 1406 2.855 0.539 2.707 0.1382 0.0549 0.3151 + 1407water OW 1407 2.166 0.539 6.648 0.0947 -0.2447 0.4949 + 1408water OW 1408 2.950 1.297 0.235 0.8598 -0.1626 0.6894 + 1409water OW 1409 2.962 0.970 3.959 0.0331 0.2550 0.6251 + 1410water OW 1410 0.858 2.459 6.143 0.3309 -0.2393 0.2407 + 1411water OW 1411 1.523 2.424 5.460 0.4041 0.2196 0.1045 + 1412water OW 1412 0.167 1.698 5.493 -0.1318 0.0912 0.2208 + 1413water OW 1413 1.397 2.031 0.272 -0.0063 0.0679 0.0923 + 1414water OW 1414 0.586 1.758 2.014 -0.4365 -0.4340 -0.7360 + 1415water OW 1415 2.926 1.351 2.684 -0.1224 -0.0949 -0.0121 + 1416water OW 1416 1.421 1.425 4.460 -0.0959 0.0182 0.5898 + 1417water OW 1417 0.340 2.811 3.492 -0.4927 -0.4966 -0.2058 + 1418water OW 1418 0.948 1.558 4.869 0.1204 -0.0524 0.4776 + 1419water OW 1419 1.661 1.415 3.577 -0.3703 -0.2338 -0.1111 + 1420water OW 1420 1.723 2.465 4.353 0.1247 -0.0372 0.6441 + 1421water OW 1421 0.051 1.358 2.975 0.5285 -0.1058 -0.0784 + 1422water OW 1422 0.994 2.791 6.422 -0.4273 0.3950 -0.4559 + 1423water OW 1423 2.206 2.752 2.478 0.0103 0.4413 0.5471 + 1424water OW 1424 0.431 1.916 4.947 -0.2452 0.3212 0.3824 + 1425water OW 1425 0.545 2.877 3.210 -0.4839 -0.4676 -0.1789 + 1426water OW 1426 0.423 0.157 2.702 0.2079 -0.1182 0.3189 + 1427water OW 1427 3.180 0.882 3.629 0.2827 -0.4331 0.2290 + 1428water OW 1428 0.952 1.991 4.140 -0.9101 -0.1098 -0.0872 + 1429water OW 1429 1.233 2.417 2.752 0.5579 0.1332 0.0333 + 1430water OW 1430 1.381 1.763 0.274 0.9107 -0.2318 0.1127 + 1431water OW 1431 1.228 2.860 2.724 -0.5733 0.0524 0.0907 + 1432water OW 1432 2.442 2.113 0.311 0.3878 0.0439 -0.2921 + 1433water OW 1433 2.429 0.622 0.246 0.2581 -0.2096 -0.1440 + 1434water OW 1434 2.453 1.667 0.277 -0.0840 0.5125 -0.1561 + 1435water OW 1435 0.925 0.131 5.597 -0.0962 0.0697 -0.3800 + 1436water OW 1436 0.661 1.957 3.724 -0.0624 -0.4196 0.3864 + 1437water OW 1437 0.154 1.253 2.284 -0.0447 -0.2434 -0.6111 + 1438water OW 1438 3.048 0.247 3.715 0.1162 -0.1278 0.3972 + 1439water OW 1439 2.069 0.132 6.110 -0.0731 0.2619 -0.2344 + 1440water OW 1440 0.598 1.276 0.264 0.3602 0.4122 -0.2499 + 1441water OW 1441 0.301 0.685 3.804 0.1389 0.2917 -0.2931 + 1442water OW 1442 2.222 2.566 2.847 -0.1433 -0.3159 0.1839 + 1443water OW 1443 2.990 0.235 5.856 -0.1500 -0.5388 0.0939 + 1444water OW 1444 0.174 1.667 4.791 -0.3699 0.0691 0.2978 + 1445water OW 1445 1.592 0.755 4.325 0.0165 -0.2834 0.0203 + 1446water OW 1446 2.851 0.124 2.712 0.6371 -0.1348 -0.2080 + 1447water OW 1447 2.469 0.799 3.699 -0.0951 0.2678 0.3600 + 1448water OW 1448 0.966 1.451 3.871 0.2344 -0.2950 -0.4218 + 1449water OW 1449 2.776 0.002 5.021 0.1669 0.1738 0.2869 + 1450water OW 1450 1.394 1.122 5.367 0.3516 0.4213 0.0105 + 1451water OW 1451 1.349 2.103 3.209 0.2345 0.8320 -0.4984 + 1452water OW 1452 0.735 0.774 3.642 -0.0269 0.5669 -0.3555 + 1453water OW 1453 0.112 2.846 3.735 -0.5054 0.1353 -0.6321 + 1454water OW 1454 1.629 1.745 3.349 0.1052 0.3357 0.2496 + 1455water OW 1455 2.583 2.618 5.240 -0.2942 -0.1160 -0.4256 + 1456water OW 1456 1.269 0.931 6.380 -0.0542 -0.2070 0.5538 + 1457water OW 1457 1.682 2.363 6.612 0.1455 -0.2934 0.2095 + 1458water OW 1458 1.251 1.374 0.520 0.0591 -0.2659 -0.2784 + 1459water OW 1459 1.307 1.860 4.293 -0.2292 -0.1103 -0.5684 + 1460water OW 1460 2.099 1.678 4.654 0.0073 0.4557 0.0201 + 1461water OW 1461 2.034 2.179 5.573 -0.3870 0.4562 0.5891 + 1462water OW 1462 2.357 0.491 3.778 0.1265 0.1467 0.4956 + 1463water OW 1463 2.198 2.005 6.620 -0.9431 -0.6111 0.5678 + 1464water OW 1464 0.258 1.361 6.317 -0.0116 -0.2084 0.0531 + 1465water OW 1465 0.642 2.255 6.233 0.2155 -0.2438 0.0621 + 1466water OW 1466 1.639 0.913 0.250 -0.2042 0.2948 0.1744 + 1467water OW 1467 0.529 0.215 2.967 -0.3582 -0.1067 0.1763 + 1468water OW 1468 2.879 1.768 6.139 0.0836 0.0082 -0.4708 + 1469water OW 1469 2.724 0.277 5.277 0.2538 -0.0224 -0.1266 + 1470water OW 1470 0.246 1.234 6.069 0.0008 0.4520 -0.2319 + 1471water OW 1471 2.996 0.451 2.497 0.1977 0.3396 -0.0958 + 1472water OW 1472 0.049 1.609 2.488 -0.2064 0.0362 0.4352 + 1473water OW 1473 2.757 1.749 5.197 -0.0228 0.4115 -0.4303 + 1474water OW 1474 2.981 0.277 4.801 0.5452 0.4755 1.0496 + 1475water OW 1475 0.079 0.824 4.941 0.3338 0.6421 -0.3711 + 1476water OW 1476 1.355 2.163 3.837 -0.4285 0.1224 -0.0498 + 1477water OW 1477 2.835 0.622 0.070 0.2799 -0.0621 -0.0448 + 1478water OW 1478 1.709 2.150 4.892 -0.0883 -0.0076 -0.1666 + 1479water OW 1479 2.606 1.267 2.242 -0.2280 -0.2382 -0.2665 + 1480water OW 1480 1.626 1.371 0.259 -0.1859 -0.2742 -0.2648 + 1481water OW 1481 3.070 0.028 4.388 -0.4090 0.0190 0.7237 + 1482water OW 1482 0.412 1.056 5.012 -0.4280 -0.0549 0.0883 + 1483water OW 1483 1.834 0.915 5.556 -0.3334 0.3422 0.2613 + 1484water OW 1484 2.566 0.004 6.422 -0.7263 -0.3346 -0.0004 + 1485water OW 1485 0.168 0.949 5.725 -0.3365 0.1495 0.2360 + 1486water OW 1486 3.078 2.390 5.345 0.2947 -0.2234 -0.1910 + 1487water OW 1487 1.730 0.225 6.385 0.1205 0.6152 0.1435 + 1488water OW 1488 2.203 2.191 4.670 0.2375 0.0197 0.2755 + 1489water OW 1489 1.222 0.926 0.036 0.2576 -0.2337 -0.7854 + 1490water OW 1490 2.290 1.893 4.891 -0.0996 0.6363 -0.4219 + 1491water OW 1491 2.607 1.830 3.878 0.4688 -0.4854 -0.0902 + 1492water OW 1492 0.619 0.707 4.291 -0.0722 -0.0408 0.1846 + 1493water OW 1493 2.980 0.225 2.947 0.3788 0.1556 -0.3928 + 1494water OW 1494 3.037 0.450 5.290 0.8283 -0.0155 0.1751 + 1495water OW 1495 0.759 2.840 2.839 0.3665 -0.4090 -0.3436 + 1496water OW 1496 2.625 2.061 4.996 -0.0757 0.1148 -0.2383 + 1497water OW 1497 1.067 2.261 5.681 -0.0419 0.1925 0.2240 + 1498water OW 1498 1.005 1.781 0.066 0.9543 0.0389 -0.3438 + 1499water OW 1499 2.068 0.922 4.770 0.0760 0.0159 0.5404 + 1500water OW 1500 0.755 2.357 4.114 -0.1556 0.3514 0.5830 + 1501water OW 1501 2.086 2.432 4.304 -0.0277 0.2397 0.5504 + 1502water OW 1502 1.795 2.447 0.013 0.3036 -0.3282 0.1564 + 1503water OW 1503 2.717 1.536 3.594 0.4384 -0.1728 0.6509 + 1504water OW 1504 0.805 1.019 6.653 0.3499 -0.0186 -0.5701 + 1505water OW 1505 2.843 1.944 4.547 0.2338 -0.2510 0.1646 + 1506water OW 1506 1.738 1.739 2.713 -0.2865 0.7263 0.4792 + 1507water OW 1507 0.148 0.946 2.696 0.2556 -0.7972 -0.2790 + 1508water OW 1508 2.539 2.350 3.111 0.1561 -0.0172 0.0676 + 1509water OW 1509 1.324 1.441 3.399 -0.1725 -0.7731 0.2624 + 1510water OW 1510 1.413 2.354 5.886 -0.5038 -0.6446 -0.0964 + 1511water OW 1511 0.744 1.539 5.065 0.3099 -0.0052 -0.1698 + 1512water OW 1512 0.086 0.841 2.073 0.1578 -0.6447 0.3717 + 1513water OW 1513 3.007 2.662 2.948 -0.2979 -0.2169 -0.1550 + 1514water OW 1514 2.182 0.528 3.550 -0.5502 0.0290 0.3960 + 1515water OW 1515 0.918 1.690 5.973 0.1421 -0.6232 -0.0455 + 1516water OW 1516 0.876 2.408 0.308 -0.3310 0.3041 -0.1559 + 1517water OW 1517 1.048 2.254 4.455 -0.1808 0.5041 -0.1651 + 1518water OW 1518 1.786 1.088 3.322 -0.0216 -0.0190 -0.3032 + 1519water OW 1519 1.786 0.641 3.363 0.3099 0.4710 -0.0409 + 1520water OW 1520 0.448 0.908 2.284 0.2589 -0.2175 0.6135 + 1521water OW 1521 1.503 1.984 4.912 0.1039 0.3847 -0.1607 + 1522water OW 1522 1.410 2.463 6.625 0.1320 0.0039 0.1898 + 1523water OW 1523 0.627 0.993 2.535 -0.1094 0.5408 0.0477 + 1524water OW 1524 2.039 0.921 0.559 0.2118 0.5038 -0.4555 + 1525water OW 1525 1.768 1.673 4.905 0.2754 0.0645 -0.0381 + 1526water OW 1526 0.527 2.366 6.481 0.2949 -0.2080 0.6743 + 1527water OW 1527 1.764 0.066 4.479 0.8010 0.5884 0.6062 + 1528water OW 1528 2.858 0.585 2.287 -0.1852 -0.3425 -0.3157 + 1529water OW 1529 0.038 0.174 6.686 -0.0932 -0.0541 -0.0573 + 1530water OW 1530 2.144 0.970 0.301 0.8742 -0.7159 0.0719 + 1531water OW 1531 1.055 0.449 4.108 -0.1831 -0.2576 0.0521 + 1532water OW 1532 2.777 0.147 5.539 0.3911 0.2224 -0.6488 + 1533water OW 1533 0.271 0.967 3.139 0.3180 -0.0804 -0.0709 + 1534water OW 1534 1.819 2.760 2.756 0.2290 0.0996 0.7749 + 1535water OW 1535 2.556 2.027 0.078 -0.9145 0.3581 0.6134 + 1536water OW 1536 2.054 0.204 2.973 0.4149 -0.0674 -0.3443 + 1537water OW 1537 2.814 0.123 0.061 0.9594 0.2560 0.5184 + 1538water OW 1538 0.978 2.481 0.057 -0.2019 -0.1688 -0.0455 + 1539water OW 1539 1.899 2.525 5.430 0.4742 -0.2839 -0.3804 + 1540water OW 1540 0.236 1.704 3.110 -0.0614 -0.1058 0.0899 + 1541water OW 1541 1.817 0.646 4.002 -0.3588 0.0815 0.8015 + 1542water OW 1542 2.177 1.007 3.437 0.6591 -0.1679 0.4497 + 1543water OW 1543 1.354 1.696 2.933 -0.1360 -0.1357 0.1236 + 1544water OW 1544 2.636 1.087 3.884 0.3298 0.3225 -0.0471 + 1545water OW 1545 1.732 0.493 0.038 0.0280 0.3730 -0.0894 + 1546water OW 1546 1.795 0.204 3.314 0.2657 -0.1104 -0.4616 + 1547water OW 1547 3.111 1.316 5.409 -0.0344 -0.0187 -0.8712 + 1548water OW 1548 1.551 0.892 5.310 -0.3913 0.8118 0.3043 + 1549water OW 1549 1.041 1.825 5.412 -0.0436 -0.3460 0.1330 + 1550water OW 1550 2.432 0.182 6.584 -0.2962 0.3502 0.0995 + 1551water OW 1551 1.763 2.371 3.622 -0.4079 -0.1107 0.3439 + 1552water OW 1552 0.546 1.461 3.933 0.0414 0.0186 -0.7012 + 1553water OW 1553 0.192 2.476 2.268 -0.5704 0.2589 -0.0330 + 1554water OW 1554 1.086 2.222 3.898 0.1031 0.3029 0.3255 + 1555water OW 1555 1.080 2.683 5.044 0.0181 -0.2811 0.2802 + 1556water OW 1556 0.800 2.608 5.930 0.0595 -0.2433 0.1046 + 1557water OW 1557 3.134 2.480 6.295 -0.2180 -0.1154 0.1779 + 1558water OW 1558 2.801 0.134 3.133 -0.3325 0.0815 -0.0232 + 1559water OW 1559 0.963 0.273 2.289 0.4189 -0.5558 -0.1753 + 1560water OW 1560 0.850 1.421 6.245 0.0406 -0.6721 0.2037 + 1561water OW 1561 3.050 1.788 4.435 0.1243 -0.0938 0.3485 + 1562water OW 1562 1.373 2.958 4.632 -0.0175 0.0905 -0.0510 + 1563water OW 1563 0.873 2.124 0.279 0.4887 -0.1237 -0.3466 + 1564water OW 1564 2.689 1.933 5.381 0.1719 -0.0423 0.3002 + 1565water OW 1565 2.183 2.002 2.047 0.5077 0.5983 0.2862 + 1566water OW 1566 1.766 0.231 0.013 -0.1358 -0.2212 0.0853 + 1567water OW 1567 1.952 2.734 4.128 0.4354 0.3025 0.2426 + 1568water OW 1568 2.742 2.123 4.742 -0.2540 0.1152 0.4882 + 1569water OW 1569 0.285 0.744 6.093 0.3681 0.4593 0.4950 + 1570water OW 1570 0.871 1.494 4.433 -0.4894 -0.3757 -0.4245 + 1571water OW 1571 2.188 1.017 2.968 0.2422 0.2984 -0.1600 + 1572water OW 1572 0.877 2.890 6.662 -0.7381 -0.1018 0.1032 + 1573water OW 1573 3.011 2.311 5.629 0.0953 -0.1683 0.3265 + 1574water OW 1574 0.478 0.577 4.684 0.3167 -0.2101 -0.3367 + 1575water OW 1575 2.009 1.975 5.181 -0.1962 0.3602 0.3162 + 1576water OW 1576 0.587 0.499 2.485 -0.3528 -0.0083 -0.1184 + 1577water OW 1577 3.005 0.177 2.499 -0.0876 0.6008 0.5453 + 1578water OW 1578 2.711 0.597 5.830 0.5375 0.1861 0.3730 + 1579water OW 1579 1.220 1.268 4.223 -0.0566 -0.1121 0.2638 + 1580water OW 1580 3.025 2.166 5.207 0.1716 -0.0471 -0.6661 + 1581water OW 1581 2.266 1.995 4.424 -0.0392 -0.0669 -0.3148 + 1582water OW 1582 2.574 1.752 0.021 0.1642 -0.3172 -0.1209 + 1583water OW 1583 2.662 2.420 6.232 -0.3831 -0.2455 0.0777 + 1584water OW 1584 0.475 2.855 0.033 -0.4029 -0.2087 -0.1282 + 1585water OW 1585 0.854 0.652 0.234 0.2064 -0.1248 -0.3366 + 1586water OW 1586 2.971 2.795 5.771 0.0904 -0.2103 0.1737 + 1587water OW 1587 1.443 2.871 5.171 0.0710 0.4224 -0.1562 + 1588water OW 1588 0.180 2.051 2.690 0.0788 -0.5265 -0.3583 + 1589water OW 1589 0.764 2.281 5.203 -0.3366 -0.1738 -0.5220 + 1590water OW 1590 2.197 0.499 2.463 0.5590 -0.0061 0.1751 + 1591water OW 1591 0.929 2.800 4.826 -0.0830 0.6914 0.4536 + 1592water OW 1592 1.110 1.209 5.738 0.0694 0.3142 0.1155 + 1593water OW 1593 1.231 0.099 5.894 -0.2509 -0.7475 0.0570 + 1594water OW 1594 0.462 0.094 5.684 0.3823 0.6591 -0.3072 + 1595water OW 1595 0.369 0.113 6.511 -0.1140 -0.5959 0.1865 + 1596water OW 1596 2.124 2.233 3.168 -0.1625 -0.0037 -0.2806 + 1597water OW 1597 2.589 0.981 0.034 0.9706 -0.5182 -0.0898 + 1598water OW 1598 1.550 0.432 3.183 0.0240 0.1018 0.0481 + 1599water OW 1599 2.655 0.273 3.936 -0.0680 -0.4605 -0.4729 + 1600water OW 1600 0.426 1.348 2.293 0.7640 -0.0535 -0.1314 + 1601water OW 1601 0.917 1.247 3.698 0.8722 -0.2008 -0.4161 + 1602water OW 1602 1.921 1.335 5.769 0.5352 -0.7379 -0.3763 + 1603water OW 1603 3.135 2.268 4.594 0.2144 0.2306 -0.3276 + 1604water OW 1604 0.575 1.713 2.494 -0.6425 0.5563 -0.3249 + 1605water OW 1605 1.208 0.783 4.254 -0.3168 -0.2483 -0.5278 + 1606water OW 1606 3.111 2.612 5.943 0.0854 -0.1072 0.5466 + 1607water OW 1607 0.946 2.413 4.807 -0.0323 0.5599 -0.3018 + 1608water OW 1608 0.828 1.142 4.147 0.0933 -0.2522 0.0924 + 1609water OW 1609 0.729 0.373 5.877 0.3515 -0.7130 -0.1774 + 1610water OW 1610 1.648 0.714 4.900 0.1371 0.2491 -0.4998 + 1611water OW 1611 0.014 2.409 5.788 0.3909 -0.1045 -0.4563 + 1612water OW 1612 0.011 2.961 5.504 -0.2410 0.3076 -0.1830 + 1613water OW 1613 2.807 2.122 0.083 -0.5547 0.9348 0.1613 + 1614water OW 1614 1.792 2.033 0.104 -0.0932 -0.1657 -0.4310 + 1615water OW 1615 0.296 2.373 4.525 0.1664 0.2062 0.3825 + 1616water OW 1616 1.026 2.710 3.658 0.3490 0.1250 0.3486 + 1617water OW 1617 1.532 0.183 3.690 0.0718 -0.1279 -0.0822 + 1618water OW 1618 1.489 1.644 4.293 0.1887 0.1151 1.0251 + 1619water OW 1619 1.687 1.299 5.640 0.2113 -0.1961 0.8685 + 1620water OW 1620 0.002 1.578 4.994 0.2836 -0.1072 -0.2303 + 1621water OW 1621 0.628 0.976 4.447 -0.0727 0.4967 -0.2077 + 1622water OW 1622 1.249 2.720 3.510 -0.4665 0.3100 -0.8141 + 1623water OW 1623 3.015 1.217 1.992 0.0506 -0.1432 -0.1751 + 1624water OW 1624 2.051 2.309 5.331 -0.3110 -0.5151 -0.1610 + 1625water OW 1625 0.047 1.651 2.930 -0.1393 -0.1347 -0.2592 + 1626water OW 1626 2.627 1.807 4.690 0.4223 0.2308 -0.5662 + 1627water OW 1627 3.109 1.741 4.715 -0.1659 0.0646 -0.2278 + 1628water OW 1628 0.733 1.561 3.674 0.4581 0.0686 -0.1245 + 1629water OW 1629 2.257 2.841 3.941 0.0528 0.0171 0.2962 + 1630water OW 1630 0.789 0.594 5.669 -0.5446 -0.2622 0.0405 + 1631water OW 1631 0.469 0.063 4.492 0.0521 -0.2755 -0.0068 + 1632water OW 1632 2.668 1.784 5.656 0.6113 -0.0549 0.0730 + 1633water OW 1633 1.260 2.900 6.411 0.0705 0.2343 -0.0810 + 1634water OW 1634 2.823 0.577 6.452 0.1027 0.0921 -0.3338 + 1635water OW 1635 0.859 0.599 2.956 0.1865 0.3009 0.3264 + 1636water OW 1636 1.571 1.363 6.187 0.6684 -0.2287 -0.3574 + 1637water OW 1637 2.159 2.387 4.031 -0.3218 0.0816 0.1394 + 1638water OW 1638 0.792 0.325 4.652 0.0139 0.0212 -0.1627 + 1639water OW 1639 0.660 0.001 4.838 0.3194 0.4879 0.4370 + 1640water OW 1640 2.965 0.274 3.465 0.0076 -0.0269 -0.0381 + 1641water OW 1641 2.467 2.106 6.049 -0.3537 -0.2870 -0.2317 + 1642water OW 1642 3.090 1.408 4.273 -0.7338 0.9978 -0.0553 + 1643water OW 1643 1.020 2.001 4.589 -0.4087 0.3393 -0.2946 + 1644water OW 1644 0.043 2.487 3.666 0.0240 -0.5394 -0.0637 + 1645water OW 1645 2.572 2.729 2.247 0.6503 -0.5490 0.2580 + 1646water OW 1646 1.709 0.470 5.479 -0.2432 0.1850 0.3499 + 1647water OW 1647 2.051 2.375 2.739 0.1038 0.0522 -0.6402 + 1648water OW 1648 2.598 1.320 6.416 0.5869 -0.4944 -0.2494 + 1649water OW 1649 2.626 2.863 3.656 -0.1840 -0.1087 -0.5102 + 1650water OW 1650 2.120 1.452 3.525 -0.2369 0.0350 -0.1209 + 1651water OW 1651 1.267 2.121 5.014 -0.2547 -0.1442 -0.0606 + 1652water OW 1652 2.397 0.457 3.167 0.2410 0.0689 -0.2442 + 1653water OW 1653 2.232 2.809 3.655 -0.0196 -0.3066 0.0450 + 1654water OW 1654 0.410 1.736 5.662 -0.1424 0.1324 -0.2812 + 1655water OW 1655 1.312 1.290 3.839 -0.5550 -0.4709 -0.1724 + 1656water OW 1656 1.562 0.093 6.215 -0.4161 0.0461 -0.0194 + 1657water OW 1657 0.379 2.700 4.619 -0.2088 0.5414 -0.3044 + 1658water OW 1658 1.241 1.699 3.447 0.4279 0.2259 -0.2226 + 1659water OW 1659 1.808 0.337 4.030 -0.1963 -0.0522 -0.1072 + 1660water OW 1660 1.258 2.357 3.213 -0.3775 0.3556 0.1660 + 1661water OW 1661 2.303 1.988 4.102 0.3074 -0.4881 0.5120 + 1662water OW 1662 0.725 0.204 3.708 0.3663 -0.4441 -0.2913 + 1663water OW 1663 1.190 2.094 2.254 -0.1690 -0.3188 0.6661 + 1664water OW 1664 1.005 0.986 2.297 0.0518 -0.9573 0.0249 + 1665water OW 1665 1.597 0.881 5.700 -0.3382 -0.1317 0.3942 + 1666water OW 1666 0.833 1.650 2.541 0.5807 0.3617 0.8977 + 1667water OW 1667 0.884 0.875 5.081 -0.0447 0.4311 0.3452 + 1668water OW 1668 1.040 1.461 6.075 -0.0063 0.4036 0.5805 + 1669water OW 1669 2.616 1.406 4.720 0.2078 -0.3437 0.2060 + 1670water OW 1670 1.688 0.795 5.991 0.4251 -0.1824 -0.2903 + 1671water OW 1671 2.418 0.655 6.624 -0.1423 0.1709 0.1553 + 1672water OW 1672 1.509 2.593 3.050 0.1255 0.7819 -0.2099 + 1673water OW 1673 2.599 0.590 3.287 0.1068 0.2281 -0.5676 + 1674water OW 1674 0.722 2.687 3.069 -0.1238 -0.2603 -0.2701 + 1675water OW 1675 2.820 2.477 3.835 0.8694 0.1259 0.4328 + 1676water OW 1676 0.273 2.724 5.782 0.2096 -0.1585 0.3228 + 1677water OW 1677 1.631 0.442 5.006 -0.7255 0.0066 -0.3252 + 1678water OW 1678 2.429 1.343 6.653 0.2516 -0.4861 0.2050 + 1679water OW 1679 0.642 1.984 2.883 -0.3656 0.0550 -0.0912 + 1680water OW 1680 1.375 0.535 6.211 -0.8626 -0.1139 0.1909 + 1681water OW 1681 2.179 1.516 5.145 -0.2865 -0.5999 -0.2305 + 1682water OW 1682 0.131 2.636 3.111 -0.0007 0.1818 0.1647 + 1683water OW 1683 2.984 2.476 2.507 -0.6105 0.3706 -0.0620 + 1684water OW 1684 2.110 2.596 3.295 -0.2074 0.3351 0.1096 + 1685water OW 1685 1.603 2.395 2.494 -0.4278 -0.2317 -0.1709 + 1686water OW 1686 2.979 1.239 2.434 0.0374 -0.2069 0.2600 + 1687water OW 1687 1.336 2.780 0.260 0.0796 0.1252 -0.3823 + 1688water OW 1688 2.760 2.695 6.163 -0.2673 -0.0275 0.2852 + 1689water OW 1689 2.396 1.543 4.103 -0.3027 0.0398 0.1278 + 1690water OW 1690 1.678 0.843 2.054 -0.2112 -0.1909 0.8998 + 1691water OW 1691 3.074 2.648 3.296 0.0406 0.3701 0.4650 + 1692water OW 1692 0.229 2.050 3.596 -0.1841 -0.5962 0.1706 + 1693water OW 1693 3.097 2.683 4.938 -0.0546 0.0529 -0.5383 + 1694water OW 1694 2.973 1.182 3.791 0.0292 0.3503 -0.2088 + 1695water OW 1695 2.258 1.792 5.470 -0.6905 -0.0853 0.8685 + 1696water OW 1696 0.359 0.349 4.816 0.4924 -0.4687 0.1569 + 1697water OW 1697 1.182 0.148 6.466 -0.2029 -0.3855 -0.5030 + 1698water OW 1698 2.602 2.078 6.442 0.1684 -0.5815 -0.0532 + 1699water OW 1699 2.594 0.500 2.266 -0.3817 0.1861 0.2024 + 1700water OW 1700 2.217 1.282 2.465 -0.0497 -0.3534 -0.9749 + 1701water OW 1701 0.028 2.044 3.785 -0.5448 0.1515 0.3614 + 1702water OW 1702 2.894 1.341 5.704 0.0617 0.6789 -0.2423 + 1703water OW 1703 1.770 2.451 2.295 -0.0653 -0.0203 -0.1395 + 1704water OW 1704 2.957 0.848 5.108 -0.4651 0.0122 -0.0547 + 1705water OW 1705 0.129 0.334 6.151 0.0144 0.1153 0.6524 + 1706water OW 1706 1.747 0.501 5.955 0.2212 -0.4751 -0.3075 + 1707water OW 1707 0.661 2.643 4.492 0.3131 -0.0394 0.1245 + 1708water OW 1708 0.970 0.223 5.023 -0.3169 0.5632 0.4067 + 1709water OW 1709 0.118 0.480 5.257 0.3371 -0.7445 -0.3782 + 1710water OW 1710 1.751 2.174 3.241 -0.2686 -0.1103 -0.1522 + 1711water OW 1711 1.442 1.241 2.904 -0.3632 -0.1553 -0.0549 + 1712water OW 1712 0.706 1.670 6.655 -0.3444 0.5694 -0.2756 + 1713water OW 1713 2.491 2.534 2.773 -0.0536 0.3942 -0.4454 + 1714water OW 1714 0.387 1.644 0.016 0.5490 -0.0514 -0.7794 + 1715water OW 1715 1.174 2.904 5.219 0.5508 0.4640 -0.0453 + 1716water OW 1716 1.641 2.387 0.219 -0.1224 0.4309 -0.3824 + 1717water OW 1717 0.437 0.890 2.722 0.2224 -0.4496 0.3856 + 1718water OW 1718 1.234 1.361 0.059 0.3205 0.2117 0.2884 + 1719water OW 1719 1.548 0.774 3.505 0.2468 0.0369 -0.0592 + 1720water OW 1720 0.269 1.914 4.690 0.4411 0.5109 0.6396 + 1721water OW 1721 1.432 0.939 2.543 -0.7196 0.0932 0.0224 + 1722water OW 1722 1.776 2.710 0.114 -0.0506 -0.0010 0.2204 + 1723water OW 1723 0.866 2.073 2.093 0.5935 0.3966 -0.2553 + 1724water OW 1724 0.797 1.167 6.431 -0.3405 0.1432 0.0312 + 1725water OW 1725 2.583 0.967 2.240 0.4022 0.4276 0.0288 + 1726water OW 1726 2.946 1.503 4.482 0.1214 0.6409 0.3729 + 1727water OW 1727 1.250 2.557 2.999 -0.3838 -0.1826 -0.5333 + 1728water OW 1728 0.931 2.632 4.608 -0.2237 -0.2126 0.3650 + 1729water OW 1729 1.436 1.572 3.735 -0.1543 -0.0202 0.1505 + 1730water OW 1730 0.536 2.541 5.002 0.1666 -0.0428 0.6529 + 1731water OW 1731 1.593 1.618 2.465 -0.2533 -0.3410 0.1586 + 1732water OW 1732 2.955 1.025 0.289 -0.3177 0.1286 0.8341 + 1733water OW 1733 0.007 0.612 6.690 -0.1682 -0.2199 -0.4303 + 1734water OW 1734 2.162 0.988 6.680 0.0138 0.4297 -0.2120 + 1735water OW 1735 0.077 1.752 4.296 0.0497 0.2209 0.0230 + 1736water OW 1736 0.960 1.602 3.207 0.1698 -0.4102 0.4549 + 1737water OW 1737 0.610 0.818 5.695 0.2465 0.1861 0.2001 + 1738water OW 1738 1.613 2.838 0.272 -0.5277 0.0757 -0.2706 + 1739water OW 1739 0.073 2.914 6.363 0.5019 -0.2229 0.1454 + 1740water OW 1740 0.206 2.009 5.071 0.1918 -0.0351 0.9345 + 1741water OW 1741 2.133 0.864 3.199 0.1857 -0.3628 0.2900 + 1742water OW 1742 3.145 0.008 5.757 -0.4556 -0.4760 -0.2037 + 1743water OW 1743 1.484 0.928 3.978 -0.4757 0.4104 0.1004 + 1744water OW 1744 1.351 0.234 3.255 -0.2000 -0.6325 -0.3947 + 1745water OW 1745 0.906 0.988 5.445 -0.4446 0.0187 1.2108 + 1746water OW 1746 0.313 1.812 3.491 0.3546 0.2560 0.1852 + 1747water OW 1747 0.530 1.338 3.119 0.1038 -0.0113 0.0276 + 1748water OW 1748 0.163 0.291 4.173 0.2191 0.1424 -0.0476 + 1749water OW 1749 2.769 2.107 4.136 0.2841 0.0376 -0.3341 + 1750water OW 1750 0.693 1.279 3.336 -0.2322 -0.0597 -0.1148 + 1751water OW 1751 2.642 2.747 0.534 -0.1338 -0.0755 -0.4510 + 1752water OW 1752 2.456 0.221 0.213 0.5604 -0.2676 -0.6452 + 1753water OW 1753 1.753 2.735 2.290 0.1775 -0.3812 0.1893 + 1754water OW 1754 0.057 2.636 5.613 0.1216 -0.1945 -0.0309 + 1755water OW 1755 0.031 1.316 3.718 -0.1091 0.2769 -0.1423 + 1756water OW 1756 0.414 1.290 6.638 0.1790 -0.1180 0.0073 + 1757water OW 1757 1.348 0.968 0.260 0.2411 -0.7728 -0.6093 + 1758water OW 1758 1.495 1.971 5.370 0.0165 -0.6558 -0.1294 + 1759water OW 1759 1.632 0.884 6.599 -0.0294 0.0890 -0.4072 + 1760water OW 1760 2.557 1.335 4.198 0.1661 0.7833 0.1943 + 1761water OW 1761 0.991 2.751 0.058 0.1996 -0.2847 -0.4305 + 1762water OW 1762 1.051 1.918 5.875 0.2419 0.7365 0.0795 + 1763water OW 1763 0.153 0.543 0.109 -0.2341 -0.0567 -0.0821 + 1764water OW 1764 2.785 2.630 3.593 -0.4458 0.1891 0.3562 + 1765water OW 1765 1.918 0.449 5.168 -0.0150 0.0046 -0.2589 + 1766water OW 1766 2.279 2.483 3.092 0.3676 0.6502 0.3155 + 1767water OW 1767 2.956 1.086 6.167 0.1523 0.0171 0.2829 + 1768water OW 1768 0.617 0.280 4.433 0.3155 0.0918 0.0650 + 1769water OW 1769 2.960 2.900 3.714 0.0549 0.4810 0.5355 + 1770water OW 1770 3.027 2.775 0.260 -0.4008 -0.1500 0.2293 + 1771water OW 1771 2.658 1.555 3.865 -0.4671 0.4100 -0.2278 + 1772water OW 1772 1.305 0.311 4.735 0.7258 -0.0201 0.5662 + 1773water OW 1773 2.152 2.789 4.355 0.2112 -0.2676 0.0627 + 1774water OW 1774 1.777 1.210 2.313 -0.2921 -0.4316 0.1011 + 1775water OW 1775 1.669 2.069 2.980 -0.0762 0.9725 -0.3950 + 1776water OW 1776 1.020 2.526 6.365 0.2752 0.3340 -0.3505 + 1777water OW 1777 0.040 2.127 6.639 -0.3615 0.4306 0.2050 + 1778water OW 1778 2.064 1.936 6.123 0.1402 0.1829 0.1823 + 1779water OW 1779 0.010 2.841 2.030 0.0401 -0.4631 -0.2832 + 1780water OW 1780 2.901 2.317 4.853 0.4022 0.5069 -0.2515 + 1781water OW 1781 0.602 0.229 2.500 0.0791 -0.3503 -0.0620 + 1782water OW 1782 0.918 1.284 5.382 -0.2543 0.3859 0.4406 + 1783water OW 1783 0.512 1.495 3.495 -0.2093 -0.2703 -0.0971 + 1784water OW 1784 0.799 1.779 3.406 0.0111 -0.3356 0.1343 + 1785water OW 1785 0.882 0.017 6.264 -0.3174 0.2741 0.2933 + 1786water OW 1786 2.836 2.200 4.397 0.0498 0.3745 0.1184 + 1787water OW 1787 2.208 1.570 5.622 0.3030 -0.0798 -0.2615 + 1788water OW 1788 1.034 0.052 3.841 0.5334 0.7653 -0.8486 + 1789water OW 1789 2.852 2.664 4.191 -0.1872 -0.2098 -0.6403 + 1790water OW 1790 0.960 0.500 4.907 0.0922 0.1167 0.1936 + 1791water OW 1791 0.853 1.639 2.002 -0.1232 0.0706 -0.2341 + 1792water OW 1792 1.634 2.604 5.629 -0.0594 0.2206 -0.1400 + 1793water OW 1793 1.245 0.140 0.041 0.7378 0.0789 -0.2640 + 1794water OW 1794 2.589 0.209 2.263 0.0687 0.6180 0.4545 + 1795water OW 1795 1.059 0.643 6.009 -0.0596 0.3450 0.2201 + 1796water OW 1796 2.029 0.156 0.039 0.1738 -0.0546 0.1045 + 1797water OW 1797 3.194 0.833 4.549 -0.2466 -0.3368 0.1232 + 1798water OW 1798 0.993 0.304 0.029 0.3532 -0.2882 -0.1608 + 1799water OW 1799 2.167 1.769 3.760 0.1992 -0.0040 -0.5428 + 1800water OW 1800 0.046 1.102 5.306 -0.6116 -0.3355 0.2328 + 1801water OW 1801 1.837 2.406 6.397 0.1429 -0.1144 0.2027 + 1802water OW 1802 2.069 1.460 4.369 -0.5093 0.0057 0.0344 + 1803water OW 1803 0.129 0.369 4.996 -0.0801 0.2675 -0.0287 + 1804water OW 1804 1.767 1.286 6.392 -0.6654 0.5541 -0.1618 + 1805water OW 1805 0.599 2.180 3.092 -0.5044 -0.0212 0.0483 + 1806water OW 1806 1.881 0.119 5.899 -0.2272 0.1373 0.0564 + 1807water OW 1807 0.385 2.397 6.190 0.2299 -0.5147 -0.2120 + 1808water OW 1808 0.450 2.887 0.515 0.1656 0.4660 0.1555 + 1809water OW 1809 0.232 2.742 2.696 -0.2540 0.6205 0.1518 + 1810water OW 1810 2.428 0.933 6.632 0.1217 0.0346 0.0738 + 1811water OW 1811 1.628 0.109 0.266 -0.0329 0.3724 0.2603 + 1812water OW 1812 2.322 0.202 3.267 0.2497 -0.4741 0.3979 + 1813water OW 1813 2.464 0.798 3.421 -0.1568 0.0139 0.3648 + 1814water OW 1814 2.544 2.418 5.621 -0.2172 -0.2325 0.2806 + 1815water OW 1815 2.481 2.813 2.476 0.4911 0.3402 0.1577 + 1816water OW 1816 1.816 1.304 2.717 -0.3967 -0.1257 0.7918 + 1817water OW 1817 2.230 0.972 5.265 0.5689 0.1244 0.6763 + 1818water OW 1818 2.951 0.511 6.679 0.2468 -0.0455 0.7183 + 1819water OW 1819 0.184 2.477 0.065 -0.0164 0.1258 -0.3593 + 1820water OW 1820 0.559 0.277 6.636 -0.3944 -0.3990 0.1988 + 1821water OW 1821 0.846 0.800 4.679 0.4053 -0.5456 -0.2292 + 1822water OW 1822 3.076 1.763 5.542 0.0597 -0.3120 0.3351 + 1823water OW 1823 2.019 1.238 6.002 -0.0023 -0.3732 -0.5463 + 1824water OW 1824 1.060 0.857 4.857 -0.3196 -0.4927 0.0399 + 1825water OW 1825 0.602 2.157 5.798 0.4550 -0.1811 0.0167 + 1826water OW 1826 0.355 2.089 5.919 -0.1930 -0.3711 0.2554 + 1827water OW 1827 2.187 2.001 2.472 0.2333 -0.1638 -0.0917 + 1828water OW 1828 1.412 0.543 2.500 -0.0847 -0.0595 0.0559 + 1829water OW 1829 1.816 0.514 2.741 -0.5746 -0.0618 0.0774 + 1830water OW 1830 3.099 1.121 4.380 -0.0628 0.7962 0.1683 + 1831water OW 1831 2.842 2.385 2.284 -0.6014 -0.3091 -0.4078 + 1832water OW 1832 2.123 2.696 5.417 0.6339 0.1039 0.2519 + 1833water OW 1833 1.617 0.076 5.248 0.3594 -0.0973 0.1589 + 1834water OW 1834 0.723 1.719 5.663 -0.1646 0.3055 -0.0213 + 1835water OW 1835 0.405 0.841 4.598 -0.2125 -0.2530 0.2826 + 1836water OW 1836 1.211 0.109 2.649 0.0561 0.0358 -0.1401 + 1837water OW 1837 3.098 2.264 4.323 0.5868 0.3597 0.0940 + 1838water OW 1838 2.737 0.435 4.431 -0.2025 -0.0670 -0.4539 + 1839water OW 1839 2.402 0.558 5.394 0.4060 0.1628 -0.7667 + 1840water OW 1840 1.251 1.646 0.054 0.1263 -0.4353 -0.1023 + 1841water OW 1841 0.520 1.908 4.147 -0.2591 0.1482 -0.9080 + 1842water OW 1842 2.416 2.750 4.255 0.2080 0.3774 0.0703 + 1843water OW 1843 0.526 2.791 2.489 -0.0620 -0.4006 -0.0688 + 1844water OW 1844 2.032 2.406 2.284 0.1447 -0.0570 0.8574 + 1845water OW 1845 0.275 1.809 5.258 -0.4141 0.1002 -0.8415 + 1846water OW 1846 2.868 1.895 3.184 0.2378 0.3093 0.5150 + 1847water OW 1847 0.970 2.432 5.070 0.2471 -0.5269 -0.6804 + 1848water OW 1848 0.108 2.730 5.238 0.1504 0.6512 0.2921 + 1849water OW 1849 2.967 0.295 4.402 0.2373 0.4252 -0.0488 + 1850water OW 1850 0.409 1.499 5.785 0.0418 -0.3264 -0.5508 + 1851water OW 1851 2.982 0.765 4.345 0.0703 0.1095 0.1500 + 1852water OW 1852 2.362 0.647 4.505 -0.4432 -0.6969 -0.0054 + 1853water OW 1853 0.219 1.260 0.237 0.1598 0.2838 0.5392 + 1854water OW 1854 1.081 1.275 5.138 -0.1154 0.0139 0.1113 + 1855water OW 1855 1.857 2.089 5.992 0.4644 0.2250 -0.0820 + 1856water OW 1856 1.797 0.373 4.803 -0.1411 0.1207 0.1351 + 1857water OW 1857 2.981 2.032 5.644 0.1599 -0.9668 -0.0411 + 1858water OW 1858 2.179 2.776 0.273 -0.1282 0.3420 0.1457 + 1859water OW 1859 0.758 1.989 4.554 0.3745 -0.2370 0.1395 + 1860water OW 1860 0.736 1.886 3.986 0.3767 -0.1163 0.4198 + 1861water OW 1861 2.159 0.218 2.067 0.0649 0.5910 -0.1733 + 1862water OW 1862 2.890 2.902 6.027 0.1157 -0.1647 0.3530 + 1863water OW 1863 1.974 2.689 3.692 -0.1674 0.7025 -0.3714 + 1864water OW 1864 0.963 1.307 0.026 -0.6545 -0.2505 0.8144 + 1865water OW 1865 0.194 2.798 4.415 -0.1355 0.6634 0.0302 + 1866water OW 1866 2.043 2.170 0.512 -0.0849 -0.1992 -0.0432 + 1867water OW 1867 2.292 0.249 5.168 0.1749 0.2036 -0.5005 + 1868water OW 1868 1.250 0.846 2.725 -0.0031 -0.6667 0.3134 + 1869water OW 1869 0.004 0.609 0.331 -0.0249 -0.5137 -0.1306 + 1870water OW 1870 1.815 2.202 5.724 -0.0983 0.2786 -0.3404 + 1871water OW 1871 2.418 1.082 4.231 -0.3717 -0.1460 -0.3240 + 1872water OW 1872 0.289 1.796 4.014 0.0006 -0.3260 0.0961 + 1873water OW 1873 0.033 0.873 2.929 0.6422 -0.2505 -0.6056 + 1874water OW 1874 0.976 1.259 2.670 -0.3046 0.2739 0.2853 + 1875water OW 1875 1.812 0.511 4.338 -0.1754 0.7798 0.0244 + 1876water OW 1876 1.785 0.328 3.026 0.0768 0.2914 -0.1685 + 1877water OW 1877 0.179 2.871 4.136 0.1466 0.0526 0.2885 + 1878water OW 1878 1.165 1.867 4.004 -0.0948 0.1131 0.6482 + 1879water OW 1879 0.669 2.077 4.793 -0.8767 -0.0607 -0.5461 + 1880water OW 1880 1.375 1.298 6.609 0.2963 -0.1464 -0.2205 + 1881water OW 1881 2.029 2.120 2.259 -0.0584 0.1259 0.3795 + 1882water OW 1882 2.405 2.181 5.127 0.0704 0.3458 -0.8661 + 1883water OW 1883 2.257 2.829 2.915 0.1073 -0.1084 -0.0855 + 1884water OW 1884 2.443 2.049 3.468 -0.2948 0.1429 0.1334 + 1885water OW 1885 0.605 2.437 5.852 -0.3693 0.4693 -0.2591 + 1886water OW 1886 2.142 1.007 4.182 -0.2474 -0.0887 0.3431 + 1887water OW 1887 1.958 0.420 3.311 -0.8467 0.2324 -0.2315 + 1888water OW 1888 0.914 0.643 3.489 0.1255 0.0874 -0.1545 + 1889water OW 1889 0.724 2.468 5.596 -0.2434 -0.2932 0.0318 + 1890water OW 1890 2.923 1.746 6.653 -0.0415 0.0125 -0.3631 + 1891water OW 1891 1.882 0.209 5.278 -0.5179 -0.0586 -0.1683 + 1892water OW 1892 0.135 2.275 6.232 -0.7178 -0.2153 0.0323 + 1893water OW 1893 1.525 0.403 4.538 0.7798 -0.8665 0.1123 + 1894water OW 1894 1.751 2.256 6.188 -0.1269 0.2948 0.1174 + 1895water OW 1895 1.404 2.765 6.636 0.1028 -0.3606 0.1038 + 1896water OW 1896 2.903 0.037 4.638 -0.1958 -0.0682 0.3372 + 1897water OW 1897 2.662 2.436 3.352 -0.0847 -0.1964 -0.3739 + 1898water OW 1898 0.061 1.358 2.040 0.1958 0.0581 -0.3122 + 1899water OW 1899 2.780 1.777 4.926 0.0693 0.2468 -0.6527 + 1900water OW 1900 1.675 2.787 4.867 0.2000 -0.3066 -0.6087 + 1901water OW 1901 1.450 0.221 4.977 -0.2854 0.2576 -0.7781 + 1902water OW 1902 0.359 0.853 4.062 0.0612 0.1527 0.1757 + 1903water OW 1903 1.939 1.712 6.036 0.2256 0.5152 0.2924 + 1904water OW 1904 0.792 1.965 5.801 0.8448 -0.2868 -0.0615 + 1905water OW 1905 1.831 0.808 3.161 -0.3023 -0.5800 0.0127 + 1906water OW 1906 0.848 2.146 6.644 -0.0691 -0.3341 -0.1928 + 1907water OW 1907 0.026 1.328 2.514 -0.2696 0.3267 0.0054 + 1908water OW 1908 2.965 0.912 5.374 -0.0688 -0.5110 -0.3792 + 1909water OW 1909 0.456 0.596 5.541 0.5272 -0.4167 0.5334 + 1910water OW 1910 1.047 1.851 3.747 -0.1114 0.7174 -0.0452 + 1911water OW 1911 2.517 2.140 5.571 -0.8728 -0.2840 0.1517 + 1912water OW 1912 1.411 1.464 4.106 -0.6284 -0.4832 0.1417 + 1913water OW 1913 0.579 2.052 0.272 0.1381 -0.0900 0.8374 + 1914water OW 1914 0.760 1.619 3.937 -0.6859 -0.2423 -0.0776 + 1915water OW 1915 2.772 0.846 5.597 -0.4283 0.2274 0.2324 + 1916water OW 1916 0.798 0.499 5.412 0.0111 -0.3660 0.1918 + 1917water OW 1917 0.793 0.024 5.126 0.1295 -0.0834 0.0447 + 1918water OW 1918 1.529 0.353 5.311 0.5200 0.0190 0.0107 + 1919water OW 1919 1.063 2.241 4.186 0.2065 0.7816 0.4821 + 1920water OW 1920 0.643 2.811 3.463 -0.1542 0.0682 -0.2120 + 1921water OW 1921 1.518 0.489 4.249 -0.3460 -0.0504 -0.1420 + 1922water OW 1922 0.917 2.006 3.354 -0.0617 0.0984 0.0662 + 1923water OW 1923 0.320 1.183 5.252 0.1562 -0.0487 0.3211 + 1924water OW 1924 0.118 2.277 3.520 -0.3797 -0.3873 -0.0051 + 1925water OW 1925 1.692 0.861 6.317 -0.3006 0.0339 0.4729 + 1926water OW 1926 1.638 2.122 2.490 -0.2922 -0.3227 0.2471 + 1927water OW 1927 1.363 0.166 4.192 0.2809 0.1630 -0.6949 + 1928water OW 1928 1.023 2.110 5.376 -0.0674 -0.0885 -0.0879 + 1929water OW 1929 0.976 0.202 2.743 -0.9565 -0.4697 0.0398 + 1930water OW 1930 1.162 1.969 6.304 0.3113 0.3176 0.1218 + 1931water OW 1931 0.780 2.077 2.518 0.2488 0.1620 -0.6405 + 1932water OW 1932 2.059 0.480 4.207 -0.1634 0.0617 0.7703 + 1933water OW 1933 0.411 0.931 0.073 0.4722 -0.0466 0.1714 + 1934water OW 1934 0.384 0.124 3.192 0.4828 1.1348 -0.3521 + 1935water OW 1935 1.274 2.115 0.039 0.1741 0.2904 -0.0883 + 1936water OW 1936 0.492 1.607 3.108 0.1855 -0.3694 -0.1768 + 1937water OW 1937 2.085 2.917 0.503 -0.2826 -0.3080 0.3671 + 1938water OW 1938 3.015 1.367 3.998 0.6793 -0.5208 0.3639 + 1939water OW 1939 0.198 2.305 4.980 0.1303 0.1821 0.1817 + 1940water OW 1940 0.999 0.990 2.700 -0.1518 0.1564 -0.1276 + 1941water OW 1941 0.266 0.989 4.787 -0.2290 -0.3549 -0.4792 + 1942water OW 1942 1.619 1.433 3.908 0.0337 0.3846 0.1495 + 1943water OW 1943 0.625 1.229 4.313 0.0662 0.6702 -0.3514 + 1944water OW 1944 0.406 0.591 5.031 0.2740 -0.2074 -0.3620 + 1945water OW 1945 2.132 0.518 2.914 0.1111 -0.7425 -0.1110 + 1946water OW 1946 1.163 2.106 6.049 0.2971 -0.0025 -0.1785 + 1947water OW 1947 2.566 2.552 6.490 0.4046 -0.4253 -0.3196 + 1948water OW 1948 0.968 2.757 2.686 0.1977 -0.0821 0.1251 + 1949water OW 1949 1.176 1.016 5.554 -0.7210 0.3966 0.2586 + 1950water OW 1950 0.688 1.848 6.037 -0.5135 -0.1092 0.5744 + 1951water OW 1951 2.833 0.107 6.473 0.2612 -0.4252 -0.5250 + 1952water OW 1952 2.199 2.499 0.245 -0.3699 0.1959 0.5187 + 1953water OW 1953 1.620 0.135 6.616 0.1380 -0.2062 0.1132 + 1954water OW 1954 2.969 0.557 5.034 -0.8601 -0.1503 -0.1263 + 1955water OW 1955 2.114 2.380 6.425 -0.2871 -0.1746 0.0705 + 1956water OW 1956 2.892 2.815 2.742 0.3226 -0.3453 -0.1059 + 1957water OW 1957 2.474 1.359 5.385 0.0696 0.7180 0.1313 + 1958water OW 1958 0.284 0.049 3.774 0.2361 -0.3729 0.2588 + 1959water OW 1959 2.033 1.380 0.067 -0.0394 0.0555 0.1729 + 1960water OW 1960 2.558 1.048 3.357 -0.0502 -0.0381 -0.0236 + 1961water OW 1961 1.054 1.008 6.067 -0.6281 -0.1858 0.7559 + 1962water OW 1962 0.845 0.597 2.501 -0.2278 -0.5000 -0.2223 + 1963water OW 1963 1.258 1.846 5.715 -0.1924 -1.0116 0.3406 + 1964water OW 1964 1.798 1.273 0.022 -0.2365 0.2511 0.3178 + 1965water OW 1965 0.919 0.080 3.416 -0.2039 -0.1156 -0.2021 + 1966water OW 1966 2.153 1.311 2.953 0.0343 -0.2730 -0.1319 + 1967water OW 1967 0.119 0.446 5.767 -0.2960 0.5104 -0.1210 + 1968water OW 1968 0.481 1.473 6.458 -0.4168 -0.1848 0.1104 + 1969water OW 1969 2.987 0.516 2.951 0.6267 0.3061 0.2340 + 1970water OW 1970 1.902 0.943 3.791 0.3440 0.0744 -0.6923 + 1971water OW 1971 2.259 2.417 5.213 -0.0777 0.1970 0.1306 + 1972water OW 1972 1.899 1.545 5.313 -0.0789 -0.5533 0.2984 + 1973water OW 1973 2.182 0.454 4.622 0.0881 -1.0409 0.0897 + 1974water OW 1974 2.652 0.730 5.350 -0.1940 0.5749 0.0946 + 1975water OW 1975 2.587 2.546 3.979 0.0831 0.4008 -0.3263 + 1976water OW 1976 0.251 0.188 4.585 0.6756 -0.1654 0.5923 + 1977water OW 1977 3.173 2.856 4.568 0.3106 0.8575 -0.1099 + 1978water OW 1978 1.782 1.233 4.115 0.3166 -0.6266 -0.2435 + 1979water OW 1979 2.974 1.986 2.453 0.1183 -0.1853 -0.0437 + 1980water OW 1980 2.280 2.143 5.701 -0.0573 0.0883 1.0594 + 1981water OW 1981 1.425 2.595 5.167 -0.3564 -0.3537 0.4778 + 1982water OW 1982 2.265 1.961 5.914 0.1311 -0.0271 -0.4033 + 1983water OW 1983 0.957 2.694 3.181 -0.4315 0.2402 0.2365 + 1984water OW 1984 2.441 0.320 4.110 -0.2246 0.3374 -0.2576 + 1985water OW 1985 0.824 0.521 4.247 0.0074 0.3272 -0.5720 + 1986water OW 1986 2.803 1.017 4.525 0.0568 0.5614 -0.1418 + 1987water OW 1987 1.655 0.667 2.897 -0.1197 0.1947 0.2491 + 1988water OW 1988 1.409 0.980 2.927 0.3228 -0.1482 -0.5531 + 1989water OW 1989 1.454 2.002 6.687 -0.1751 -0.5745 0.1750 + 1990water OW 1990 1.401 0.856 3.712 -0.2099 0.0755 0.3174 + 1991water OW 1991 2.906 2.805 3.166 -0.5798 -0.2171 -0.2163 + 1992water OW 1992 0.591 1.711 2.877 -0.4190 0.4289 -0.0497 + 1993water OW 1993 1.660 2.870 5.418 0.2128 0.0272 -0.5478 + 1994water OW 1994 0.415 0.927 6.447 -0.2296 0.4133 0.3480 + 1995water OW 1995 2.748 2.146 5.225 0.1243 0.5565 -0.4527 + 1996water OW 1996 0.205 0.733 5.169 -0.1030 0.1185 0.0121 + 1997water OW 1997 2.408 1.615 5.287 -0.6297 -0.0581 -0.1174 + 1998water OW 1998 0.132 1.763 0.043 0.2128 -0.3606 -0.2631 + 1999water OW 1999 2.096 2.572 5.840 -0.1015 0.0639 0.9772 + 2000water OW 2000 3.193 1.318 3.426 -0.3133 -0.0087 0.3923 + 2001water OW 2001 0.959 1.760 6.598 -0.7330 0.0293 0.4549 + 2002water OW 2002 0.772 2.249 3.316 0.0971 -0.4563 0.1624 + 2003water OW 2003 0.998 2.402 3.168 -0.0100 -0.2932 -0.6464 + 2004water OW 2004 3.060 0.079 3.288 -0.0903 -0.3532 -0.3605 + 2005water OW 2005 1.295 2.418 6.362 0.5704 -0.4780 0.1621 + 2006water OW 2006 0.051 0.561 2.042 -0.1240 -0.3684 -0.2163 + 2007water OW 2007 0.865 2.065 2.769 -0.1793 0.6446 -0.1353 + 2008water OW 2008 0.103 2.215 4.147 0.6585 0.6220 0.1620 + 2009water OW 2009 2.309 2.841 5.139 0.1296 0.8680 0.4494 + 2010water OW 2010 2.405 0.899 0.262 0.4594 -0.3065 -0.1764 + 2011water OW 2011 2.164 1.327 4.586 -0.0534 1.0563 0.2755 + 2012water OW 2012 0.769 1.401 6.634 -0.4596 0.0688 -0.2218 + 2013water OW 2013 1.132 2.371 3.548 -0.1841 0.0150 0.2101 + 2014water OW 2014 1.049 2.094 3.583 -0.2707 -0.1036 -0.0345 + 2015water OW 2015 1.735 0.249 2.703 0.4979 0.2110 0.0183 + 2016water OW 2016 0.322 0.618 5.842 0.2271 0.1060 0.1523 + 2017water OW 2017 1.828 2.920 5.631 -0.2373 0.0882 0.0937 + 2018water OW 2018 2.127 2.389 4.884 -0.0557 -0.7903 -0.5268 + 2019water OW 2019 2.726 1.470 5.305 -0.3328 -0.4597 -0.5257 + 2020water OW 2020 2.982 1.674 2.870 0.6397 -0.6511 -0.0967 + 2021water OW 2021 1.106 1.341 4.762 -0.0391 -0.3445 -0.0049 + 2022water OW 2022 0.942 0.589 6.805 -0.0490 -0.3057 0.3893 + 2023water OW 2023 0.160 0.290 6.467 -0.0216 -0.0739 -0.2055 + 2024water OW 2024 1.112 2.800 2.976 0.5256 -0.2775 0.0073 + 2025water OW 2025 1.822 2.725 4.384 -0.0486 0.2803 -0.3828 + 2026water OW 2026 0.412 2.371 3.879 0.7487 -0.1158 0.5050 + 2027water OW 2027 2.535 0.297 4.554 -0.3560 0.1435 0.3429 + 2028water OW 2028 0.620 1.234 2.899 0.0448 0.0179 0.3551 + 2029water OW 2029 1.878 1.060 6.268 0.1304 0.0614 -0.2624 + 2030water OW 2030 2.453 2.122 6.659 -0.0847 -0.8576 -0.3061 + 2031water OW 2031 2.865 0.458 6.206 -0.2883 0.3388 0.0837 + 2032water OW 2032 2.423 1.386 0.295 0.2695 0.4137 -0.0744 + 2033water OW 2033 2.294 1.013 6.311 0.0031 -0.1035 0.1024 + 2034water OW 2034 1.295 1.941 3.586 0.6657 0.2335 -0.2884 + 2035water OW 2035 0.455 2.119 0.032 -0.0014 -0.2586 0.8409 + 2036water OW 2036 1.366 1.530 6.211 0.4872 0.1762 0.2133 + 2037water OW 2037 0.513 2.815 5.709 -0.3169 0.3635 0.3478 + 2038water OW 2038 3.044 1.730 5.263 -0.4007 0.2404 0.4405 + 2039water OW 2039 0.047 2.714 6.179 0.0958 0.2831 -0.0419 + 2040water OW 2040 1.075 0.861 3.388 0.0890 -0.0662 -0.3860 + 2041water OW 2041 2.736 0.901 6.220 -0.0147 0.8172 0.0501 + 2042water OW 2042 1.273 2.482 5.357 -0.0619 -0.1044 0.2217 + 2043water OW 2043 0.979 0.783 5.770 0.3612 -0.2842 0.1403 + 2044water OW 2044 2.361 2.553 5.423 -0.0196 -0.1429 0.1986 + 2045water OW 2045 0.650 2.704 5.479 -0.3158 -0.5278 -0.1409 + 2046water OW 2046 1.359 0.524 0.251 -0.2724 -0.8042 0.0800 + 2047water OW 2047 2.315 1.119 4.479 0.2983 0.3648 -0.6702 + 2048water OW 2048 2.706 0.405 3.445 -0.2507 0.2924 0.0954 + 3.20000 3.00000 6.81880 diff --git a/docs/source/_static/simulations/ice_water_ox.xtc b/docs/source/_static/simulations/ice_water_ox.xtc new file mode 100644 index 00000000..7ab806bb Binary files /dev/null and b/docs/source/_static/simulations/ice_water_ox.xtc differ diff --git a/docs/source/_static/style.css b/docs/source/_static/style.css index 515773f3..16c570e0 100644 --- a/docs/source/_static/style.css +++ b/docs/source/_static/style.css @@ -21,3 +21,27 @@ top: 0; } } + +.tutorial-card { + height: 280px; + display: flex; + flex-direction: column; + text-align: center; +} + +.tutorial-card-img { + height: 180px; + width: 100%; + object-fit: contain; + margin: 0 auto; + display: block; +} + + +.tutorial-card-title { + margin-top: auto; + padding-top: 10px; + font-weight: 600; + text-align: center; +} + diff --git a/docs/source/_static/tutorials/getting_started/colored_wat_ice_lens_10.png b/docs/source/_static/tutorials/getting_started/colored_wat_ice_lens_10.png new file mode 100644 index 00000000..cb0e9528 Binary files /dev/null and b/docs/source/_static/tutorials/getting_started/colored_wat_ice_lens_10.png differ diff --git a/docs/source/_static/tutorials/getting_started/doctests/test_lens.npy b/docs/source/_static/tutorials/getting_started/doctests/test_lens.npy new file mode 100644 index 00000000..1d68d5f9 Binary files /dev/null and b/docs/source/_static/tutorials/getting_started/doctests/test_lens.npy differ diff --git a/docs/source/_static/tutorials/getting_started/output_plot.png b/docs/source/_static/tutorials/getting_started/output_plot.png new file mode 100644 index 00000000..8e88f9a3 Binary files /dev/null and b/docs/source/_static/tutorials/getting_started/output_plot.png differ diff --git a/docs/source/_static/tutorials/getting_started/single_trj.png b/docs/source/_static/tutorials/getting_started/single_trj.png new file mode 100644 index 00000000..c523de28 Binary files /dev/null and b/docs/source/_static/tutorials/getting_started/single_trj.png differ diff --git a/docs/source/_static/tutorials/getting_started/wat_ice.png b/docs/source/_static/tutorials/getting_started/wat_ice.png new file mode 100644 index 00000000..cbd09c77 Binary files /dev/null and b/docs/source/_static/tutorials/getting_started/wat_ice.png differ diff --git a/docs/source/_static/tutorials/spatial_denoising/color_1.png b/docs/source/_static/tutorials/spatial_denoising/color_1.png new file mode 100644 index 00000000..a08cde3c Binary files /dev/null and b/docs/source/_static/tutorials/spatial_denoising/color_1.png differ diff --git a/docs/source/_static/tutorials/spatial_denoising/color_2.png b/docs/source/_static/tutorials/spatial_denoising/color_2.png new file mode 100644 index 00000000..3c00bddc Binary files /dev/null and b/docs/source/_static/tutorials/spatial_denoising/color_2.png differ diff --git a/docs/source/_static/tutorials/spatial_denoising/denoised_onion_analysis.png b/docs/source/_static/tutorials/spatial_denoising/denoised_onion_analysis.png new file mode 100644 index 00000000..2c56e0a7 Binary files /dev/null and b/docs/source/_static/tutorials/spatial_denoising/denoised_onion_analysis.png differ diff --git a/docs/source/_static/tutorials/spatial_denoising/doctests/test_denoised_tsoap.npy b/docs/source/_static/tutorials/spatial_denoising/doctests/test_denoised_tsoap.npy new file mode 100644 index 00000000..f3e5bb9c Binary files /dev/null and b/docs/source/_static/tutorials/spatial_denoising/doctests/test_denoised_tsoap.npy differ diff --git a/docs/source/_static/tutorials/spatial_denoising/doctests/test_soap.npy b/docs/source/_static/tutorials/spatial_denoising/doctests/test_soap.npy new file mode 100644 index 00000000..35ab43fe Binary files /dev/null and b/docs/source/_static/tutorials/spatial_denoising/doctests/test_soap.npy differ diff --git a/docs/source/_static/tutorials/spatial_denoising/doctests/test_tsoap.npy b/docs/source/_static/tutorials/spatial_denoising/doctests/test_tsoap.npy new file mode 100644 index 00000000..47b10f8f Binary files /dev/null and b/docs/source/_static/tutorials/spatial_denoising/doctests/test_tsoap.npy differ diff --git a/docs/source/_static/tutorials/spatial_denoising/onion_analysis.png b/docs/source/_static/tutorials/spatial_denoising/onion_analysis.png new file mode 100644 index 00000000..2a9eea1b Binary files /dev/null and b/docs/source/_static/tutorials/spatial_denoising/onion_analysis.png differ diff --git a/docs/source/_static/workflow.jpeg b/docs/source/_static/workflow.jpeg new file mode 100644 index 00000000..0c98cd84 Binary files /dev/null and b/docs/source/_static/workflow.jpeg differ diff --git a/docs/source/conf.py b/docs/source/conf.py index 818aa791..a495f117 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -28,6 +28,7 @@ "sphinx.ext.viewcode", "sphinx_copybutton", "sphinx.ext.mathjax", + "sphinx_design", ] # Check if SOAPify is available diff --git a/docs/source/example_analysis_workflow.rst b/docs/source/example_analysis_workflow.rst deleted file mode 100644 index 88c498cd..00000000 --- a/docs/source/example_analysis_workflow.rst +++ /dev/null @@ -1,96 +0,0 @@ -The typical dynsight analysis workflow -====================================== - -The ``dynsight.trajectory`` module provides a unified set of tools that -streamline the analysis of many-body trajectories, offering a consistent and -user-friendly interface across most analysis tasks. - -This is achieved through two main classes, :class:`.trajectory.Trj` and -:class:`.trajectory.Insight`. - -The :class:`.trajectory.Trj` class is an object that contains a trajectory, -meaning the coordinates of a set of particles over a series of frames. - -The :class:`.trajectory.Insight` class is an object that stores some useful -information computed on a trajectory, in the form of a dataset containing some -physical observable computed for all the particles along the trajectory. - -Some additional classes, under the general name of -:class:`.trajectory.ClusterInsight`, contain the result of clustering -procedures performed on the Insight datasets. - -Example -------- - -The first step is usually to create a :class:`.trajectory.Trj` object from -some trajectory file (.xtc, .gro). In this example, we are using the water/ice -coexistence trajectory stored in the ``example/`` folder. - -.. code-block:: python - - from pathlib import Path - from dynsight.trajectory import Trj - - files_path = Path("dynsight/examples/analysis_workflow") - trj = Trj.init_from_xtc( - traj_file=files_path / "oxygens.xtc", - topo_file=files_path / "oxygens.gro", - ) - -Now ``trj`` contains the trajectory, and using the methods of the -:class:`.trajectory.Trj` class we can perform all the dynsight analyses on -this trajectory. For instance, let's say we want to compute LENS: - -.. code-block:: python - - _, lens = trj.get_lens(r_cut=7.5) - lens_file = files_path / "lens.json" - lens.dump_to_json(lens_file) - -The method :class:`.trajectory.Trj.get_lens()` returns a -:class:`.trajectory.Insight` object, which in its ``.dataset`` attribute -contains the LENS values computed on the ``trj`` trajectory. Moreover, its -``.meta`` attribute stores all the parameters relevant to this descriptor -computation (in this case, the value of the cutoff radius used, ``r_cut``). -The :class:`.trajectory.Insight` object can be easily saved as a .json file. - -The :class:`.trajectory.Insight` class offers its own methods for further -analysis. For instance, one can perform spatial averaging of the LENS values: - -.. code-block:: python - - trj_lens = trj.with_slice(slice(0, -1, 1)) - lens_smooth = lens.spatial_average( - trj=trj_lens, r_cut=7.5, num_processes=6 - ) - -Notice that, since LENS is computed for all the frames but the last one, we -use a sliced trajectory, which we get with the ``Trj.with_slice()`` method. - -Finally, we can perform clustering on the ``lens_smooth.dataset``, using for -instance the :class:`Insight.get_onion_smooth()` method: - -.. code-block:: python - - lens_onion = lens_smooth.get_onion_smooth(delta_t=10) - - lens_onion.plot_output( - file_path=files_path / "tmp_fig1.png", - data_insight=lens_smooth, - ) - lens_onion.plot_one_trj( - file_path=files_path / "tmp_fig2.png", - data_insight=lens_smooth, - particle_id=1234, - ) - lens_onion.dump_colored_trj( - trj=trj_lens, - file_path=files_path / "colored_trj.xyz", - ) - -``lens_onion`` is an :class:`.trajectory.OnionSmoothInsight` object, -which stores the clustering output, and offers several methods to visualize -the results. - -Read the documentation to find out the complete set of objects and tools -offered by the dynsight.trajectory module. diff --git a/docs/source/example_info_gain.rst b/docs/source/example_info_gain.rst deleted file mode 100644 index 519048be..00000000 --- a/docs/source/example_info_gain.rst +++ /dev/null @@ -1,250 +0,0 @@ -Information gain computation -============================ - -For the theoretical aspects of this work, see see https://doi.org/10.48550/arXiv.2504.12990. - -Here we show how to compute the information gain through clustering. To this end, we create two datasets by simulating the Langevin Dynamics of particles moving in two different bidimensional potential energy landscapes, one with two and one with four minima. We compare the information gain after clustering the particles' trajectories, using either one or both variables. - -To start, let's import the packages we will need and create a folder in the cwd to save the results in. - -.. code-block:: python - - from pathlib import Path - from typing import Callable - from tqdm import tqdm - import numpy as np - import matplotlib.pyplot as plt - import dynsight - - cwd = Path.cwd() - folder_name = "source/_static/info_gain" - folder_path = cwd / folder_name - if not folder_path.exists(): - folder_path.mkdir() - - -Now, we want to simulate the Langevin Dynamics. We start defining the potential energy landscapes, with two and four minima. - -.. code-block:: python - - def energy_landscape_1(x: float, y: float) -> float: - """A potential energy landscape with 2 minima.""" - sigma = 0.12 # Width of the Gaussian wells - gauss1 = np.exp(-(x**2 + y**2) / (2 * sigma**2)) - gauss2 = np.exp(-(x**2 + (y - 1) ** 2) / (2 * sigma**2)) - return -np.log(gauss1 + gauss2 + 1e-6) - - - def energy_landscape_2(x: float, y: float) -> float: - """A potential energy landscape with 4 minima.""" - sigma = 0.12 # Width of the Gaussian wells - gauss1 = np.exp(-(x**2 + y**2) / (2 * sigma**2)) - gauss2 = np.exp(-((x - 1) ** 2 + y**2) / (2 * sigma**2)) - gauss3 = np.exp(-(x**2 + (y - 1) ** 2) / (2 * sigma**2)) - gauss4 = np.exp(-((x - 1) ** 2 + (y - 1) ** 2) / (2 * sigma**2)) - return -np.log(gauss1 + gauss2 + gauss3 + gauss4 + 1e-6) - - -To compute the force acting on the particle, we need to compute the potential energy gradient. - -.. code-block:: python - - def numerical_gradient( - f: Callable[[float, float], float], x: float, y: float, h: float = 1e-5 - ) -> tuple[float, float]: - """Compute numerical gradient using finite differences.""" - grad_x = (f(x + h, y) - f(x - h, y)) / (2 * h) - grad_y = (f(x, y + h) - f(x, y - h)) / (2 * h) - return -grad_x, -grad_y - - -This function simulates, for both energy landscapes, the dynamics of 100 particles for 10000 timesteps. Particles are initialized close to the minima. - -.. code-block:: python - - def create_trajectory( - energy_landscape: Callable[[float, float], float], file_name: Path - ) -> np.ndarray: - """Simulate Langevin Dynamics on a given energy landscape.""" - rng = np.random.default_rng(0) - n_atoms = 100 - time_steps = 10000 - dt = 0.01 # Time step - diffusion_coeff = 0.6 # Diffusion coefficient (random noise strength) - - if energy_landscape == energy_landscape_1: - particles = rng.standard_normal((n_atoms, 2)) * 0.2 - particles[n_atoms // 2 :, 1] += 1.0 - else: - particles = rng.standard_normal((n_atoms, 2)) * 0.2 - n_group = n_atoms // 4 - particles[n_group : 2 * n_group, 1] += 1 # (0, 1) - particles[2 * n_group : 3 * n_group, 0] += 1 # (1, 0) - particles[3 * n_group :, 0] += 1 # (1, 1) - particles[3 * n_group :, 1] += 1 - - trajectory = np.zeros((time_steps, n_atoms, 2)) - for t in range(time_steps): - for i in range(n_atoms): - x, y = particles[i] - fx, fy = numerical_gradient(energy_landscape, x, y) - noise_x = np.sqrt(2 * diffusion_coeff * dt) * rng.standard_normal() - noise_y = np.sqrt(2 * diffusion_coeff * dt) * rng.standard_normal() - - # Update position with deterministic force and stochastic term - particles[i, 0] += fx * dt + noise_x - particles[i, 1] += fy * dt + noise_y - - trajectory[t, i] = particles[i] - - dataset = np.transpose(trajectory, (1, 0, 2)) - np.save(file_name, dataset) - return dataset - - -Let's simulate the trajectories and store them in two variables. We also save them as .npy files so that we don't have to simulate them every time. - -.. code-block:: python - - file_1 = folder_path / "trj_2.npy" # With 2 minima - file_2 = folder_path / "trj_4.npy" # With 4 minima - - if not file_1.exists(): - dataset_1 = create_trajectory(energy_landscape_1, file_1) - - dataset_1 = np.load(file_1) - - if not file_2.exists(): - dataset_2 = create_trajectory(energy_landscape_2, file_2) - - dataset_2 = np.load(file_2) - - -Now that we have the trajectories, we can, for each one, perform Onion clustering and computing the corresponding information gain, using either - -- only the y coordinate, or -- both x and y coordinates - -For each case, we do the analysis for a range of values of the Onion clustering time resolution ∆t. The information gain for each analysis is saved in the variable "results". -To check if the clustering is working in a meaningful way, we also plot the results of Onion clustering for one specific value of ∆t. - - -.. code-block:: python - - delta_t_list = np.unique(np.geomspace(2, 1000, 45, dtype=int)) - results = np.zeros((4, delta_t_list.size)) - example_delta_t = 4 # Choosing a ∆t which works well to plot results - - for i, dataset in enumerate([dataset_1, dataset_2]): - n_atoms, n_frames, n_dims = dataset.shape - - # We can do clustering using only the y variable: - y_positions = dataset[:, :, 1] - info_gain_y = np.zeros(delta_t_list.size) - - for j, delta_t in enumerate(tqdm(delta_t_list)): - state_list, labels = dynsight.onion.onion_uni_smooth( - y_positions, - delta_t=delta_t, - ) - - if j == example_delta_t: - dynsight.onion.plot_smooth.plot_output_uni( - f"source/_static/Example_{i}_1D.png", - y_positions, - state_list, - ) - - # and compute the information gain: - info_gain_y[j], *_ = dynsight.analysis.info_gain( - data=y_positions.ravel(), - labels=labels.ravel(), - method="kl", - ) # Results are in bit - results[i * 2] = info_gain_y - - # Or we can do clustering using both (x, y) variables: - info_gain_xy = np.zeros(delta_t_list.size) - for j, delta_t in enumerate(tqdm(delta_t_list)): - state_list, labels = dynsight.onion.onion_multi_smooth( - dataset, - delta_t=delta_t, - ) - - if j == example_delta_t: - dynsight.onion.plot_smooth.plot_output_multi( - f"source/_static/Example_{i}_2D.png", - dataset, - state_list, - labels, - ) - - # and compute the information gain: - # We need an array (n_samples, n_dims), and labels (n_samples,) - reshaped_data = dataset.reshape((-1, 2)) - reshaped_labels = labels.reshape((-1,)) - - info_gain_xy[j], *_ = dynsight.analysis.info_gain( - reshaped_data, - reshaped_labels, - method="kl", - ) # Results are in bit - results[i * 2 + 1] = info_gain_xy - - -Here are the plots of the two datasets, with the different clusters identified when clustering the full, bi-dimensional data, using ∆t = 4 frames: - -.. list-table:: - :widths: auto - :align: center - - * - .. image:: _static/Example_0_2D.png - - .. image:: _static/Example_1_2D.png - - -As can be seen, all the clusters are correctly identified at this time resolution ∆t. When we are using only the y-coordinate instead, as expected in both cases just two clusters can be identified (the two plots look the same but they are actually from the two different systems): - -.. list-table:: - :widths: auto - :align: center - - * - .. image:: _static/Example_0_1D.png - - .. image:: _static/Example_1_1D.png - - -We can now plot, for every case and for every choice of ∆t, the corresponding information gain. - -.. code-block:: python - - colorlist = ["C0", "C2", "C1", "C3"] - markerlist = ["s", "o", "d", "o"] - labellist = [ - "2 peaks - 1D clustering", - "2 peaks - 2D clustering", - "4 peaks - 1D clustering", - "4 peaks - 2D clustering", - ] - - fig, ax = plt.subplots() - for i, system in enumerate(results): - ax.plot( - delta_t_list, - system, - label=labellist[i], - c=colorlist[i], - marker=markerlist[i], - ) - - ax.set_xlabel(r"Time resolution $\Delta t$ [frame]") - ax.set_ylabel(r"Information gain $\Delta H$ [bit]") - ax.set_xscale("log") - ax.legend() - fig.savefig("source/_static/Information_gains.png", dpi=600) - -As can be seen in the plot below, clustering both datasets using only the y coordinate gives the same information gain, because only two clusters can be distinguished. - -Clustering the trajectories in the energy potential with two minima using both variables gives once again the same information gain for small values of ∆t; then, the clustering performance degrades because the fraction of classifiable data points starts to decreases. - -Finally, clustering the trajectories in the energy potential with four minima using both variables gives an information gain which is double the previous ones (at least for small ∆t), which makes sense, because 4 clusters are discovered instead of 2. For larger ∆t, we see the same degrading in performance that always affects clustering on multivariate distributions. - -.. image:: _static/Information_gains.png diff --git a/docs/source/example_sample_entropy.rst b/docs/source/example_sample_entropy.rst deleted file mode 100644 index e499a821..00000000 --- a/docs/source/example_sample_entropy.rst +++ /dev/null @@ -1,286 +0,0 @@ -Sample Entropy computation -========================== - -Here we show how to compute the Sample Entropy (SampEn) of a dataset of time-series, comparing the SampEn of the entire dataset with the one of the clusters identified by Onion Clustering. - -To start, let's import the packages we will need and create a folder in the current working directory to save the results in. - -.. code-block:: python - - from pathlib import Path - import matplotlib.pyplot as plt - import numpy as np - import dynsight - - cwd = Path.cwd() - folder_name = "samp_en" - folder_path = cwd / folder_name - if not folder_path.exists(): - folder_path.mkdir() - - -As data, we use LENS signals from a water/ice coexistence simulation which can be downloaded using - -.. code-block:: bash - - git clone git@github.com:matteobecchi/onion_example_files.git - -Let's load the dataset; SampEn calculation is quite time-consuming, so we can use the data from one in every ten molecules. Also, the first frame of the LENS array is always 0.0, so we ignore that value. The sampling time of the time-series is 0.1 ns. - -.. code-block:: python - - data_directory = "onion_example_files/data/univariate_time-series.npy" - data = np.load(data_directory)[::10, 1:] - t_samp = 0.1 - - -The main goal of this example is to compute the combined SampEn of a collection of time-series. We do that by defining the following function, which computes the SampEn of each time-series and then takes the average, ignoring the cases where the result is NaN: - -.. code-block:: python - - def combined_sample_entropies( - data: np.ndarray | list[np.ndarray], - r_factor: float | np.float64, - m_par: int = 2, - ) -> float: - """Compute the average sample entropy of a time-series dataset. - - The average is computed ignoring possible NaN values. - - Parameters: - data : np.ndarray of shape (n_particles, n_frames) or list of np.ndarray of shape (n_frames,). - - r_factor : float - The similarity threshold between signal windows. A common choice - is 0.2 * the standard deviation of the dataset. - - m_par : int (default 2) - The m parameter (length of the considered overlapping windows). - - Returns: - float: The sample entropy of the dataset (average over all the particles, ignoring NaN). - """ - if isinstance(data, np.ndarray) and data.ndim == 1: - data = [data] - - sampen = [] - for particle in data: - try: - tmp = dynsight.analysis.sample_entropy(particle, r_factor, m_par) - sampen.append(tmp) - except RuntimeError: - continue - - return np.mean(np.array(sampen)) - - -Now, we can compute the SampEn for the entire dataset. We have to set the distance threshold r_factor, which is usually set equal to 0.2 times the standard deviation of the dataset. - -.. code-block:: python - - r_fact = 0.2 * np.std(data) - aver_samp_en = combined_sample_entropies(data, r_factor=r_fact) - -Then we can perform Onion Clustering at different ∆t and compute the sample entropy of the different clusters. We want to store both the absolute value of the sampe entropy and the fraction of data-points in each cluster, so that we can then compute the weighted SampEn by multiplying the two quantities. - -For the computation of the SampEn of a cluster, we need a function that creates a list of all the time-series assigned to that cluster. - -.. code-block:: python - - def extract_sequences_for_label( - data: NDArray[np.float64], - reshaped_data: NDArray[np.float64], - labels: NDArray[np.int64], - delta_t: int, - target_label: int, - ) -> list[NDArray[np.float64]]: - """Creates the list of sequences clustered in a specific cluster. - - Extracts sequences corresponding to a specific label from the original - data, merging only consecutive windows with the same label. - - Parameters: - data (np.ndarray): - Original data of shape (n_atoms, n_frames). - - reshaped_data (np.ndarray): - Windowed data of shape (n_atoms * n_windows, delta_t). - - labels (np.ndarray): - Cluster labels of shape (n_atoms * n_windows,). - - delta_t (int): - The length of each time window. - - target_label (int): - The label for which sequences should be extracted. - - Returns: - list: A list of sequences (np.ndarray) where each entry is a - concatenated segment from `data` corresponding to consecutive - occurrences of `target_label`. - """ - n_atoms, n_frames = data.shape - sequences = [] # List to store sequences for the target label - - # Reshape labels to match (n_atoms, n_windows) - n_windows = n_frames // delta_t - labels = labels.reshape((n_atoms, n_windows)) - - for atom_idx in range(n_atoms): # Iterate over each particle - current_sequence: list[NDArray[np.float64]] = [] - - for window_idx in range(n_windows): - if labels[atom_idx, window_idx] == target_label: - # Add the current window to the sequence - current_sequence.extend( - reshaped_data[atom_idx * n_windows + window_idx, :] - ) - # If we had an active sequence, store it and reset - elif current_sequence: - sequences.append(np.array(current_sequence)) - current_sequence = [] - - # Append the last sequence if it was still active - if current_sequence: - sequences.append(np.array(current_sequence)) - - return sequences - - -With this function, we are ready to perform Onion at different ∆t. - -.. code-block:: python - - delta_t_list = np.unique(np.geomspace(6, 499, 20, dtype=int)) - - samp_en_list = [] - fractions = [] - for _, delta_t in enumerate(delta_t_list): - reshaped_data = dynsight.onion.helpers.reshape_from_nt( - data, delta_t - ) - state_list, labels = dynsight.onion.onion_uni(reshaped_data) - - tmp_list = [] - tmp_frac = [] - for label in np.unique(labels): - selected_data = extract_sequences_for_label( - data, - reshaped_data, - labels, - delta_t, - label, - ) - - tmp_sampen = combined_sample_entropies( - selected_data, r_factor=r_fact - ) - tmp_list.append(tmp_sampen) - fraction = np.sum(labels == label) / labels.size - tmp_frac.append(fraction) - - samp_en_list.append(tmp_list) - fractions.append(tmp_frac) - - -We save the results in a np.array, which makes it easier to work with them later. - -.. code-block:: python - - max_n_states = np.max([len(tmp) for tmp in samp_en_list]) - for i, tmp in enumerate(samp_en_list): - while len(tmp) < max_n_states: - tmp.append(0.0) - fractions[i].append(0.0) - - samp_en_array = np.array(samp_en_list).T - frac_array = np.array(fractions).T - - -Finally, we can plot the results. First of all, we can plot the fraction of data-points classified in each cluster as a function of ∆t: - -.. code-block:: python - - labels = ["Unclassified", "Ice", "Interface", "Liquid", "Total SampEn"] - - fig, ax = plt.subplots() - for i, state in enumerate(samp_en_array): - mask = state != 0.0 - ax.plot( - delta_t_list * t_samp, - frac_array[i], - label=labels[i], - marker="o", - ) - ax.set_xlabel(r"Time resolution $\Delta t$ [ns]") - ax.set_ylabel("State population fraction") - ax.set_xscale("log") - ax.legend() - fig.savefig(folder_path / "Fig1.png", dpi=600) - - -Which gives us the folowing output: - -.. image:: _static/SampEn_1.png - -Then, we can plot the SamEn of each individual cluster: - -.. code-block:: python - - fig, ax = plt.subplots() - for i, state in enumerate(samp_en_array): - mask = state != 0.0 - ax.plot( - delta_t_list[mask] * t_samp, - state[mask], - label=labels[i], - marker="o", - ) - ax.plot( - delta_t_list * t_samp, - aver_samp_en * np.ones(len(delta_t_list)), - label=labels[-1], - ls="--", - c="k", - ) - ax.set_xlabel(r"Time resolution $\Delta t$ [ns]") - ax.set_ylabel("Sample Entropy") - ax.set_xscale("log") - ax.set_ylim(bottom=0.0) - ax.legend() - fig.savefig(folder_path / "Fig1.png", dpi=600) - -.. image:: _static/SampEn_2.png - -As expected, solid ice has a very low SampEn, liquid water has the highest, and the interface has intermediate values. Moreover, the SampEn decreases as ∆t increases, because a larger ∆t enforces clusters with stronger temporal coherence. - -Finally, we can plot the SampEn weighted with the population fraction of each cluster. Differently from Shannon entropy, there is no guarantee that SampEn is convex, and thus values larger than the SampEn of the entire dataset are possible. - -.. code-block:: python - - fig, ax = plt.subplots() - y_val = np.zeros(samp_en_array.shape[1]) - for i, state in enumerate(samp_en_array): - ax.fill_between( - delta_t_list * 0.1, - y_val, - y_val + state * frac_array[i], - label=labels[i], - alpha=0.8, - ) - y_val += state * frac_array[i] - ax.plot( - delta_t_list * 0.1, - aver_samp_en * np.ones(len(delta_t_list)), - label=labels[-1], - ls="--", - c="k", - ) - ax.set_xlabel(r"Time resolution $\Delta t$ [ns]") - ax.set_ylabel("Weighted Sample Entropy") - ax.set_xscale("log") - ax.legend() - fig.savefig(folder_path / "Fig3.png", dpi=600) - -.. image:: _static/SampEn_3.png diff --git a/docs/source/index.rst b/docs/source/index.rst index 45982648..8a8ef21c 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -2,7 +2,14 @@ :hidden: :maxdepth: 1 - How to get started + The dynsight workflow + +.. toctree:: + :hidden: + :maxdepth: 2 + :caption: Tutorials + + Tutorials .. toctree:: :hidden: @@ -18,29 +25,11 @@ HDF5er logs -.. toctree:: - :hidden: - :maxdepth: 2 - :caption: Examples: - - Typical analysis workflow - Information gain - Sample Entropy - -.. toctree:: - :hidden: - :maxdepth: 2 - :caption: Recipes: - - Descriptors from a Trj - Dimensionality reduction methods - Entropy calculations - Information gain analysis .. toctree:: :hidden: :maxdepth: 2 - :caption: Modules: + :caption: Modules Modules @@ -117,11 +106,15 @@ Developer Setup .. _`just`: https://github.com/casey/just -Examples -======== +Tutorials and examples +====================== + +We provide and continuously update a set of tutorials to help new users to +get started with ``dynsight``. They are available at the following link: +https://dynsight.readthedocs.io/en/latest/tutorials_menu.html. -There are examples throughout the documentation and available in -the ``examples/`` directory of this repository. +There are also examples throughout the documentation and available in +the ``examples/`` directory of the GitHub repository (https://github.com/GMPavanLab/dynsight/tree/main/examples). Related works and packages ========================== diff --git a/docs/source/recipe_descr_from_trj.rst b/docs/source/recipe_descr_from_trj.rst deleted file mode 100644 index 60456ff6..00000000 --- a/docs/source/recipe_descr_from_trj.rst +++ /dev/null @@ -1,103 +0,0 @@ -Descriptors from a :class:`.trajectory.Trj` -=========================================== - -This recipe explains how to compute descriptors directly from a -:class:`.trajectory.Trj` object. - -.. warning:: - - This code works when run from the ``/docs`` directory of the ``dynsight`` - repo. To use it elsewhere, you have to change the ``Path`` variables - accordingly. - -First of all, we import all the packages and objects we'll need: - -.. testcode:: recipe1-test - - from pathlib import Path - from dynsight.trajectory import Trj - -SOAP ----- - -Computing SOAP for every particle and frame of the trajectory is easy, since -it's directly calculated by the :class:`.trajectory.Trj.get_soap()` method. - -.. warning:: - - Please consider that the SOAP dataset can be very large, due to the high - dimensionality, thus calculations can be expensive, and saving to/loading - from file quite slow. - -.. testcode:: recipe1-test - - # Loading an example trajectory - files_path = Path("../tests/systems/") - trj = Trj.init_from_xtc( - traj_file=files_path / "balls_7_nvt.xtc", - topo_file=files_path / "balls_7_nvt.gro", - ) - - soap = trj.get_soap( - r_cut=2.0, # cutoff radius for neighbors list - n_max=4, # n_max SOAP parameter - l_max=4, # l_max SOAP parameter - selection="all", # compute on a selection of particles - centers="all", # compute for a selection of centers - respect_pbc=False, # consider PBC - n_jobs=1, # use multiprocessing to speed up calculations - ) - -Number of neighbors and LENS ----------------------------- - -Similarly to SOAP, computing number of neighbors or LENS can be done with the -respective methods of the :class:`.trajectory.Trj` class. - -Since both calculations need to compute the list of neighbors for each -particle at each frame, this list is also returned, and can be passed as an -optional parameter, so that when computing both quantities the second -calculation can be sped up significantly. - -.. testcode:: recipe1-test - - # Loading an example trajectory - files_path = Path("../tests/systems/") - trj = Trj.init_from_xtc( - traj_file=files_path / "balls_7_nvt.xtc", - topo_file=files_path / "balls_7_nvt.gro", - ) - - # Computing number of neighbors from scratch - neigcounts, n_neig = trj.get_coord_number( - r_cut=2.0, # cutoff radius for neighbors list - selection="all", # compute on a selection of particles - neigcounts=None, # it will be computed and returned - ) - - # Computing LENS - lens = trj.get_lens( - r_cut=2.0, # cutoff radius for neighbors list - selection="all", # compute on a selection of particles - ) - -Notice that, differently from SOAP - which is computed for every frame, LENS -is computed for every pair of frames. Thus, the LENS dataset has shape -``(n_particles, n_frames - 1)``. Consequently, if you need to match the LENS -values with the particles along the trajectory, you will need to use a sliced -trajectory (removing the last frame). The easiest way to do this is: - -.. testcode:: recipe1-test - - trajslice = slice(0, -1, 1) - shorter_trj = trj.with_slice(trajslice=trajslice) - -.. raw:: html - - ⬇️ Download Python Script - -.. testcode:: recipe1-test - :hide: - - assert soap.dataset.shape == (7, 201, 50) - assert lens.dataset.shape == (7, 200) diff --git a/docs/source/recipe_entropy.rst b/docs/source/recipe_entropy.rst deleted file mode 100644 index b089b0e2..00000000 --- a/docs/source/recipe_entropy.rst +++ /dev/null @@ -1,133 +0,0 @@ -Entropy calculations -==================== - -This recipe explains how to compute Shannon entropy for different types of -datasets using the functions in the ``dynsight.analysis`` module. - -First of all, we import all the packages and objects we'll need: - -.. testcode:: recipe4-test - - import numpy as np - import dynsight - - rng = np.random.default_rng(42) # set the random seed - - -Entropy of a discrete variable ------------------------------- - -Let's compute the Shanon entropy of rolling a dice ``n_sample`` times, which -should be equal to log2(6) bits. - -.. testcode:: recipe4-test - - n_sample = 10000 - rolls = rng.integers(1, 7, size=n_sample) - - dice_entropy = dynsight.analysis.shannon( - data=rolls, - method="histo", - base=2, - ) - # dice_entropy = 2.584832195231254 ~ log2(6) - - -Entropy of a discrete multivariate variable -------------------------------------------- - -Let's compute the Shanon entropy of rolling two dices ``n_sample`` times, -which should be equal to log2(36) bits. - -.. testcode:: recipe4-test - - n_sample = 10000 - rolls = rng.integers(1, 7, size=(n_sample, 2)) - - dices_entropy = dynsight.analysis.shannon( - data=rolls, - method="histo", - base=2, - ) - # dices_entropy = 5.168428344754391 ~ log2(36) - - -Entropy of a continuous variable ---------------------------------- - -Shannon entropy is not univocally defined for continuous variables, but the -difference between the entropy of different distribution is. -For continuous variables, we need to use the Kozachenko-Leonenko (KL) -estimator, passing the argument ``method="kl"``. -Let's compute the difference between the Shannon entropy of two Gaussian distributions, with standard deviations respectively equal to 1 and 2, which -should be 1 bit. - -.. testcode:: recipe4-test - - n_sample = 100000 - data_1 = rng.normal(loc=0.0, scale=1.0, size=n_sample) - data_2 = rng.normal(loc=0.0, scale=2.0, size=n_sample) - - gauss_entropy_1 = dynsight.analysis.shannon( - data=data_1, - method="kl", - base=2, - ) - gauss_entropy_2 = dynsight.analysis.shannon( - data=data_2, - method="kl", - base=2, - ) - diff = gauss_entropy_2 - gauss_entropy_1 - # diff = 0.9994806386420283 - - -Entropy of a continuous multivariate variable ---------------------------------------------- - -And the same is true for multivariate distributions. Let's compute the -difference between the Shannon entropy of two bivariate Gaussian -distributions, with standard deviations respectively equal to 1 and 2, -which should be 2 bits. - -.. testcode:: recipe4-test - - n_sample = 100000 - mean = [1, 1] - cov = np.array([[1, 0], [0, 1]]) - data_1 = rng.multivariate_normal( - mean=mean, - cov=cov, - size=n_sample, - ) - data_2 = rng.multivariate_normal( - mean=mean, - cov=cov * 4.0, - size=n_sample, - ) - - gauss_entropy_1 = dynsight.analysis.shannon( - data=data_1, - method="kl", - base=2, - ) - gauss_entropy_2 = dynsight.analysis.shannon( - data=data_2, - method="kl", - base=2, - ) - diff_2d = gauss_entropy_2 - gauss_entropy_1 - # diff_2d = 2.0101274002195764 - - -.. raw:: html - - ⬇️ Download Python Script - -.. testcode:: recipe4-test - :hide: - - assert np.isclose(dice_entropy, np.log2(6), rtol=1e-3) - assert np.isclose(dices_entropy, np.log2(36), rtol=1e-3) - assert np.isclose(diff, 1, rtol=1e-3, atol=1e-4) - assert np.isclose(diff_2d, 2, rtol=1e-2, atol=1e-2) diff --git a/docs/source/recipe_info_gain.rst b/docs/source/recipe_info_gain.rst deleted file mode 100644 index 539aa77c..00000000 --- a/docs/source/recipe_info_gain.rst +++ /dev/null @@ -1,224 +0,0 @@ -Information gain analysis -========================= - -For the theoretical aspects of this work, see https://doi.org/10.48550/arXiv.2504.12990. - -This recipe explains how to compute the information gain through clustering -analysis. We use a synthetic dataset containing a signal that oscillates -between 0 and 10, with Gaussian noise. Onion clustering is run on a broad -range of time resolutions ∆t. The information gain and the Shannon entropy of -the environments is computed for each value of ∆t. The analysis is implemented -using onion 2.0.0 ("onion smooth"). - -First of all, we import all the packages and objects we'll need: - -.. testcode:: recipe3-test - - from pathlib import Path - - import numpy as np - import dynsight - import matplotlib.pyplot as plt - - -Let's start by creating a the synthetic dataset: - -.. testcode:: recipe3-test - - rng = np.random.default_rng(1234) - - # Parameters - n_atoms = 10 - num_blocks = 10 - block_size = 100 - sigma = 1.0 - - # Generate the array - tmp_data = [ - np.concatenate( - [ - rng.normal(loc=10 * (i % 2), scale=sigma, size=block_size) - for i in range(num_blocks) - ] - ) - for _ in range(n_atoms) - ] - data = np.array(tmp_data) - - -The following function takes as input the dataset, and a list of values -of time resolutions ∆t, and for each of these it performs Onion clustering, and -computes the information gain achieved through clustering with that ∆t. - -.. warning:: - - For now, this only works with univariate datasets. - -The function's output is a tuple of ``np.ndarray``, which for each value of ∆t -contain: - -* the number of identified clusters - shape (delta_t_list.size,); -* the population fraction of each cluster - shape (delta_t_list.size, n_clust); -* the information gain - shape (delta_t_list.size,); -* the Shannon entropy of each cluster - shape (delta_t_list.size, n_clust). - -Additionally, the (float) dataset Shannon entropy is returned. - -.. testcode:: recipe3-test - - def info_gain_with_onion( - delta_t_list: np.ndarray | list[int], - data: np.array, - ) -> tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray, float]: - """Performs full information gain analysis with Onion clustering.""" - n_clusters = np.zeros(delta_t_list.size) - clusters_frac = [] - delta_h = np.zeros(delta_t_list.size) - clusters_entr = [] - - for i, delta_t in enumerate(delta_t_list): - state_list, labels = dynsight.onion.onion_uni_smooth( - data, - delta_t=delta_t, - ) - - n_clusters[i] = len(state_list) - tmp_frac = [0.0] + [state.perc for state in state_list] - tmp_frac[0] = 1.0 - np.sum(tmp_frac) - clusters_frac.append(tmp_frac) - - flat_data = data.ravel() - flat_labels = labels.ravel() - delta_h[i], _, h_0, _ = dynsight.analysis.info_gain( - flat_data, - flat_labels, - method="kl", - ) - - tmp_entr = [] - label_list = np.unique(labels) - if label_list[0] != -1: - tmp_entr.append(-1.0) - - for _, lab in enumerate(label_list): - mask = labels == lab - selected_points = data[mask] - tmp_entr.append( - dynsight.analysis.shannon(selected_points, method="kl") - ) - clusters_entr.append(tmp_entr) - - max_n_envs = np.max([len(elem) for elem in clusters_entr]) - for i, elem in enumerate(clusters_entr): - while len(elem) < max_n_envs: - elem.append(-1.0) - clusters_frac[i].append(0.0) - - cl_frac = np.array(clusters_frac) - cl_entr = np.array(clusters_entr) - - return n_clusters, cl_frac, delta_h, cl_entr, h_0 - - # Example usage - _, n_frames = data.shape - delta_t_list = np.unique(np.geomspace(2, n_frames, 10, dtype=int)) - - n_cl, cl_frac, delta_h, cl_entr, h_0 = info_gain_with_onion( - delta_t_list, - data, - ) - - -A default visualization of the results of this analysis can be obtained with -the following function. Be aware that this could require some tweaking to ensure -that clusters identified at different ∆t are matched in the way the user want -them to, expecially when different number of clusters are found for different ∆t -values. - -.. testcode:: recipe3-test - - def plot_info_results( - delta_t_list: np.ndarray | list[int], - cl_frac: np.ndarray, - cl_entr: np.ndarray, - h_0: float, - file_path: Path, - ) -> None: - frac = cl_frac.T - entr = cl_entr.T - s_list = [] - for i, st_fr in enumerate(frac): - s_list.append(st_fr * entr[i]) - s_cumul = [s_list[0]] - for _, tmp_s in enumerate(s_list[1:]): - s_cumul.append(s_cumul[-1] + tmp_s) - - fig, ax = plt.subplots() - - h_0_array = np.ones(len(delta_t_list)) * h_0 - ax.plot(delta_t_list, h_0_array, ls="--", c="black", marker="") # H_0 - ax.fill_between( - delta_t_list, - 0.0, - s_cumul[0], - alpha=0.5, - ) - for i, tmp_s in enumerate(s_cumul[1:]): - ax.fill_between( - delta_t_list, - s_cumul[i], - tmp_s, - alpha=0.5, - ) - ax.fill_between( - delta_t_list, - s_cumul[-1], - h_0_array, - color="gainsboro", - ) - ax.plot( - delta_t_list, - s_cumul[-1], - c="black", - marker="", - ) # I_clust - - ax.set_xlabel(r"Time resolution $\Delta t$") - ax.set_ylabel(r"Entropy $H$") - ax.set_xscale("log") - - fig.savefig(file_path, dpi=600) - plt.close() - - # Example usage - plot_info_results( - delta_t_list, - cl_frac, - cl_entr, - h_0, - Path("./source/_static/info_plot.png"), - ) - -The figure obtained (see below) shows, for each value of ∆t: - -* The initial entropy H of the entire dataset: dashed line; -* The entropy after clustering: solid line; -* The information gained through clustering ∆I: gray area; -* The Shannon entropy of each of the discovered clusters: colored bands. - -In this case, 2 states are correctly identified for ∆t < 100 (green and orange), -with an information gain of around 1 bit. -For ∆t > 100 all the data points remain unclassified (blue), and the information -gain goes to 0. - -.. image:: _static/info_plot.png - - -.. raw:: html - - ⬇️ Download Python Script - -.. testcode:: recipe3-test - :hide: - - assert np.isclose(delta_h[0], 1.0141, atol=1e-3) diff --git a/docs/source/recipe_soap_dim_red.rst b/docs/source/recipe_soap_dim_red.rst deleted file mode 100644 index 06521f45..00000000 --- a/docs/source/recipe_soap_dim_red.rst +++ /dev/null @@ -1,279 +0,0 @@ -Dimensionality reduction methods -================================ - -This recipe explains how to compute descriptors via dimensionality reduction -of a multivariated descriptor. These example use SOAP, but the same approaches -can be applied to a variety of other quantities. The newly computed -descriptors are always stored in an :class:`.trajectory.Insight` variable. - -All the functions take as optional parameters one or more file paths; if these -paths are passed, the function, before computing some quantity from scratch, -tries to load it from file, in case it has already been previously computed -and saved. For SOAP, which is required in all the examples, we use a function -from dynsight.utilities. - -.. warning:: - - Please consider that the SOAP dataset can be very large, due to the high - dimensionality, thus calculations can be expensive, and saving to/loading - from file quite slow. - -.. warning:: - - This code works when run from the ``/docs`` directory of the ``dynsight`` - repo. To use it elsewhere, you have to change the ``Path`` variables - accordingly. - -First of all, we import all the packages and objects we'll need: - -.. testcode:: recipe2-test - - from pathlib import Path - import dynsight - from dynsight.trajectory import Trj, Insight - from dynsight.utilities import load_or_compute_soap - from sklearn.decomposition import PCA - -Let's start by creating a :class:`.trajectory.Trj` object to use as a -starting point for the examples: - -.. testcode:: recipe2-test - - # Loading an example trajectory - files_path = Path("../tests/systems/") - trj = Trj.init_from_xtc( - traj_file=files_path / "balls_7_nvt.xtc", - topo_file=files_path / "balls_7_nvt.gro", - ) - -Principal Component Analysis (PCA) ----------------------------------- - -Principal Component Analysis is a dimensionality reduction method that finds -the combinations of components that maximize the data variance. More details -on the algorithm here https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html. - -This function takes as input a :class:`.trajectory.Trj` and all the relevant -parameters, and performs the PCA of the corresponding SOAP dataset. - -``n_components`` is the number of PCs that the function stores in the output. - -.. testcode:: recipe2-test - - def compute_soap_pca( - trj: Trj, - r_cut: float, - n_max: int, - l_max: int, - n_components: int, - soap_path: Path | None = None, - pca_path: Path | None = None, - selection: str = "all", - centers: str = "all", - respect_pbc: bool = True, - n_core: int = 1, - ) -> Insight: - if pca_path is not None and pca_path.exists(): - return Insight.load_from_json(pca_path) - - soap = load_or_compute_soap( - trj=trj, - r_cut=r_cut, - n_max=n_max, - l_max=l_max, - selection=selection, - centers=centers, - respect_pbc=respect_pbc, - n_core=n_core, - soap_path=soap_path, - ) - - n_atom, n_frames, n_dims = soap.dataset.shape - reshaped_soap = soap.dataset.reshape(n_atom * n_frames, n_dims) - pca = PCA(n_components=n_components) - transformed_soap = pca.fit_transform(reshaped_soap) - pca_ds = transformed_soap.reshape(n_atom, n_frames, -1) - - soap_pca = Insight(pca_ds, meta=soap.meta.copy()) - - if pca_path is not None: - soap_pca.dump_to_json(pca_path) - - return soap_pca - - # Example of how to use - soap_pc1 = compute_soap_pca( - trj=trj, - r_cut=2.0, - n_max=4, - l_max=4, - n_components=1, - ) - -The output :class:`.trajectory.Insight` stores the SOAP information in its -"meta" attribute. - -Time-lagged Independent Component Analysis (TICA) -------------------------------------------------- - -More details on the algorithm here: - -.. toctree:: - :maxdepth: 1 - - many_body_tica <_autosummary/dynsight.descriptors.many_body_tica> - -This function takes as input a :class:`.trajectory.Trj` and all the relevant -parameters, and performs the TICA of the corresponding SOAP dataset. - -``lag_time`` is the time lag used to perform TICA. -``tica_dim`` is the number of TICs that the function stores in the output. - -.. testcode:: recipe2-test - - def compute_soap_tica( - trj: Trj, - r_cut: float, - n_max: int, - l_max: int, - lag_time: int, - tica_dim: int, - soap_path: Path | None = None, - tica_path: Path | None = None, - selection: str = "all", - centers: str = "all", - respect_pbc: bool = True, - n_core: int = 1, - ) -> Insight: - if tica_path is not None and tica_path.exists(): - return Insight.load_from_json(tica_path) - - soap = load_or_compute_soap( - trj=trj, - r_cut=r_cut, - n_max=n_max, - l_max=l_max, - selection=selection, - centers=centers, - respect_pbc=respect_pbc, - n_core=n_core, - soap_path=soap_path, - ) - - rel_times, _, tica_ds = dynsight.descriptors.many_body_tica( - soap.dataset, - lag_time=lag_time, - tica_dim=tica_dim, - ) - - meta = soap.meta.copy() - meta.update({ - "lag_time": lag_time, - "rel_times": rel_times, - }) - soap_tica = Insight(tica_ds, meta=meta) - - if tica_path is not None: - soap_tica.dump_to_json(tica_path) - - return soap_tica - - # Example of how to use - soap_tic1 = compute_soap_tica( - trj=trj, - r_cut=10.0, - n_max=4, - l_max=4, - lag_time=10, - tica_dim=1, - ) - -The output :class:`.trajectory.Insight` stores the SOAP information in its -"meta" attribute, together with the ``lag_time`` parameter and ``rel_times``, -the relaxation times of the computed TICs. - - -timeSOAP (tSOAP) ----------------- - -More details on the algorithm here: - -.. toctree:: - :maxdepth: 1 - - timesoap <_autosummary/dynsight.soap.timesoap> - -This function takes as input a :class:`.trajectory.Trj` and all the relevant -parameters, and computes the corresponding timeSOAP dataset. - -``delay`` is the time lag used to perform timeSOAP. - -.. testcode:: recipe2-test - - def compute_timesoap( - trj: Trj, - r_cut: float, - n_max: int, - l_max: int, - delay: int = 1, - soap_path: Path | None = None, - tsoap_path: Path | None = None, - selection: str = "all", - centers: str = "all", - respect_pbc: bool = True, - n_core: int = 1, - ) -> Insight: - if tsoap_path is not None and tsoap_path.exists(): - return Insight.load_from_json(tsoap_path) - - soap = load_or_compute_soap( - trj=trj, - r_cut=r_cut, - n_max=n_max, - l_max=l_max, - selection=selection, - centers=centers, - respect_pbc=respect_pbc, - n_core=n_core, - soap_path=soap_path, - ) - - tsoap = soap.get_angular_velocity(delay=delay) - - if tsoap_path is not None: - tsoap.dump_to_json(tsoap_path) - - return tsoap - - # Example of how to use - tsoap = compute_timesoap( - trj=trj, - r_cut=10.0, - n_max=4, - l_max=4, - ) - -The output :class:`.trajectory.Insight` stores the SOAP information in its -"meta" attribute, together with the ``delay`` parameter. - -Notice that, differently from SOAP - which is computed for every frame, tSOAP -is computed for every pair of frames. Thus, the tSOAP dataset has shape -``(n_particles, n_frames - 1)``. Consequently, if you need to match the tSOAP -values with the particles along the trajectory, you will need to use a sliced -trajectory (removing the last frame). The easiest way to do this is: - -.. testcode:: recipe2-test - - trajslice = slice(0, -1, 1) - shorter_trj = trj.with_slice(trajslice=trajslice) - -.. raw:: html - - ⬇️ Download Python Script - -.. testcode:: recipe2-test - :hide: - - assert soap_pc1.dataset.shape == (7, 201, 1) - assert soap_tic1.dataset.shape == (7, 201, 1) - assert tsoap.dataset.shape == (7, 200) diff --git a/docs/source/trajectory.rst b/docs/source/trajectory.rst deleted file mode 100644 index c2488627..00000000 --- a/docs/source/trajectory.rst +++ /dev/null @@ -1,56 +0,0 @@ -How to get started: the ``trajectory`` module -============================================= - -The easiest way to use ``dynsight`` is via the ``trajectory`` module, which -offers an object-oriented implementation of most of the functions and utilities, -to facilitate the workflow of any analysis. - -Moreover, the ``trajectory`` classes make it easier to save and share results, -and has a built-in logging module. - -The :class:`.trajectory.Trj` class is a container for a MDAnalysis.Universe, -which has methods for the computation of all the descriptors implemented in -``dynsight``. - -These descriptors, as well as the output of subsequent analyses, are stored in -:class:`.trajectory.Insight` or :class:`.trajectory.ClusterInsight` objects. - -We recommend the users, when possible, to write code using this module. - -As a minimal example, a typical code for the computation of the SOAP descriptor -may look like this: - -.. code-block:: - - from pathlib import Path - from dynsight import Trj - - traj_file = Path("path/to/the/traj.xtc") - topo_file = Path("path/to/the/traj.gro") - - trj = Trj.init_from_xtc( - traj_file=traj_file, - topo_file=topo_file, - ) # This is a Trj object - - soap = trj.get_soap( - r_cut=10.0, - n_max=4, - l_max=4 - ) # This is an Insight object - - soap_values = soap.dataset # The np.ndarray with the computed values - -Complete examples can be found in the recipes section of this documentation. - -Classes -------- - -.. toctree:: - :maxdepth: 1 - - Trj <_autosummary/dynsight.trajectory.Trj> - Insight <_autosummary/dynsight.trajectory.Insight> - ClusterInsight <_autosummary/dynsight.trajectory.ClusterInsight> - OnionInsight <_autosummary/dynsight.trajectory.OnionInsight> - OnionSmoothInsight <_autosummary/dynsight.trajectory.OnionSmoothInsight> diff --git a/docs/source/tutorials/getting_started.rst b/docs/source/tutorials/getting_started.rst new file mode 100644 index 00000000..ea5cd952 --- /dev/null +++ b/docs/source/tutorials/getting_started.rst @@ -0,0 +1,204 @@ +Getting Started +=============== + +Welcome to the first tutorial of the dynsight platform. +Before start, we strongly suggest to read the `dynsight workflow page <../workflow.html>`_ where the typical +workflow of a typical ``dynsight`` usage is described. Briefly, the reccomended way to use ``dynsight`` is via loading a trajectory into a :class:`.trajectory.Trj` +object, and then using the methods of this class to compute the desired descriptors and/or analyses. + +In this tutorial, we will show you a minimal example of a ``dynsight`` analysis workflow; +starting from loading a trajectory, computing a descriptor and finishing +with clustering analysis. + +At the end of this tutorial, you will find links to download the full ``python`` scripts +and its relevant input files. + + +1. Loading a trajectory +----------------------- + +The ``dynsight.trajectory`` module provides a unified set of tools that +streamline the analysis of many-body trajectories, offering a consistent and +user-friendly interface across most analysis tasks. + +This is achieved through the class, :class:`.trajectory.Trj`, which corresponds to an +object that contains a trajectory, meaning the coordinates of a set of particles over a series of frames. + + +The first step is usually to create a :class:`.trajectory.Trj` object from +some trajectory file (e.g., `.xtc` and `.gro` files for GROMACS simulation output). In this example, we are using the water/ice +coexistence trajectory, which can be downloaded here: + +.. image:: ../_static/tutorials/getting_started/wat_ice.png + :scale: 50% + :align: center + +.. raw:: html + + ⬇️ Download the .gro file
+ ⬇️ Download the .xtc file + +We now can load the trajectory using the :class:`.trajectory.Trj.init_from_xtc()` method. All file operations +(checking existence, opening, saving, defining a path) are done using the `pathlib `_ library. + +.. testcode:: getting_started_test + + from pathlib import Path + from dynsight.trajectory import Trj + + files_path = Path("source/_static/simulations") + trj = Trj.init_from_xtc( + traj_file=files_path / "ice_water_ox.xtc", + topo_file=files_path / "ice_water_ox.gro", + ) + +.. testcode:: getting_started_test + :hide: + + assert trj.n_atoms == 2048 + assert trj.n_frames == 1001 + +Other methods to load trajectories are listed `here <../_autosummary/dynsight.trajectory.Trj.html>`__ and can be simply +replaced with your format (If you need another format, please submit an issue `here `__). + +2. Computing a descriptor (the LENS case) +----------------------------------------- + +Now the ``trj`` variable contains the trajectory, and using the methods of the +:class:`.trajectory.Trj` class we can perform all the dynsight analyses on +this trajectory. For instance, let's say we want to compute the LENS +descriptor (`Crippa et al. `__). +This can be easily done using the :class:`.trajectory.Trj.get_lens()` method after the trajectory loading: + +.. code-block:: python + + # Adjust n_jobs according to your computer capabilities + lens = trj.get_lens( + r_cut=10, + n_jobs=4 + ) + +.. important:: + The units for the ``r_cut`` parameter are the same as those used in the trajectory (In this case Angstroms). + +The method :class:`.trajectory.Trj.get_lens()` returns a +:class:`.trajectory.Insight` object (``lens``), which in its ``.dataset`` attribute +contains the LENS values computed on the ``trj`` trajectory. Moreover, its +``.meta`` attribute stores all the parameters relevant to this descriptor +computation, in this case: + +.. code-block:: python + + print(lens.meta) + +outputs: + +.. code-block:: bash + + {'name': 'lens', 'r_cut': 10, 'delay': 1, 'centers': 'all', 'selection': 'all'} + +3. Clustering analysis using Onion Clustering +---------------------------------------------- + +The :class:`.trajectory.Insight` objects can directly be used to perform post-processing such as smoothing (see the other `tutorials pages <../tutorials_menu.html>`_). +But they can also be used to perform clustering analysis. In this example, we will show how to use the +``Onion Clustering`` method (`Becchi et al. `__) to cluster the LENS values computed above. + +We can perform clustering on the ``lens`` object, using for +instance the :class:`Insight.get_onion_smooth()` method with a time window of 10 frames: + +.. code-block:: python + + lens_onion = lens.get_onion_smooth(delta_t=10) + +``lens_onion`` is a :class:`.trajectory.OnionSmoothInsight` object, +which stores the clustering output (similarly to a normal ``Insight`` object), and offers several methods to visualize +the results. Here we show some examples of visualization: + +.. code-block:: python + + lens_onion.plot_output( + file_path=files_path / "output_plot.png", + data_insight=lens, + ) + lens_onion.plot_one_trj( + file_path=files_path / "single_trj.png", + data_insight=lens, + particle_id=1234, + ) + +The output plot: + +.. image:: ../_static/tutorials/getting_started/output_plot.png + :scale: 13% + :align: center + +The single particle trajectory plot: + +.. image:: ../_static/tutorials/getting_started/single_trj.png + :scale: 15% + :align: center + +It is also possible to save a copy of the trajectory where each particle is labeled +according to its cluster assignment, using the ``dump_colored_trj()`` method. Notice that, +differently from other descriptors, which are computed for every frame, LENS +is computed for every pair of frames. Thus, the LENS dataset has shape +``(n_particles, n_frames - 1)``. Consequently, if you need to match the LENS +values with the particles along the trajectory, you will need to use a sliced +trajectory (removing the last frame). The easiest way to do this is: + +.. testcode:: getting_started_test + + trajslice = slice(0, -1, 1) + sliced_trj = trj.with_slice(trajslice=trajslice) + +.. testcode:: getting_started_test + :hide: + + assert isinstance(sliced_trj, Trj) + assert sliced_trj.n_atoms == 2048 + assert sliced_trj.n_frames == trj.n_frames - 1 + +Then we can dump the colored trajectory: + +.. code-block:: python + + lens_onion.dump_colored_trj( + trj=sliced_trj, + file_path=files_path / "colored_trj.xyz", + ) + +This allows to create visualizations of the clustering results using external software such as VMD or Ovito: + +.. image:: ../_static/tutorials/getting_started/colored_wat_ice_lens_10.png + :scale: 45% + :align: center + +Full scripts and input files +---------------------------- + +.. raw:: html + + ⬇️ Download the .gro file
+ ⬇️ Download the .xtc file
+ ⬇️ Download Python Script + +.. testcode:: getting_started_test + :hide: + + import numpy as np + from dynsight.trajectory import OnionSmoothInsight + + trj_test = trj.with_slice(slice(0, 4, 1)) + + expected_tests = Path("source/_static/tutorials/getting_started/doctests") + + lens_test = trj_test.get_lens(r_cut=10, n_jobs=1) + + reference_lens = np.load(expected_tests / "test_lens.npy") + assert np.allclose(lens_test.dataset, reference_lens, atol=1e-6) + + lens_onion = lens_test.get_onion_smooth(delta_t=10) + + assert isinstance(lens_onion, OnionSmoothInsight) + diff --git a/docs/source/tutorials/spatial_denoising.rst b/docs/source/tutorials/spatial_denoising.rst new file mode 100644 index 00000000..435d3636 --- /dev/null +++ b/docs/source/tutorials/spatial_denoising.rst @@ -0,0 +1,239 @@ +Spatial Denoising +================= + +Welcome to the spatial denoising tutorial. + +In this tutorial, we will show you the effect of noise reduction by using +the spatial denoising algorithm implemented in ``dynsight`` (Related paper: `Donkor et al. `__, `Martino et al. `__). +We will also explain another application of the Onion Clustering algorithm to explore different time resolutions for the classification (:class:`.trajectory.Insight.get_onion_analysis()`). + + +At the end of this tutorial, you will find links to download the full ``python`` scripts +and its relevant input files. + +1. Computing TimeSOAP +--------------------- + +As explained in the `getting started tutorial <./getting_started.html>`_, the first step is to load a trajectory into a :class:`.trajectory.Trj` object: + +.. testcode:: spatial_denoising_test + + from pathlib import Path + from dynsight.trajectory import Trj + + files_path = Path("source/_static/simulations") + trj = Trj.init_from_xtc( + traj_file=files_path / "ice_water_ox.xtc", + topo_file=files_path / "ice_water_ox.gro", + ) + +.. testcode:: spatial_denoising_test + :hide: + + assert trj.n_atoms == 2048 + assert trj.n_frames == 1001 + +In this tutorial, we will use the descriptor ``TimeSOAP`` (`Caruso et al. `__). + + +Before understanding what ``TimeSOAP`` is, we need to define the Smooth Overlap of Atomic Positions (``SOAP``) spectra (`Bartók et al. `__). +The ``SOAP`` descriptor, is a structural descriptor that provides a high-dimensional representation of the local structure +around a particle by encoding the relative spatial arrangement of neighboring particles into +a smooth and continuous representation. +In this sense, the SOAP power spectrum serves as a descriptor of the degree of local order or disorder in the relative displacements of +the weights around a center (symmetry, distances, etc.). ``TimeSOAP`` is a time-dependent descriptor that, starting from the structural description of local environments provided by ``SOAP``, +detects and tracks high-dimensional fluctuations over time in the ``SOAP`` spectra. +It captures local structural changes or transitions in the neighborhood of every unit. + + +To compute ``TimeSOAP``, we first need to compute the ``SOAP`` spectra. In ``dynsight``, we can use the :class:`.trajectory.Trj.get_soap()` method: + +.. warning:: + + Consider that the computation of ``SOAP`` can be computationally expensive depending on the system size or the parameters used and can produce very large datasets. + It is recommended to tune the ``n_max`` or ``l_max`` parameter and speed up the calculation with ``n_jobs`` (according to the amount of CPU cores of your machine). + +.. code-block:: python + + # Computing SOAP descriptor + soap = trj.get_soap( + r_cut=10, + n_max=8, + l_max=8, + n_jobs=4, # Adjust n_jobs according to your computer capabilities + ) + +The ``soap`` variable is a :class:`.trajectory.Insight` object that contains the computed ``SOAP`` spectra. +We can now use this dataset to obtain the ``TimeSOAP`` descriptor with the :class:`.trajectory.Insight.get_timesoap()` method: + +.. code-block:: python + + # Computing TimeSOAP descriptor + _, tsoap = trj.get_timesoap( + soap_insight=soap, + ) + +Alternatively, we can compute the ``SOAP`` and ``TimeSOAP`` descriptors in a single step by using the :class:`.trajectory.Trj.get_timesoap()` method directly: + +.. code-block:: python + + soap, tsoap = trj.get_timesoap( + r_cut=10, + n_max=8, + l_max=8, + n_jobs=4 + ) + +The ``tsoap`` and ``soap`` variables are the same :class:`.trajectory.Insight` objects computed above. + +2. Onion Clustering analysis +---------------------------- +As seen in the `getting started tutorial <./getting_started.html>`_, once we have computed the ``TimeSOAP`` descriptor, +we can perform the clustering analysis using the Onion Clustering method. + +Given a ``delta_t`` window (in frames), Onion assigns each particle to the cluster (identified through a Kernel Density Estimation of the entire dataset) where it spends all the time. +Particles that cannot be assigned to a cluster are labeled as "unclassified fraction". + +Through the :class:`.trajectory.Insight.get_onion_analysis()` method, we can perform the Onion Clustering recursively for different time windows (``delta_t``). + +.. code-block:: python + + # Performing Onion Clustering on the descriptor computed + tsoap.get_onion_analysis( + delta_t_min=2, + delta_t_num=20, + fig1_path=files_path / "onion_analysis.png", + ) + +This will perform the Onion Clustering analysis for 20 time windows from 2 frames to the entire simulation length. + +.. image:: ../_static/tutorials/spatial_denoising/onion_analysis.png + :scale: 13% + :align: center + +The plot shows how the number of clusters (blue line) and the unclassified fraction (orange line) change as a function of the time window. + +3. Spatial Denoising +-------------------- + +Nonetheless, the presence of noise in the trajectory can affect the quality of the clustering results. +To reduce the effect of noise, we can apply several denoising algorithms. Here, we will use the spatial denoising algorithm proposed by `Donkor et al. `__. +This algorithm works by averaging the descriptor values of neighboring particles within a cutoff radius ``r_cut``. +As seen in the `getting started tutorial <./getting_started.html>`_ for LENS, also TimeSOAP is computed for every pair of frames. Thus, the resulting dataset has shape +``(n_particles, n_frames - 1)``. Consequently, we need to remove the last frame from the trajectory: + +.. code-block:: python + + # Applying Spatial Denoising + sliced_trj = trj.with_slice(slice(0, -1, 1)) + sp_denoised_tsoap = tsoap.spatial_average( + trj=sliced_trj, + r_cut=10, + n_jobs=4, # Adjust n_jobs according to your computer capabilities + ) + +We can now repeat the Onion Clustering analysis on the denoised descriptor: + +.. code-block:: python + + # Performing Onion Clustering on the descriptor computed + sp_denoised_tsoap.get_onion_analysis( + delta_t_min=2, + delta_t_num=20, + fig1_path=files_path / "denoised_onion_analysis.png", + ) + +.. image:: ../_static/tutorials/spatial_denoising/denoised_onion_analysis.png + :scale: 13% + :align: center + +Comparing the two plots, we can see that the denoised descriptor leads to a higher number of +clusters detected thanks to reduction of noise-related fluctuations in the data. + +4. Visualization +---------------- + +Now we can select a specific time window and visualize the clustering results for both the raw and denoised descriptors. Here, we considered as the best +time window the one that corresponds to the highest number of clusters and longest ``delta_t`` (in this case, ``delta_t=37`` frames). +This choice should guarantee that the clusters identified are stable for longer time. + +.. code-block:: python + + single_point_onion = tsoap.get_onion_smooth( + delta_t=37, + ) + single_point_onion.dump_colored_trj( + sliced_trj, + files_path / "onion_trj.xyz", + ) + + denoised_single_point_onion = sp_denoised_tsoap.get_onion_smooth( + delta_t=37, + ) + denoised_single_point_onion.dump_colored_trj( + sliced_trj, + files_path / "onion_trj_denoised.xyz", + ) + +The resulting colored snapshots for the two descriptors (raw on the left, denoised on the right) are shown below: + +.. image:: ../_static/tutorials/spatial_denoising/color_1.png + :scale: 50% + :align: left + +.. image:: ../_static/tutorials/spatial_denoising/color_2.png + :scale: 50% + :align: right + +.. raw:: html + +
+ +Full scripts and input files +---------------------------- + +.. raw:: html + + ⬇️ Download the .gro file
+ ⬇️ Download the .xtc file
+ ⬇️ Download Python Script + +.. testcode:: spatial_denoising_test + :hide: + + import numpy as np + + trj_test = trj.with_slice(slice(0, 2, 1)) + + expected_tests = Path("source/_static/tutorials/spatial_denoising/doctests") + + soap_test = trj_test.get_soap( + r_cut=10, + n_max=8, + l_max=8, + n_jobs=1, # Adjust n_jobs according to your computer capabilities + ) + + reference_soap = np.load(expected_tests / "test_soap.npy") + + assert soap_test.meta["r_cut"]==10 + assert soap_test.meta["n_max"]==8 + assert soap_test.meta["l_max"]==8 + assert np.allclose(soap_test.dataset, reference_soap, atol=1e-6) + + _, tsoap_test = trj.get_timesoap( + soap_insight=soap_test, + ) + + reference_tsoap = np.load(expected_tests / "test_tsoap.npy") + assert np.allclose(tsoap_test.dataset, reference_tsoap, atol=1e-6) + + sliced_trj_test = trj.with_slice(slice(0, 1, 1)) + sp_denoised_tsoap_test = tsoap_test.spatial_average( + trj=sliced_trj_test, + r_cut=10, + n_jobs=1, + ) + + reference_denoised_tsoap = np.load(expected_tests / "test_denoised_tsoap.npy") + assert np.allclose(sp_denoised_tsoap_test.dataset, reference_denoised_tsoap, atol=1e-6) diff --git a/docs/source/tutorials_menu.rst b/docs/source/tutorials_menu.rst new file mode 100644 index 00000000..2a55ce01 --- /dev/null +++ b/docs/source/tutorials_menu.rst @@ -0,0 +1,59 @@ +Tutorials +========= + +Welcome to the dynsight tutorials section! +Here, you will find a collection of step-by-step guides designed +to help you get started with dynsight and explore its various features. +We are continuously working to expand this section with more tutorials, +so stay tuned for future updates! + +.. grid:: 3 + :gutter: 3 + + .. grid-item-card:: + :link: tutorials/getting_started + :link-type: doc + :class-card: tutorial-card + + .. image:: _static/tutorials/getting_started/colored_wat_ice_lens_10.png + :alt: Getting Started + :class: tutorial-card-img + + .. rubric:: Getting Started + :class: tutorial-card-title + + .. grid-item-card:: + :link: tutorials/spatial_denoising + :link-type: doc + :class-card: tutorial-card + + .. image:: _static/tutorials/spatial_denoising/denoised_onion_analysis.png + :alt: Spatial Denoising + :class: tutorial-card-img + + .. rubric:: Spatial Denoising + :class: tutorial-card-title + + .. grid-item-card:: + :class-card: tutorial-card + + .. image:: _static/logo_dynsight.png + :alt: More Soon... + :class: tutorial-card-img + + .. rubric:: More Soon... + :class: tutorial-card-title + +.. toctree:: + :hidden: + :maxdepth: 2 + :caption: tutorials_list + + Getting Started + Spatial Denoising + +Other example files +------------------- + +You can find more scripts in the `examples folder `__ of the dynsight +GitHub repository. \ No newline at end of file diff --git a/docs/source/workflow.rst b/docs/source/workflow.rst new file mode 100644 index 00000000..fdf77aec --- /dev/null +++ b/docs/source/workflow.rst @@ -0,0 +1,83 @@ +The ``dynsight`` workflow +========================= + +The dynsight platform has been designed to merge different techniques or methods into a single, +user-friendly workflow. The final aim is to allow users to easily build complex analysis pipelines +with minimal effort and with a single software. + +.. image:: _static/workflow.jpeg + :align: center + +System +------ + +``dynsight`` is a modular and flexible framework aimed at the analysis of +dynamical trajectories, regardless of how they are generated. + +This design allows the same set of tools and methods to be applied consistently +to trajectories originating from molecular dynamics simulations as well as from experimental video data. + + +Trajectory +---------- + +All the ``dynsight`` applications operate on trajectories, loaded from standard file types, containing +particles coordinates sampled over time. In its current state, ``dynsight`` +supports some among the most common trajectory formats, such as .xtc, .xyz, as well as trajectories +provided through ``MDAnalysis`` Universes. + +Descriptor calculations in ``dynsight`` are performed via the :class:`.trajectory.Trj` class which +wraps an ``MDAnalysis.Universe``. + +Dataset and analyses +-------------------- + +Once a trajectory is loaded into a :class:`.trajectory.Trj` object, users can compute a variety of +descriptors using the methods provided by this class. The full list of methods is available `here <_autosummary/dynsight.trajectory.Trj.html>`_. + +Most of these methods return datasets encapsulated in :class:`.trajectory.Insight` objects, which can be a target of post-processing analyses +or clustering methods. There are also specific types of Insight objects, such as :class:`.trajectory.OnionInsight` that contain tailored +visualization methods or analysis for specific algorithms (such as the Onion Clustering algorithm in this case). + +Examples and tutorials +---------------------- + +As a minimal example, a typical code for the computation of the LENS descriptor +may look like this: + +.. code-block:: + + from pathlib import Path + from dynsight import Trj + + traj_file = Path("path/to/the/traj.xtc") + topo_file = Path("path/to/the/traj.gro") + + trj = Trj.init_from_xtc( + traj_file=traj_file, + topo_file=topo_file, + ) # This is a Trj object + + lens_descriptor = trj.get_lens( + r_cut=10.0, + ) # This is an Insight object + + lens_values = lens_descriptor.dataset # The np.ndarray with the computed values + + clustering = lens_descriptor.get_onion_smooth( + time_window=10, + ) # This is an OnionSmoothInsight object + +We strongly suggest to follow the tutorials available in the `tutorials section `_ + +Classes +------- + +.. toctree:: + :maxdepth: 1 + + Trj <_autosummary/dynsight.trajectory.Trj> + Insight <_autosummary/dynsight.trajectory.Insight> + ClusterInsight <_autosummary/dynsight.trajectory.ClusterInsight> + OnionInsight <_autosummary/dynsight.trajectory.OnionInsight> + OnionSmoothInsight <_autosummary/dynsight.trajectory.OnionSmoothInsight> diff --git a/pyproject.toml b/pyproject.toml index 9a3b8ff4..3acfdf36 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -36,6 +36,7 @@ dev = [ "pytest-cov", "sphinx", "sphinx-copybutton", + "sphinx_design", "build", "twine", "furo",