diff --git a/README.rst b/README.rst index b3c8bed..ea00e91 100644 --- a/README.rst +++ b/README.rst @@ -40,6 +40,7 @@ I'll add later a better looking section to the official documentation. For now I - `Ondřej Čertík `_ with pull request `#3 `_: Optimized Fortran code and compilation procedure for fair speed comparision. - `Daniel Klotz `_ with pull request `#4 `_ , `#5 `_ and `#9 `_: All spell checking. +- `Andrew MacDonald `_ for providing HBV-Edu simulation data from the original MATLAB implementation (see `##10 `_) Contact ------- diff --git a/test/data/hbv_qsim.csv b/test/data/hbv_qsim.csv new file mode 100644 index 0000000..bee7bdd --- /dev/null +++ b/test/data/hbv_qsim.csv @@ -0,0 +1,3652 @@ +0 +1.33724537037 +1.30002268519 +1.26438267593 +1.2302266313 +1.19746317885 +1.16600770903 +1.5274886709 +1.6653476475 +2.24801307688 +3.19550220962 +3.35232706231 +3.00548872443 +2.70196008688 +2.43614647427 +2.20317980733 +2.38944620312 +2.82329224337 +2.54783281304 +2.30635173743 +2.09446845785 +1.90837115569 +1.82462858285 +1.80600337237 +1.69815040346 +1.64783407939 +1.59983234708 +1.72431272926 +2.22590632538 +4.10793434634 +7.20141627867 +9.96694457982 +11.1025005639 +10.5474125382 +9.39680948412 +8.39137361558 +9.28508929626 +12.1216936073 +13.0113136433 +13.1072816853 +12.8637694742 +13.072277639 +12.3043902525 +12.5391274539 +12.0677694074 +10.8529064474 +9.79726904625 +8.85276694622 +8.02446726167 +7.29739533574 +6.65852058382 +6.09650381682 +5.60147741135 +5.16485405677 +4.77916036412 +4.43789210481 +4.27064920861 +4.21434210501 +3.93445117511 +5.04211566234 +7.04237047907 +6.91242542035 +7.03231333458 +6.68902298618 +6.1173013376 +5.61394647654 +5.17018986116 +4.77840047725 +4.43193700729 +4.12501921658 +3.85261605826 +3.61034832372 +3.39440394762 +3.20146432228 +3.10638522392 +3.03847466003 +2.96287447141 +3.91220735486 +5.29157915182 +5.20450881516 +4.78249413462 +5.34395092741 +6.48101943233 +5.90858843196 +5.40517143112 +4.96190465049 +4.61085267935 +4.32819788323 +4.19654942718 +4.82155717772 +5.72012482406 +5.82584513053 +5.84712082993 +5.70090190319 +5.23787305988 +4.81399926803 +4.44875362791 +4.16563910867 +4.62653557012 +5.45875274753 +5.37393318999 +5.55271252955 +5.12118354528 +4.76283861154 +5.21579554721 +6.2444366272 +5.88475624003 +5.83360460186 +6.03761711763 +5.79043929244 +5.44182019939 +5.39567287063 +5.34170307568 +6.18070890422 +7.80465963358 +7.78247712623 +7.68130422985 +7.59733859938 +7.67047009956 +8.16530667098 +7.61026134891 +7.06991543208 +6.98199445482 +7.13706905897 +6.78782099523 +6.66641191511 +7.10184845822 +7.18671951025 +7.10505228322 +6.82757255416 +6.95942358299 +6.77839233952 +6.47827217736 +6.06670290827 +6.04188411346 +6.6843107244 +7.02083648358 +6.50006440448 +5.96489234519 +5.49309592733 +5.29367500985 +5.31660005689 +5.00398444131 +4.99034686982 +5.21646024192 +4.93699580658 +4.89213467035 +5.09092516936 +5.95397795982 +6.65107633474 +6.16559904302 +5.66053750409 +5.84653394913 +6.46900902677 +5.97859734466 +5.53714501606 +5.15382694268 +4.82212181209 +4.69568025283 +4.67131803354 +5.29719708932 +6.30295776033 +5.93518872314 +6.04865265979 +6.44552648627 +6.47661551018 +5.93088745157 +5.45017940143 +5.02615725144 +4.6515679575 +4.32009904879 +4.02625639971 +3.76525789046 +3.584507937 +3.4582090792 +3.25730915422 +3.23298856581 +3.22910209449 +3.22778583966 +3.25518600754 +3.06534743767 +2.97481610628 +2.89951417933 +2.8269827393 +2.77344849272 +2.7052350008 +2.63940534048 +2.57583027019 +2.51438965839 +2.50317491582 +2.44739302295 +2.38942909547 +2.33334573191 +2.48212746604 +2.62088780028 +2.87844349138 +3.15572023028 +3.20029264381 +3.4859728952 +3.42381475453 +3.383897614 +3.42091344082 +3.16167927563 +2.93243586028 +2.72935859111 +2.54911857908 +2.46362055753 +2.39847436495 +2.33907606164 +2.59555195938 +2.74049481675 +2.67157312516 +2.48768035217 +2.52028636428 +2.60481831421 +2.52344125125 +2.36519041149 +2.30106880383 +2.34205856441 +2.47733138007 +2.64520553578 +2.69025172341 +3.15199531391 +3.78697829062 +3.53922108939 +3.34509469961 +3.07109482253 +3.01573159529 +3.54426327696 +4.319280432 +4.46086158032 +4.08764722714 +3.79194924116 +3.48756872646 +3.35445569804 +3.34266817294 +3.0734232492 +2.83587412678 +2.62596647227 +2.44017169321 +2.31291613669 +2.25021792254 +2.19008886399 +2.13237236261 +2.07692336919 +2.02360747933 +1.97986427435 +1.97944179426 +2.08045462858 +2.15686215649 +2.10850013279 +2.05107583617 +1.99602036899 +1.9431887272 +1.89426876544 +1.84540673069 +1.86071706524 +2.01554283474 +1.9710237655 +1.91705223791 +1.86532422506 +1.81570172992 +1.76805696553 +1.72227155481 +1.67823579402 +1.63584797482 +1.59501376027 +1.58416700069 +1.54485264559 +1.52652174123 +1.50459925425 +1.46894679906 +1.4332424407 +1.42167047085 +1.47017128133 +1.43306956954 +1.39732575487 +1.36286341037 +1.3296115791 +1.31900425608 +1.44076034143 +1.40454693735 +1.36785283701 +1.3325808716 +1.29864753819 +1.26597540873 +1.23449265616 +1.20413261819 +1.17646058352 +1.14808873572 +1.39888022234 +1.40689287096 +1.50018832419 +1.45571587518 +1.41329036975 +1.37277826946 +1.35263870841 +1.35954350537 +1.43622594938 +1.39701213319 +1.4665083314 +1.43783709099 +1.39551900421 +1.35513218677 +1.31655122066 +1.27966013967 +1.28923559048 +1.25331594263 +1.21892548262 +1.1859687631 +1.15435743476 +1.47573241893 +1.60046913784 +2.06729671638 +2.66023577564 +2.39788873189 +2.31713111532 +2.38879135787 +2.21665685945 +2.01263076289 +1.82557024481 +1.66133596445 +1.58166197933 +1.53400122256 +1.4885758823 +1.44523867411 +1.4084270878 +1.3686545823 +1.39830825465 +1.39535342413 +1.36496921304 +1.33126128487 +1.29440763817 +1.2636294772 +1.31948723533 +1.78069108603 +2.27407219809 +2.8780943973 +3.4342749453 +3.52097220285 +3.1584038614 +2.84106624344 +2.82127356507 +3.31043045514 +3.81425218137 +5.89697012552 +9.12912369316 +9.50394698783 +9.3846453349 +8.36638980553 +7.47647252769 +6.69829022804 +6.01739644476 +5.42122117438 +4.8988269638 +4.44069670975 +4.03854904371 +3.68517771612 +3.37431186017 +3.10049442054 +2.85897638602 +2.64562477118 +2.45684255997 +2.98003860476 +4.26846728454 +4.59297120708 +4.17395238479 +3.80584466071 +3.48210081903 +3.19702335749 +2.94565405305 +2.72367788355 +2.58735604546 +2.50761287728 +3.2997902207 +6.74818935546 +11.1274542253 +15.297032876 +18.3260740665 +16.3172583267 +14.5621171554 +13.6490882102 +13.5526531408 +12.8364909183 +11.9722739988 +10.9237901491 +9.98880708211 +9.14959811068 +8.95844246954 +9.80641504615 +11.1318219086 +13.0340028991 +13.1150058823 +11.8313569268 +10.7061562993 +9.71897423795 +8.8520334794 +8.08986450162 +7.41900558346 +6.82774185532 +7.94110222716 +11.1597815094 +12.0053002098 +11.0060276155 +10.2179410126 +9.30959361467 +8.51093167983 +7.87155726044 +7.351819663 +6.78554448088 +6.28509584496 +6.41022149074 +6.90930460986 +6.3888813287 +5.92855734774 +5.52067087246 +5.15855311937 +4.83639928498 +4.54915628764 +4.29242510175 +4.0623757874 +3.85567356494 +3.74518647868 +3.6544236825 +3.56674486758 +3.48198685625 +3.39999785428 +5.71231061918 +11.6377297329 +15.1235170308 +13.5898102706 +12.2468383801 +12.9933254303 +17.8159355674 +22.7006913351 +23.5577381117 +21.092033162 +18.9349338357 +17.0465601221 +15.3922116376 +13.9416943694 +12.6687349412 +11.5504710219 +10.5670079796 +9.70103316901 +8.93748035926 +8.26323778473 +7.66689414745 +7.13851763752 +6.6694636793 +6.98233810505 +8.52137116492 +9.75013055613 +11.6512640548 +16.2607156743 +20.663049897 +21.0980643971 +19.4288197751 +17.8344175889 +17.3260366364 +18.9208236171 +21.394758487 +20.9798413489 +19.5519767399 +19.0309486632 +17.7835201298 +16.159255895 +15.0176155705 +14.2105666571 +13.8876521626 +14.5108918046 +13.9153105376 +12.9414191837 +11.9051382154 +10.9906517024 +10.1823848071 +9.46678225159 +9.24168006319 +9.32066618187 +8.72908100019 +8.37692905745 +8.20507113425 +7.86260912306 +7.38981957202 +6.97508807559 +6.80112033603 +6.76118985894 +6.39546259624 +6.07367293958 +5.80728048757 +5.6398095429 +5.51465922806 +5.28430412359 +5.11048174745 +5.25029887586 +5.58518900026 +5.57979726327 +5.43340448457 +5.65912227635 +6.49577890051 +7.13163729047 +7.24434085564 +7.27983138313 +7.67974960179 +7.57881882737 +7.409551909 +7.04095433948 +6.75399147824 +6.30195689225 +6.11525773872 +6.26732533113 +6.2118852006 +6.1129380185 +6.15517580349 +5.78318159765 +5.42915128734 +5.77937803549 +7.12995439905 +7.56972074509 +6.98094652369 +6.46080716156 +6.00053824279 +5.59251156322 +5.23008748615 +4.90748649058 +4.61967741687 +4.39840164084 +4.24544816046 +4.06022053941 +3.86182238732 +3.8005600303 +4.24972599034 +4.92948010734 +4.94472338659 +4.96084724869 +5.01795996922 +4.99181623712 +4.65405352203 +4.35397649199 +4.0868104773 +3.84839902594 +3.63512358503 +3.46649257925 +3.38049765724 +3.29755583931 +3.2249894588 +3.14731304455 +3.07354329991 +3.03806637724 +3.09189492685 +3.0580066628 +2.99760198101 +2.92614448172 +2.85558651551 +2.78740251474 +2.74033082316 +2.6971893918 +2.63802654918 +2.58760874709 +2.52726966465 +2.50049584375 +2.48539714096 +2.52451140435 +2.52412427493 +2.47959727799 +2.41915374497 +2.36078720961 +2.32485907168 +2.26936595891 +2.2157023829 +2.16377417896 +2.11349367161 +2.06629336458 +2.01899806681 +1.97312622943 +1.92861117888 +1.88539063142 +1.84340636082 +1.80260389227 +1.79685324407 +1.78709101321 +1.74664245488 +1.71260645487 +1.76522293734 +1.76635924458 +1.72653038637 +1.68562588129 +1.64604937809 +1.60773352381 +1.57061557595 +1.53463704924 +1.53946357328 +1.5168971621 +1.48167850913 +1.5233892097 +1.48676813883 +1.45137175231 +1.46385650843 +1.46512696334 +1.42929444862 +1.39470098223 +1.50153469053 +1.47030207104 +1.43257380554 +1.39626588327 +1.36129663514 +1.32759028641 +1.29507649794 +1.26368994386 +1.23336992278 +1.20405999991 +1.17570767745 +1.16730660005 +1.19985206284 +1.34301989184 +1.48714471805 +1.46792860758 +1.42540228545 +1.38477990975 +1.34593912797 +1.30876677651 +1.2731581576 +1.23901637373 +1.23546214732 +1.51217805945 +1.47388814144 +1.49637530364 +1.45619312831 +1.41287880454 +1.37156600414 +1.3321238777 +1.30917484217 +1.27447709574 +1.23921864925 +1.22407810308 +1.21086724857 +1.19589643404 +1.20906308086 +1.17595386256 +1.14422106516 +1.11378002132 +1.08455232816 +1.05646535628 +1.02945179786 +1.00344925072 +0.978399835414 +0.954249842837 +0.930949409782 +0.908452220283 +0.886715230679 +0.865698416482 +0.845364539336 +0.825678932439 +0.806609302968 +0.788125550152 +0.771387631607 +0.753937831969 +0.736998792084 +0.720547355657 +0.704561864805 +0.689022047269 +0.673908912503 +0.659204655938 +0.64489257077 +0.630956966669 +0.644552748221 +0.633236573197 +0.619012453796 +0.628935353428 +0.624331449538 +0.609783438821 +0.595691298855 +0.582032719385 +0.568786891783 +0.55593439459 +0.54345708809 +0.531338017208 +0.519561322074 +0.508112155625 +0.499062215682 +0.489172827747 +0.485760249922 +0.47502052014 +0.464577546936 +0.45441883822 +0.4445326763 +0.455525528818 +0.445189973729 +0.435159133304 +0.425419072962 +0.415956764042 +0.406760015497 +0.397817410984 +0.389118250897 +0.380652498962 +0.372410733019 +0.364384099671 +0.356564272486 +0.348943413459 +0.3415141375 +0.334269479675 +0.327202865012 +0.320308080648 +0.313579250136 +0.307010809747 +0.300597486596 +0.294334278465 +0.402956852841 +0.511464335 +0.495028724051 +0.562688075825 +0.543960754943 +0.526205865228 +0.700641927385 +1.41484161726 +2.03997902163 +1.78684166388 +1.56637096434 +1.3743250814 +1.52461603277 +1.87746390803 +1.65466982355 +1.46041344558 +1.29099338277 +1.14674052963 +1.10685068463 +1.06911503928 +1.03338199737 +1.05415385629 +1.01946718705 +0.986562538576 +0.955317207446 +0.925617909367 +0.96772012005 +1.33101848324 +1.53522345336 +1.58797433272 +1.41443732217 +1.26280212994 +1.21632441976 +1.17629543944 +1.13832323807 +1.10226618414 +1.06799351843 +1.03538449338 +1.00432758122 +0.974719745078 +0.946465768423 +0.919477637841 +0.893673975088 +0.868979514389 +0.845324621401 +0.822644850488 +0.800880537272 +0.779976423617 +0.759881312468 +0.740547750156 +0.721931733975 +0.703992443012 +0.686691990371 +0.669995195085 +0.653869372143 +0.638284139184 +0.623211238524 +0.608624373309 +0.594499056633 +0.580812472627 +0.567543348531 +0.554671836889 +0.542179407053 +0.617365536806 +0.601505670537 +0.586244006036 +0.571546098913 +0.557379992092 +0.543716022195 +0.5305266413 +0.517786252859 +0.505471060637 +0.493558929632 +0.814039155801 +0.787378961843 +0.762082324632 +0.738055544802 +0.715212111236 +0.693472132155 +0.672761811605 +0.653012967697 +0.634162589282 +0.61615242796 +0.598928622628 +0.582441353944 +0.566644526332 +0.551495475315 +1.14551580227 +2.48560683102 +5.93481670007 +9.30840569066 +12.3910399507 +14.8289753804 +15.8082893483 +15.6880031873 +14.9257821832 +13.6015891876 +12.2446468174 +11.8091965836 +12.1809115503 +12.5997549837 +13.3550799376 +11.9363464104 +10.6956997044 +9.61011550365 +8.65956011378 +8.00897491248 +7.56477132495 +8.03296194754 +9.39184148524 +8.78081617786 +8.41095138051 +8.7794712536 +10.2503671025 +11.617378079 +10.692117534 +10.0347401808 +9.08679652885 +8.25495410026 +7.52426236499 +6.88171150934 +6.3159801999 +5.98533869938 +6.8899788662 +8.69085998757 +9.09759377588 +8.72567698056 +7.94793587065 +7.26416916708 +6.72327444156 +6.58571942406 +6.57416358344 +6.06789067474 +5.61462614293 +5.23479174655 +4.89546261287 +5.40627814336 +6.6416794416 +6.56848514433 +6.2306951018 +5.75524721902 +5.32253910175 +4.9397735593 +4.94817697665 +5.19274323581 +5.09772498993 +5.27400834589 +5.02021060848 +4.68434451407 +4.3656228654 +4.08253016828 +3.84514950054 +4.1794282879 +4.91749252228 +4.76597399138 +4.48304122349 +4.21763301626 +4.19573487444 +4.6357430777 +5.1493555678 +5.05539869681 +4.74563831536 +4.65546879676 +4.71553803809 +4.36840352599 +4.0610787918 +3.8702833722 +3.80321135691 +3.63622775048 +3.40800382644 +3.24896182263 +3.28362484453 +3.53943033969 +3.6538484551 +3.41252210522 +3.19789470183 +3.00658885149 +2.9021708304 +2.82812774081 +2.77730151435 +2.81677392986 +3.15253605844 +3.48787573692 +3.26243927469 +3.10694352579 +3.07728190781 +3.07176995156 +2.97736520615 +3.04444705527 +3.15530858469 +3.23942062851 +3.01905456618 +3.02689115452 +3.24427727916 +3.20387827571 +3.10556473789 +3.35203586489 +4.09080204026 +4.18535448737 +4.05604698337 +3.92454505339 +3.87532480466 +4.08082362592 +3.86316257347 +3.67880203803 +3.63084982451 +3.51585507181 +3.60842648772 +3.76707659075 +3.76436923534 +3.54065764404 +3.64060986992 +4.07805444883 +3.91914503225 +3.71762090421 +3.58010211593 +3.31348898154 +3.15301047671 +3.07829832027 +2.87525197407 +2.67927098251 +2.5494552955 +2.52719823248 +2.46084140375 +2.39547227888 +2.33270272026 +2.27364430462 +2.24555522065 +2.1916861237 +2.57319520306 +2.73298743821 +2.54699131548 +2.37106923094 +2.29299740899 +2.23131348164 +2.17212915118 +2.15947651446 +2.10278681848 +2.3112122464 +2.3559370455 +2.37579438209 +2.79044793608 +4.06029907726 +4.76685637007 +4.61964226413 +4.25679891949 +4.52255301531 +6.13206370679 +7.22572381693 +7.09574783256 +7.26251783924 +6.95190615837 +6.65203824771 +7.62862188328 +8.60815295705 +8.03589137434 +7.78113268974 +7.80249765144 +8.57626173323 +9.53243477473 +8.58155460234 +7.86871234045 +7.84909535071 +8.08901699957 +7.49000178922 +6.80060293326 +6.2160769456 +5.77586561335 +5.46562583525 +5.14172553799 +4.96026725658 +5.09539196132 +5.34786224488 +5.63443946493 +5.19392535586 +4.78059746183 +4.41576454598 +4.0932270141 +3.80758912419 +3.55415452753 +3.32883538864 +3.12807331882 +2.9818150241 +2.98789558823 +2.91075815696 +2.83655383587 +2.77304409713 +2.86522891316 +2.80753980376 +2.73535430995 +2.87162033655 +2.95611783947 +3.0520886043 +3.01486337655 +2.90182344686 +2.73382669852 +2.65633544255 +2.5870384498 +2.6748720495 +2.60356938609 +2.63518803356 +2.61764910876 +3.06127852623 +4.50155508236 +5.5211503379 +5.01566308753 +4.57164393383 +4.18118692916 +3.83741220096 +3.53433259597 +3.26673766001 +3.0300926997 +2.82045096552 +2.68440652504 +2.59745665583 +2.5021523083 +2.43612158522 +2.37269049076 +2.31170471121 +2.25302120483 +2.19650732155 +2.14203999267 +2.08950498497 +2.03879621404 +1.98981511223 +1.94247004666 +1.89667578347 +1.85235299452 +1.8128135188 +2.20180313615 +2.67007970486 +3.25437151171 +2.99702802944 +2.85783586073 +3.1422695888 +3.46389169872 +3.19875621915 +3.39309762211 +4.26639531325 +4.69705287267 +5.47175209933 +6.67939129254 +7.28238256418 +8.6391863003 +8.38870194773 +7.98155978964 +9.13849084639 +13.132939814 +14.7629930493 +13.3439446802 +12.2454508851 +11.0827785728 +10.1777463387 +9.40909742761 +8.67355188291 +8.21772389416 +7.5871526693 +6.91000868747 +6.31470970597 +5.79073954911 +5.32894667054 +4.92136680093 +4.56106865042 +4.24201966881 +3.95896925594 +3.70734715386 +3.64568532913 +3.70064107862 +3.47244122307 +3.26884967905 +3.12002164707 +3.04111691298 +2.96511061767 +2.89183916483 +2.82115068029 +2.75290410153 +2.68696833956 +2.62322150723 +2.56155020879 +2.50184888577 +2.44401921473 +2.38796955257 +2.66967393673 +2.60125079426 +2.53539848773 +2.47196941059 +2.41082660358 +2.35184292622 +2.30479297756 +2.24932000134 +2.19570665397 +2.14385572934 +2.09367676653 +2.04508553083 +1.99800353588 +1.95235760357 +1.90807945883 +1.86510535641 +1.82337573709 +1.78283491113 +1.74343076659 +2.56260183669 +2.94304278401 +2.7067137765 +2.49818220889 +2.3138929206 +2.18310965261 +2.12292957312 +2.06527452613 +2.00998829652 +1.95692625064 +1.90595442806 +1.85694870575 +1.80979402857 +1.76438370119 +1.7206187361 +1.6784072536 +1.63766392937 +1.59830948596 +2.31088638605 +3.03085210783 +3.36987407284 +3.13233606894 +2.97266028202 +2.71311279582 +2.48476851583 +2.28362178456 +2.10618666484 +2.24411418167 +2.44908517398 +2.76885423205 +3.40697955552 +3.09673460427 +2.82416824888 +2.71419757375 +3.46969648726 +4.88354217645 +5.14804316124 +4.6392280215 +4.1933502405 +3.8022921338 +3.58553400007 +3.50364421507 +3.24378069976 +2.9868660534 +2.7428380688 +3.5099954573 +4.88387398684 +4.49680361888 +4.24722903811 +4.02226540236 +3.67311992568 +3.37347777363 +3.09201515363 +2.84400088442 +2.62514951619 +2.43173145089 +2.30322660996 +2.70428974597 +3.68748618513 +4.08023139134 +3.80405175793 +3.62390332396 +3.31295004891 +3.03921761647 +2.79793137877 +3.48326631431 +6.48868351401 +9.11953337146 +8.82334067991 +8.63056670222 +8.90634408965 +8.88530327261 +9.44137585721 +12.5228108589 +13.8790393851 +13.4528708125 +14.4586115536 +14.4738722939 +13.7293494936 +12.4036360796 +11.1645211174 +10.0790239458 +9.59573706182 +9.49599544436 +8.71958690326 +8.44645320619 +8.2761787827 +7.55307672036 +6.98376421383 +6.54697357762 +6.06178627616 +5.98129664745 +6.28496752648 +5.99045920348 +5.53645411986 +5.13497460485 +4.77932223638 +4.52465791988 +4.42905106187 +4.37372957654 +4.35735982501 +5.55695791881 +8.29016383564 +9.37832006133 +8.61173531508 +7.83766835368 +7.59853463684 +7.70851536635 +7.11962496661 +6.62132782222 +6.1139172984 +6.06837871968 +8.46618445003 +11.4464642918 +10.5347111079 +9.54796438601 +10.1159595215 +11.6064971499 +10.5047564792 +9.53810001642 +8.68912965625 +8.00814147175 +7.75970575382 +7.641071191 +7.02044884516 +6.47305306611 +6.04088980993 +6.54827099694 +8.22913675217 +8.77349734157 +8.01605529017 +7.34941845339 +6.76193539837 +6.66284342465 +6.8681183896 +6.43066614616 +6.18273492695 +5.92562449217 +5.58698240721 +5.26915590253 +5.42159444884 +5.99437901184 +6.10130471399 +5.80017510176 +5.46871236043 +5.28433389226 +5.04949343522 +4.87452688719 +4.69345292137 +4.39273577854 +4.12492322954 +3.88586144986 +3.68803121898 +3.7799935033 +4.008495214 +3.77046252717 +3.55771265581 +3.42458935346 +3.34383213025 +3.26213392412 +3.18321802803 +3.10547912508 +3.03042096357 +2.95789985162 +2.88778217732 +2.91983957722 +2.84950262293 +2.78516650523 +2.76541356011 +2.69948759147 +2.63903813558 +2.57718232503 +2.51728963451 +2.45926272133 +2.40301083604 +2.34844931894 +2.2954991362 +2.24408645283 +2.20621799433 +2.1627923231 +2.11480391262 +2.06815387548 +2.02736565561 +1.98389252199 +1.94068841396 +1.8986304887 +1.85800063348 +1.82046075944 +1.79508918821 +1.76032783092 +1.77881748759 +1.73931296255 +1.70091278202 +1.66356971881 +1.62723950147 +1.59188059432 +1.58536404021 +1.59714231659 +1.56108044606 +1.52606933489 +1.49206160612 +1.46497592869 +1.46949395351 +1.43625827913 +1.40399498186 +1.37266000107 +1.34221212639 +1.39340742731 +1.36085006229 +1.44945820013 +1.42870510089 +1.5849267955 +1.55735078654 +1.51514678596 +1.47467142418 +1.45691788001 +1.41860695389 +1.48192255215 +1.63827685801 +1.62984202907 +1.58255063391 +1.59917562191 +1.5854839737 +1.53995239176 +1.49643719365 +1.45480959152 +1.4149504501 +1.37674952748 +1.34412681234 +1.52694742548 +1.48278086482 +1.44058784434 +1.40024167652 +1.36162518494 +1.32462995583 +1.29685440102 +1.27279928029 +1.48330662341 +1.46432548323 +1.42593636369 +1.38490766816 +1.345700344 +1.31377584117 +1.30061516077 +1.26489049371 +1.2306573091 +1.19782361816 +1.43109512035 +1.46080290806 +1.43830336721 +1.40462351113 +1.54212009275 +1.53830166421 +1.49069239912 +1.44538277787 +1.40221901092 +1.36105900821 +1.34498467533 +1.46099839394 +1.41687239071 +1.37482139037 +1.33470849424 +1.2964071735 +1.25980045124 +1.22478014973 +1.19124619765 +1.15910599254 +1.13201162337 +1.48050185185 +1.55748656189 +1.66537523674 +1.8834093147 +1.92318963394 +1.77242391367 +1.61953023355 +1.54871162889 +1.62339236312 +1.87206596807 +2.31823280528 +2.52160337961 +2.49862140056 +2.25293017918 +2.03759622537 +1.86096652859 +2.09303007842 +2.55183876283 +2.32781452749 +2.12605370408 +1.96571645846 +1.80230511593 +1.66817049112 +1.6180098099 +1.57019612402 +1.52457499103 +1.67769633456 +1.63979998684 +1.5907627245 +1.54400550842 +1.49937879359 +1.45674434142 +1.41597432841 +1.37695052575 +1.33956354443 +1.3037121404 +1.47239101704 +1.60444347278 +1.68440675292 +2.09211831966 +4.10101928185 +7.55150058475 +9.67079375354 +9.56779589127 +8.57360198708 +7.69847550831 +6.9702803345 +6.24519973298 +5.61943348579 +5.09479795449 +4.63250332892 +4.36894305001 +4.25586526462 +3.86937808693 +3.5297987362 +3.23109590506 +2.96802102187 +2.73600652181 +2.53107734211 +2.89711430165 +4.20107895629 +5.81404040989 +7.29515932552 +7.7528603856 +8.32697712508 +8.3873532737 +8.6571644072 +10.0609846535 +9.89015106633 +8.88035333361 +8.06113509432 +7.47478868633 +6.91176700993 +6.27263666819 +5.71140528348 +5.21804975114 +4.78384789491 +4.40120938776 +4.06352865216 +3.76505688249 +3.50079070378 +3.26637530398 +3.05802015832 +2.87242570872 +4.39759541694 +6.68996089749 +6.07226519102 +6.62214697432 +8.92823040478 +9.85602846891 +8.87703764071 +8.01926976272 +7.62175148828 +7.84000935364 +7.65800700578 +6.9575758128 +6.34229848054 +5.80122305102 +5.32481895987 +4.90479230246 +4.53392511437 +4.2059355445 +3.91535620482 +3.65742833368 +3.42800971707 +3.22349457929 +3.0651280498 +3.32178059524 +3.57924299228 +3.34714113592 +3.14054852624 +2.96254395994 +2.88637978502 +4.38966847368 +8.74314396611 +12.1501168003 +11.8178309701 +10.6173199642 +9.56615924854 +8.64506760836 +7.83726770017 +7.12816060242 +6.50504267331 +5.956859216 +5.47399016634 +5.04806364017 +4.67179371849 +4.33883931959 +4.04368141687 +3.78151621732 +3.54816222602 +3.33997939125 +3.17199378245 +3.09182109504 +3.01459048631 +2.9401360247 +2.86830366447 +2.79895032263 +2.73194302911 +2.66715814443 +2.60448063936 +2.54380343178 +2.48502677592 +2.42805770017 +2.37280948914 +2.3192012069 +2.2671572577 +2.21660698149 +2.16748428129 +2.11972727994 +2.07327800387 +2.02808209176 +1.98408852606 +1.94124938558 +1.8995196175 +1.85885682722 +2.71401421226 +5.2604188555 +11.2932241083 +17.1874619386 +19.8417659311 +18.9439982711 +17.0049428168 +15.4818152208 +15.3048590278 +17.8416781176 +20.0648794268 +20.3738174773 +21.5067952948 +21.8581327123 +21.7921810451 +21.1762160453 +19.5641954989 +17.5978396522 +15.8755702743 +14.3658869199 +13.0413795859 +11.8781970461 +10.8555843003 +9.95548015407 +9.16216711059 +8.66277847673 +8.51468851914 +8.32346745887 +8.09934340662 +7.87506905706 +8.2240769134 +9.09030548907 +9.35510504872 +8.76504019603 +8.88583013001 +10.5869773956 +11.8410115352 +11.9369871302 +11.767259408 +12.0471902653 +13.9393193516 +14.2690126251 +13.7181874834 +13.0021530899 +12.7907876716 +13.752775083 +14.5013313225 +13.8904769619 +13.5790419446 +12.8158177037 +11.7137177948 +10.7877389223 +10.1705789235 +10.9211136876 +13.4449784809 +14.5941061356 +13.8739649725 +13.2048994196 +12.2966723077 +11.7967895052 +11.0704292936 +10.1897002708 +9.41229748535 +8.72501189697 +8.50494990367 +8.64224894243 +8.45279542105 +10.2565709043 +13.8263456369 +14.6694991804 +13.4221414556 +12.2550553638 +11.669960888 +11.466111133 +10.6556922747 +10.2543037457 +11.045325686 +14.9377330146 +19.1480639018 +18.8127743438 +17.5754670717 +16.4176154523 +14.9864948496 +13.9167750824 +13.4717940284 +13.1694255608 +12.441771862 +12.7984526491 +13.5648099383 +13.7511183967 +14.8367177621 +14.513403496 +13.2694837744 +12.4099350488 +11.8459907559 +10.9724449908 +10.9135010744 +12.0609726803 +12.2425515092 +11.2636969377 +10.6056831436 +10.3955642354 +10.0189731261 +9.29573241567 +8.65492848168 +8.08607623351 +7.67441564423 +7.37814727333 +6.95707403008 +6.56899777128 +6.27711926537 +6.48585676362 +6.86752311998 +6.46696123349 +6.10862806986 +5.79765975797 +5.52496312288 +5.6157383292 +6.14594650948 +6.24793862876 +6.09821600073 +5.84623028201 +5.51936870529 +5.22633616634 +5.00058642046 +5.39835213952 +6.26172597133 +6.19206258065 +6.11152376835 +6.40773848913 +6.84606051536 +7.26818583472 +6.98860418535 +6.98848330598 +6.75225869629 +6.28420719781 +5.93555395334 +5.65739124369 +5.31579951591 +5.02190234432 +4.9493493344 +4.99546770993 +4.82968467789 +4.66575082441 +4.42788605769 +4.19438581483 +3.98044516307 +3.84095860386 +4.08386890613 +4.30688523066 +4.06799556993 +3.84930574235 +3.67049769142 +3.58034673223 +3.49333807264 +3.40930172424 +3.33808228915 +3.30485931643 +3.25357671787 +3.25356825278 +3.17518532416 +3.17515716163 +3.35227782515 +3.79234068342 +4.6462197899 +4.92336339732 +4.89894290827 +4.60988080758 +4.41260557262 +4.25020062222 +3.97855007741 +3.75490034041 +3.53837651847 +3.72801738585 +4.21486342708 +4.10434695024 +3.81733897019 +3.66603204461 +3.87679087315 +4.09540168763 +4.04159386337 +4.84231815538 +6.02555529921 +6.21206432759 +5.87154713074 +6.26545782015 +7.2101015006 +6.70834889545 +6.11052761899 +5.595256744 +5.39029027037 +5.35852636444 +4.92310880448 +4.53907170996 +4.19984009672 +3.89969163903 +3.63364586574 +3.39736776018 +3.25152258456 +3.30259889986 +3.45058870407 +3.65228087694 +3.80377594864 +3.74315378691 +3.77676553317 +3.5300821701 +3.29089149607 +3.0784012095 +2.88922814803 +2.78567553465 +2.7174604398 +2.64828017508 +2.58167000013 +2.51748359439 +2.45558515723 +2.39584859003 +2.3381567433 +2.2824007235 +2.32072575018 +2.26423975082 +2.20968919021 +2.15697090205 +2.10598894 +2.05665402072 +2.00888301106 +1.96259845593 +1.9177281435 +1.87420470478 +1.8319652449 +1.79095100348 +1.75110704182 +1.86128497917 +1.8166818217 +1.77356092401 +1.80392313336 +1.79950057744 +1.95352227541 +1.90171489032 +1.8519626081 +1.80414281028 +2.32248989984 +2.59657822872 +2.46285461223 +3.05898003665 +3.90693496774 +3.54135121887 +3.22044700141 +2.9384709034 +2.69041805788 +2.47193311485 +2.55818306392 +3.69811399524 +5.14542482129 +6.36360964448 +7.73687151338 +6.93241565839 +6.22851231572 +5.61217019373 +5.52897331422 +6.91864524387 +8.16437605553 +8.04603047539 +8.43728629063 +7.58500952336 +6.83863732682 +7.66159476346 +10.3269773523 +14.1616342138 +21.709750792 +25.2859410489 +22.8313654473 +20.3645094224 +20.0198055163 +20.9781288628 +19.2337368979 +21.1287138451 +25.6582982028 +25.4371837468 +22.9016305168 +20.912973873 +20.3215246811 +20.4379779452 +18.4538041742 +16.7986924218 +15.4204805894 +14.0315258132 +14.1595356111 +16.0690159122 +16.0759360349 +15.0189755527 +14.3621056458 +13.121945921 +12.0304686802 +13.0311805709 +17.4703330871 +20.8945383856 +22.4398916786 +22.543557848 +20.3723930344 +18.4682896924 +16.7968336298 +15.3280784235 +14.0359647306 +12.8978150878 +11.8938943831 +11.0070274649 +10.222266459 +9.52660133255 +8.90870808231 +8.35872965613 +7.86808535287 +7.429304998 +7.03588467443 +6.68216120641 +6.36320295843 +6.8427631164 +10.8626815292 +16.6299849539 +17.4938613163 +16.3466652277 +16.7103979951 +17.1031725463 +15.7770605194 +14.4151056376 +13.1942310091 +12.3079020987 +11.6562210591 +11.0438628869 +11.2194996418 +11.4977779589 +11.1182052001 +11.6825691201 +13.1715436892 +16.4016889582 +21.9097782213 +20.9229066521 +19.3127934392 +17.709390935 +16.4237727641 +14.9957457815 +14.361683329 +14.2454535459 +13.1158825055 +12.1063179896 +11.1920291777 +10.3834072608 +9.9208164829 +9.69672489947 +9.12870633051 +8.63721972488 +8.14848756143 +7.91097468966 +7.7598610366 +7.77401670348 +8.29399768723 +8.17722938011 +7.76001919831 +7.77112367056 +7.84370076067 +7.35984643021 +6.92817662733 +6.54212169417 +6.24530328747 +6.07267084036 +5.87312997793 +5.58785819062 +5.33010703346 +5.09649011859 +4.95219452295 +5.38067857717 +6.78505661713 +8.86634832632 +9.88402952868 +9.75270290916 +10.096690153 +9.27185404137 +8.69612733787 +8.29183029715 +7.67789675135 +9.34721844127 +14.8112717042 +17.5970887998 +15.8890365531 +15.0108818219 +16.6950553524 +19.0789211898 +18.1447977188 +17.0497615688 +16.5548297147 +15.0651517144 +13.8642304757 +13.2648119044 +13.1487250842 +13.0365644645 +12.733350302 +12.3853905227 +11.7646154428 +11.0567664504 +10.989432716 +11.2101966123 +11.1037497859 +10.7784943518 +11.016791451 +11.7714019202 +13.0174142127 +14.0381273427 +12.871376627 +11.7944094182 +11.5606424386 +12.368551899 +12.261362447 +11.3232514865 +10.4701080954 +9.69215014482 +8.98920422275 +8.36650059862 +7.81383058713 +7.43045683046 +7.47196618504 +8.59945521969 +10.1510492914 +10.1466381893 +9.70420767552 +9.10245058596 +8.60465717533 +8.11741220757 +7.69203338012 +7.18583263391 +6.73556271285 +6.33415011509 +5.98454304664 +5.71987760659 +5.80382799018 +6.10270868469 +6.21818106484 +6.44320343028 +6.57574725132 +6.89635345929 +6.46211399692 +6.09983274284 +6.22649269616 +6.65304123888 +6.37803850681 +5.97191072916 +5.60610392803 +5.27318784758 +4.97563330898 +4.70900166277 +4.46942811689 +4.26597240536 +4.37088928299 +4.65717608619 +4.67628108655 +4.55100587318 +4.52804952406 +4.27963874629 +4.15389579895 +4.24760251014 +4.31650911943 +4.20542258508 +4.33700407191 +4.68139481664 +5.0314418718 +5.88705338895 +6.07707080599 +5.88556199457 +5.66977381971 +5.27799031182 +4.92167777269 +4.73462866356 +4.65456908633 +4.50778175223 +4.76008391731 +5.11694090736 +4.89755569753 +4.6380420169 +4.33582513094 +4.05693513359 +3.87840097821 +3.76635166592 +3.8620296937 +4.27386142202 +4.24258571277 +4.06919701216 +3.81423381206 +3.57810479782 +3.60068708877 +3.7784894155 +3.54393281849 +3.35066835407 +3.18075960795 +3.26147954033 +3.78831069641 +4.50220904041 +4.7153550956 +4.74929880994 +4.78365075349 +4.98732908371 +4.93828239328 +4.55582851617 +4.2688824739 +4.04698958419 +3.83758454556 +3.70875240183 +3.46164760851 +3.23771634164 +3.03837448102 +3.04390187714 +3.37436436503 +4.34744078885 +5.38481511909 +5.3608330568 +5.163166163 +4.88752188308 +4.91783044778 +4.79302532437 +4.40479026732 +4.06232860298 +3.75978373359 +3.49205854025 +3.2547166882 +3.31213520269 +3.58430420425 +3.41398018256 +3.3580253714 +4.1581169493 +5.68158239238 +6.38677905049 +6.50455284624 +6.22536328395 +5.66815276959 +5.27570168756 +4.9872930751 +4.57497055619 +4.21152945312 +4.00456324212 +3.92785885988 +3.74341050366 +3.60676177219 +3.47911678404 +3.52321835074 +3.6277297154 +3.47388458228 +3.24244700183 +3.02623528891 +2.83673398911 +2.71063871611 +2.64003766191 +2.57215969118 +2.6514575315 +2.70031275594 +2.62785818149 +2.69784726772 +2.69189502273 +2.56799444942 +2.49991624273 +2.4345370656 +2.37169594019 +2.31124366801 +2.25304190955 +2.19696233707 +2.14288585478 +2.09070188098 +2.04030768719 +1.99160778977 +1.94451338979 +1.89894185735 +1.86279609118 +1.85698795197 +1.83559067467 +1.79240657178 +1.75060393411 +1.71011370968 +1.6708715414 +1.63410552458 +1.59712329796 +1.57847636701 +1.56048262928 +1.54960518961 +1.5396392762 +1.50397000363 +1.46940423547 +1.43588869213 +1.40991300483 +1.37804688112 +1.34711150897 +1.36940697278 +1.5047745856 +1.51341203356 +1.47828492535 +1.4484089499 +1.54243754848 +1.53759051387 +1.78117446062 +1.767269923 +1.74819131459 +1.69646681988 +1.64711766853 +1.59998908541 +1.55493797233 +1.51183198802 +1.47054870139 +1.85809995317 +2.19553979732 +2.43536093919 +2.2107629456 +2.0135227126 +1.8401205309 +1.77487527768 +1.72163706468 +1.67088287254 +1.6224494803 +1.62498611608 +1.94077871489 +2.12574653906 +1.93845800156 +1.77373580368 +1.70201510822 +1.65207872979 +1.63163181739 +1.5848189007 +1.54007666476 +1.49727294218 +1.45628546919 +1.46351474692 +1.87283375792 +2.00944641152 +1.83230159643 +2.6844523907 +4.65099408069 +5.13167170692 +4.59244889133 +4.12076715163 +3.70789730577 +3.3462439422 +3.02919805017 +2.77860289247 +4.02570065621 +8.02105953501 +11.2658705422 +12.296970169 +12.4297784443 +11.0777318631 +9.89617484518 +8.86304927709 +9.3343235339 +10.8683413158 +10.0763666806 +9.14258513741 +8.23333749287 +8.78031503154 +11.7036579786 +13.0600523892 +11.7122714562 +10.532701527 +9.49961518129 +9.4971802879 +12.6798826625 +17.1852241039 +19.4328497521 +20.0578237028 +17.9544802807 +16.1144880302 +14.5038129686 +13.0928414974 +11.8558058331 +10.7702841305 +9.81676558822 +8.97827208851 +8.24002902323 +7.5891789103 +7.01453223886 +7.02310053243 +7.84940613436 +8.02442544361 +7.39295598418 +6.83534343752 +6.34215108729 +6.06576095238 +7.10434486711 +9.24976803336 +9.63726773417 +9.37039062376 +10.66452308 +12.2123635856 +15.5496093265 +20.7468776768 +19.9846255536 +17.9694148399 +16.2045257068 +14.6709890418 +13.4547417266 +12.5269477316 +11.6048381893 +10.7001447991 +9.84555753935 +9.06974195267 +8.38470025439 +7.77883348177 +7.24204650438 +6.76555260655 +6.34170347249 +5.96384127175 +5.6261699721 +5.32364338009 +5.34841777668 +5.56915057103 +5.25850249186 +5.00563909093 +6.44706831696 +9.96353097119 +11.7657686757 +11.8819009739 +11.9299293932 +12.7420770054 +11.581541904 +10.5619576677 +10.084069169 +11.5370493783 +13.7590548552 +13.6005258757 +12.6450388907 +11.5177227036 +10.616385226 +9.9103546803 +9.33063069806 +8.91000272862 +8.24924486076 +8.46537859646 +10.6586226173 +12.7444623432 +12.5333693919 +12.7895084629 +14.2508940986 +13.8647622388 +13.7580867328 +13.2532975636 +13.2965844845 +15.5223496894 +16.3751041637 +14.8678132688 +14.1257925268 +13.9023008291 +12.7008604358 +12.4678209136 +13.7906193928 +15.406133025 +16.1521972145 +14.8164921233 +13.5390582096 +12.4034446205 +11.4302647162 +11.5049493273 +12.6632115037 +13.2989616746 +13.444760947 +13.1509913356 +13.4760375127 +12.3350031885 +11.425495069 +10.7097755194 +9.93080543903 +9.20696166017 +8.56587435399 +8.01564997402 +7.53910728774 +7.08276336118 +6.71811521917 +6.42059814337 +6.08838638994 +6.30968895435 +7.04996979518 +6.97420179902 +6.77303672136 +7.2420381907 +7.61084257767 +7.10403261676 +6.65907819622 +6.24964230534 +5.88430819478 +5.67513113347 +5.83480248517 +6.33631857234 +6.58286960614 +6.15593000979 +5.87218645455 +5.69587949122 +5.4201024588 +5.17954376642 +4.89847514072 +4.65060064205 +4.43041174864 +4.26530964316 +4.47349638914 +5.24463229837 +6.06967253425 +6.22380243074 +6.15947595271 +5.72707931992 +5.48629389532 +5.39376476912 +5.35075097404 +5.72559215591 +5.91976793601 +6.26779475967 +6.74577054678 +6.23414533552 +5.81086557321 +5.52381306114 +5.4890280646 +5.88119118446 +6.07596399457 +5.63265823308 +5.24032909853 +4.95106170241 +4.71825341797 +4.41993159462 +4.73096586652 +5.56057750168 +5.69611593155 +5.78298803937 +5.58108012936 +5.40910477715 +5.05387653599 +5.15793903148 +6.01026854032 +6.41731969375 +5.9007439024 +5.53566458875 +5.34055708125 +5.05916854271 +4.71219664818 +4.41323982253 +4.13146587623 +3.88668921756 +3.70440984732 +3.99587511418 +4.83573660905 +5.1001327923 +4.71826622199 +4.38041929196 +4.08098190926 +3.97333979868 +4.43653879458 +4.88639494898 +4.52002967509 +4.19880785314 +3.99034689131 +4.01399857671 +4.02534023615 +3.76222508815 +3.51912588077 +3.30270976927 +3.1096063472 +3.06196541243 +3.01461360457 +2.93738379383 +2.86305358239 +2.79145657803 +2.78478457268 +2.71797885189 +2.71351097548 +2.69359142335 +2.62610490136 +2.56105728529 +2.54044923228 +2.47791500731 +2.41756948607 +2.38195882003 +2.32458494057 +2.26913731495 +2.21632351764 +2.18869073295 +2.18774428002 +2.14039443546 +2.27519842893 +2.26818737683 +2.21029322292 +2.1545593846 +2.10086246095 +2.16155736447 +2.28108746771 +2.22190111021 +2.25381060044 +2.19508113444 +2.33052180181 +2.26891888218 +2.35083989675 +2.43100830404 +2.38726475725 +2.39984922745 +2.52038922811 +2.33832284437 +2.1950041638 +2.5640885557 +3.19788749907 +3.48419029282 +3.55746328036 +3.30031551047 +3.02116227768 +2.77530120949 +2.65454951132 +2.61387615157 +2.41546275525 +2.24001529038 +2.20590120984 +2.28918258696 +2.33086802006 +2.3664800892 +2.47338356276 +2.42415069345 +2.50813060885 +2.57694656565 +2.85549122777 +2.84889613007 +2.62581731971 +2.71455735166 +3.33642148582 +3.6818562554 +3.38224696436 +3.13091249096 +3.10465387875 +3.43971490402 +3.89925519234 +3.98141144697 +3.62065081933 +3.30365261607 +3.02479045118 +2.77916811421 +2.58485225635 +2.44076447466 +2.28682478589 +2.23378138825 +2.17121282296 +2.13281431139 +2.13856645877 +2.38006818789 +2.7522387408 +2.83620266973 +2.61838720079 +2.41396511115 +2.23339852823 +2.11597420854 +2.05728822151 +2.00108527444 +1.94721096093 +1.90462722615 +1.94997420713 +1.90052498153 +2.13251005456 +2.11401341724 +2.0175539323 +1.96090282617 +1.90668874436 +1.85475862621 +1.80497081788 +1.76660012913 +1.7202742542 +1.67575440656 +1.67124145402 +1.63119551717 +1.6216900798 +1.58021946436 +1.71518888993 +1.75463039255 +1.93915419173 +1.90892430202 +1.8557848598 +1.80203219412 +1.75068553923 +1.70159029832 +1.65460348464 +1.61689029189 +1.57339276795 +1.53526634858 +1.50219115967 +1.46317762049 +1.43274656996 +1.85472404556 +2.89565687306 +4.38130598614 +3.9327475572 +3.54008149705 +3.19609020226 +2.90639026693 +2.66040123891 +2.42432238442 +2.21673831488 +2.05726794716 +1.93271573229 +1.85113899676 +2.10818315252 +2.52128739219 +2.65036233415 +2.41636055957 +2.21056810911 +2.02936198876 +1.88888465283 +1.85284343687 +1.79991567405 +1.74931613801 +1.70089669049 +1.65452028191 +1.61006007948 +1.56739866484 +1.52642729554 +1.48704522531 +1.44915907842 +1.41268227387 +1.37753449524 +1.34364120284 +1.31093318448 +1.27934614204 +1.24882031075 +2.0326469284 +3.60603236587 +7.2442845174 +10.1177382971 +9.58722518799 +8.66770227331 +7.79526295557 +7.07458238899 +6.34321700652 +5.70316251721 +5.14262383708 +4.65133773643 +4.22037372889 +3.84196084438 +4.46416428518 +6.70889285933 +7.79337967112 +7.00174756564 +6.30859748884 +5.70121537988 +5.1685382338 +4.70093949965 +4.29004237621 +5.44079451109 +10.1789205008 +15.5014061659 +18.8773512735 +20.8594189639 +20.724649753 +19.866285136 +17.7485466008 +15.8968165045 +14.2766997015 +12.8582686961 +11.6154829222 +11.0127835656 +13.3451040144 +17.1594216324 +17.1761056621 +16.0119461385 +14.8874034883 +15.549004925 +16.8977412445 +16.2418052343 +14.6782885235 +13.3070706257 +12.1033718624 +11.04562953 +10.1150797806 +9.29539385689 +8.57236161426 +7.93361618401 +8.08524774537 +10.1754466605 +13.4977303754 +15.3117910543 +14.2149025471 +12.9167237243 +11.7763129782 +10.7733803624 +10.6539316909 +12.8973807452 +15.349522984 +15.0284895383 +14.1533448469 +13.044768962 +11.9130498175 +10.9171721454 +10.0397021945 +9.26546808874 +8.58126587313 +7.97560377282 +7.43847969629 +6.96118766143 +6.53614938459 +6.15676776135 +5.8172993932 +5.51274368409 +5.23874635293 +4.99151548786 +4.76774851204 +4.64776986374 +4.53906814052 +4.89819807548 +6.25129109727 +7.60360406658 +8.40020785214 +12.5189698503 +17.0281159798 +19.2238332983 +19.9772209733 +19.1017482894 +18.4961268302 +17.2640451421 +15.747465568 +14.2901422927 +13.0104740982 +11.8856017629 +10.8956330453 +10.0232570707 +9.2534088464 +8.57297738736 +7.97055178417 +7.88802819381 +8.45045847446 +8.7842142562 +9.95611849982 +11.613740506 +11.4086388328 +10.5583243742 +9.89359065713 +9.14860402549 +8.46426706503 +7.86846373134 +7.4225525418 +7.06168463196 +6.61222260944 +6.21181951026 +5.85428509717 +5.53423011532 +5.24696223949 +4.98839554673 +4.75497175607 +4.62195651091 +5.12646496617 +7.68408790855 +12.1763139123 +14.4442239796 +13.7108689015 +13.7104926117 +13.3553501708 +12.8308131787 +12.3404604129 +12.8926915886 +13.7881688129 +12.9125802266 +13.3163118448 +15.1581566601 +15.2836158489 +13.9300775577 +12.7630813566 +11.80194725 +11.5692539411 +12.6994640512 +13.0123518172 +11.8824269868 +10.8881587663 +10.1416023223 +9.65119238898 +9.05357981157 +8.39106317839 +7.83865903079 +7.508003769 +7.73771378121 +8.04348427744 +7.52672827835 +8.72663788362 +11.1071804992 +10.8253376939 +11.6491700209 +13.6455602204 +13.5435411168 +12.5196390593 +11.5554498019 +10.8358916685 +10.1648738523 +9.58481621096 +8.85025250996 +8.22662278333 +7.78756123214 +7.52427785136 +7.31714271138 +7.03573101092 +6.67881863315 +6.44345425495 +6.08659454778 +5.73571500041 +5.89723503687 +6.55933690523 +6.50207278692 +6.20182603183 +6.07325092908 +6.12867835519 +6.1542280517 +5.9295255911 +5.74863711535 +5.72955011768 +5.40493278342 +5.19455495493 +5.0781045391 +4.79224757344 +4.53606608082 +4.30585196841 +4.10544625406 +4.08870053178 +4.00641106841 +3.90949966407 +3.83209370888 +3.74081389353 +3.65633492302 +3.57187833111 +3.48997652694 +3.44894503299 +3.4156067528 +3.3360924115 +3.26935262254 +3.2626119222 +3.21584657049 +3.14553709905 +3.1535122563 +3.14788593903 +3.17112567764 +3.22408736715 +3.14333012888 +3.06549007464 +3.02769845306 +2.97749864262 +2.90473349082 +2.83448085637 +2.76660591179 +2.70098329229 +2.63749636528 +2.57603655771 +2.53563590553 +2.48898343173 +2.63091859737 +2.91818608733 +2.97248504742 +2.95943498111 +3.08248355406 +2.97122128943 +3.06896579132 +3.18029573314 +3.28148718483 +3.99122494433 +4.39670504706 +4.19914374646 +4.97557260321 +6.07680899627 +5.70292025999 +5.66827667418 +6.46810548777 +6.75435228058 +6.12685924351 +5.57957274984 +5.09018313302 +4.65969506957 +4.28054573949 +3.94615360174 +3.65079086573 +3.41116023895 +3.29540219459 +3.90801768255 +5.19672635125 +5.49952007045 +5.12397668267 +4.78910743032 +5.37341572534 +6.7358840558 +6.8556675198 +6.21948997222 +5.66091432123 +5.16995434396 +4.73791998605 +4.35724890053 +4.31035549046 +4.49419633241 +4.28155543223 +4.64380655946 +6.25999081661 +7.85421267246 +7.72788568053 +7.49684229487 +7.36937300236 +6.99546355783 +9.31642954884 +12.7090761299 +12.3888499659 +12.7863966925 +12.5249763304 +11.5232973559 +10.4050025984 +10.3068868724 +11.0627907034 +11.177595665 +12.7627801812 +14.6812613596 +14.6904953623 +13.3477094914 +12.0575565672 +10.926222537 +9.93323896421 +9.22181880138 +8.74281164094 +8.28475874099 +7.97483817507 +7.51589409228 +7.87606752414 +8.92512760918 +9.11012594346 +8.35430717643 +7.6733949746 +7.07289840439 +6.54252549278 +6.07331898205 +5.6657415266 +5.30945628447 +4.97839378062 +4.683186066 +4.42706286538 +4.20275983112 +3.9879381602 +3.93281667851 +4.03393478554 +4.14837848684 +3.9383405779 +3.75941845383 +3.92565652412 +4.41229397031 +6.05920065034 +8.09452712675 +7.49043429477 +6.85615301156 +6.29753879166 +5.80489070691 +5.36976623402 +4.98481771623 +4.64365008389 +4.34069707035 +4.07111351862 +3.83068168726 +3.61572973546 +3.4357808091 +3.35024929635 +3.26777368558 +3.18818523701 +3.1113271954 +3.39011028765 +3.44014456698 +3.54275810409 +3.78903865142 +3.54697401305 +3.33136756995 +3.14708815887 +3.04821631291 +2.97116142645 +2.89693488254 +2.82537713473 +2.75634006589 +2.68968610053 +2.62528738759 +2.56302504818 +2.5027884829 +2.44447473407 +2.38798789855 +2.333238587 +2.28014342597 +2.22862459931 +2.17860942583 +2.13002997034 +2.08282268532 +2.03692808085 +1.99229042052 +2.15046487017 +2.09877917752 +2.52883452085 +2.88719177082 +3.69339633418 +4.16808287495 +3.80482442181 +3.48521772116 +3.20365948211 +2.95527341284 +2.73581573931 +2.54159300594 +2.37639392071 +2.31196339414 +2.25017368997 +2.19086381478 +2.1338846492 +2.07909801808 +2.02637583463 +1.9755993127 +1.92665824162 +1.87945031875 +1.83388053499 +1.78986060909 +1.8889533303 +2.66939463405 +3.43627318223 +3.44164411326 +3.60314696095 +3.55394876242 +4.0443123089 +5.848530874 +6.64638644394 +5.97410909 +6.05981231395 +7.97624695902 +10.7121638644 +11.6685389092 +10.4511616686 +9.38495075074 +8.43322407603 +7.94430893129 +8.79609826424 +9.7210816122 +9.14148120465 +8.88774188114 +8.16263670418 +7.39120167518 +6.7142590451 +6.11964068517 +5.59675800572 +5.1363966624 +4.73053794977 +4.3722034127 +4.05531965753 +3.77460073676 +3.525445823 +3.30385018439 +3.10632773242 +2.97629712333 +2.90046719855 +2.82745819086 +3.76078135149 +7.02107619988 +10.7889618123 +12.1441064778 +13.8695333112 +14.8353124458 +14.9350703506 +16.3052210983 +15.850809577 +14.4435934718 +13.1451866547 +11.8578311541 +10.7294014934 +9.73940592069 +8.87001324004 +8.1057070061 +7.43298467282 +6.84009585132 +6.32874502303 +5.88490247946 +5.47169521115 +5.87083263663 +7.33181484774 +9.4292195467 +12.1488952533 +12.1530084208 +11.3264438473 +11.051221469 +10.4471696993 +9.55217996971 +8.74882775956 +8.05790109537 +7.68436311717 +7.54355489713 +6.95551677853 +6.43607113498 +5.97645799434 +5.56905303985 +5.20722003775 +4.88518244806 +6.58361608405 +10.2515801049 +10.6901636319 +9.95383203629 +10.0585107025 +10.1595993607 +9.25837954086 +8.46592773571 +7.76827191451 +7.15325305439 +6.6102895163 +6.13017205099 +5.8220701589 +6.19449113747 +6.71193849306 +6.65914912776 +7.81172497928 +9.02451928773 +8.82146633534 +8.07151026749 +7.41111179735 +8.15111736678 +10.5120406785 +12.1724533483 +14.8624516654 +16.3085847434 +14.7301084675 +13.311973344 +12.6705078102 +12.6682917203 +11.8853893121 +11.0559601369 +10.3137968521 +9.78493721945 +9.46794272992 +10.7885102402 +11.994816507 +12.0631332061 +12.9571484154 +12.1334622671 +12.1737651886 +12.2310595271 +11.1546914148 +10.2079777645 +9.37426896411 +8.64534584188 +8.07642640493 +7.76838878999 +7.48375894063 +7.18136685658 +7.11804244678 +6.73216804119 +6.29264997593 +5.90155598355 +5.55680567998 +5.25507446478 +5.37674975981 +6.09764048307 +6.30206896905 +5.89339126183 +5.74294647462 +5.95807401842 +6.07712929162 +6.11408208449 +6.07872090016 +6.32689734386 +7.12652200472 +7.85903294647 +9.58714473687 +10.595732698 +10.9933363715 +10.0043404886 +9.13511131354 +8.37025522949 +7.69637626864 +7.19074074058 +6.82176432505 +6.45672134491 +6.40647152674 +6.3506240418 +6.4924192912 +7.39506694442 +7.46339530438 +6.9243043064 +6.46346983389 +6.03431289431 +5.84891347051 +6.17752506351 +6.50169741215 +6.22698120804 +6.06936803352 +5.66416806398 +5.27989583857 +4.93853761 +4.63465538654 +4.3658832043 +4.12708163735 +3.90888143014 +3.88840113521 +3.9230545101 +3.83273305179 +3.94595577333 +4.02098730663 +3.94975546432 +3.78494113066 +3.57904639379 +3.44676368494 +3.36161722834 +3.27947059551 +3.20556193267 +3.12868318991 +3.05436342234 +2.98246973843 +2.91287844143 +2.84547432254 +2.78015001004 +2.81020881971 +3.24744492218 +3.90262208633 +4.55445174577 +4.2987909664 +4.3100104554 +4.68480663386 +4.5526791832 +4.20861025287 +4.28995175731 +5.53285648993 +6.67214519522 +6.26043333324 +5.89649311673 +5.42619048389 +4.99757481555 +4.59771132533 +4.24483366412 +3.93619644113 +3.99426529345 +4.54490552446 +4.83916613444 +4.79361313375 +4.73666650383 +5.85231698535 +7.25817888664 +6.74510372204 +6.37056099998 +6.16147894278 +5.81280266681 +5.71328233689 +5.52097938667 +5.42197164548 +6.57443736312 +8.54860474676 +8.77900085486 +9.00518322608 +8.17083512303 +7.41649670808 +6.75406488405 +6.17171494219 +5.70059763174 +5.31892186152 +4.91557723824 +4.5507660611 +4.22789605971 +3.94162456677 +3.79508098594 +3.86039583305 +3.81822311338 +3.57221720013 +3.35318479377 +3.23247429526 +3.19433457428 +3.0581469698 +3.11277442541 +4.06569156664 +5.44171994321 +4.98678001073 +4.58593259626 +4.23224666594 +3.91969020042 +3.64301336339 +3.40153813411 +3.1896140737 +2.99427887125 +2.86592740988 +2.83382039768 +2.81397320999 +2.74145742794 +2.67169086696 +2.60451463019 +2.54273636739 +2.48017125475 +2.41979427519 +2.36148671958 +2.30784582505 +2.25322746894 +2.20037839511 +2.14920906472 +2.09963606193 +2.05158162492 +2.00497321391 +1.9597431134 +1.91810232182 +1.87533705805 +1.83377935694 +1.79337688665 +1.75616792039 +1.71783446664 +1.6805244896 +1.64419697512 +1.76776328905 +1.77011338841 +1.72751600233 +1.68634617343 +1.64652930182 +1.60799596349 +1.57068151212 +1.53452571234 +1.49947240211 +1.46546918177 +1.43246712763 +1.53604381616 +1.4985808425 +1.46724273502 +1.66603427869 +1.78776093591 +2.48663090131 +3.34750537645 +3.05934800674 +3.04662240841 +3.32030207305 +3.27959809652 +3.39134634396 +3.67872188327 +3.3383323427 +3.16589839446 +3.27614454597 +3.29024746729 +3.05303084338 +2.80288401495 +2.56294352356 +2.35170660745 +2.16549157559 +2.00969079919 +1.95261851044 +1.89803794529 +1.84579124703 +1.79573235789 +1.74772609167 +1.70164728029 +1.65737998831 +1.61481678988 +1.57385810331 +1.53441157853 +1.49639153327 +1.459718434 +1.42431841821 +1.3901228545 +1.3570679377 +1.32509431601 +1.29414674779 +1.26417378548 +1.23512748461 +1.20696313577 +1.17963901783 +1.15311617068 +1.12735818581 +1.10233101355 +1.07800278542 +1.21439179173 +1.18390485257 +1.15452358046 +1.1261861878 +1.09883529667 +1.07241759676 +1.04688353037 +1.02218700246 +0.998285113688 +0.975137914592 +0.952708179224 +0.93096119673 +0.909864579398 +0.889388085885 +0.869503458396 +0.850184272718 +0.831405800075 +0.81314487986 +1.78410127452 +2.8070386377 +3.81314677952 +4.10670643274 +3.65864346137 +3.58156136487 +4.8701485165 +6.51610753104 +6.22849595535 +5.5509498928 +4.95884165016 +4.44111717419 +3.98815838133 +3.59159650274 +3.98254626951 +6.42810035164 +9.84646892394 +12.0818367129 +12.3215216636 +10.97583919 +10.0398681855 +9.38848008885 +8.41686796068 +7.56658760351 +10.8525529152 +19.2098577891 +24.4776138356 +26.5729611722 +23.644185319 +22.6122986945 +27.1581802316 +31.6272281 +28.1927112638 +25.1911411599 +22.5665055223 +20.2700682634 +18.2594236789 +16.4976736046 +14.9527115399 +13.5965998335 +12.4050278331 +12.6760166278 +16.0695147232 +23.5224715853 +32.91650539 +34.6553640888 +31.0361676319 +27.8697466969 +25.0975948664 +22.668804469 +20.5390788845 +18.6698732461 +17.0276468484 +15.5832127399 +14.3111718658 +13.1894207698 +12.1987232913 +11.3223379405 +10.5456937119 +9.85610803883 +9.24254141311 +8.69538390035 +8.63592398236 +8.87212634831 +8.34867581698 +7.88067533684 +7.89117481941 +9.85367365636 +11.9973475094 +12.7298609459 +17.2209016635 +22.7318460106 +27.9458301372 +31.4824326195 +29.9224581799 +27.1211427708 +24.4886287349 +22.1804768331 +20.1548772819 +20.1847491153 +21.5764513367 +20.909386525 +20.8701593106 +19.0280438692 +17.4079833298 +15.9814589572 +14.7236524839 +14.3564650856 +15.1487147545 +16.6328880039 +18.0332359076 +17.1756389301 +18.0094765057 +19.661139126 +21.006954602 +20.8060421095 +19.0041503201 +17.3995685734 +15.9862632978 +14.8228985049 +14.9599331064 +15.9698901988 +15.1956511204 +14.0790608689 +13.4328272822 +13.1730091109 +12.6146776682 +12.6110826569 +12.7273987954 +12.2847092369 +12.0780509649 +12.8958158641 +13.2864028464 +13.0256416203 +13.5369590145 +13.0036981832 +12.1161534788 +11.3654477335 +10.6257673365 +9.95582076679 +9.36898947026 +10.3066660526 +13.0896534094 +14.0085843264 +13.4642704308 +12.4402754718 +12.0578064827 +12.2852935131 +12.1832167567 +12.0350505126 +11.1468138014 +10.5549473952 +10.3833741768 +10.3415763787 +10.127888625 +9.44524406632 +8.98837385488 +8.71974286757 +8.27449495256 +7.8315874819 +7.65058546766 +7.92554443929 +7.90899459562 +7.44759370171 +7.03790834083 +6.66335044509 +6.32667767202 +6.15287144174 +6.0913015253 +5.83759794128 +5.60790612551 +5.47521009141 +5.43369348155 +5.29109408611 +5.1896037085 +4.99111142365 +4.92698920542 +4.94263523654 +5.1298440995 +6.05292978465 +7.47453752426 +7.98745256674 +7.58328261839 +7.3522168189 +7.11463149799 +7.37720950818 +7.35064500819 +6.86698383457 +6.39634341725 +6.30535761961 +6.74018631298 +6.93332305874 +6.71779957988 +6.47680600653 +6.58708350799 +6.49763640452 +6.18454931424 +5.77062497137 +5.4027094517 +5.07497763506 +4.91275523872 +5.0433233487 +5.06374367289 +4.76130307308 +4.49106282969 +4.24897923481 +4.23997691133 +4.50986475141 +4.73245914047 +4.91754471833 +4.70385576958 +4.45103464716 +4.47593129999 +4.59617020624 +4.32076811081 +4.06573360598 +4.05817399097 +4.29976882032 +4.22148587771 +3.99151440503 +3.76886073914 +3.57724410219 +3.42290337828 +3.35565134028 +3.27284557799 +3.1999702541 +3.14894839917 +3.07680425954 +3.02146464725 +3.15725599048 +3.38003752907 +3.56522922236 +3.36945514852 +3.21405127091 +3.14693854141 +3.12796924367 +2.99484309845 +3.0544534288 +3.01326460523 +3.01580158863 +2.98948738643 +2.87355495916 +3.08131565237 +3.33356730066 +3.38951082707 +3.45159296704 +3.50388341408 +3.90682478151 +4.08207202543 +3.76673722546 +3.48808925822 +3.26053659944 +3.11813405623 +3.25547348539 +3.48487390858 +3.26261441341 +3.06889234268 +2.91447714418 +2.82137351197 +2.87433596396 +3.06410074296 +2.87754904492 +2.72854864976 +2.62339779866 +2.58710600682 +2.57186367821 +2.57361942132 +2.57650680679 +2.50660237147 +2.55086246444 +2.60472896868 +2.63879127831 +2.46257637999 +2.391569286 +2.33029200035 +2.26917317973 +2.21043777396 +2.15588864209 +2.10141796112 +2.04894492641 +1.99835692644 +1.94954941459 +1.90242528283 +1.85689428519 +1.91319545215 +2.00953178489 +2.25217297667 +2.53418839936 +2.99738082537 +2.96188926839 +2.71835866098 +2.50365673258 +2.31409236093 +2.15353079474 +2.0935586582 +2.03613808603 +1.98110987723 +1.93135392992 +1.88053799393 +1.83171348526 +1.78476256667 +1.73957599835 +1.69605246677 +1.9331391361 +2.00748135597 +1.9953043438 +2.17518208806 +2.42947674551 +2.4466980832 +2.2802583276 +2.10373280909 +1.98202184419 +1.9255337439 +1.87152321868 +1.819832892 +1.77031716083 +1.72284127015 +1.67728046109 +1.6335191869 +1.59145039139 +1.5970870467 +1.55596083132 +1.72306238632 +1.71241525254 +1.90472428594 +1.89733074922 +1.83740633793 +1.92497864602 +2.56431310245 +3.67224544401 +3.71279553717 +3.68776774004 +4.20961669417 +4.67643221258 +5.32258965118 +5.9254711996 +5.99997296613 +5.82855844594 +5.40278186874 +4.86774033466 +4.39890779784 +3.98774401667 +3.63412585691 +3.32844420111 +3.7912236212 +4.78217981049 +4.8976538322 +5.40273353552 +5.94722734801 +6.71495553392 +6.31322318132 +5.69627847047 +5.15546108598 +4.68095598513 +4.26422245059 +3.89782846067 +3.72345223134 +3.67176294354 +3.37617486035 +3.11537840598 +2.88492336513 +2.68093659655 +2.50004704251 +2.40620445663 +2.34208642306 +2.28053026572 +2.22138238583 +2.1645004455 +2.10975248739 +2.05701612438 +2.00617779369 +1.95713207027 +1.90978103472 +1.86403369142 +1.81980543279 +1.77701754611 diff --git a/test/test_models.py b/test/test_models.py index a6ebc7f..fdf6bf3 100644 --- a/test/test_models.py +++ b/test/test_models.py @@ -103,7 +103,19 @@ class TestHBVEdu(unittest.TestCase): """Test HBVEdu specific functions.""" def setUp(self): - self.model = HBVEdu() + # parameter set see https://github.com/kratzert/RRMPG/issues/10 + params = {'T_t': 0, + 'DD': 4.25, + 'FC': 177.1, + 'Beta': 2.35, + 'C': 0.02, + 'PWP': 105.89, + 'K_0': 0.05, + 'K_1': 0.03, + 'K_2': 0.02, + 'K_p': 0.05, + 'L': 4.87} + self.model = HBVEdu(params=params) def test_model_subclass_of_basemodel(self): self.assertTrue(issubclass(self.model.__class__, BaseModel)) @@ -135,18 +147,31 @@ def test_simulated_against_validation_data(self): monthly_file = os.path.join(test_dir, 'data', 'hbv_monthly_inputs.txt') monthly_inputs = pd.read_csv(monthly_file, sep=' ', names=['temp', 'not_needed', 'evap']) + + qsim_matlab_file = os.path.join(test_dir, 'data', 'hbv_qsim.csv') + qsim_matlab = pd.read_csv(qsim_matlab_file, header=None, + names=['qsim']) # fix parameters from provided MATLAB code from HBV paper area = 410 soil_init = 100 s1_init = 3 s2_init = 10 - """ - TODO: - Need to find someone who can run the matlab code for me with fixed - parameters. Then perform validation against simulated time series from - MATLAB code with fixed parameters. - """ + qsim = self.model.simulate(temp=daily_inputs.temp, + prec=daily_inputs.prec, + month=daily_inputs.month, + PE_m=monthly_inputs.evap, + T_m=monthly_inputs.temp, + snow_init=0, + soil_init=soil_init, + s1_init=s1_init, + s2_init=s2_init, + return_storage=False) + + # rescale qsim from mm/d to m³/s + qsim = (qsim * area * 1000) / (24*60*60) + + self.assertTrue(np.allclose(qsim.flatten(), qsim_matlab.qsim)) class TestGR4J(unittest.TestCase):