From 3c5fd7090bab0250278233f87b96631a48bc2fc0 Mon Sep 17 00:00:00 2001 From: marek395 Date: Tue, 25 Feb 2025 17:30:15 +0100 Subject: [PATCH 1/7] fetching script working project uploaded --- Fetching/Geliosphere_K0_phi_table.csv | 518 ++++++++++++++++++++ Fetching/fetch_script.py | 197 ++++++++ Fetching/fetch_script_log.txt | 239 ++++++++++ Fetching/table_data_flow_speed.csv | 11 + Fetching/table_data_phi.csv | 75 +++ Fetching/table_data_tilt_angle.csv | 653 ++++++++++++++++++++++++++ 6 files changed, 1693 insertions(+) create mode 100644 Fetching/Geliosphere_K0_phi_table.csv create mode 100644 Fetching/fetch_script.py create mode 100644 Fetching/fetch_script_log.txt create mode 100644 Fetching/table_data_flow_speed.csv create mode 100644 Fetching/table_data_phi.csv create mode 100644 Fetching/table_data_tilt_angle.csv diff --git a/Fetching/Geliosphere_K0_phi_table.csv b/Fetching/Geliosphere_K0_phi_table.csv new file mode 100644 index 0000000..63fe773 --- /dev/null +++ b/Fetching/Geliosphere_K0_phi_table.csv @@ -0,0 +1,518 @@ +carrington_rotation,year_week,modulation_potentional,k0_au2/s,tilt_angle,year,month,day,polarity +1642,1976.4071038,434,5.34803225806452e-05,6.8,1976,5,27,1 +1643,1976.4795081,426,5.47252112676056e-05,6.2,1976,6,23,1 +1644,1976.557377,412,5.70200970873787e-05,6.8,1976,7,21,1 +1645,1976.6297814,408,5.77047058823529e-05,4.0,1976,8,17,1 +1646,1976.7021857,407,5.78779606879607e-05,6.7,1976,9,13,1 +1647,1976.7800546,408,5.77047058823529e-05,7.9,1976,10,11,1 +1648,1976.852459,404,5.84028712871287e-05,7.1,1976,11,7,1 +1649,1976.9275956,411,5.719e-05,7.4,1976,12,4,1 +1650,1977.0013661,411,5.719e-05,6.6,1976,12,31,1 +1651,1977.0767123,421,5.55272921615202e-05,7.7,1977,1,28,1 +1652,1977.1490867,417,5.61828057553957e-05,4.4,1977,2,24,1 +1653,1977.2296803,419,5.58534844868735e-05,8.6,1977,3,23,1 +1654,1977.3020547,416,5.63486538461539e-05,13.7,1977,4,19,1 +1655,1977.3799086,417,5.61828057553957e-05,14.0,1977,5,17,1 +1656,1977.4522831,442,5.22804977375566e-05,15.5,1977,6,13,1 +1657,1977.5273972,487,4.62659753593429e-05,11.8,1977,7,10,1 +1658,1977.6025114,476,4.76311764705882e-05,10.0,1977,8,7,1 +1659,1977.6748858,475,4.77584210526316e-05,12.5,1977,9,3,1 +1660,1977.7488584,475,4.77584210526316e-05,12.3,1977,9,30,1 +1661,1977.8239726,438,5.28749315068493e-05,12.4,1977,10,27,1 +1662,1977.8990867,408,5.77047058823529e-05,16.3,1977,11,24,1 +1663,1977.9742009,418,5.60177511961723e-05,15.7,1977,12,21,1 +1664,1978.0465753,478,4.73782845188285e-05,26.7,1978,1,17,1 +1665,1978.1189497,496,4.51940322580645e-05,36.1,1978,2,13,1 +1666,1978.2022831,510,4.36017647058824e-05,32.7,1978,3,13,1 +1667,1978.2746575,588,3.61185714285714e-05,26.5,1978,4,9,1 +1668,1978.3497716,669,3.01944843049327e-05,30.4,1978,5,6,1 +1669,1978.4248858,602,3.49806976744186e-05,24.5,1978,6,3,1 +1670,1978.4988584,602,3.49806976744186e-05,27.1,1978,6,30,1 +1671,1978.5739726,591,3.58702030456853e-05,26.4,1978,7,27,1 +1672,1978.646347,495,4.53112121212121e-05,34.1,1978,8,23,1 +1673,1978.7214611,495,4.53112121212121e-05,51.3,1978,9,20,1 +1674,1978.7965753,566,3.80203886925795e-05,46.5,1978,10,17,1 +1675,1978.8689497,528,4.16786363636364e-05,43.9,1978,11,13,1 +1676,1978.9440639,530,4.14730188679245e-05,45.3,1978,12,10,1 +1677,1979.019178,584,3.6453698630137e-05,47.5,1979,1,7,1 +1678,1979.0915525,609,3.44313793103448e-05,59.2,1979,2,3,1 +1679,1979.1721461,653,3.12481929555896e-05,55.2,1979,3,2,1 +1680,1979.2488584,653,3.12481929555896e-05,65.4,1979,3,30,1 +1681,1979.3212328,738,2.61737398373984e-05,67.6,1979,4,26,1 +1682,1979.396347,706,2.79407082152975e-05,62.5,1979,5,23,1 +1683,1979.4687214,812,2.26210344827586e-05,66.3,1979,6,19,1 +1684,1979.5465753,799,2.31975093867334e-05,71.5,1979,7,17,1 +1685,1979.6189497,906,1.89449668874172e-05,62.0,1979,8,13,1 +1686,1979.6913242,860,2.0643488372093e-05,70.6,1979,9,9,1 +1687,1979.769178,778,2.41694344473008e-05,73.8,1979,10,7,1 +1688,1979.8415525,774,2.43605426356589e-05,70.9,1979,11,3,1 +1689,1979.9155251,774,2.1750484496124e-05,69.1,1979,11,30,-1 +1690,1979.9906392,688,2.58989825581395e-05,72.0,1979,12,27,-1 +1691,1980.0655737,716,2.44388966480447e-05,65.1,1980,1,24,-1 +1692,1980.1379781,743,2.31351783310902e-05,69.8,1980,2,20,-1 +1693,1980.2158469,686,2.60078352769679e-05,64.8,1980,3,18,-1 +1694,1980.2882513,762,2.22731299212598e-05,50.4,1980,4,14,-1 +1695,1980.3661202,757,2.24957892998679e-05,41.0,1980,5,12,-1 +1696,1980.4385245,886,1.75551636568849e-05,31.2,1980,6,8,-1 +1697,1980.5136612,885,1.75879237288136e-05,44.0,1980,7,5,-1 +1698,1980.5887978,855,1.86063596491228e-05,48.5,1980,8,2,-1 +1699,1980.6625683,855,1.86063596491228e-05,42.7,1980,8,29,-1 +1700,1980.7349726,866,1.82247401847575e-05,44.2,1980,9,25,-1 +1701,1980.8101092,960,1.53203125e-05,47.3,1980,10,22,-1 +1702,1980.8852459,1052,1.29802756653992e-05,47.3,1980,11,19,-1 +1703,1980.9603825,1038,1.33096098265896e-05,37.3,1980,12,16,-1 +1704,1981.0328767,878,1.78193337129841e-05,40.0,1981,1,12,-1 +1705,1981.1052511,968,1.5099173553719e-05,50.0,1981,2,8,-1 +1706,1981.1885844,995,1.43790829145729e-05,49.7,1981,3,8,-1 +1707,1981.2609589,1055,1.29108412322275e-05,54.6,1981,4,4,-1 +1708,1981.336073,1124,1.14161476868327e-05,47.6,1981,5,1,-1 +1709,1981.4127853,1124,1.14161476868327e-05,42.2,1981,5,29,-1 +1710,1981.4851598,967,1.51266158221303e-05,44.4,1981,6,25,-1 +1711,1981.5602739,930,1.61834677419355e-05,36.9,1981,7,22,-1 +1712,1981.6326484,923,1.63929442036836e-05,31.1,1981,8,18,-1 +1713,1981.7077625,871,1.805446326062e-05,35.0,1981,9,15,-1 +1714,1981.7828767,1046,1.31203393881453e-05,33.3,1981,10,12,-1 +1715,1981.8552511,1010,1.39956683168317e-05,27.2,1981,11,8,-1 +1716,1981.933105,886,1.75551636568849e-05,28.0,1981,12,6,-1 +1717,1982.0054794,813,2.01584409594096e-05,29.8,1982,1,2,-1 +1718,1982.079452,813,2.01584409594096e-05,37.3,1982,1,29,-1 +1719,1982.1518264,982,1.4720850305499e-05,31.4,1982,2,25,-1 +1720,1982.2351598,828,1.95860507246377e-05,38.9,1982,3,25,-1 +1721,1982.3075342,798,2.07523496240602e-05,41.5,1982,4,21,-1 +1722,1982.3826484,758,2.24510224274406e-05,44.9,1982,5,18,-1 +1723,1982.4550228,1009,1.40208746283449e-05,48.9,1982,6,14,-1 +1724,1982.5328767,1258,8.98181637519873e-06,47.8,1982,7,12,-1 +1725,1982.6052511,1240,9.27822580645161e-06,49.1,1982,8,8,-1 +1726,1982.6776255,1422,6.62684599156118e-06,46.7,1982,9,4,-1 +1727,1982.7554794,1222,9.5833674304419e-06,34.7,1982,10,2,-1 +1728,1982.829452,1222,9.5833674304419e-06,28.2,1982,10,29,-1 +1729,1982.9018264,1150,1.08994565217391e-05,24.3,1982,11,25,-1 +1730,1982.9769406,1256,9.01433121019108e-06,26.1,1982,12,22,-1 +1731,1983.0520547,1086,1.22158149171271e-05,32.9,1983,1,19,-1 +1732,1983.1244292,969,1.50717879256966e-05,28.0,1983,2,15,-1 +1733,1983.2050228,877,1.78526938426454e-05,27.4,1983,3,14,-1 +1734,1983.2773972,874,1.79532322654462e-05,33.0,1983,4,10,-1 +1735,1983.3552511,1029,1.3526056851312e-05,31.2,1983,5,8,-1 +1736,1983.4276255,928,1.62429956896552e-05,24.3,1983,6,4,-1 +1737,1983.5027397,826,1.96611682808717e-05,25.1,1983,7,1,-1 +1738,1983.579452,826,1.96611682808717e-05,25.0,1983,7,29,-1 +1739,1983.6518264,836,1.92891746411483e-05,23.4,1983,8,25,-1 +1740,1983.7242009,803,2.05519146948941e-05,21.8,1983,9,21,-1 +1741,1983.799315,787,2.12022712833545e-05,18.2,1983,10,18,-1 +1742,1983.8744292,762,2.22731299212598e-05,20.0,1983,11,15,-1 +1743,1983.9495433,761,2.23174277266754e-05,15.7,1983,12,12,-1 +1744,1984.0218579,709,2.47931064880113e-05,17.4,1984,1,8,-1 +1745,1984.0942622,736,2.34639945652174e-05,20.0,1984,2,4,-1 +1746,1984.1748633,800,2.0671875e-05,23.8,1984,3,3,-1 +1747,1984.2486338,800,2.0671875e-05,23.9,1984,3,30,-1 +1748,1984.3210382,846,1.8925975177305e-05,24.1,1984,4,26,-1 +1749,1984.3989071,967,1.51266158221303e-05,23.9,1984,5,24,-1 +1750,1984.4713114,880,1.77528409090909e-05,23.8,1984,6,20,-1 +1751,1984.546448,842,1.90702197149644e-05,22.1,1984,7,17,-1 +1752,1984.6188524,778,2.157985218509e-05,24.1,1984,8,13,-1 +1753,1984.693989,753,2.26760458167331e-05,21.8,1984,9,10,-1 +1754,1984.7691256,751,2.27668941411451e-05,19.0,1984,10,7,-1 +1755,1984.84153,772,2.18364637305699e-05,16.7,1984,11,3,-1 +1756,1984.9193989,746,2.29961461126005e-05,13.0,1984,12,1,-1 +1757,1984.9931693,746,2.29961461126005e-05,10.4,1984,12,28,-1 +1758,1985.0657534,724,2.40424723756906e-05,9.0,1985,1,24,-1 +1759,1985.1381278,656,2.77202743902439e-05,6.3,1985,2,20,-1 +1760,1985.2214611,636,2.89516509433962e-05,6.4,1985,3,20,-1 +1761,1985.2938356,609,3.0742302955665e-05,5.0,1985,4,16,-1 +1762,1985.3689497,596,3.16623322147651e-05,5.7,1985,5,13,-1 +1763,1985.4413242,542,3.59564114391144e-05,6.8,1985,6,9,-1 +1764,1985.519178,549,3.53521174863388e-05,7.1,1985,7,7,-1 +1765,1985.5915525,543,3.58691298342542e-05,6.7,1985,8,3,-1 +1766,1985.6655251,543,3.58691298342542e-05,7.8,1985,8,30,-1 +1767,1985.7406392,501,3.98349550898204e-05,8.8,1985,9,27,-1 +1768,1985.8157534,495,4.04564393939394e-05,7.7,1985,10,24,-1 +1769,1985.8881278,464,4.39234913793104e-05,6.9,1985,11,20,-1 +1770,1985.963242,485,4.15264175257732e-05,6.9,1985,12,17,-1 +1771,1986.0383561,486,4.14174382716049e-05,6.9,1986,1,14,-1 +1772,1986.1107305,575,3.32364130434783e-05,8.1,1986,2,10,-1 +1773,1986.1913242,507,3.92281804733728e-05,7.7,1986,3,9,-1 +1774,1986.2636986,434,4.77502880184332e-05,6.0,1986,4,5,-1 +1775,1986.3415525,416,5.03112980769231e-05,4.2,1986,5,3,-1 +1776,1986.4155251,416,5.03112980769231e-05,4.0,1986,5,30,-1 +1777,1986.4878995,405,5.19884259259259e-05,3.8,1986,6,26,-1 +1778,1986.5657534,403,5.23031947890819e-05,4.5,1986,7,24,-1 +1779,1986.6381278,402,5.24617537313433e-05,3.6,1986,8,20,-1 +1780,1986.7105022,401,5.26211034912718e-05,3.8,1986,9,16,-1 +1781,1986.7856164,378,5.65188492063492e-05,7.3,1986,10,13,-1 +1782,1986.8607305,433,4.7886980369515e-05,4.9,1986,11,10,-1 +1783,1986.9358447,382,5.58072643979058e-05,5.1,1986,12,7,-1 +1784,1987.0082191,339,6.43368362831858e-05,3.9,1987,1,3,-1 +1785,1987.0821917,339,6.43368362831858e-05,3.3,1987,1,30,-1 +1786,1987.1573059,311,7.1158963022508e-05,3.4,1987,2,27,-1 +1787,1987.2378995,312,7.08942307692308e-05,3.7,1987,3,26,-1 +1788,1987.3102739,328,6.68780487804878e-05,4.8,1987,4,22,-1 +1789,1987.3881278,349,6.21656518624642e-05,9.7,1987,5,20,-1 +1790,1987.4605022,406,5.18322044334975e-05,9.7,1987,6,16,-1 +1791,1987.5356164,435,4.7614224137931e-05,11.6,1987,7,13,-1 +1792,1987.6079908,468,4.34503205128205e-05,15.8,1987,8,9,-1 +1793,1987.683105,501,3.98349550898204e-05,21.3,1987,9,6,-1 +1794,1987.7582191,492,4.07728658536585e-05,15.3,1987,10,3,-1 +1795,1987.8321917,492,4.07728658536585e-05,14.5,1987,10,30,-1 +1796,1987.9073059,534,3.66664325842697e-05,10.8,1987,11,27,-1 +1797,1987.98242,534,3.66664325842697e-05,11.2,1987,12,24,-1 +1798,1988.0546448,626,2.95968450479233e-05,14.6,1988,1,20,-1 +1799,1988.1270491,593,3.18803752107926e-05,19.8,1988,2,16,-1 +1800,1988.2076502,581,3.27750645438898e-05,28.5,1988,3,15,-1 +1801,1988.2800546,602,3.12327657807309e-05,19.8,1988,4,11,-1 +1802,1988.3551912,590,3.21006355932203e-05,28.5,1988,5,8,-1 +1803,1988.4275956,610,3.06731557377049e-05,31.1,1988,6,4,-1 +1804,1988.5054644,681,2.62827643171806e-05,30.2,1988,7,2,-1 +1805,1988.5792349,681,2.62827643171806e-05,38.7,1988,7,29,-1 +1806,1988.6516393,697,2.54168758967001e-05,44.7,1988,8,25,-1 +1807,1988.7267759,682,2.62274560117302e-05,36.9,1988,9,22,-1 +1808,1988.8019125,714,2.45393907563025e-05,34.8,1988,10,19,-1 +1809,1988.8743169,728,2.38475274725275e-05,32.6,1988,11,15,-1 +1810,1988.9494535,819,1.99269688644689e-05,43.6,1988,12,12,-1 +1811,1989.0246575,893,1.73278975363942e-05,45.2,1989,1,9,-1 +1812,1989.0970319,898,1.71677338530067e-05,61.1,1989,2,5,-1 +1813,1989.1776255,1183,1.02763630600169e-05,59.3,1989,3,4,-1 +1814,1989.2515981,1183,1.02763630600169e-05,61.0,1989,3,31,-1 +1815,1989.3267123,1132,1.12546378091873e-05,60.5,1989,4,28,-1 +1816,1989.4018264,1234,9.37895056726094e-06,75.0,1989,5,25,-1 +1817,1989.4742009,1187,1.02031908171862e-05,73.3,1989,6,21,-1 +1818,1989.5520547,1022,1.36970401174168e-05,72.8,1989,7,19,-1 +1819,1989.6244292,1114,1.16212971274686e-05,68.7,1989,8,15,-1 +1820,1989.6968036,1195,1.00583158995816e-05,61.6,1989,9,11,-1 +1821,1989.7719178,1356,7.50608407079646e-06,70.9,1989,10,8,-1 +1822,1989.8470319,1470,6.03698979591837e-06,74.2,1989,11,5,-1 +1823,1989.9221461,1362,7.42263215859031e-06,72.3,1989,12,2,-1 +1824,1989.9961187,1362,7.42263215859031e-06,74.7,1989,12,29,-1 +1825,1990.0712328,1232,9.41274350649351e-06,74.3,1990,1,26,-1 +1826,1990.1436073,1196,1.00403428093645e-05,74.5,1990,2,22,-1 +1827,1990.2242009,1275,8.70955882352941e-06,69.1,1990,3,21,-1 +1828,1990.2965753,1424,6.60147471910112e-06,63.1,1990,4,17,-1 +1829,1990.3744292,1452,6.25361570247934e-06,68.5,1990,5,15,-1 +1830,1990.4468036,1435,6.4631968641115e-06,64.0,1990,6,11,-1 +1831,1990.5219178,1247,9.16193865276664e-06,72.1,1990,7,8,-1 +1832,1990.5942922,1294,8.41373647604328e-06,71.1,1990,8,4,-1 +1833,1990.6694063,1187,1.02031908171862e-05,71.1,1990,9,1,-1 +1834,1990.7433789,1187,1.02031908171862e-05,72.5,1990,9,28,-1 +1835,1990.8184931,1073,1.25023881640261e-05,66.1,1990,10,25,-1 +1836,1990.8936073,996,1.43531626506024e-05,63.2,1990,11,22,-1 +1837,1990.9687214,985,1.63981218274112e-05,44.0,1990,12,19,1 +1838,1991.0410958,872,2.0183119266055e-05,60.9,1991,1,15,1 +1839,1991.1134703,862,2.05658700696056e-05,63.3,1991,2,11,1 +1840,1991.1968036,1257,1.00778281622912e-05,58.3,1991,3,11,1 +1841,1991.269178,1197,1.12250877192982e-05,54.5,1991,4,7,1 +1842,1991.3442922,1158,1.20345595854922e-05,49.4,1991,5,4,1 +1843,1991.4182648,1158,1.20345595854922e-05,49.1,1991,5,31,1 +1844,1991.4933789,2016,1.46083333333333e-06,51.4,1991,6,28,1 +1845,1991.5684931,1938,2.03520123839009e-06,47.1,1991,7,25,1 +1846,1991.6408675,1471,6.7481237253569e-06,41.0,1991,8,21,1 +1847,1991.7159817,1190,1.13664705882353e-05,41.1,1991,9,18,1 +1848,1991.7910958,1126,1.2740621669627e-05,40.3,1991,10,15,1 +1849,1991.8634703,1115,1.29926905829596e-05,38.0,1991,11,11,1 +1850,1991.9385844,1028,1.51763813229572e-05,30.8,1991,12,8,1 +1851,1992.0136612,1019,1.54235623159961e-05,27.6,1992,1,5,1 +1852,1992.0860655,1066,1.41787429643527e-05,22.6,1992,2,1,1 +1853,1992.159836,1066,1.41787429643527e-05,24.3,1992,2,28,1 +1854,1992.2377049,948,1.75381012658228e-05,25.6,1992,3,26,1 +1855,1992.3128415,815,2.24906134969325e-05,19.5,1992,4,23,1 +1856,1992.3879781,860,2.0643488372093e-05,9.3,1992,5,20,1 +1857,1992.4603825,748,2.56525668449198e-05,15.4,1992,6,16,1 +1858,1992.5382513,682,2.93747507331378e-05,17.5,1992,7,14,1 +1859,1992.6106557,695,2.85856834532374e-05,16.3,1992,8,10,1 +1860,1992.6830601,724,2.69275690607735e-05,16.0,1992,9,6,1 +1861,1992.7581967,658,3.09134042553192e-05,16.3,1992,10,3,1 +1862,1992.8346994,658,3.09134042553192e-05,17.0,1992,10,31,1 +1863,1992.9071038,679,2.95611340206186e-05,17.6,1992,11,27,1 +1864,1992.9822404,616,3.38945454545455e-05,23.5,1992,12,24,1 +1865,1993.0575342,632,3.27121518987342e-05,21.3,1993,1,21,1 +1866,1993.1299086,634,3.25685488958991e-05,19.5,1993,2,17,1 +1867,1993.2105022,685,2.919e-05,21.5,1993,3,16,1 +1868,1993.2828767,621,3.35185024154589e-05,19.8,1993,4,12,1 +1869,1993.3607305,599,3.52200500834725e-05,20.8,1993,5,10,1 +1870,1993.433105,580,3.67934482758621e-05,18.6,1993,6,6,1 +1871,1993.5082191,573,3.73994240837696e-05,14.9,1993,7,3,1 +1872,1993.5821917,573,3.73994240837696e-05,17.0,1993,7,30,1 +1873,1993.6573059,571,3.7575288966725e-05,15.5,1993,8,27,1 +1874,1993.7296803,548,3.969e-05,17.3,1993,9,23,1 +1875,1993.8047945,545,3.99789908256881e-05,14.6,1993,10,20,1 +1876,1993.8799086,534,4.1066404494382e-05,17.1,1993,11,17,1 +1877,1993.9550228,541,4.03692975970425e-05,18.5,1993,12,14,1 +1878,1994.0273972,536,4.08653731343284e-05,18.0,1994,1,10,1 +1879,1994.0997716,598,3.53003678929766e-05,17.7,1994,2,6,1 +1880,1994.183105,603,3.49014427860697e-05,17.5,1994,3,6,1 +1881,1994.2554794,605,3.47437190082645e-05,17.3,1994,4,2,1 +1882,1994.329452,605,3.47437190082645e-05,17.5,1994,4,29,1 +1883,1994.4045662,576,3.71379166666667e-05,15.1,1994,5,26,1 +1884,1994.4796803,573,3.73994240837696e-05,12.3,1994,6,23,1 +1885,1994.5547945,544,4.00760294117647e-05,10.0,1994,7,20,1 +1886,1994.6271689,518,4.27305405405406e-05,10.4,1994,8,16,1 +1887,1994.7022831,497,4.5077323943662e-05,11.2,1994,9,13,1 +1888,1994.7773972,507,4.39355621301775e-05,10.7,1994,10,10,1 +1889,1994.8497716,499,4.48453106212425e-05,10.7,1994,11,6,1 +1890,1994.9248858,505,4.4160297029703e-05,9.1,1994,12,3,1 +1891,1995.0015981,505,4.4160297029703e-05,9.8,1994,12,31,1 +1892,1995.0739726,484,4.66321487603306e-05,8.6,1995,1,27,1 +1893,1995.146347,470,4.84027659574468e-05,7.7,1995,2,23,1 +1894,1995.2296803,494,4.54288663967611e-05,11.6,1995,3,23,1 +1895,1995.3020547,476,4.76311764705882e-05,10.2,1995,4,19,1 +1896,1995.3771689,468,4.8664358974359e-05,10.0,1995,5,16,1 +1897,1995.4495433,472,4.81433898305085e-05,10.3,1995,6,12,1 +1898,1995.5273972,473,4.80145243128964e-05,10.0,1995,7,10,1 +1899,1995.5997716,464,4.91943103448276e-05,6.8,1995,8,6,1 +1900,1995.6721461,459,4.98697385620915e-05,7.2,1995,9,2,1 +1901,1995.7461187,459,4.98697385620915e-05,5.9,1995,9,29,1 +1902,1995.8239726,457,5.01440481400438e-05,5.3,1995,10,27,1 +1903,1995.896347,451,5.09815742793792e-05,5.4,1995,11,23,1 +1904,1995.9714611,437,5.30252402745996e-05,4.3,1995,12,20,1 +1905,1996.046448,436,5.31762385321101e-05,3.0,1996,1,17,1 +1906,1996.1188524,414,5.66827536231884e-05,2.8,1996,2,13,1 +1907,1996.1967213,412,5.70200970873787e-05,4.5,1996,3,11,1 +1908,1996.2691256,411,5.719e-05,5.0,1996,4,7,1 +1909,1996.3469945,419,5.58534844868735e-05,4.2,1996,5,5,1 +1910,1996.4193989,424,5.50437735849057e-05,4.8,1996,6,1,1 +1911,1996.4931693,424,5.50437735849057e-05,6.1,1996,6,28,1 +1912,1996.568306,425,5.48841176470588e-05,7.7,1996,7,25,1 +1913,1996.6434426,429,5.42529370629371e-05,9.3,1996,8,22,1 +1914,1996.7158469,431,5.39417401392111e-05,10.0,1996,9,18,1 +1915,1996.7909836,449,5.1265723830735e-05,6.3,1996,10,15,1 +1916,1996.8661202,451,5.09815742793792e-05,7.1,1996,11,12,1 +1917,1996.9412568,437,5.30252402745996e-05,9.8,1996,12,9,1 +1918,1997.0136986,418,5.60177511961723e-05,8.5,1997,1,5,1 +1919,1997.086073,400,5.9115e-05,5.1,1997,2,1,1 +1920,1997.1694063,404,5.84028712871287e-05,2.7,1997,3,1,1 +1921,1997.2433789,404,5.84028712871287e-05,3.7,1997,3,28,1 +1922,1997.3157534,413,5.68510169491526e-05,4.9,1997,4,24,1 +1923,1997.3908675,404,5.84028712871287e-05,4.4,1997,5,21,1 +1924,1997.4659817,405,5.82270370370371e-05,4.5,1997,6,18,1 +1925,1997.5410958,409,5.75322982885086e-05,7.0,1997,7,15,1 +1926,1997.6134703,394,6.02103045685279e-05,13.9,1997,8,11,1 +1927,1997.6885844,404,5.84028712871287e-05,12.6,1997,9,8,1 +1928,1997.7636986,424,5.50437735849057e-05,8.4,1997,10,5,1 +1929,1997.836073,439,5.27253075170843e-05,3.5,1997,11,1,1 +1930,1997.9100456,439,5.27253075170843e-05,6.7,1997,11,28,1 +1931,1997.9878995,424,5.50437735849057e-05,9.1,1997,12,26,1 +1932,1998.0602739,427,5.45670491803279e-05,17.8,1998,1,22,1 +1933,1998.1326484,423,5.52041843971631e-05,15.7,1998,2,18,1 +1934,1998.2159817,413,5.68510169491526e-05,33.9,1998,3,18,1 +1935,1998.2883561,513,4.32718713450292e-05,34.7,1998,4,14,1 +1936,1998.3634703,572,3.74872027972028e-05,24.0,1998,5,11,1 +1937,1998.4358447,555,3.90278378378378e-05,29.8,1998,6,7,1 +1938,1998.5136986,514,4.31627626459144e-05,28.2,1998,7,5,1 +1939,1998.586073,568,3.78414084507042e-05,16.0,1998,8,1,1 +1940,1998.6600456,568,3.78414084507042e-05,20.6,1998,8,28,1 +1941,1998.73242,515,4.30540776699029e-05,16.8,1998,9,24,1 +1942,1998.8102739,478,4.73782845188285e-05,28.0,1998,10,22,1 +1943,1998.8826484,502,4.45007569721116e-05,43.1,1998,11,18,1 +1944,1998.9577625,540,4.04677777777778e-05,50.9,1998,12,15,1 +1945,1999.0328767,602,3.49806976744186e-05,42.5,1999,1,12,1 +1946,1999.1052511,602,3.49806976744186e-05,50.5,1999,2,8,1 +1947,1999.1858447,589,3.60355008488964e-05,48.1,1999,3,7,1 +1948,1999.2582191,573,3.73994240837696e-05,46.5,1999,4,3,1 +1949,1999.336073,589,3.60355008488964e-05,49.3,1999,5,1,1 +1950,1999.4100456,589,3.60355008488964e-05,55.0,1999,5,28,1 +1951,1999.48242,539,4.05666233766234e-05,70.3,1999,6,24,1 +1952,1999.5575342,513,4.32718713450292e-05,74.5,1999,7,21,1 +1953,1999.6326484,609,3.44313793103448e-05,72.1,1999,8,18,1 +1954,1999.7050228,691,2.88253111432706e-05,72.9,1999,9,14,1 +1955,1999.7801369,733,2.36068383356071e-05,60.4,1999,10,11,-1 +1956,1999.8552511,751,2.27668941411451e-05,67.6,1999,11,8,-1 +1957,1999.9303652,787,2.12022712833545e-05,71.5,1999,12,5,-1 +1958,2000.0027322,752,2.27214095744681e-05,73.9,2000,1,1,-1 +1959,2000.0765027,752,2.27214095744681e-05,74.5,2000,1,28,-1 +1960,2000.1516393,794,2.09145151133501e-05,74.5,2000,2,25,-1 +1961,2000.2295081,865,1.82590317919075e-05,73.6,2000,3,23,-1 +1962,2000.3019125,848,1.88543632075472e-05,72.6,2000,4,19,-1 +1963,2000.3770491,967,1.51266158221303e-05,63.6,2000,5,16,-1 +1964,2000.4521857,1073,1.25023881640261e-05,73.7,2000,6,13,-1 +1965,2000.5273224,1167,1.05740681233933e-05,56.7,2000,7,10,-1 +1966,2000.5997267,1057,1.2864770577105e-05,57.3,2000,8,6,-1 +1967,2000.6748633,992,1.44571572580645e-05,63.4,2000,9,3,-1 +1968,2000.7486338,992,1.44571572580645e-05,49.9,2000,9,30,-1 +1969,2000.8237704,882,1.76866496598639e-05,44.8,2000,10,27,-1 +1970,2000.8961748,1023,1.36724706744868e-05,54.3,2000,11,23,-1 +1971,2000.9740437,960,1.53203125e-05,52.3,2000,12,21,-1 +1972,2001.0465753,881,1.77197077185017e-05,19.6,2001,1,17,-1 +1973,2001.1189497,774,2.1750484496124e-05,18.7,2001,2,13,-1 +1974,2001.2022831,725,2.39935344827586e-05,10.8,2001,3,13,-1 +1975,2001.2746575,995,1.43790829145729e-05,39.9,2001,4,9,-1 +1976,2001.3497716,874,1.79532322654462e-05,50.3,2001,5,6,-1 +1977,2001.4221461,832,1.94368990384615e-05,46.8,2001,6,2,-1 +1978,2001.4988584,832,1.94368990384615e-05,49.4,2001,6,30,-1 +1979,2001.5739726,808,2.03539603960396e-05,36.1,2001,7,27,-1 +1980,2001.646347,904,1.69778761061947e-05,29.3,2001,8,23,-1 +1981,2001.7187214,897,1.71996237458194e-05,27.6,2001,9,19,-1 +1982,2001.7965753,959,1.53482142857143e-05,37.0,2001,10,17,-1 +1983,2001.8689497,865,1.82590317919075e-05,42.1,2001,11,13,-1 +1984,2001.9440639,833,1.93998349339736e-05,37.9,2001,12,10,-1 +1985,2002.019178,977,1.48547210849539e-05,40.5,2002,1,7,-1 +1986,2002.0915525,826,1.96611682808717e-05,49.6,2002,2,3,-1 +1987,2002.1721461,888,1.74898648648649e-05,42.6,2002,3,2,-1 +1988,2002.2461187,888,1.74898648648649e-05,46.2,2002,3,29,-1 +1989,2002.3212328,895,1.72636173184358e-05,44.8,2002,4,26,-1 +1990,2002.396347,900,1.71041666666667e-05,37.3,2002,5,23,-1 +1991,2002.4687214,863,1.83278534183082e-05,38.3,2002,6,19,-1 +1992,2002.5438356,948,1.56590189873418e-05,43.1,2002,7,16,-1 +1993,2002.6189497,1058,1.28418005671077e-05,36.1,2002,8,13,-1 +1994,2002.6913242,963,1.52369548286604e-05,55.8,2002,9,9,-1 +1995,2002.7664383,926,1.63027807775378e-05,45.4,2002,10,6,-1 +1996,2002.8415525,1023,1.36724706744868e-05,38.1,2002,11,3,-1 +1997,2002.9155251,1023,1.36724706744868e-05,45.3,2002,11,30,-1 +1998,2002.9906392,986,1.46147312373225e-05,50.2,2002,12,27,-1 +1999,2003.0630136,895,1.72636173184358e-05,51.5,2003,1,23,-1 +2000,2003.1381278,892,1.73601457399103e-05,43.8,2003,2,20,-1 +2001,2003.2187214,876,1.78861301369863e-05,39.9,2003,3,19,-1 +2002,2003.2910958,909,1.68215759075908e-05,39.4,2003,4,15,-1 +2003,2003.3689497,945,1.57450396825397e-05,42.4,2003,5,13,-1 +2004,2003.4413242,1067,1.26370079662605e-05,42.0,2003,6,9,-1 +2005,2003.5164383,959,1.53482142857143e-05,43.6,2003,7,6,-1 +2006,2003.5888127,908,1.68526982378855e-05,39.2,2003,8,2,-1 +2007,2003.6655251,908,1.68526982378855e-05,36.7,2003,8,30,-1 +2008,2003.7378995,869,1.81223388952819e-05,31.9,2003,9,26,-1 +2009,2003.8130136,963,1.52369548286604e-05,44.9,2003,10,23,-1 +2010,2003.8853881,1281,8.61519320843091e-06,42.2,2003,11,19,-1 +2011,2003.963242,930,1.61834677419355e-05,45.5,2003,12,17,-1 +2012,2004.0355191,936,1.60064102564103e-05,49.6,2004,1,13,-1 +2013,2004.1079234,784,2.13271683673469e-05,38.5,2004,2,9,-1 +2014,2004.1885245,705,2.4998670212766e-05,31.8,2004,3,8,-1 +2015,2004.2609289,676,2.65617603550296e-05,36.3,2004,4,4,-1 +2016,2004.3360655,630,2.93363095238095e-05,33.6,2004,5,1,-1 +2017,2004.409836,630,2.93363095238095e-05,30.1,2004,5,28,-1 +2018,2004.4849726,636,2.89516509433962e-05,30.8,2004,6,25,-1 +2019,2004.5601092,693,2.56295995670996e-05,34.3,2004,7,22,-1 +2020,2004.6325136,662,2.73653700906344e-05,26.4,2004,8,18,-1 +2021,2004.704918,632,2.92072784810127e-05,23.2,2004,9,14,-1 +2022,2004.7827868,545,3.56955275229358e-05,23.4,2004,10,12,-1 +2023,2004.8551912,645,2.83880813953488e-05,33.3,2004,11,8,-1 +2024,2004.9303278,615,3.03307926829268e-05,35.8,2004,12,5,-1 +2025,2005.0054794,788,2.11608502538071e-05,32.2,2005,1,2,-1 +2026,2005.079452,788,2.11608502538071e-05,41.1,2005,1,29,-1 +2027,2005.1518264,642,2.85741822429907e-05,38.2,2005,2,25,-1 +2028,2005.23242,620,2.99939516129032e-05,32.0,2005,3,24,-1 +2029,2005.3075342,589,3.21745543293718e-05,23.8,2005,4,21,-1 +2030,2005.3826484,681,2.62827643171806e-05,20.8,2005,5,18,-1 +2031,2005.4550228,610,3.06731557377049e-05,21.6,2005,6,14,-1 +2032,2005.5301369,643,2.85119556765163e-05,22.8,2005,7,11,-1 +2033,2005.6052511,676,2.65617603550296e-05,17.8,2005,8,8,-1 +2034,2005.6776255,798,2.07523496240602e-05,20.6,2005,9,4,-1 +2035,2005.7527397,596,3.16623322147651e-05,22.4,2005,10,1,-1 +2036,2005.829452,596,3.16623322147651e-05,22.7,2005,10,29,-1 +2037,2005.9018264,542,3.59564114391144e-05,24.1,2005,11,25,-1 +2038,2005.9769406,540,3.61319444444445e-05,18.8,2005,12,22,-1 +2039,2006.049315,516,3.83444767441861e-05,9.7,2006,1,18,-1 +2040,2006.1244292,462,4.41631493506494e-05,16.8,2006,2,15,-1 +2041,2006.2050228,435,4.7614224137931e-05,18.0,2006,3,14,-1 +2042,2006.2773972,430,4.83008720930233e-05,17.6,2006,4,10,-1 +2043,2006.3552511,423,4.92894503546099e-05,12.6,2006,5,8,-1 +2044,2006.4276255,423,4.92894503546099e-05,15.0,2006,6,4,-1 +2045,2006.5027397,443,4.65478273137698e-05,16.7,2006,7,1,-1 +2046,2006.5767123,443,4.65478273137698e-05,18.7,2006,7,28,-1 +2047,2006.6518264,436,4.74787844036697e-05,18.4,2006,8,25,-1 +2048,2006.7242009,440,4.69431818181818e-05,11.0,2006,9,21,-1 +2049,2006.799315,407,5.16767506142506e-05,10.9,2006,10,18,-1 +2050,2006.8716894,408,5.15220588235294e-05,11.6,2006,11,14,-1 +2051,2006.9495433,467,4.35678533190578e-05,16.8,2006,12,12,-1 +2052,2007.0219178,391,5.42594309462916e-05,15.9,2007,1,8,-1 +2053,2007.0942922,396,5.34299242424242e-05,12.9,2007,2,4,-1 +2054,2007.1776255,376,5.68803191489362e-05,11.3,2007,3,4,-1 +2055,2007.2515981,376,5.68803191489362e-05,13.6,2007,3,31,-1 +2056,2007.3239726,355,6.09216549295775e-05,13.6,2007,4,27,-1 +2057,2007.3990867,351,6.17462606837607e-05,15.6,2007,5,24,-1 +2058,2007.4742009,354,6.11260593220339e-05,14.3,2007,6,21,-1 +2059,2007.549315,357,6.05162815126051e-05,13.3,2007,7,18,-1 +2060,2007.6216894,361,5.97190096952909e-05,15.8,2007,8,14,-1 +2061,2007.6940639,352,6.15383522727273e-05,14.4,2007,9,10,-1 +2062,2007.7719178,348,6.23771551724138e-05,15.2,2007,10,8,-1 +2063,2007.8442922,353,6.13316218130312e-05,14.8,2007,11,4,-1 +2064,2007.9194063,340,6.41139705882353e-05,14.9,2007,12,1,-1 +2065,2007.9961187,340,6.41139705882353e-05,17.7,2007,12,29,-1 +2066,2008.068306,360,5.99166666666667e-05,20.8,2008,1,25,-1 +2067,2008.1407103,367,5.85556880108992e-05,19.6,2008,2,21,-1 +2068,2008.2185792,362,5.95224447513812e-05,17.6,2008,3,19,-1 +2069,2008.2937158,361,5.97190096952909e-05,16.1,2008,4,16,-1 +2070,2008.3688524,370,5.79881756756757e-05,14.8,2008,5,13,-1 +2071,2008.4412568,367,5.85556880108992e-05,15.1,2008,6,9,-1 +2072,2008.5163934,356,6.07183988764045e-05,12.8,2008,7,6,-1 +2073,2008.59153,342,6.3672149122807e-05,12.8,2008,8,3,-1 +2074,2008.6653005,342,6.3672149122807e-05,14.8,2008,8,30,-1 +2075,2008.7377049,336,6.50133928571429e-05,9.7,2008,9,26,-1 +2076,2008.8155737,322,6.83373447204969e-05,9.0,2008,10,24,-1 +2077,2008.8879781,302,7.36204470198676e-05,10.7,2008,11,20,-1 +2078,2008.9631147,309,7.16935679611651e-05,8.1,2008,12,17,-1 +2079,2009.0356164,302,7.36204470198676e-05,9.6,2009,1,13,-1 +2080,2009.1107305,285,7.86940789473684e-05,10.4,2009,2,10,-1 +2081,2009.1913242,276,8.16331521739131e-05,9.7,2009,3,9,-1 +2082,2009.2636986,267,8.47703651685393e-05,7.7,2009,4,5,-1 +2083,2009.3415525,267,8.47703651685393e-05,4.8,2009,5,3,-1 +2084,2009.4155251,267,8.47703651685393e-05,6.6,2009,5,30,-1 +2085,2009.4878995,270,8.37013888888889e-05,7.8,2009,6,26,-1 +2086,2009.5630136,269,8.40550650557621e-05,9.3,2009,7,23,-1 +2087,2009.6381278,274,8.23125e-05,5.8,2009,8,20,-1 +2088,2009.7105022,270,8.37013888888889e-05,5.2,2009,9,16,-1 +2089,2009.7856164,260,8.73605769230769e-05,4.5,2009,10,13,-1 +2090,2009.8579908,258,8.81264534883721e-05,9.8,2009,11,9,-1 +2091,2009.9358447,255,8.92977941176471e-05,17.3,2009,12,7,-1 +2092,2010.0082191,271,8.33503228782288e-05,25.1,2010,1,3,-1 +2093,2010.0821917,271,8.33503228782288e-05,22.1,2010,1,30,-1 +2094,2010.1573059,316,6.98520569620253e-05,24.0,2010,2,27,-1 +2095,2010.2378995,347,6.25898775216138e-05,23.8,2010,3,26,-1 +2096,2010.3102739,376,5.68803191489362e-05,21.6,2010,4,22,-1 +2097,2010.3853881,361,5.97190096952909e-05,26.2,2010,5,19,-1 +2098,2010.4605022,371,5.78010444743935e-05,23.4,2010,6,16,-1 +2099,2010.5356164,377,5.66991047745358e-05,32.6,2010,7,13,-1 +2100,2010.6079908,388,5.47673969072165e-05,25.7,2010,8,9,-1 +2101,2010.6803652,388,5.47673969072165e-05,33.0,2010,9,5,-1 +2102,2010.7582191,374,5.72456550802139e-05,23.6,2010,10,3,-1 +2103,2010.8321917,374,5.72456550802139e-05,21.4,2010,10,30,-1 +2104,2010.9045662,389,5.45972043701799e-05,17.8,2010,11,26,-1 +2105,2010.98242,412,5.09108009708738e-05,36.4,2010,12,24,-1 +2106,2011.0547945,398,5.31039572864322e-05,54.3,2011,1,20,-1 +2107,2011.1271689,414,5.06096014492754e-05,54.9,2011,2,16,-1 +2108,2011.2077625,426,4.88617957746479e-05,62.4,2011,3,15,-1 +2109,2011.2828767,496,4.0351814516129e-05,64.1,2011,4,12,-1 +2110,2011.3579908,453,4.5267798013245e-05,56.3,2011,5,9,-1 +2111,2011.4303652,551,3.51822822141561e-05,45.2,2011,6,5,-1 +2112,2011.5082191,518,3.81522683397683e-05,42.3,2011,7,3,-1 +2113,2011.5821917,518,3.81522683397683e-05,47.8,2011,7,30,-1 +2114,2011.6545662,509,3.90291011787819e-05,47.0,2011,8,26,-1 +2115,2011.7269406,513,3.86355994152047e-05,57.2,2011,9,22,-1 +2116,2011.8047945,534,3.66664325842697e-05,49.0,2011,10,20,-1 +2117,2011.8771689,488,4.12008196721312e-05,55.8,2011,11,16,-1 +2118,2011.9522831,438,4.72097602739726e-05,60.9,2011,12,13,-1 +2119,2012.0245901,490,4.09859693877551e-05,60.7,2012,1,9,-1 +2120,2012.0997267,533,3.67566838649156e-05,63.5,2012,2,6,-1 +2121,2012.1775956,634,2.90790615141956e-05,58.2,2012,3,4,-1 +2122,2012.2513661,634,2.90790615141956e-05,54.9,2012,3,31,-1 +2123,2012.3265027,506,3.93283102766798e-05,55.9,2012,4,28,-1 +2124,2012.4016393,494,4.0561487854251e-05,60.3,2012,5,25,-1 +2125,2012.4740437,546,3.56092032967033e-05,68.3,2012,6,21,-1 +2126,2012.5491803,664,2.72484939759036e-05,66.4,2012,7,18,-1 +2127,2012.6243169,643,2.85119556765163e-05,64.8,2012,8,15,-1 +2128,2012.6967213,583,3.26233919382504e-05,66.1,2012,9,11,-1 +2129,2012.7718579,587,3.23231473594549e-05,70.4,2012,10,8,-1 +2130,2012.8442622,571,3.7575288966725e-05,67.5,2012,11,4,1 +2131,2012.9221311,544,4.00760294117647e-05,68.7,2012,12,2,1 +2132,2012.9959016,544,4.00760294117647e-05,64.2,2012,12,29,1 +2133,2013.0684931,533,4.11674859287054e-05,70.3,2013,1,25,1 +2134,2013.1436073,530,4.14730188679245e-05,73.2,2013,2,22,1 +2135,2013.2242009,564,3.82006382978723e-05,69.2,2013,3,21,1 +2136,2013.2965753,559,3.86569051878354e-05,68.7,2013,4,17,1 +2137,2013.3716894,674,2.98754599406528e-05,67.9,2013,5,14,1 +2138,2013.4468036,679,2.95611340206186e-05,61.9,2013,6,11,1 +2139,2013.5219178,665,3.04531578947368e-05,67.7,2013,7,8,1 +2140,2013.5942922,640,3.2143125e-05,67.6,2013,8,4,1 +2141,2013.6682648,640,3.2143125e-05,59.6,2013,8,31,1 +2142,2013.7433789,614,3.404667752443e-05,60.8,2013,9,28,1 +2143,2013.8184931,571,3.7575288966725e-05,57.6,2013,10,25,1 +2144,2013.8908675,590,3.59527118644068e-05,59.9,2013,11,21,1 +2145,2013.9687214,625,3.3222e-05,63.1,2013,12,19,1 +2146,2014.0410958,606,3.46652475247525e-05,66.3,2014,1,15,1 +2147,2014.1134703,681,2.94366960352423e-05,70.5,2014,2,11,1 +2148,2014.1940639,652,3.13157668711657e-05,54.4,2014,3,10,1 +2149,2014.269178,633,3.26402369668247e-05,48.9,2014,4,7,1 +2150,2014.3442922,660,3.07809090909091e-05,28.9,2014,5,4,1 +2151,2014.4182648,660,3.07809090909091e-05,25.4,2014,5,31,1 +2152,2014.4933789,656,3.10467073170732e-05,24.8,2014,6,28,1 +2153,2014.5684931,628,3.3002101910828e-05,40.2,2014,7,25,1 +2154,2014.6408675,590,3.59527118644068e-05,49.4,2014,8,21,1 +2155,2014.713242,634,3.25685488958991e-05,65.5,2014,9,17,1 +2156,2014.7910958,632,3.27121518987342e-05,64.9,2014,10,15,1 +2157,2014.8634703,645,3.17946511627907e-05,41.8,2014,11,11,1 +2158,2014.9385844,731,2.65470451436389e-05,45.1,2014,12,8,1 \ No newline at end of file diff --git a/Fetching/fetch_script.py b/Fetching/fetch_script.py new file mode 100644 index 0000000..b0fdab2 --- /dev/null +++ b/Fetching/fetch_script.py @@ -0,0 +1,197 @@ +# @file fetch_script.py +# @author: Marek Hamracek +# +# +# SETTING UP CRON +# +# crontab -e +# 0 10 1 * * /path/to/python3 /path/to/fetch_script.py #First day of any month at 10 AM +# #Replace /path/to/ +# +# +# + +import requests +import pandas as pd +import urllib3 +import datetime + +# Disable the InsecureRequestWarning - http://wso.stanford.edu/Tilts.html site does not have a certificate +urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) + +# Log +with open("fetch_script_log.txt", "a") as log_file: + log_file.write(f"\nScript started successfully at {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n") + # File is automatically closed when the block is exited + +# Define the URL +url_flow_speed = "https://omniweb.gsfc.nasa.gov/cgi/nx1.cgi" +url_phi = "https://cosmicrays.oulu.fi/phi/Phi_Table_2017.txt" +url_tilt_angle = "http://wso.stanford.edu/Tilts.html" + + +# Define the payload for OMNIWEB form request +payload = { + "activity": "retrieve", + "res": "daily", + "spacecraft": "omni2_daily", + "start_date": "20250101", + "end_date": "20250110", + "vars": "24", +} +print("\n") +print(f"Script started successfully at {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") +print("\n") + +# Secure the connection and read responses +try: + response_flow_speed = requests.post(url_flow_speed, data=payload) + response_flow_speed.raise_for_status() + + print("Flow speed data connected successfully.") + +except requests.exceptions.RequestException as e: + print(f"Error connecting to flow speed data: {e}") + +try: + response_phi = requests.get(url_phi, verify=False) + response_phi.raise_for_status() + + print("Phi data connected successfully.") + +except requests.exceptions.RequestException as e: + print(f"Error connecting to phi data: {e}") + +try: + response_tilt_angle = requests.get(url_tilt_angle) + response_tilt_angle.raise_for_status() + + print("Tilt angle data connected successfully.") + +except requests.exceptions.RequestException as e: + print(f"Error connecting to tilt angle data: {e}") + +def parse_to_csv(html_content: str, table_start: str, table_end: str, header_start: str, output_file_path: str): + try: + # Clean text_data + text_data = html_content.replace("\x00", "") + start_index, end_index = None, None + header = None + lines = text_data.splitlines() + + # Locate to-be-read table on html content + for i, line in enumerate(lines): + if header_start in line: + header = line.split() + + if table_end in line and start_index is not None: + end_index = i + break + elif table_start in line: + start_index = i + + if start_index is None or end_index is None: + raise ValueError("Table boundaries not found.\n\n") + #else: + # print("Table boundaries for "+ output_file_path +" found.") + + if header is None: + print("Warning: No header found, generating default header.") + + # Convert to desired format + table_string = "\n".join(lines[start_index + 1:end_index]) + rows = table_string.split("\n") + data = [row.split() for row in rows] + + # Write to .csv file + df = pd.DataFrame(data, columns=header) + df.to_csv(output_file_path, index=False) + print("Table data were saved to:", output_file_path) + + # Print last row + #print("-\nThe most up-to-date entry:\n", df.tail(1), "\n") + + with open("fetch_script_log.txt", "a") as log_file: + log_file.write("\nThe most up-to-date entry:\n" + str(df.tail(1)) + "\n") + + + return df.tail(1) + + except ValueError as e: + print(f"Value Error: {e}") + except Exception as e: + print(f"An unspecified error occurred: {e}") # Handle other errors (e.g., invalid HTML, parsing issues) + + +# Parsing and saving to .cvs with anchor params and retrieving last entries +last_entry_flow_speed = parse_to_csv(response_flow_speed.text,"YEAR DOY","","YEAR DOY","table_data_flow_speed.csv") +last_entry_phi = parse_to_csv(response_phi.text,"+++","+++","Year Jan","table_data_phi.csv") +last_entry_tilt_angle = parse_to_csv(response_tilt_angle.text,"Carr Rot","","Carr Rot","table_data_tilt_angle.csv") + + +filepath = 'Geliosphere_K0_phi_table.csv' + +def compute_new_entry(): + try: + df = pd.read_csv(filepath) + + # Date format conversion + date = pd.to_datetime(last_entry_tilt_angle['Start'], format='%Y:%m:%d') + + carrington_rotation = last_entry_tilt_angle.iloc[0]['Rot'] + year_week = date.dt.year.iloc[0] + date.dt.day_of_year.iloc[0] / 365 + modulation_potentional = last_entry_phi.iloc[0].dropna().iloc[-1] # Last non-NaN value #Geliosphere has some calcs that are yet to be considered + k0_au2_s = (float(last_entry_flow_speed.iloc[0]['1']) * 6.68459e-9) * (99 / (3 * int(modulation_potentional))) #1D Models + tilt_angle = last_entry_tilt_angle.iloc[0]['R_av'] + year = date.dt.year.iloc[0] + month = date.dt.month.iloc[0] + day = date.dt.day.iloc[0] + #polarity = 1 if (month in [12, 1, 2] and ((month == 12 and day >= 21) or month == 1 or month == 2)) or month in [3, 4, 5, 10, 11] else -1 + reference_year = 2012 + years_since_ref = year - reference_year + + # Determine polarity by checking the 11-year cycle + if (years_since_ref // 11) % 2 == 0: + polarity = 1 + else: + polarity = -1 + + # 2D Solarprop-like Models + #if polarity == 1: + # k0_au2_s = (137/int(modulation_potentional)) - 0.061 + #elif polarity == -1: + # k0_au2_s = 0.07 * (137/int(modulation_potentional)) - 0.061 + + + # Create a new row as a DataFrame + new_row = pd.DataFrame({ + 'carrington_rotation': [carrington_rotation], + 'year_week': [year_week], + 'modulation_potentional': [modulation_potentional], + 'k0_au2/s': [k0_au2_s], + 'tilt_angle': [tilt_angle], + 'year': [year], + 'month': [month], + 'day': [day], + 'polarity': [polarity] + }) + + # Append the new row + df = pd.concat([df, new_row], ignore_index=True) + + print("\n Last entries: file: ",filepath," \n---------------------------------------------------") + print(df.tail(5),"\n") + #df = df.drop(df.index[-1]) + df.to_csv(filepath, index=False) + + except ValueError as e: + print(f"Value Error: {e}") + except Exception as e: + print(f"An error occurred when computing new entry: {e}") + + +#Computing, formating and adding the most-up-to-date entry +compute_new_entry() + +print("fetch_script_log.txt has been updated successfully\n") +print(filepath, "has been updated successfully\n\n") diff --git a/Fetching/fetch_script_log.txt b/Fetching/fetch_script_log.txt new file mode 100644 index 0000000..e402c22 --- /dev/null +++ b/Fetching/fetch_script_log.txt @@ -0,0 +1,239 @@ + +Script started successfully at 2025-02-12 10:21:08 + +The most up-to-date entry: + YEAR DOY HR 1 +5 2025 6 0 540. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +646 CR 2288 2024:08:23 10h 52.6 41.4 -63.7 64.3 53.4 -75.2 + +Script started successfully at 2025-02-20 13:15:15 + +The most up-to-date entry: + YEAR DOY HR 1 +5 2025 6 0 540. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 13:18:03 + +The most up-to-date entry: + YEAR DOY HR 1 +22 2025 23 0 9999. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 13:19:53 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 13:33:18 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 13:34:15 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + + +Script started successfully at 2025-02-20 15:32:32 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 15:33:21 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 16:56:38 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 16:56:51 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 16:57:12 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 17:32:53 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 17:36:37 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 17:37:45 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 17:37:59 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 17:38:24 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 + +Script started successfully at 2025-02-20 17:38:53 + +The most up-to-date entry: + YEAR DOY HR 1 +9 2025 10 0 419. + +The most up-to-date entry: + Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual +73 2024 764 770 766 759 812 766 728 788 849 None None None None + +The most up-to-date entry: + Carr Rot Start Date R_av R_n R_s L_av L_n L_s +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 diff --git a/Fetching/table_data_flow_speed.csv b/Fetching/table_data_flow_speed.csv new file mode 100644 index 0000000..7abcfb2 --- /dev/null +++ b/Fetching/table_data_flow_speed.csv @@ -0,0 +1,11 @@ +YEAR,DOY,HR,1 +2025,1,0,504. +2025,2,0,509. +2025,3,0,436. +2025,4,0,535. +2025,5,0,593. +2025,6,0,540. +2025,7,0,534. +2025,8,0,450. +2025,9,0,378. +2025,10,0,419. diff --git a/Fetching/table_data_phi.csv b/Fetching/table_data_phi.csv new file mode 100644 index 0000000..023ca47 --- /dev/null +++ b/Fetching/table_data_phi.csv @@ -0,0 +1,75 @@ +Year,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,Annual +1951,N/A,661,651,642,601,571,600,623,580,574,588,573,606 +1952,599,609,622,595,557,540,528,529,521,558,541,553,563 +1953,575,563,569,565,564,553,561,556,553,543,545,533,557 +1954,527,515,497,504,499,501,495,480,485,487,495,504,499 +1955,539,505,503,503,496,500,500,508,496,516,513,549,511 +1956,580,606,656,613,637,627,602,607,632,580,663,775,632 +1957,856,863,840,914,872,902,933,893,1015,970,986,1046,924 +1958,1040,1021,1078,1061,978,937,1010,954,939,936,922,959,986 +1959,932,966,900,862,925,880,1071,1038,992,909,896,916,941 +1960,962,932,888,947,945,906,905,854,856,856,892,850,899 +1961,789,770,771,775,746,750,856,784,753,729,683,700,759 +1962,704,715,705,720,689,682,675,675,696,701,677,686,694 +1963,644,627,629,611,634,610,606,615,641,619,608,591,620 +1964,577,579,562,553,538,531,534,529,521,518,516,499,538 +1965,497,495,484,472,466,498,515,517,511,499,484,485,494 +1966,501,503,525,534,517,551,571,575,673,614,591,616,564 +1967,633,647,614,623,659,675,656,683,674,663,691,694,659 +1968,680,688,693,684,708,752,746,732,758,801,883,854,748 +1969,761,756,771,788,864,897,861,812,784,774,770,772,801 +1970,768,740,746,791,783,849,848,801,754,736,776,704,775 +1971,691,652,644,644,627,579,574,559,557,535,538,550,596 +1972,545,542,509,499,516,565,533,649,542,529,554,532,543 +1973,525,528,548,603,639,582,559,546,513,516,508,505,548 +1974,514,500,527,535,580,603,648,605,635,629,614,566,580 +1975,560,535,527,517,511,501,506,523,516,520,545,524,524 +1976,531,521,522,540,520,508,501,500,492,495,494,499,510 +1977,506,503,492,499,498,510,546,540,541,515,504,503,513 +1978,547,560,568,613,667,623,619,560,555,603,583,583,590 +1979,622,638,664,720,696,757,757,821,799,748,749,701,723 +1980,717,727,692,735,734,813,817,803,793,853,905,906,791 +1981,833,878,888,919,955,869,860,858,816,911,894,827,876 +1982,773,877,784,765,735,880,1012,1008,1082,1008,973,1029,911 +1983,936,876,816,807,890,834,776,777,748,743,733,731,806 +1984,710,722,763,791,859,807,784,747,731,730,739,725,759 +1985,709,665,654,637,629,596,606,606,575,571,554,561,614 +1986,564,627,578,524,515,511,508,507,503,488,524,491,528 +1987,466,446,447,451,470,507,527,551,571,571,597,594,517 +1988,665,640,627,642,636,646,691,703,694,712,723,796,681 +1989,828,832,980,956,1014,1000,912,952,986,1055,1126,1078,977 +1990,1018,1000,1034,1103,1123,1125,1036,1059,999,941,890,889,1018 +1991,826,814,1018,990,972,1360,1334,1133,990,953,943,895,1019 +1992,889,923,852,769,797,734,693,696,713,671,688,646,756 +1993,658,662,695,651,635,620,612,612,596,591,593,595,627 +1994,596,635,625,631,612,610,594,574,556,564,563,570,594 +1995,553,542,560,549,542,544,541,535,530,533,530,526,540 +1996,522,505,505,499,505,505,506,509,514,522,525,517,511 +1997,506,497,494,498,495,496,499,489,496,507,518,510,500 +1998,505,500,498,559,606,583,554,589,558,536,552,576,551 +1999,618,623,609,593,601,584,568,632,687,719,735,757,644 +2000,728,759,795,788,846,899,958,908,868,811,889,859,842 +2001,820,761,723,866,789,769,757,809,804,844,798,775,793 +2002,851,767,798,804,801,785,830,889,841,820,870,849,825 +2003,822,821,808,833,844,903,853,834,800,844,1026,840,852 +2004,852,766,715,691,664,663,700,685,660,601,667,651,693 +2005,757,675,656,634,692,647,663,686,755,629,603,603,667 +2006,582,552,522,519,506,508,521,519,514,496,500,546,524 +2007,492,498,484,463,459,456,459,463,453,455,462,453,466 +2008,462,465,462,464,465,463,457,445,437,437,429,426,451 +2009,421,414,407,398,389,393,393,396,389,390,397,390,398 +2010,398,436,448,475,462,471,478,489,483,483,496,499,468 +2011,488,486,513,568,534,599,576,568,568,590,549,516,546 +2012,542,574,644,557,555,590,662,649,610,610,601,587,598 +2013,571,565,595,590,667,675,656,644,630,598,610,635,620 +2014,630,670,650,639,620,658,640,607,640,636,648,703,645 +2015,674,672,709,684,654,664,628,622,623,612,603,590,645 +2016,554,526,531,529,524,525,537,519,518,497,482,483,519 +2017,465,458,451,466,460,453,477,505,522,493,466,460,473 +2018,459,451,448,442,446,431,433,433,429,425,430,434,439 +2019,434,438,421,421,444,426,426,429,419,414,418,417,426 +2020,410,398,402,391,399,408,411,412,413,416,416,431,409 +2021,435,464,430,419,422,428,438,428,432,432,453,443,436 +2022,449,472,474,482,514,551,579,607,583,563,566,622,539 +2023,634,686,694,662,676,680,712,749,758,720,760,775,709 +2024,764,770,766,759,812,766,728,788,849,,,, diff --git a/Fetching/table_data_tilt_angle.csv b/Fetching/table_data_tilt_angle.csv new file mode 100644 index 0000000..3d1c77b --- /dev/null +++ b/Fetching/table_data_tilt_angle.csv @@ -0,0 +1,653 @@ +Carr,Rot,Start,Date,R_av,R_n,R_s,L_av,L_n,L_s +CR,1642,1976:05:27,15h,6.8,4.7,-9.0,14.5,13.6,-15.5 +CR,1643,1976:06:23,21h,6.2,4.5,-7.8,15.3,15.7,-14.8 +CR,1644,1976:07:21,04h,6.8,8.2,-5.5,20.0,26.6,-13.5 +CR,1645,1976:08:17,11h,4.0,4.1,-4.0,13.2,12.2,-14.2 +CR,1646,1976:09:13,17h,6.7,8.7,-4.7,14.8,14.7,-15.0 +CR,1647,1976:10:11,00h,7.9,7.4,-8.4,16.1,14.1,-18.1 +CR,1648,1976:11:07,06h,7.1,5.8,-8.5,13.7,12.8,-14.6 +CR,1649,1976:12:04,13h,7.4,7.0,-7.9,17.0,19.0,-15.1 +CR,1650,1976:12:31,20h,6.6,4.3,-8.8,17.3,15.3,-19.2 +CR,1651,1977:01:28,02h,7.7,2.5,-12.9,17.6,16.9,-18.3 +CR,1652,1977:02:24,09h,4.4,0.2,-8.5,15.3,14.9,-15.6 +CR,1653,1977:03:23,15h,8.6,4.3,-13.0,23.3,17.7,-29.0 +CR,1654,1977:04:19,22h,13.7,12.0,-15.4,28.3,25.4,-31.2 +CR,1655,1977:05:17,05h,14.0,12.5,-15.5,32.9,30.6,-35.3 +CR,1656,1977:06:13,11h,15.5,13.6,-17.3,32.9,27.8,-38.0 +CR,1657,1977:07:10,18h,11.8,11.5,-12.2,25.4,20.6,-30.1 +CR,1658,1977:08:07,00h,10.0,9.8,-10.1,19.4,14.4,-24.4 +CR,1659,1977:09:03,07h,12.5,10.4,-14.7,23.0,19.7,-26.2 +CR,1660,1977:09:30,14h,12.3,9.3,-15.2,21.8,14.6,-28.9 +CR,1661,1977:10:27,20h,12.4,9.8,-15.1,29.1,29.0,-29.2 +CR,1662,1977:11:24,03h,16.3,9.5,-23.1,36.8,31.9,-41.6 +CR,1663,1977:12:21,10h,15.7,14.5,-16.9,34.2,39.5,-29.0 +CR,1664,1978:01:17,16h,26.7,25.6,-27.9,53.2,54.4,-52.0 +CR,1665,1978:02:13,23h,36.1,38.9,-33.2,56.5,58.9,-54.1 +CR,1666,1978:03:13,05h,32.7,37.5,-28.0,54.1,58.2,-50.1 +CR,1667,1978:04:09,12h,26.5,25.8,-27.2,48.1,49.1,-47.2 +CR,1668,1978:05:06,19h,30.4,32.3,-28.4,51.1,52.9,-49.3 +CR,1669,1978:06:03,01h,24.5,29.5,-19.4,44.4,49.3,-39.4 +CR,1670,1978:06:30,08h,27.1,36.2,-18.0,46.0,54.8,-37.1 +CR,1671,1978:07:27,14h,26.4,30.6,-22.2,44.2,52.6,-35.8 +CR,1672,1978:08:23,21h,34.1,51.6,-16.5,62.9,74.1,-51.6 +CR,1673,1978:09:20,04h,51.3,52.4,-50.3,69.6,74.8,-64.3 +CR,1674,1978:10:17,10h,46.5,41.6,-51.3,63.7,61.6,-65.7 +CR,1675,1978:11:13,17h,43.9,42.3,-45.4,61.3,61.3,-61.3 +CR,1676,1978:12:10,23h,45.3,45.8,-44.7,65.8,66.0,-65.7 +CR,1677,1979:01:07,06h,47.5,47.8,-47.2,66.4,66.6,-66.3 +CR,1678,1979:02:03,13h,59.2,60.5,-58.0,74.4,73.8,-75.0 +CR,1679,1979:03:02,19h,55.2,47.9,-62.6,70.7,67.0,-74.5 +CR,1680,1979:03:30,02h,65.4,60.8,-69.9,74.8,75.1,-74.4 +CR,1681,1979:04:26,08h,67.6,61.9,-73.4,73.7,74.0,-73.3 +CR,1682,1979:05:23,15h,62.5,64.7,-60.3,75.0,75.1,-75.0 +CR,1683,1979:06:19,22h,66.3,75.1,-57.5,74.2,74.7,-73.7 +CR,1684,1979:07:17,04h,71.5,74.7,-68.4,74.4,73.8,-75.0 +CR,1685,1979:08:13,11h,62.0,71.3,-52.7,74.0,74.8,-73.2 +CR,1686,1979:09:09,17h,70.6,73.5,-67.8,72.4,70.8,-74.0 +CR,1687,1979:10:07,00h,73.8,74.1,-73.4,74.5,74.0,-74.9 +CR,1688,1979:11:03,07h,70.9,75.1,-66.6,67.3,59.5,-75.1 +CR,1689,1979:11:30,13h,69.1,73.2,-65.0,70.5,74.8,-66.3 +CR,1690,1979:12:27,20h,72.0,75.0,-68.9,74.5,74.0,-75.0 +CR,1691,1980:01:24,03h,65.1,72.3,-58.0,73.5,73.5,-73.4 +CR,1692,1980:02:20,09h,69.8,64.6,-75.1,74.9,74.9,-74.8 +CR,1693,1980:03:18,16h,64.8,56.9,-72.7,74.1,73.6,-74.6 +CR,1694,1980:04:14,22h,50.4,50.9,-49.9,71.4,68.2,-74.6 +CR,1695,1980:05:12,05h,41.0,37.4,-44.5,58.6,56.2,-60.9 +CR,1696,1980:06:08,12h,31.2,33.1,-29.2,50.7,53.6,-47.8 +CR,1697,1980:07:05,18h,44.0,41.2,-46.9,58.1,57.6,-58.5 +CR,1698,1980:08:02,01h,48.5,50.1,-47.0,68.4,70.6,-66.1 +CR,1699,1980:08:29,07h,42.7,40.7,-44.6,64.1,67.2,-61.0 +CR,1700,1980:09:25,14h,44.2,38.9,-49.4,64.7,62.5,-66.9 +CR,1701,1980:10:22,21h,47.3,43.8,-50.8,67.2,65.2,-69.1 +CR,1702,1980:11:19,03h,47.3,43.8,-50.9,66.5,65.5,-67.6 +CR,1703,1980:12:16,10h,37.3,28.1,-46.6,55.7,49.7,-61.7 +CR,1704,1981:01:12,16h,40.0,31.5,-48.5,60.3,54.2,-66.5 +CR,1705,1981:02:08,23h,50.0,51.5,-48.4,62.1,60.6,-63.6 +CR,1706,1981:03:08,06h,49.7,58.0,-41.5,58.4,60.5,-56.4 +CR,1707,1981:04:04,12h,54.6,64.5,-44.7,65.4,71.8,-59.0 +CR,1708,1981:05:01,19h,47.6,53.5,-41.7,63.1,67.3,-59.0 +CR,1709,1981:05:29,01h,42.2,50.8,-33.7,60.9,66.2,-55.5 +CR,1710,1981:06:25,08h,44.4,43.7,-45.1,68.1,64.6,-71.7 +CR,1711,1981:07:22,15h,36.9,43.6,-30.2,58.6,64.4,-52.8 +CR,1712,1981:08:18,21h,31.1,25.5,-36.7,56.3,51.8,-60.8 +CR,1713,1981:09:15,04h,35.0,34.8,-35.2,55.6,51.5,-59.7 +CR,1714,1981:10:12,10h,33.3,39.0,-27.7,49.9,48.5,-51.3 +CR,1715,1981:11:08,17h,27.2,30.6,-23.8,47.7,43.4,-51.9 +CR,1716,1981:12:06,00h,28.0,24.8,-31.2,47.6,39.6,-55.5 +CR,1717,1982:01:02,06h,29.8,18.3,-41.4,50.4,37.5,-63.3 +CR,1718,1982:01:29,13h,37.3,31.3,-43.2,44.5,34.7,-54.4 +CR,1719,1982:02:25,19h,31.4,31.4,-31.4,41.1,41.4,-40.9 +CR,1720,1982:03:25,02h,38.9,36.2,-41.5,50.9,51.4,-50.5 +CR,1721,1982:04:21,09h,41.5,35.2,-47.7,55.5,50.1,-60.9 +CR,1722,1982:05:18,15h,44.9,42.7,-47.1,57.2,55.3,-59.1 +CR,1723,1982:06:14,22h,48.9,46.3,-51.5,58.4,58.4,-58.4 +CR,1724,1982:07:12,05h,47.8,47.5,-48.1,60.1,63.0,-57.1 +CR,1725,1982:08:08,11h,49.1,47.2,-50.9,61.1,62.9,-59.2 +CR,1726,1982:09:04,18h,46.7,46.0,-47.3,61.3,62.4,-60.2 +CR,1727,1982:10:02,00h,34.7,37.1,-32.3,53.8,57.6,-49.9 +CR,1728,1982:10:29,07h,28.2,31.9,-24.5,47.6,52.5,-42.8 +CR,1729,1982:11:25,14h,24.3,26.3,-22.3,43.5,42.1,-45.0 +CR,1730,1982:12:22,20h,26.1,23.3,-28.8,48.1,48.8,-47.3 +CR,1731,1983:01:19,03h,32.9,33.9,-31.8,47.4,47.4,-47.5 +CR,1732,1983:02:15,09h,28.0,29.7,-26.3,45.4,45.0,-45.8 +CR,1733,1983:03:14,16h,27.4,31.7,-23.1,41.3,44.5,-38.0 +CR,1734,1983:04:10,23h,33.0,35.3,-30.7,46.6,47.1,-46.2 +CR,1735,1983:05:08,05h,31.2,30.8,-31.6,49.9,49.1,-50.6 +CR,1736,1983:06:04,12h,24.3,20.4,-28.3,42.5,36.4,-48.5 +CR,1737,1983:07:01,18h,25.1,22.2,-27.9,44.4,38.9,-50.0 +CR,1738,1983:07:29,01h,25.0,23.8,-26.2,42.5,38.9,-46.1 +CR,1739,1983:08:25,08h,23.4,18.7,-28.0,39.8,33.7,-45.9 +CR,1740,1983:09:21,14h,21.8,19.6,-24.0,38.2,33.2,-43.2 +CR,1741,1983:10:18,21h,18.2,15.7,-20.7,35.5,31.5,-39.5 +CR,1742,1983:11:15,03h,20.0,18.4,-21.6,36.6,34.9,-38.4 +CR,1743,1983:12:12,10h,15.7,14.8,-16.7,31.2,34.7,-27.8 +CR,1744,1984:01:08,17h,17.4,13.1,-21.7,32.8,32.2,-33.5 +CR,1745,1984:02:04,23h,20.0,13.8,-26.1,36.2,34.0,-38.4 +CR,1746,1984:03:03,06h,23.8,21.9,-25.6,41.2,42.0,-40.3 +CR,1747,1984:03:30,12h,23.9,21.4,-26.3,42.5,41.7,-43.3 +CR,1748,1984:04:26,19h,24.1,19.1,-29.1,40.3,35.0,-45.6 +CR,1749,1984:05:24,02h,23.9,20.0,-27.8,41.1,37.3,-44.9 +CR,1750,1984:06:20,08h,23.8,21.8,-25.9,42.1,40.4,-43.8 +CR,1751,1984:07:17,15h,22.1,18.6,-25.6,38.0,34.0,-42.0 +CR,1752,1984:08:13,21h,24.1,21.5,-26.8,38.9,35.1,-42.6 +CR,1753,1984:09:10,04h,21.8,20.2,-23.5,36.8,33.3,-40.2 +CR,1754,1984:10:07,11h,19.0,17.2,-20.8,34.1,31.6,-36.7 +CR,1755,1984:11:03,17h,16.7,14.5,-18.8,32.2,30.8,-33.5 +CR,1756,1984:12:01,00h,13.0,11.0,-14.9,27.6,25.9,-29.2 +CR,1757,1984:12:28,07h,10.4,6.3,-14.5,23.7,19.6,-27.9 +CR,1758,1985:01:24,13h,9.0,5.1,-12.8,19.7,17.9,-21.5 +CR,1759,1985:02:20,20h,6.3,1.5,-11.1,16.9,14.0,-19.7 +CR,1760,1985:03:20,02h,6.4,3.2,-9.5,16.8,16.6,-16.9 +CR,1761,1985:04:16,09h,5.0,2.3,-7.7,15.6,15.2,-15.9 +CR,1762,1985:05:13,16h,5.7,4.5,-6.9,16.3,17.7,-14.9 +CR,1763,1985:06:09,22h,6.8,6.9,-6.7,17.8,18.7,-16.8 +CR,1764,1985:07:07,05h,7.1,7.7,-6.5,18.9,19.8,-17.9 +CR,1765,1985:08:03,11h,6.7,7.1,-6.3,19.4,21.7,-17.1 +CR,1766,1985:08:30,18h,7.8,8.1,-7.5,17.5,18.3,-16.8 +CR,1767,1985:09:27,01h,8.8,11.2,-6.4,18.5,21.2,-15.9 +CR,1768,1985:10:24,07h,7.7,8.6,-6.7,18.6,20.1,-17.1 +CR,1769,1985:11:20,14h,6.9,5.1,-8.7,16.7,14.9,-18.6 +CR,1770,1985:12:17,20h,6.9,4.2,-9.5,17.0,16.6,-17.4 +CR,1771,1986:01:14,03h,6.9,3.2,-10.7,19.3,22.1,-16.6 +CR,1772,1986:02:10,10h,8.1,0.1,-16.0,17.9,11.8,-23.9 +CR,1773,1986:03:09,16h,7.7,0.5,-14.9,15.6,10.3,-20.9 +CR,1774,1986:04:05,23h,6.0,1.7,-10.3,14.3,12.6,-16.0 +CR,1775,1986:05:03,05h,4.2,1.4,-6.9,15.1,14.8,-15.4 +CR,1776,1986:05:30,12h,4.0,1.8,-6.2,14.2,15.1,-13.3 +CR,1777,1986:06:26,19h,3.8,2.6,-5.0,12.1,12.7,-11.6 +CR,1778,1986:07:24,01h,4.5,4.7,-4.2,11.6,13.8,-9.4 +CR,1779,1986:08:20,08h,3.6,4.8,-2.5,12.0,14.4,-9.6 +CR,1780,1986:09:16,14h,3.8,4.5,-3.2,11.4,14.2,-8.6 +CR,1781,1986:10:13,21h,7.3,9.9,-4.7,16.9,26.3,-7.4 +CR,1782,1986:11:10,04h,4.9,5.4,-4.3,10.0,14.9,-5.2 +CR,1783,1986:12:07,10h,5.1,4.6,-5.6,12.1,15.2,-8.9 +CR,1784,1987:01:03,17h,3.9,0.7,-7.0,9.0,8.5,-9.4 +CR,1785,1987:01:30,23h,3.3,-0.8,-7.4,9.0,7.5,-10.5 +CR,1786,1987:02:27,06h,3.4,-0.5,-7.3,8.4,6.3,-10.5 +CR,1787,1987:03:26,13h,3.7,1.5,-5.9,9.1,8.5,-9.7 +CR,1788,1987:04:22,19h,4.8,2.8,-6.7,9.1,8.1,-10.0 +CR,1789,1987:05:20,02h,9.7,7.9,-11.4,25.9,33.4,-18.4 +CR,1790,1987:06:16,09h,9.7,8.5,-10.9,19.9,21.2,-18.6 +CR,1791,1987:07:13,15h,11.6,12.7,-10.5,18.8,22.8,-14.7 +CR,1792,1987:08:09,22h,15.8,18.5,-13.1,23.2,28.6,-17.9 +CR,1793,1987:09:06,04h,21.3,18.0,-24.7,33.6,25.2,-42.0 +CR,1794,1987:10:03,11h,15.3,16.8,-13.8,22.4,20.8,-23.9 +CR,1795,1987:10:30,18h,14.5,14.1,-14.9,27.1,24.1,-30.2 +CR,1796,1987:11:27,00h,10.8,10.5,-11.0,23.1,20.5,-25.6 +CR,1797,1987:12:24,07h,11.2,11.4,-11.0,24.9,23.7,-26.2 +CR,1798,1988:01:20,13h,14.6,12.0,-17.1,27.2,26.0,-28.5 +CR,1799,1988:02:16,20h,19.8,21.0,-18.6,35.3,38.1,-32.5 +CR,1800,1988:03:15,03h,28.5,25.2,-31.7,44.0,40.0,-48.0 +CR,1801,1988:04:11,09h,19.8,17.3,-22.3,31.6,22.8,-40.4 +CR,1802,1988:05:08,16h,28.5,21.7,-35.4,44.1,34.9,-53.3 +CR,1803,1988:06:04,22h,31.1,25.1,-37.1,45.3,40.3,-50.3 +CR,1804,1988:07:02,05h,30.2,25.6,-34.7,42.6,39.8,-45.3 +CR,1805,1988:07:29,12h,38.7,43.3,-34.0,49.5,57.6,-41.5 +CR,1806,1988:08:25,18h,44.7,45.2,-44.1,56.5,59.0,-54.0 +CR,1807,1988:09:22,01h,36.9,45.4,-28.3,50.2,63.3,-37.2 +CR,1808,1988:10:19,07h,34.8,38.9,-30.6,48.3,58.1,-38.5 +CR,1809,1988:11:15,14h,32.6,29.1,-36.2,52.9,55.1,-50.7 +CR,1810,1988:12:12,21h,43.6,49.0,-38.3,58.9,65.7,-52.1 +CR,1811,1989:01:09,03h,45.2,46.5,-43.9,62.6,66.8,-58.3 +CR,1812,1989:02:05,10h,61.1,61.2,-61.0,71.5,75.1,-67.8 +CR,1813,1989:03:04,16h,59.3,69.5,-49.1,65.8,71.2,-60.4 +CR,1814,1989:03:31,23h,61.0,75.1,-46.9,67.8,70.8,-64.7 +CR,1815,1989:04:28,06h,60.5,74.3,-46.8,67.8,70.3,-65.3 +CR,1816,1989:05:25,12h,75.0,75.2,-74.9,69.9,66.6,-73.2 +CR,1817,1989:06:21,19h,73.3,74.6,-71.9,61.1,47.9,-74.4 +CR,1818,1989:07:19,01h,72.8,71.9,-73.8,74.4,74.0,-74.8 +CR,1819,1989:08:15,08h,68.7,69.6,-67.8,71.9,68.6,-75.2 +CR,1820,1989:09:11,15h,61.6,63.3,-59.9,59.0,43.5,-74.5 +CR,1821,1989:10:08,21h,70.9,70.7,-71.2,64.2,74.9,-53.6 +CR,1822,1989:11:05,04h,74.2,74.9,-73.5,66.9,74.6,-59.2 +CR,1823,1989:12:02,11h,72.3,70.1,-74.5,69.6,75.1,-64.1 +CR,1824,1989:12:29,17h,74.7,74.5,-74.9,70.2,74.5,-65.9 +CR,1825,1990:01:26,00h,74.3,75.0,-73.6,70.4,74.7,-66.0 +CR,1826,1990:02:22,06h,74.5,75.0,-74.1,74.5,75.1,-73.9 +CR,1827,1990:03:21,13h,69.1,68.6,-69.7,75.0,75.0,-75.1 +CR,1828,1990:04:17,20h,63.1,71.0,-55.2,70.2,75.2,-65.3 +CR,1829,1990:05:15,02h,68.5,61.8,-75.1,74.8,74.5,-75.1 +CR,1830,1990:06:11,09h,64.0,56.4,-71.7,72.4,70.2,-74.6 +CR,1831,1990:07:08,15h,72.1,72.2,-72.0,73.6,72.7,-74.5 +CR,1832,1990:08:04,22h,71.1,68.9,-73.4,65.1,75.0,-55.2 +CR,1833,1990:09:01,05h,71.1,72.9,-69.2,73.8,73.4,-74.1 +CR,1834,1990:09:28,11h,72.5,70.6,-74.4,74.8,74.9,-74.7 +CR,1835,1990:10:25,18h,66.1,62.4,-69.8,75.0,74.8,-75.1 +CR,1836,1990:11:22,00h,63.2,55.4,-70.9,68.7,74.0,-63.4 +CR,1837,1990:12:19,07h,44.0,47.0,-40.9,61.4,69.2,-53.6 +CR,1838,1991:01:15,14h,60.9,50.6,-71.3,63.8,59.7,-67.9 +CR,1839,1991:02:11,20h,63.3,56.7,-70.0,66.7,63.1,-70.2 +CR,1840,1991:03:11,03h,58.3,58.1,-58.5,63.7,63.9,-63.4 +CR,1841,1991:04:07,09h,54.5,50.5,-58.5,62.9,61.4,-64.3 +CR,1842,1991:05:04,16h,49.4,46.7,-52.2,60.8,59.9,-61.6 +CR,1843,1991:05:31,23h,49.1,47.4,-50.7,63.3,63.5,-63.0 +CR,1844,1991:06:28,05h,51.4,49.8,-53.1,65.2,65.5,-65.0 +CR,1845,1991:07:25,12h,47.1,43.5,-50.7,60.5,56.2,-64.8 +CR,1846,1991:08:21,18h,41.0,30.8,-51.3,58.8,50.8,-66.8 +CR,1847,1991:09:18,01h,41.1,32.6,-49.6,55.9,46.3,-65.4 +CR,1848,1991:10:15,08h,40.3,33.2,-47.3,54.6,46.4,-62.7 +CR,1849,1991:11:11,14h,38.0,30.7,-45.4,53.7,47.3,-60.1 +CR,1850,1991:12:08,21h,30.8,33.2,-28.3,49.7,52.2,-47.2 +CR,1851,1992:01:05,04h,27.6,27.0,-28.3,45.4,46.6,-44.1 +CR,1852,1992:02:01,10h,22.6,24.1,-21.0,41.7,44.9,-38.5 +CR,1853,1992:02:28,17h,24.3,26.4,-22.2,42.9,47.1,-38.7 +CR,1854,1992:03:26,23h,25.6,27.0,-24.2,44.4,49.2,-39.7 +CR,1855,1992:04:23,06h,19.5,19.4,-19.5,40.5,42.0,-39.1 +CR,1856,1992:05:20,13h,9.3,2.1,-16.5,23.9,19.2,-28.5 +CR,1857,1992:06:16,19h,15.4,9.1,-21.7,32.9,28.9,-36.8 +CR,1858,1992:07:14,02h,17.5,9.7,-25.3,39.5,35.9,-43.1 +CR,1859,1992:08:10,08h,16.3,4.2,-28.4,39.7,33.3,-46.1 +CR,1860,1992:09:06,15h,16.0,6.9,-25.1,30.4,16.3,-44.5 +CR,1861,1992:10:03,22h,16.3,9.7,-22.9,32.4,23.1,-41.7 +CR,1862,1992:10:31,04h,17.0,13.7,-20.4,33.4,28.2,-38.5 +CR,1863,1992:11:27,11h,17.6,8.7,-26.5,33.2,20.0,-46.4 +CR,1864,1992:12:24,17h,23.5,12.3,-34.6,35.4,20.4,-50.4 +CR,1865,1993:01:21,00h,21.3,5.1,-37.4,36.8,21.5,-52.2 +CR,1866,1993:02:17,07h,19.5,5.1,-33.9,33.6,19.1,-48.1 +CR,1867,1993:03:16,13h,21.5,10.8,-32.3,37.9,28.5,-47.3 +CR,1868,1993:04:12,20h,19.8,12.2,-27.3,34.7,27.0,-42.5 +CR,1869,1993:05:10,02h,20.8,16.6,-25.0,35.3,31.7,-38.8 +CR,1870,1993:06:06,09h,18.6,14.3,-22.9,36.4,30.3,-42.5 +CR,1871,1993:07:03,16h,14.9,10.7,-19.1,34.2,27.6,-40.8 +CR,1872,1993:07:30,22h,17.0,14.6,-19.4,34.8,28.5,-41.1 +CR,1873,1993:08:27,05h,15.5,11.8,-19.1,32.5,26.3,-38.6 +CR,1874,1993:09:23,11h,17.3,14.2,-20.3,30.3,27.8,-32.9 +CR,1875,1993:10:20,18h,14.6,12.2,-17.0,28.7,26.2,-31.1 +CR,1876,1993:11:17,01h,17.1,11.7,-22.4,31.9,26.3,-37.4 +CR,1877,1993:12:14,07h,18.5,10.5,-26.5,36.7,31.8,-41.6 +CR,1878,1994:01:10,14h,18.0,8.6,-27.4,38.4,33.4,-43.3 +CR,1879,1994:02:06,20h,17.7,8.7,-26.7,35.0,26.9,-43.1 +CR,1880,1994:03:06,03h,17.5,9.3,-25.8,35.9,29.2,-42.6 +CR,1881,1994:04:02,10h,17.3,10.2,-24.3,35.8,29.7,-42.0 +CR,1882,1994:04:29,16h,17.5,10.4,-24.7,34.7,29.1,-40.3 +CR,1883,1994:05:26,23h,15.1,11.2,-18.9,30.7,25.9,-35.6 +CR,1884,1994:06:23,06h,12.3,8.5,-16.2,26.1,21.4,-30.8 +CR,1885,1994:07:20,12h,10.0,6.9,-13.2,22.7,18.5,-26.9 +CR,1886,1994:08:16,19h,10.4,8.7,-12.0,23.0,19.6,-26.4 +CR,1887,1994:09:13,01h,11.2,9.8,-12.7,25.2,21.5,-28.9 +CR,1888,1994:10:10,08h,10.7,9.8,-11.5,24.1,21.5,-26.8 +CR,1889,1994:11:06,15h,10.7,9.8,-11.5,23.0,20.5,-25.6 +CR,1890,1994:12:03,21h,9.1,5.3,-12.8,23.2,18.1,-28.3 +CR,1891,1994:12:31,04h,9.8,5.2,-14.4,22.1,17.6,-26.5 +CR,1892,1995:01:27,10h,8.6,4.1,-13.1,21.0,14.8,-27.2 +CR,1893,1995:02:23,17h,7.7,3.7,-11.7,19.4,16.8,-22.0 +CR,1894,1995:03:23,00h,11.6,7.3,-15.8,25.9,20.4,-31.3 +CR,1895,1995:04:19,06h,10.2,6.1,-14.4,25.4,19.4,-31.3 +CR,1896,1995:05:16,13h,10.0,6.9,-13.1,24.0,16.5,-31.6 +CR,1897,1995:06:12,19h,10.3,8.5,-12.0,25.5,21.3,-29.7 +CR,1898,1995:07:10,02h,10.0,8.5,-11.5,22.1,17.7,-26.5 +CR,1899,1995:08:06,09h,6.8,5.8,-7.9,18.6,17.8,-19.3 +CR,1900,1995:09:02,15h,7.2,6.1,-8.4,20.2,20.4,-19.9 +CR,1901,1995:09:29,22h,5.9,6.4,-5.4,18.4,21.1,-15.7 +CR,1902,1995:10:27,04h,5.3,3.0,-7.6,17.1,18.0,-16.2 +CR,1903,1995:11:23,11h,5.4,3.0,-7.9,14.3,12.1,-16.5 +CR,1904,1995:12:20,18h,4.3,4.1,-4.5,9.7,8.7,-10.7 +CR,1905,1996:01:17,00h,3.0,3.1,-2.8,9.7,9.9,-9.5 +CR,1906,1996:02:13,07h,2.8,3.8,-1.8,8.9,12.7,-5.0 +CR,1907,1996:03:11,13h,4.5,2.9,-6.1,14.3,12.1,-16.6 +CR,1908,1996:04:07,20h,5.0,4.4,-5.7,14.2,12.6,-15.9 +CR,1909,1996:05:05,03h,4.2,3.8,-4.6,11.6,11.7,-11.5 +CR,1910,1996:06:01,09h,4.8,4.8,-4.8,13.1,14.4,-11.8 +CR,1911,1996:06:28,16h,6.1,9.7,-2.5,18.4,22.2,-14.7 +CR,1912,1996:07:25,22h,7.7,12.4,-2.9,20.2,23.6,-16.7 +CR,1913,1996:08:22,05h,9.3,15.9,-2.7,24.9,28.4,-21.5 +CR,1914,1996:09:18,12h,10.0,15.2,-4.9,25.5,28.4,-22.6 +CR,1915,1996:10:15,18h,6.3,11.5,-1.1,19.7,23.6,-15.8 +CR,1916,1996:11:12,01h,7.1,7.0,-7.2,15.7,13.0,-18.5 +CR,1917,1996:12:09,08h,9.8,10.8,-8.7,24.7,27.4,-21.9 +CR,1918,1997:01:05,14h,8.5,5.2,-11.9,25.6,22.3,-29.0 +CR,1919,1997:02:01,21h,5.1,1.3,-9.0,16.9,14.5,-19.4 +CR,1920,1997:03:01,03h,2.7,2.2,-3.2,12.6,18.3,-6.8 +CR,1921,1997:03:28,10h,3.7,2.9,-4.5,15.7,19.9,-11.5 +CR,1922,1997:04:24,17h,4.9,7.6,-2.3,13.5,20.9,-6.0 +CR,1923,1997:05:21,23h,4.4,6.6,-2.1,12.6,16.2,-9.1 +CR,1924,1997:06:18,06h,4.5,7.2,-1.8,13.5,17.7,-9.3 +CR,1925,1997:07:15,12h,7.0,9.0,-5.1,19.8,18.9,-20.8 +CR,1926,1997:08:11,19h,13.9,17.1,-10.8,34.6,39.4,-29.9 +CR,1927,1997:09:08,02h,12.6,11.9,-13.3,33.7,30.4,-37.0 +CR,1928,1997:10:05,08h,8.4,9.6,-7.3,21.0,23.3,-18.6 +CR,1929,1997:11:01,15h,3.5,7.1,0.2,12.9,12.9,-13.0 +CR,1930,1997:11:28,21h,6.7,10.5,-2.9,26.6,31.3,-22.0 +CR,1931,1997:12:26,04h,9.1,8.7,-9.6,25.5,22.0,-29.0 +CR,1932,1998:01:22,11h,17.8,17.1,-18.6,36.5,32.1,-40.8 +CR,1933,1998:02:18,17h,15.7,13.5,-17.9,29.3,24.6,-34.0 +CR,1934,1998:03:18,00h,33.9,24.2,-43.6,51.9,40.4,-63.4 +CR,1935,1998:04:14,06h,34.7,26.3,-43.1,52.6,42.1,-63.0 +CR,1936,1998:05:11,13h,24.0,20.8,-27.2,39.7,30.7,-48.6 +CR,1937,1998:06:07,20h,29.8,21.3,-38.2,46.7,36.5,-56.8 +CR,1938,1998:07:05,02h,28.2,25.2,-31.2,49.1,41.3,-56.8 +CR,1939,1998:08:01,09h,16.0,20.7,-11.3,41.5,39.2,-43.7 +CR,1940,1998:08:28,15h,20.6,26.2,-15.0,46.7,44.5,-48.8 +CR,1941,1998:09:24,22h,16.8,24.0,-9.6,39.7,39.7,-39.8 +CR,1942,1998:10:22,05h,28.0,24.8,-31.3,41.1,34.8,-47.4 +CR,1943,1998:11:18,11h,43.1,44.2,-42.0,62.5,64.4,-60.5 +CR,1944,1998:12:15,18h,50.9,63.2,-38.6,64.5,74.6,-54.5 +CR,1945,1999:01:12,00h,42.5,45.0,-39.9,62.8,67.1,-58.4 +CR,1946,1999:02:08,07h,50.5,57.5,-43.4,66.7,72.6,-60.9 +CR,1947,1999:03:07,14h,48.1,54.1,-42.1,61.7,70.5,-52.9 +CR,1948,1999:04:03,20h,46.5,40.8,-52.1,61.2,62.3,-60.1 +CR,1949,1999:05:01,03h,49.3,37.2,-61.5,70.8,66.7,-74.9 +CR,1950,1999:05:28,10h,55.0,37.0,-73.0,68.8,63.6,-74.1 +CR,1951,1999:06:24,16h,70.3,65.7,-74.9,74.9,74.8,-75.1 +CR,1952,1999:07:21,23h,74.5,74.0,-75.0,74.0,72.8,-75.1 +CR,1953,1999:08:18,05h,72.1,73.5,-70.7,72.7,73.8,-71.5 +CR,1954,1999:09:14,12h,72.9,73.5,-72.3,69.9,72.4,-67.4 +CR,1955,1999:10:11,19h,60.4,65.6,-55.2,73.0,75.0,-71.1 +CR,1956,1999:11:08,01h,67.6,71.7,-63.5,74.7,74.8,-74.6 +CR,1957,1999:12:05,08h,71.5,73.2,-69.9,74.7,74.6,-74.7 +CR,1958,2000:01:01,14h,73.9,74.6,-73.3,74.5,74.6,-74.3 +CR,1959,2000:01:28,21h,74.5,75.1,-73.8,73.0,74.1,-72.0 +CR,1960,2000:02:25,04h,74.5,74.0,-74.9,73.0,74.6,-71.3 +CR,1961,2000:03:23,10h,73.6,72.6,-74.5,69.2,73.9,-64.4 +CR,1962,2000:04:19,17h,72.6,72.6,-72.7,74.5,74.4,-74.7 +CR,1963,2000:05:16,23h,63.6,60.2,-67.0,70.8,73.4,-68.3 +CR,1964,2000:06:13,06h,73.7,73.1,-74.3,71.9,74.3,-69.6 +CR,1965,2000:07:10,13h,56.7,52.9,-60.5,67.4,65.4,-69.5 +CR,1966,2000:08:06,19h,57.3,69.0,-45.6,63.6,68.4,-58.8 +CR,1967,2000:09:03,02h,63.4,66.9,-59.9,67.6,65.4,-69.9 +CR,1968,2000:09:30,08h,49.9,45.4,-54.5,63.2,58.5,-67.9 +CR,1969,2000:10:27,15h,44.8,50.4,-39.2,61.5,63.0,-60.1 +CR,1970,2000:11:23,22h,54.3,48.1,-60.4,66.3,62.5,-70.1 +CR,1971,2000:12:21,04h,52.3,33.0,-71.5,58.3,50.6,-66.0 +CR,1972,2001:01:17,11h,19.6,29.4,-9.8,47.8,44.9,-50.6 +CR,1973,2001:02:13,17h,18.7,35.5,-1.8,51.9,50.8,-52.9 +CR,1974,2001:03:13,00h,10.8,18.0,-3.5,40.0,35.2,-44.8 +CR,1975,2001:04:09,07h,39.9,35.4,-44.3,56.1,53.1,-59.1 +CR,1976,2001:05:06,13h,50.3,54.4,-46.2,67.9,69.6,-66.1 +CR,1977,2001:06:02,20h,46.8,43.7,-49.9,61.0,56.4,-65.5 +CR,1978,2001:06:30,02h,49.4,46.5,-52.3,63.3,63.6,-63.1 +CR,1979,2001:07:27,09h,36.1,40.2,-31.9,59.8,62.7,-57.0 +CR,1980,2001:08:23,16h,29.3,23.8,-34.8,52.0,45.6,-58.4 +CR,1981,2001:09:19,22h,27.6,22.4,-32.8,44.7,39.1,-50.3 +CR,1982,2001:10:17,05h,37.0,29.7,-44.3,47.3,39.8,-54.8 +CR,1983,2001:11:13,12h,42.1,34.0,-50.1,57.1,51.3,-63.0 +CR,1984,2001:12:10,18h,37.9,34.9,-40.8,61.3,56.7,-65.9 +CR,1985,2002:01:07,01h,40.5,36.4,-44.5,56.0,44.9,-67.2 +CR,1986,2002:02:03,07h,49.6,38.2,-61.0,62.2,49.3,-75.1 +CR,1987,2002:03:02,14h,42.6,45.3,-40.0,59.0,54.8,-63.1 +CR,1988,2002:03:29,21h,46.2,51.2,-41.2,58.0,55.6,-60.4 +CR,1989,2002:04:26,03h,44.8,50.1,-39.5,56.4,57.2,-55.7 +CR,1990,2002:05:23,10h,37.3,42.4,-32.2,55.0,57.6,-52.3 +CR,1991,2002:06:19,16h,38.3,38.3,-38.3,57.3,56.6,-58.0 +CR,1992,2002:07:16,23h,43.1,35.1,-51.1,56.2,48.7,-63.7 +CR,1993,2002:08:13,06h,36.1,34.7,-37.5,48.9,45.8,-51.9 +CR,1994,2002:09:09,12h,55.8,42.1,-69.4,61.8,54.7,-68.9 +CR,1995,2002:10:06,19h,45.4,37.8,-53.0,58.1,51.0,-65.3 +CR,1996,2002:11:03,01h,38.1,34.1,-42.0,53.6,48.8,-58.5 +CR,1997,2002:11:30,08h,45.3,40.3,-50.3,58.9,56.6,-61.1 +CR,1998,2002:12:27,15h,50.2,41.4,-58.9,60.4,54.4,-66.4 +CR,1999,2003:01:23,21h,51.5,47.3,-55.8,62.3,57.4,-67.2 +CR,2000,2003:02:20,04h,43.8,33.6,-53.9,55.7,44.7,-66.6 +CR,2001,2003:03:19,10h,39.9,29.5,-50.3,51.9,38.7,-65.0 +CR,2002,2003:04:15,17h,39.4,28.6,-50.1,52.9,39.9,-65.9 +CR,2003,2003:05:13,00h,42.4,36.0,-48.8,57.9,50.4,-65.3 +CR,2004,2003:06:09,06h,42.0,39.3,-44.6,58.2,54.7,-61.7 +CR,2005,2003:07:06,13h,43.6,44.4,-42.8,61.0,60.1,-61.8 +CR,2006,2003:08:02,19h,39.2,43.5,-35.0,58.6,60.5,-56.8 +CR,2007,2003:08:30,02h,36.7,37.6,-35.8,56.7,57.8,-55.6 +CR,2008,2003:09:26,09h,31.9,34.4,-29.5,53.6,55.7,-51.5 +CR,2009,2003:10:23,15h,44.9,44.5,-45.3,62.8,63.8,-61.9 +CR,2010,2003:11:19,22h,42.2,44.4,-40.0,56.9,59.8,-53.9 +CR,2011,2003:12:17,04h,45.5,45.1,-46.0,59.3,59.9,-58.7 +CR,2012,2004:01:13,11h,49.6,54.9,-44.3,61.9,63.6,-60.1 +CR,2013,2004:02:09,18h,38.5,34.0,-43.1,54.2,52.1,-56.3 +CR,2014,2004:03:08,00h,31.8,29.0,-34.6,50.3,48.9,-51.7 +CR,2015,2004:04:04,07h,36.3,32.7,-39.8,53.4,51.1,-55.7 +CR,2016,2004:05:01,14h,33.6,32.4,-34.8,51.7,50.3,-53.2 +CR,2017,2004:05:28,20h,30.1,26.6,-33.6,48.5,44.7,-52.3 +CR,2018,2004:06:25,03h,30.8,28.8,-32.8,48.7,46.6,-50.9 +CR,2019,2004:07:22,09h,34.3,30.3,-38.3,47.4,45.6,-49.2 +CR,2020,2004:08:18,16h,26.4,26.0,-26.8,40.0,40.0,-40.0 +CR,2021,2004:09:14,23h,23.2,25.6,-20.8,40.9,42.2,-39.6 +CR,2022,2004:10:12,05h,23.4,26.6,-20.3,37.6,37.4,-37.8 +CR,2023,2004:11:08,12h,33.3,32.3,-34.2,48.5,46.5,-50.5 +CR,2024,2004:12:05,18h,35.8,41.5,-30.1,52.2,55.9,-48.5 +CR,2025,2005:01:02,01h,32.2,37.3,-27.2,46.5,51.3,-41.7 +CR,2026,2005:01:29,08h,41.1,55.6,-26.6,45.8,56.7,-35.0 +CR,2027,2005:02:25,14h,38.2,49.6,-26.7,46.3,56.1,-36.4 +CR,2028,2005:03:24,21h,32.0,39.2,-24.8,44.3,54.2,-34.4 +CR,2029,2005:04:21,03h,23.8,29.0,-18.5,42.2,50.3,-34.1 +CR,2030,2005:05:18,10h,20.8,20.9,-20.8,38.9,38.9,-38.8 +CR,2031,2005:06:14,17h,21.6,22.2,-21.1,38.4,37.9,-38.9 +CR,2032,2005:07:11,23h,22.8,21.8,-23.8,38.6,34.9,-42.3 +CR,2033,2005:08:08,06h,17.8,15.7,-20.0,34.5,28.4,-40.5 +CR,2034,2005:09:04,12h,20.6,24.7,-16.6,42.1,43.5,-40.6 +CR,2035,2005:10:01,19h,22.4,25.0,-19.7,41.6,41.5,-41.7 +CR,2036,2005:10:29,02h,22.7,21.3,-24.0,40.8,37.4,-44.2 +CR,2037,2005:11:25,08h,24.1,25.8,-22.4,43.8,43.8,-43.9 +CR,2038,2005:12:22,15h,18.8,16.9,-20.7,37.8,35.6,-39.9 +CR,2039,2006:01:18,21h,9.7,6.4,-13.0,28.9,27.1,-30.7 +CR,2040,2006:02:15,04h,16.8,16.6,-17.0,37.4,41.1,-33.6 +CR,2041,2006:03:14,11h,18.0,11.0,-25.0,34.2,26.8,-41.6 +CR,2042,2006:04:10,17h,17.6,18.3,-17.0,40.8,38.5,-43.1 +CR,2043,2006:05:08,00h,12.6,10.5,-14.8,35.9,37.6,-34.2 +CR,2044,2006:06:04,07h,15.0,15.1,-15.0,34.7,33.4,-36.0 +CR,2045,2006:07:01,13h,16.7,16.9,-16.5,34.0,30.1,-38.0 +CR,2046,2006:07:28,20h,18.7,19.6,-17.8,36.3,34.1,-38.6 +CR,2047,2006:08:25,02h,18.4,17.2,-19.6,35.8,31.2,-40.3 +CR,2048,2006:09:21,09h,11.0,11.4,-10.6,27.6,25.0,-30.2 +CR,2049,2006:10:18,16h,10.9,11.8,-10.0,28.3,25.0,-31.7 +CR,2050,2006:11:14,22h,11.6,13.6,-9.7,30.7,24.1,-37.3 +CR,2051,2006:12:12,05h,16.8,14.9,-18.7,33.2,26.5,-40.0 +CR,2052,2007:01:08,11h,15.9,9.0,-22.8,32.7,24.4,-40.9 +CR,2053,2007:02:04,18h,12.9,6.3,-19.4,32.2,25.7,-38.6 +CR,2054,2007:03:04,01h,11.3,5.9,-16.7,29.4,22.5,-36.3 +CR,2055,2007:03:31,07h,13.6,8.5,-18.7,33.4,26.2,-40.6 +CR,2056,2007:04:27,14h,13.6,10.8,-16.5,31.7,23.8,-39.5 +CR,2057,2007:05:24,20h,15.6,16.7,-14.5,33.5,29.2,-37.9 +CR,2058,2007:06:21,03h,14.3,16.1,-12.5,32.0,28.6,-35.4 +CR,2059,2007:07:18,10h,13.3,17.9,-8.8,30.3,28.3,-32.4 +CR,2060,2007:08:14,16h,15.8,21.5,-10.0,31.4,30.1,-32.6 +CR,2061,2007:09:10,23h,14.4,18.9,-10.0,29.8,27.1,-32.5 +CR,2062,2007:10:08,05h,15.2,17.3,-13.0,29.1,26.0,-32.2 +CR,2063,2007:11:04,12h,14.8,12.7,-16.9,30.4,23.6,-37.2 +CR,2064,2007:12:01,19h,14.9,12.5,-17.3,30.7,23.9,-37.4 +CR,2065,2007:12:29,01h,17.7,12.9,-22.6,32.7,23.1,-42.2 +CR,2066,2008:01:25,08h,20.8,14.4,-27.3,35.5,26.2,-44.7 +CR,2067,2008:02:21,14h,19.6,11.0,-28.1,35.1,25.8,-44.4 +CR,2068,2008:03:19,21h,17.6,10.0,-25.3,35.7,28.2,-43.3 +CR,2069,2008:04:16,04h,16.1,8.6,-23.5,35.6,27.7,-43.5 +CR,2070,2008:05:13,10h,14.8,11.1,-18.5,34.6,28.8,-40.5 +CR,2071,2008:06:09,17h,15.1,14.4,-15.8,34.2,30.9,-37.5 +CR,2072,2008:07:06,23h,12.8,11.9,-13.7,30.0,26.6,-33.4 +CR,2073,2008:08:03,06h,12.8,12.7,-13.0,30.0,28.2,-31.7 +CR,2074,2008:08:30,13h,14.8,15.4,-14.1,31.9,30.7,-33.0 +CR,2075,2008:09:26,19h,9.7,11.3,-8.0,26.1,24.1,-28.1 +CR,2076,2008:10:24,02h,9.0,8.6,-9.3,24.4,20.6,-28.2 +CR,2077,2008:11:20,09h,10.7,10.7,-10.7,27.6,28.1,-27.1 +CR,2078,2008:12:17,15h,8.1,5.7,-10.6,22.1,21.0,-23.3 +CR,2079,2009:01:13,22h,9.6,2.7,-16.4,21.7,16.7,-26.8 +CR,2080,2009:02:10,04h,10.4,3.4,-17.4,24.1,19.7,-28.5 +CR,2081,2009:03:09,11h,9.7,1.8,-17.7,23.1,17.7,-28.5 +CR,2082,2009:04:05,18h,7.7,-0.2,-15.5,20.2,13.3,-27.2 +CR,2083,2009:05:03,00h,4.8,-0.9,-10.5,16.4,11.9,-21.0 +CR,2084,2009:05:30,07h,6.6,6.3,-6.8,21.2,24.0,-18.3 +CR,2085,2009:06:26,13h,7.8,9.1,-6.5,21.3,24.9,-17.8 +CR,2086,2009:07:23,20h,9.3,12.3,-6.3,20.5,23.9,-17.0 +CR,2087,2009:08:20,03h,5.8,8.1,-3.5,12.8,13.8,-11.8 +CR,2088,2009:09:16,09h,5.2,8.3,-2.0,12.0,13.5,-10.5 +CR,2089,2009:10:13,16h,4.5,7.9,-1.1,10.1,15.3,-4.9 +CR,2090,2009:11:09,22h,9.8,10.0,-9.6,23.1,30.9,-15.2 +CR,2091,2009:12:07,05h,17.3,18.9,-15.8,33.5,38.4,-28.5 +CR,2092,2010:01:03,12h,25.1,28.0,-22.2,47.0,51.7,-42.2 +CR,2093,2010:01:30,18h,22.1,23.7,-20.6,43.8,51.2,-36.3 +CR,2094,2010:02:27,01h,24.0,24.5,-23.6,42.1,52.7,-31.6 +CR,2095,2010:03:26,07h,23.8,25.2,-22.3,41.5,48.9,-34.0 +CR,2096,2010:04:22,14h,21.6,24.5,-18.6,36.3,45.1,-27.5 +CR,2097,2010:05:19,21h,26.2,30.5,-22.0,37.2,46.9,-27.6 +CR,2098,2010:06:16,03h,23.4,24.4,-22.3,27.9,31.7,-24.1 +CR,2099,2010:07:13,10h,32.6,34.6,-30.5,45.6,48.6,-42.7 +CR,2100,2010:08:09,16h,25.7,27.2,-24.1,41.2,44.4,-38.1 +CR,2101,2010:09:05,23h,33.0,31.0,-35.1,49.6,50.7,-48.5 +CR,2102,2010:10:03,06h,23.6,23.4,-23.9,43.5,47.1,-40.0 +CR,2103,2010:10:30,12h,21.4,16.9,-26.0,40.4,40.9,-40.0 +CR,2104,2010:11:26,19h,17.8,11.5,-24.1,48.8,54.5,-43.1 +CR,2105,2010:12:24,01h,36.4,43.2,-29.6,48.2,54.1,-42.3 +CR,2106,2011:01:20,08h,54.3,74.7,-33.8,53.6,61.4,-45.8 +CR,2107,2011:02:16,15h,54.9,71.8,-38.1,56.1,67.4,-44.7 +CR,2108,2011:03:15,21h,62.4,73.2,-51.6,65.2,70.9,-59.4 +CR,2109,2011:04:12,04h,64.1,74.4,-53.7,69.9,75.0,-64.8 +CR,2110,2011:05:09,11h,56.3,69.7,-42.8,63.7,70.5,-57.0 +CR,2111,2011:06:05,17h,45.2,51.1,-39.4,63.5,69.2,-57.8 +CR,2112,2011:07:03,00h,42.3,41.9,-42.7,64.5,65.4,-63.6 +CR,2113,2011:07:30,06h,47.8,50.0,-45.6,67.1,68.8,-65.4 +CR,2114,2011:08:26,13h,47.0,47.9,-46.0,66.7,69.1,-64.3 +CR,2115,2011:09:22,20h,57.2,59.9,-54.6,71.1,75.1,-67.1 +CR,2116,2011:10:20,02h,49.0,49.8,-48.3,69.6,73.9,-65.3 +CR,2117,2011:11:16,09h,55.8,68.6,-43.0,66.9,75.1,-58.7 +CR,2118,2011:12:13,15h,60.9,73.2,-48.6,68.8,72.2,-65.4 +CR,2119,2012:01:09,22h,60.7,72.6,-48.9,67.1,65.7,-68.5 +CR,2120,2012:02:06,05h,63.5,73.7,-53.2,70.0,74.1,-65.9 +CR,2121,2012:03:04,11h,58.2,74.6,-41.9,60.4,69.7,-51.2 +CR,2122,2012:03:31,18h,54.9,66.2,-43.7,58.0,64.2,-51.7 +CR,2123,2012:04:28,00h,55.9,63.5,-48.3,68.0,74.7,-61.2 +CR,2124,2012:05:25,07h,60.3,57.2,-63.4,74.3,73.7,-74.9 +CR,2125,2012:06:21,14h,68.3,70.5,-66.1,74.6,74.2,-75.1 +CR,2126,2012:07:18,20h,66.4,67.5,-65.2,73.9,74.5,-73.3 +CR,2127,2012:08:15,03h,64.8,63.5,-66.1,73.1,74.9,-71.2 +CR,2128,2012:09:11,09h,66.1,73.0,-59.3,71.6,74.9,-68.3 +CR,2129,2012:10:08,16h,70.4,68.3,-72.4,73.4,74.1,-72.7 +CR,2130,2012:11:04,23h,67.5,59.9,-75.0,71.5,68.6,-74.3 +CR,2131,2012:12:02,05h,68.7,63.4,-73.9,61.9,72.9,-50.9 +CR,2132,2012:12:29,12h,64.2,56.0,-72.4,73.1,72.4,-73.8 +CR,2133,2013:01:25,18h,70.3,69.9,-70.8,71.5,75.0,-68.0 +CR,2134,2013:02:22,01h,73.2,72.8,-73.6,64.8,69.2,-60.5 +CR,2135,2013:03:21,08h,69.2,64.9,-73.6,73.6,72.3,-74.8 +CR,2136,2013:04:17,14h,68.7,63.6,-73.7,70.1,65.5,-74.8 +CR,2137,2013:05:14,21h,67.9,74.9,-60.8,68.9,62.6,-75.1 +CR,2138,2013:06:11,03h,61.9,72.9,-50.9,71.7,69.3,-74.0 +CR,2139,2013:07:08,10h,67.7,70.0,-65.5,73.0,75.0,-70.9 +CR,2140,2013:08:04,17h,67.6,71.1,-64.2,68.3,69.8,-66.9 +CR,2141,2013:08:31,23h,59.6,63.2,-55.9,68.3,74.9,-61.7 +CR,2142,2013:09:28,06h,60.8,59.0,-62.5,70.4,74.5,-66.3 +CR,2143,2013:10:25,13h,57.6,57.7,-57.6,67.2,71.3,-63.0 +CR,2144,2013:11:21,19h,59.9,74.9,-44.9,66.9,73.8,-60.0 +CR,2145,2013:12:19,02h,63.1,74.3,-51.9,66.5,74.1,-58.9 +CR,2146,2014:01:15,08h,66.3,74.5,-58.0,64.4,72.6,-56.3 +CR,2147,2014:02:11,15h,70.5,74.7,-66.2,68.7,73.8,-63.5 +CR,2148,2014:03:10,22h,54.4,69.5,-39.4,60.5,75.0,-45.9 +CR,2149,2014:04:07,04h,48.9,51.2,-46.5,62.7,74.3,-51.1 +CR,2150,2014:05:04,11h,28.9,18.5,-39.4,56.7,65.3,-48.1 +CR,2151,2014:05:31,17h,25.4,17.2,-33.6,48.8,54.4,-43.2 +CR,2152,2014:06:28,00h,24.8,22.3,-27.3,48.1,58.5,-37.7 +CR,2153,2014:07:25,07h,40.2,31.9,-48.6,58.8,65.9,-51.8 +CR,2154,2014:08:21,13h,49.4,45.7,-53.1,60.0,62.2,-57.9 +CR,2155,2014:09:17,20h,65.5,71.0,-60.0,69.1,74.7,-63.6 +CR,2156,2014:10:15,02h,64.9,64.6,-65.1,72.5,74.3,-70.7 +CR,2157,2014:11:11,09h,41.8,27.6,-56.0,52.5,40.2,-64.8 +CR,2158,2014:12:08,16h,45.1,36.6,-53.7,53.8,45.8,-61.8 +CR,2159,2015:01:04,22h,41.5,31.7,-51.2,55.2,48.6,-61.8 +CR,2160,2015:02:01,05h,36.1,28.1,-44.0,50.6,45.6,-55.6 +CR,2161,2015:02:28,11h,31.9,26.5,-37.4,49.2,47.3,-51.1 +CR,2162,2015:03:27,18h,24.0,16.0,-32.0,44.6,44.4,-44.8 +CR,2163,2015:04:24,01h,27.9,25.3,-30.5,43.3,44.4,-42.2 +CR,2164,2015:05:21,07h,35.9,37.4,-34.5,51.4,58.5,-44.4 +CR,2165,2015:06:17,14h,37.2,45.4,-29.0,52.7,61.5,-43.9 +CR,2166,2015:07:14,20h,31.9,39.0,-24.8,47.4,56.7,-38.2 +CR,2167,2015:08:11,03h,33.7,41.9,-25.4,49.8,59.0,-40.6 +CR,2168,2015:09:07,10h,32.9,42.1,-23.7,48.7,59.2,-38.2 +CR,2169,2015:10:04,16h,32.1,40.1,-24.0,50.4,60.3,-40.5 +CR,2170,2015:10:31,23h,30.8,33.2,-28.3,51.4,58.0,-44.7 +CR,2171,2015:11:28,05h,29.3,30.8,-27.7,50.6,57.0,-44.1 +CR,2172,2015:12:25,12h,34.2,38.4,-29.9,50.3,56.2,-44.3 +CR,2173,2016:01:21,19h,31.7,31.0,-32.4,51.2,55.6,-46.8 +CR,2174,2016:02:18,01h,25.7,23.3,-28.0,47.5,50.9,-44.1 +CR,2175,2016:03:16,08h,28.9,30.4,-27.5,47.9,53.4,-42.3 +CR,2176,2016:04:12,15h,25.8,28.9,-22.6,43.5,51.1,-35.9 +CR,2177,2016:05:09,21h,28.1,32.6,-23.6,42.6,50.1,-35.2 +CR,2178,2016:06:06,04h,25.6,27.5,-23.8,42.5,48.4,-36.5 +CR,2179,2016:07:03,10h,22.0,19.2,-24.9,39.4,43.8,-35.0 +CR,2180,2016:07:30,17h,25.3,24.6,-26.1,40.5,44.4,-36.6 +CR,2181,2016:08:27,00h,26.1,25.8,-26.5,39.1,40.9,-37.4 +CR,2182,2016:09:23,06h,28.7,30.0,-27.3,41.8,42.9,-40.6 +CR,2183,2016:10:20,13h,27.0,26.4,-27.6,43.4,43.8,-43.0 +CR,2184,2016:11:16,19h,24.1,24.2,-24.0,41.7,41.7,-41.6 +CR,2185,2016:12:14,02h,19.6,16.5,-22.8,39.2,38.3,-40.1 +CR,2186,2017:01:10,09h,21.3,19.3,-23.3,40.6,39.2,-42.0 +CR,2187,2017:02:06,15h,16.4,16.2,-16.7,35.3,37.0,-33.6 +CR,2188,2017:03:05,22h,13.1,11.7,-14.4,31.0,31.5,-30.5 +CR,2189,2017:04:02,04h,11.7,11.1,-12.2,28.9,32.8,-25.0 +CR,2190,2017:04:29,11h,13.0,15.6,-10.4,31.4,37.8,-25.0 +CR,2191,2017:05:26,18h,13.9,17.0,-10.8,31.2,38.2,-24.2 +CR,2192,2017:06:23,00h,18.5,23.7,-13.4,32.0,41.4,-22.7 +CR,2193,2017:07:20,07h,15.1,17.9,-12.3,27.3,36.2,-18.4 +CR,2194,2017:08:16,13h,9.7,9.3,-10.1,20.4,26.1,-14.7 +CR,2195,2017:09:12,20h,17.3,23.3,-11.3,28.5,38.8,-18.2 +CR,2196,2017:10:10,03h,16.4,21.7,-11.1,30.6,40.6,-20.6 +CR,2197,2017:11:06,09h,15.0,19.2,-10.9,29.2,38.0,-20.4 +CR,2198,2017:12:03,16h,14.0,17.0,-11.0,29.1,39.0,-19.3 +CR,2199,2017:12:30,22h,10.8,11.6,-10.0,25.6,36.5,-14.8 +CR,2200,2018:01:27,05h,10.3,9.3,-11.3,26.7,35.4,-18.0 +CR,2201,2018:02:23,12h,9.5,10.1,-8.9,24.1,34.7,-13.6 +CR,2202,2018:03:22,18h,6.8,4.2,-9.4,20.0,25.6,-14.4 +CR,2203,2018:04:19,01h,6.2,5.8,-6.6,18.7,23.4,-14.0 +CR,2204,2018:05:16,08h,6.3,9.7,-2.9,16.5,23.1,-9.9 +CR,2205,2018:06:12,14h,7.0,9.1,-4.8,17.7,21.0,-14.3 +CR,2206,2018:07:09,21h,11.6,11.5,-11.6,25.3,26.3,-24.3 +CR,2207,2018:08:06,03h,8.8,12.0,-5.5,23.1,26.3,-19.9 +CR,2208,2018:09:02,10h,8.7,14.0,-3.5,23.8,25.0,-22.5 +CR,2209,2018:09:29,17h,10.3,13.0,-7.6,26.3,25.1,-27.5 +CR,2210,2018:10:26,23h,10.4,12.8,-8.0,25.4,24.4,-26.4 +CR,2211,2018:11:23,06h,8.0,7.4,-8.7,21.1,18.2,-24.1 +CR,2212,2018:12:20,12h,7.6,7.0,-8.3,22.5,22.2,-22.8 +CR,2213,2019:01:16,19h,7.5,4.4,-10.7,21.2,17.2,-25.1 +CR,2214,2019:02:13,02h,6.6,4.6,-8.6,16.1,14.2,-18.1 +CR,2215,2019:03:12,08h,7.7,6.2,-9.3,19.3,14.8,-23.9 +CR,2216,2019:04:08,15h,8.2,6.3,-10.0,20.7,14.3,-27.1 +CR,2217,2019:05:05,21h,8.5,7.5,-9.4,25.1,22.7,-27.4 +CR,2218,2019:06:02,04h,6.5,6.6,-6.5,20.9,19.4,-22.4 +CR,2219,2019:06:29,11h,6.9,7.6,-6.1,19.8,17.6,-22.0 +CR,2220,2019:07:26,17h,8.7,10.6,-6.8,18.6,15.9,-21.3 +CR,2221,2019:08:23,00h,7.3,9.8,-4.7,17.5,12.6,-22.4 +CR,2222,2019:09:19,06h,5.7,9.1,-2.4,16.8,12.6,-20.9 +CR,2223,2019:10:16,13h,5.3,7.3,-3.4,15.3,10.9,-19.8 +CR,2224,2019:11:12,20h,5.9,7.0,-4.8,14.6,11.2,-18.1 +CR,2225,2019:12:10,02h,6.9,6.0,-7.7,13.6,7.9,-19.3 +CR,2226,2020:01:06,09h,4.3,2.0,-6.6,10.8,6.9,-14.6 +CR,2227,2020:02:02,15h,3.0,1.3,-4.8,9.1,4.8,-13.3 +CR,2228,2020:02:29,22h,3.0,2.5,-3.6,7.5,5.6,-9.5 +CR,2229,2020:03:28,05h,3.3,2.7,-3.9,8.8,7.9,-9.6 +CR,2230,2020:04:24,11h,2.1,1.8,-2.4,6.1,6.4,-5.8 +CR,2231,2020:05:21,18h,5.2,5.0,-5.4,14.5,10.8,-18.2 +CR,2232,2020:06:18,00h,4.0,7.4,-0.5,9.1,11.3,-6.8 +CR,2233,2020:07:15,07h,6.6,7.7,-5.5,15.0,13.8,-16.2 +CR,2234,2020:08:11,14h,6.3,9.1,-3.5,14.0,14.5,-13.5 +CR,2235,2020:09:07,20h,8.2,10.6,-5.8,14.5,13.9,-15.1 +CR,2236,2020:10:05,03h,10.7,9.9,-11.5,16.9,13.0,-20.8 +CR,2237,2020:11:01,10h,13.2,17.1,-9.2,21.7,27.2,-16.2 +CR,2238,2020:11:28,16h,14.8,10.0,-19.6,37.3,31.3,-43.2 +CR,2239,2020:12:25,23h,8.5,4.6,-12.4,23.1,22.0,-24.3 +CR,2240,2021:01:22,05h,9.3,5.3,-13.3,23.2,16.5,-30.0 +CR,2241,2021:02:18,12h,11.3,9.0,-13.6,21.7,14.1,-29.3 +CR,2242,2021:03:17,19h,11.9,9.8,-14.0,25.6,18.4,-32.9 +CR,2243,2021:04:14,01h,11.9,9.8,-13.9,24.1,18.7,-29.6 +CR,2244,2021:05:11,08h,9.8,12.1,-7.5,22.3,21.4,-23.2 +CR,2245,2021:06:07,14h,11.4,13.3,-9.6,30.6,22.1,-39.2 +CR,2246,2021:07:04,21h,9.3,13.2,-5.4,23.7,23.1,-24.4 +CR,2247,2021:08:01,04h,9.0,12.0,-6.0,22.7,23.1,-22.3 +CR,2248,2021:08:28,10h,15.2,15.4,-15.1,33.2,25.2,-41.2 +CR,2249,2021:09:24,17h,12.0,14.3,-9.8,24.5,18.7,-30.4 +CR,2250,2021:10:21,23h,14.0,16.5,-11.5,30.2,26.4,-34.0 +CR,2251,2021:11:18,06h,19.5,16.7,-22.4,35.4,26.6,-44.2 +CR,2252,2021:12:15,13h,23.6,19.0,-28.2,40.5,30.8,-50.2 +CR,2253,2022:01:11,19h,28.9,20.2,-37.6,46.0,34.7,-57.3 +CR,2254,2022:02:08,02h,30.9,28.1,-33.7,49.5,45.4,-53.6 +CR,2255,2022:03:07,08h,29.2,33.6,-24.7,50.5,53.3,-47.7 +CR,2256,2022:04:03,15h,45.9,52.1,-39.6,64.1,67.9,-60.3 +CR,2257,2022:04:30,22h,57.6,56.1,-59.0,73.8,73.1,-74.4 +CR,2258,2022:05:28,04h,61.0,56.8,-65.3,74.9,75.0,-74.9 +CR,2259,2022:06:24,11h,68.7,64.3,-73.1,74.7,74.9,-74.4 +CR,2260,2022:07:21,17h,67.8,61.8,-73.8,74.3,74.9,-73.7 +CR,2261,2022:08:18,00h,65.6,59.0,-72.2,73.0,72.1,-73.9 +CR,2262,2022:09:14,07h,72.3,74.6,-70.1,71.0,70.7,-71.2 +CR,2263,2022:10:11,13h,74.3,73.5,-75.1,67.0,73.3,-60.6 +CR,2264,2022:11:07,20h,72.9,70.6,-75.1,63.3,73.9,-52.6 +CR,2265,2022:12:05,02h,64.0,73.2,-54.9,67.3,72.7,-61.9 +CR,2266,2023:01:01,09h,73.3,73.2,-73.5,73.8,72.6,-75.0 +CR,2267,2023:01:28,16h,74.6,75.0,-74.1,74.4,73.8,-75.1 +CR,2268,2023:02:24,22h,74.3,73.9,-74.6,74.4,74.3,-74.5 +CR,2269,2023:03:24,05h,68.4,62.5,-74.2,74.7,74.7,-74.6 +CR,2270,2023:04:20,12h,73.9,75.1,-72.7,73.2,71.4,-75.0 +CR,2271,2023:05:17,18h,71.5,74.9,-68.1,74.2,73.3,-75.0 +CR,2272,2023:06:14,01h,70.7,72.2,-69.2,74.5,74.0,-75.0 +CR,2273,2023:07:11,07h,70.3,68.9,-71.6,68.2,68.5,-67.8 +CR,2274,2023:08:07,14h,73.9,73.7,-74.2,72.1,75.0,-69.2 +CR,2275,2023:09:03,21h,72.7,70.6,-74.9,74.6,74.2,-75.1 +CR,2276,2023:10:01,03h,72.0,74.1,-69.9,74.7,74.2,-75.2 +CR,2277,2023:10:28,10h,62.0,69.5,-54.6,74.5,74.2,-74.8 +CR,2278,2023:11:24,16h,60.8,67.9,-53.7,72.9,71.1,-74.6 +CR,2279,2023:12:21,23h,55.7,49.0,-62.4,66.8,58.7,-74.8 +CR,2280,2024:01:18,06h,60.4,68.9,-51.8,71.4,74.6,-68.3 +CR,2281,2024:02:14,12h,68.1,69.3,-66.9,72.6,75.1,-70.2 +CR,2282,2024:03:12,19h,69.3,74.2,-64.3,74.5,75.1,-74.0 +CR,2283,2024:04:09,01h,60.3,66.9,-53.7,74.5,74.9,-74.0 +CR,2284,2024:05:06,08h,56.7,50.4,-63.0,68.2,61.5,-74.9 +CR,2285,2024:06:02,15h,57.6,47.3,-68.0,65.2,65.2,-65.3 +CR,2286,2024:06:29,21h,46.6,40.8,-52.4,66.3,57.6,-75.0 +CR,2287,2024:07:27,04h,52.7,41.6,-63.7,63.7,52.3,-75.2 +CR,2288,2024:08:23,10h,61.9,49.1,-74.7,67.3,60.4,-74.3 +CR,2289,2024:09:19,17h,62.3,52.6,-72.0,70.6,66.2,-75.1 +CR,2290,2024:10:17,00h,62.6,55.6,-69.5,73.3,71.5,-75.2 +CR,2291,2024:11:13,06h,64.0,54.1,-73.9,74.7,75.0,-74.5 +CR,2292,2024:12:10,13h,63.2,53.1,-73.3,74.5,75.0,-74.0 +CR,2293,2025:01:06,19h,61.2,53.1,-69.2,74.1,74.3,-74.0 From 98bac5e06c5e65aaa522bab37b8b1a811d9baf57 Mon Sep 17 00:00:00 2001 From: marek395 Date: Tue, 11 Mar 2025 14:35:34 +0100 Subject: [PATCH 2/7] update --- Fetching/Geliosphere_K0_phi_table.csv | 11 +- Fetching/fetch_script.py | 121 +++++++------ Fetching/fetch_script_log.txt | 237 +------------------------- 3 files changed, 75 insertions(+), 294 deletions(-) diff --git a/Fetching/Geliosphere_K0_phi_table.csv b/Fetching/Geliosphere_K0_phi_table.csv index 63fe773..f2c1cbf 100644 --- a/Fetching/Geliosphere_K0_phi_table.csv +++ b/Fetching/Geliosphere_K0_phi_table.csv @@ -515,4 +515,13 @@ carrington_rotation,year_week,modulation_potentional,k0_au2/s,tilt_angle,year,mo 2155,2014.713242,634,3.25685488958991e-05,65.5,2014,9,17,1 2156,2014.7910958,632,3.27121518987342e-05,64.9,2014,10,15,1 2157,2014.8634703,645,3.17946511627907e-05,41.8,2014,11,11,1 -2158,2014.9385844,731,2.65470451436389e-05,45.1,2014,12,8,1 \ No newline at end of file +2158,2014.9385844,731,2.65470451436389e-05,45.1,2014,12,8,1 +2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 +2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 +2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 +2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 +2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 +2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 +2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 +2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 +2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 diff --git a/Fetching/fetch_script.py b/Fetching/fetch_script.py index b0fdab2..bb613c4 100644 --- a/Fetching/fetch_script.py +++ b/Fetching/fetch_script.py @@ -15,21 +15,16 @@ import pandas as pd import urllib3 import datetime +import argparse # Disable the InsecureRequestWarning - http://wso.stanford.edu/Tilts.html site does not have a certificate urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) -# Log -with open("fetch_script_log.txt", "a") as log_file: - log_file.write(f"\nScript started successfully at {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n") - # File is automatically closed when the block is exited - # Define the URL url_flow_speed = "https://omniweb.gsfc.nasa.gov/cgi/nx1.cgi" url_phi = "https://cosmicrays.oulu.fi/phi/Phi_Table_2017.txt" url_tilt_angle = "http://wso.stanford.edu/Tilts.html" - # Define the payload for OMNIWEB form request payload = { "activity": "retrieve", @@ -39,39 +34,24 @@ "end_date": "20250110", "vars": "24", } -print("\n") -print(f"Script started successfully at {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") -print("\n") - -# Secure the connection and read responses -try: - response_flow_speed = requests.post(url_flow_speed, data=payload) - response_flow_speed.raise_for_status() - - print("Flow speed data connected successfully.") - -except requests.exceptions.RequestException as e: - print(f"Error connecting to flow speed data: {e}") - -try: - response_phi = requests.get(url_phi, verify=False) - response_phi.raise_for_status() - - print("Phi data connected successfully.") - -except requests.exceptions.RequestException as e: - print(f"Error connecting to phi data: {e}") - -try: - response_tilt_angle = requests.get(url_tilt_angle) - response_tilt_angle.raise_for_status() - - print("Tilt angle data connected successfully.") - -except requests.exceptions.RequestException as e: - print(f"Error connecting to tilt angle data: {e}") + +def connect_to_url(url, method='get', data=None, verify_ssl=True): + """Connect to a URL and handle exceptions.""" + try: + if method == 'get': + response = requests.get(url, verify=verify_ssl) + elif method == 'post': + response = requests.post(url, data=data) + response.raise_for_status() + print(f"{url} connected successfully.") + return response + except requests.exceptions.RequestException as e: + print(f"Error connecting to {url}: {e}") + return None def parse_to_csv(html_content: str, table_start: str, table_end: str, header_start: str, output_file_path: str): + """Parse HTML content and save to CSV.""" + try: # Clean text_data text_data = html_content.replace("\x00", "") @@ -92,8 +72,6 @@ def parse_to_csv(html_content: str, table_start: str, table_end: str, header_sta if start_index is None or end_index is None: raise ValueError("Table boundaries not found.\n\n") - #else: - # print("Table boundaries for "+ output_file_path +" found.") if header is None: print("Warning: No header found, generating default header.") @@ -108,30 +86,21 @@ def parse_to_csv(html_content: str, table_start: str, table_end: str, header_sta df.to_csv(output_file_path, index=False) print("Table data were saved to:", output_file_path) - # Print last row - #print("-\nThe most up-to-date entry:\n", df.tail(1), "\n") - - with open("fetch_script_log.txt", "a") as log_file: - log_file.write("\nThe most up-to-date entry:\n" + str(df.tail(1)) + "\n") - + with open(args.log_file, "a") as log_file: + log_file.write("\nThe most up-to-date entry from " + output_file_path + ":\n" + str(df.tail(1))) return df.tail(1) except ValueError as e: print(f"Value Error: {e}") except Exception as e: - print(f"An unspecified error occurred: {e}") # Handle other errors (e.g., invalid HTML, parsing issues) - - -# Parsing and saving to .cvs with anchor params and retrieving last entries -last_entry_flow_speed = parse_to_csv(response_flow_speed.text,"YEAR DOY","","YEAR DOY","table_data_flow_speed.csv") -last_entry_phi = parse_to_csv(response_phi.text,"+++","+++","Year Jan","table_data_phi.csv") -last_entry_tilt_angle = parse_to_csv(response_tilt_angle.text,"Carr Rot","","Carr Rot","table_data_tilt_angle.csv") + print(f"An unspecified error occurred: {e}") +def compute_new_entry(last_entry_flow_speed, last_entry_phi, last_entry_tilt_angle): + """Compute and append a new entry to an existing CSV.""" -filepath = 'Geliosphere_K0_phi_table.csv' + filepath = args.csv_file -def compute_new_entry(): try: df = pd.read_csv(filepath) @@ -139,7 +108,7 @@ def compute_new_entry(): date = pd.to_datetime(last_entry_tilt_angle['Start'], format='%Y:%m:%d') carrington_rotation = last_entry_tilt_angle.iloc[0]['Rot'] - year_week = date.dt.year.iloc[0] + date.dt.day_of_year.iloc[0] / 365 + year_week = round(date.dt.year.iloc[0] + date.dt.day_of_year.iloc[0] / 365, 7) modulation_potentional = last_entry_phi.iloc[0].dropna().iloc[-1] # Last non-NaN value #Geliosphere has some calcs that are yet to be considered k0_au2_s = (float(last_entry_flow_speed.iloc[0]['1']) * 6.68459e-9) * (99 / (3 * int(modulation_potentional))) #1D Models tilt_angle = last_entry_tilt_angle.iloc[0]['R_av'] @@ -176,12 +145,10 @@ def compute_new_entry(): 'polarity': [polarity] }) - # Append the new row df = pd.concat([df, new_row], ignore_index=True) print("\n Last entries: file: ",filepath," \n---------------------------------------------------") print(df.tail(5),"\n") - #df = df.drop(df.index[-1]) df.to_csv(filepath, index=False) except ValueError as e: @@ -189,9 +156,41 @@ def compute_new_entry(): except Exception as e: print(f"An error occurred when computing new entry: {e}") +def log_script_start(): + """Log the start of the script.""" + + with open(args.log_file, "w") as log_file: + log_file.write(f"\nScript started successfully at {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n") + +def main(): + """Main function to orchestrate the script.""" + + print("\n") + print(f"Script started successfully at {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") + print("\n") + + log_script_start() + + response_flow_speed = connect_to_url(url_flow_speed, method='post', data=payload) + response_phi = connect_to_url(url_phi, verify_ssl=False) + response_tilt_angle = connect_to_url(url_tilt_angle) + + if response_flow_speed and response_phi and response_tilt_angle: + last_entry_flow_speed = parse_to_csv(response_flow_speed.text, "YEAR DOY", "", "YEAR DOY", "table_data_flow_speed.csv") + last_entry_phi = parse_to_csv(response_phi.text, "+++", "+++", "Year Jan", "table_data_phi.csv") + last_entry_tilt_angle = parse_to_csv(response_tilt_angle.text, "Carr Rot", "", "Carr Rot", "table_data_tilt_angle.csv") + compute_new_entry(last_entry_flow_speed, last_entry_phi, last_entry_tilt_angle) + + print(args.csv_file, "has been updated successfully") + + print(args.log_file ," has been updated successfully\n") + +if __name__ == "__main__": + # Set up argument parser + parser = argparse.ArgumentParser(description="Fetch and process data.") + parser.add_argument('--csv_file', type=str, default='Geliosphere_K0_phi_table.csv', help="Path to the output CSV file") + parser.add_argument('--log_file', type=str, default='fetch_script_log.txt', help="Path to the output log file") -#Computing, formating and adding the most-up-to-date entry -compute_new_entry() + args = parser.parse_args() -print("fetch_script_log.txt has been updated successfully\n") -print(filepath, "has been updated successfully\n\n") + main() \ No newline at end of file diff --git a/Fetching/fetch_script_log.txt b/Fetching/fetch_script_log.txt index e402c22..d09dd77 100644 --- a/Fetching/fetch_script_log.txt +++ b/Fetching/fetch_script_log.txt @@ -1,239 +1,12 @@ -Script started successfully at 2025-02-12 10:21:08 +Script started successfully at 2025-03-11 14:34:15 -The most up-to-date entry: - YEAR DOY HR 1 -5 2025 6 0 540. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -646 CR 2288 2024:08:23 10h 52.6 41.4 -63.7 64.3 53.4 -75.2 - -Script started successfully at 2025-02-20 13:15:15 - -The most up-to-date entry: - YEAR DOY HR 1 -5 2025 6 0 540. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 13:18:03 - -The most up-to-date entry: - YEAR DOY HR 1 -22 2025 23 0 9999. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 13:19:53 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 13:33:18 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 13:34:15 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - - -Script started successfully at 2025-02-20 15:32:32 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 15:33:21 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 16:56:38 - -The most up-to-date entry: +The most up-to-date entry from table_data_flow_speed.csv: YEAR DOY HR 1 9 2025 10 0 419. - -The most up-to-date entry: +The most up-to-date entry from table_data_phi.csv: Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual 73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 16:56:51 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 16:57:12 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 17:32:53 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 17:36:37 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 17:37:45 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 17:37:59 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 17:38:24 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 - -Script started successfully at 2025-02-20 17:38:53 - -The most up-to-date entry: - YEAR DOY HR 1 -9 2025 10 0 419. - -The most up-to-date entry: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None - -The most up-to-date entry: +The most up-to-date entry from table_data_tilt_angle.csv: Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 +651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 \ No newline at end of file From cf61270eb71c1708bde4a58ef35e3faaa3f742c0 Mon Sep 17 00:00:00 2001 From: marek395 Date: Thu, 24 Apr 2025 21:27:49 +0200 Subject: [PATCH 3/7] update --- .../include/IGeliosphereCpuModel.hpp | 11 ++ .../include/IOneDimensionBpCpuModel.hpp | 19 +++ .../include/IOneDimensionFpCpuModel.hpp | 20 +++ .../include/OneDimensionBpCpuModel.hpp | 15 +- .../include/OneDimensionFpCpuModel.hpp | 16 +- .../src/OneDimensionBpCpuModel.cpp | 144 +++++++++++------ .../src/OneDimensionFpCpuModel.cpp | 153 +++++++++--------- Factory/src/CosmicFactory.cpp | 1 + Fetching/Geliosphere_K0_phi_table.csv | 7 - Fetching/fetch_script.py | 4 +- Fetching/fetch_script_log.txt | 2 +- build.sh | 10 ++ 12 files changed, 272 insertions(+), 130 deletions(-) create mode 100644 CpuImplementations/include/IGeliosphereCpuModel.hpp create mode 100644 CpuImplementations/include/IOneDimensionBpCpuModel.hpp create mode 100644 CpuImplementations/include/IOneDimensionFpCpuModel.hpp create mode 100755 build.sh diff --git a/CpuImplementations/include/IGeliosphereCpuModel.hpp b/CpuImplementations/include/IGeliosphereCpuModel.hpp new file mode 100644 index 0000000..386fd86 --- /dev/null +++ b/CpuImplementations/include/IGeliosphereCpuModel.hpp @@ -0,0 +1,11 @@ +#ifndef I_GELIOSPHERE_CPU_MODEL_H +#define I_GELIOSPHERE_CPU_MODEL_H + +class IGeliosphereCpuModel { +protected: + + + virtual ~IGeliosphereCpuModel() = default; +}; + +#endif // I_GELIOSPHERE_CPU_MODEL_H diff --git a/CpuImplementations/include/IOneDimensionBpCpuModel.hpp b/CpuImplementations/include/IOneDimensionBpCpuModel.hpp new file mode 100644 index 0000000..568a36c --- /dev/null +++ b/CpuImplementations/include/IOneDimensionBpCpuModel.hpp @@ -0,0 +1,19 @@ +#ifndef I_ONE_DIMENSION_BP_CPU_MODEL_H +#define I_ONE_DIMENSION_BP_CPU_MODEL_H + +class IOneDimensionBpCpuModel { +protected: + virtual double Beta(double Tkin) = 0; + virtual double RigFromTkin(double Tkin) = 0; + //virtual double RigFromMomentum(double p) = 0; + virtual double Kdiffr(double beta, double Rig) = 0; + virtual double Dp(double V, double p, double r) = 0; + virtual double Dr(double V, double Kdiff, double r, double dt, double rand) = 0; + //virtual double TkinFromRig(double Rig) = 0; + virtual double W(double p) = 0; + +public: + virtual ~IOneDimensionBpCpuModel() = default; +}; + +#endif // I_ONE_DIMENSION_BP_CPU_MODEL_H diff --git a/CpuImplementations/include/IOneDimensionFpCpuModel.hpp b/CpuImplementations/include/IOneDimensionFpCpuModel.hpp new file mode 100644 index 0000000..b0ef0de --- /dev/null +++ b/CpuImplementations/include/IOneDimensionFpCpuModel.hpp @@ -0,0 +1,20 @@ +#ifndef I_ONE_DIMENSION_FP_CPU_MODEL_H +#define I_ONE_DIMENSION_FP_CPU_MODEL_H + +class IOneDimensionFpCpuModel { +protected: + virtual double Beta(double Tkin) = 0; + virtual double RigFromTkin(double Tkin) = 0; + virtual double RigFromTkinJoule(double Tkin) = 0; + virtual double Kdiffr(double beta, double Rig) = 0; + virtual double Dp(double V, double p, double r) = 0; + virtual double Dr(double V, double Kdiff, double r, double dt, double rand) = 0; + virtual double Cfactor(double V, double r) = 0; + virtual double TkinFromRig(double Rig) = 0; + virtual double W(double p) = 0; + +public: + virtual ~IOneDimensionFpCpuModel() = default; +}; + +#endif // I_ONE_DIMENSION_FP_CPU_MODEL_H diff --git a/CpuImplementations/include/OneDimensionBpCpuModel.hpp b/CpuImplementations/include/OneDimensionBpCpuModel.hpp index 000ee4a..a5308e3 100644 --- a/CpuImplementations/include/OneDimensionBpCpuModel.hpp +++ b/CpuImplementations/include/OneDimensionBpCpuModel.hpp @@ -13,6 +13,7 @@ #define BP_CPU_ONE_DIMENSION_SIMULATION_H #include "AbstractCpuModel.hpp" +#include "IOneDimensionBpCpuModel.hpp" #include #include @@ -29,7 +30,7 @@ struct SimulationOutput { * to define support functions for running implementation of 1D B-p model. * */ -class OneDimensionBpCpuModel : public AbstractCpuModel +class OneDimensionBpCpuModel : public AbstractCpuModel, public IOneDimensionBpCpuModel { public: /** @@ -38,6 +39,18 @@ class OneDimensionBpCpuModel : public AbstractCpuModel * @param singleTone data structure containing input parameters. */ void runSimulation(ParamsCarrier *singleTone); + +protected: + // Implemented from interface + double Beta(double Tkin) override; + double RigFromTkin(double Tkin) override; + //double RigFromMomentum(double p) override; + double Kdiffr(double beta, double Rig) override; + double Dp(double V, double p, double r) override; + double Dr(double V, double Kdiff, double r, double dt, double rand) override; + //double TkinFromRig(double Rig) override; + double W(double p) override; + private: void simulation(int threadNumber, unsigned int availableThreads, int iteration); std::mutex outputMutex; diff --git a/CpuImplementations/include/OneDimensionFpCpuModel.hpp b/CpuImplementations/include/OneDimensionFpCpuModel.hpp index 0c7bfcc..b99d9dd 100644 --- a/CpuImplementations/include/OneDimensionFpCpuModel.hpp +++ b/CpuImplementations/include/OneDimensionFpCpuModel.hpp @@ -13,6 +13,7 @@ #define FP_CPU_ONE_DIMENSION_SIMULATION_H #include "AbstractCpuModel.hpp" +#include "IOneDimensionFpCpuModel.hpp" #include #include @@ -30,7 +31,7 @@ struct SimulationOutput { * to define support functions for running implementation of 1D F-p model. * */ -class OneDimensionFpCpuModel : public AbstractCpuModel +class OneDimensionFpCpuModel : public AbstractCpuModel, public IOneDimensionFpCpuModel { public: /** @@ -39,6 +40,19 @@ class OneDimensionFpCpuModel : public AbstractCpuModel * @param singleTone data structure containing input parameters. */ void runSimulation(ParamsCarrier *singleTone); + +protected: + // Implemented from interface + double Beta(double Tkin) override; + double RigFromTkin(double Tkin) override; + double RigFromTkinJoule(double Tkin) override; + double Kdiffr(double beta, double Rig) override; + double Dp(double V, double p, double r) override; + double Dr(double V, double Kdiff, double r, double dt, double rand) override; + double Cfactor(double V, double r) override; + double TkinFromRig(double Rig) override; + double W(double p) override; + private: void simulation(int threadNumber, unsigned int availableThreads, int iteration); std::mutex outputMutex; diff --git a/CpuImplementations/src/OneDimensionBpCpuModel.cpp b/CpuImplementations/src/OneDimensionBpCpuModel.cpp index 945a27a..cffd0ab 100644 --- a/CpuImplementations/src/OneDimensionBpCpuModel.cpp +++ b/CpuImplementations/src/OneDimensionBpCpuModel.cpp @@ -1,3 +1,11 @@ +/* +unoptimized duration: 35 min with O3 flag for: time ./Geliosphere -B -d 5 -N 1 + +32m20s + +30m17s + +*/ #include "OneDimensionBpCpuModel.hpp" #include "FileUtils.hpp" #include "Constants.hpp" @@ -7,6 +15,11 @@ #include #include +// Constants to avoid repeated calls +const double C_Q = c / q; +const double C_Q_1E9 = C_Q / 1e9; + + void OneDimensionBpCpuModel::runSimulation(ParamsCarrier *singleTone) { srand(time(NULL)); @@ -60,6 +73,13 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available thread_local std::random_device rd{}; thread_local std::mt19937 generator(rd()); thread_local std::normal_distribution distribution(0.0f, 1.0f); + + // cache TLS references to avoid __tls_get_addr overhead + auto& gen = generator; + auto& dist = distribution; //avoids repeated __tls_get_addr lookup for thread-local variables + + + for (int energy = 0; energy < 101; energy++) { for (int particlePerEnergy = 0; particlePerEnergy < 250; particlePerEnergy++) @@ -67,64 +87,96 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available Tkininj = getTkinInjection(((availableThreads * iteration + threadNumber) * 250) + particlePerEnergy, 0.0001, uniformEnergyInjectionMaximum, 10000); Tkin = Tkininj; - Rig = sqrt(Tkin * (Tkin + (2.0 * T0))); - p = Rig * 1e9 * q / c; + Rig = RigFromTkin(Tkin); + //p = Rig * 1e9 * q / c; + p = Rig / C_Q_1E9; r = rInit; while (r < 100.0002) { - // Equation 5 - beta = sqrtf(Tkin * (Tkin + T0 + T0)) / (Tkin + T0); - - // Equation 6 in GeV - Rig = (p * c / q) / 1e9; - pp = p; - - // Equation 14 - dp = (2.0f * V * pp * dt / (3.0f * r)); + beta = Beta(Tkin); + //Rig = (p * c / q) / 1e9; + Rig = p * C_Q_1E9; + pp = p; + dp = Dp(V, pp, r); p -= dp; - // Equation 7 - Kdiff = K0 * beta * Rig; - arnum = distribution(generator); - - // Equation 13 - dr = (V + (2.0 * Kdiff / r)) * dt + (arnum * sqrt(2.0 * Kdiff * dt)); - r += dr; - - // Equation 6 in J - Rig = p * c / q; - Tkin = (sqrt((T0 * T0 * q * q * 1e9 * 1e9) + (q * q * Rig * Rig)) - (T0 * q * 1e9)) / (q * 1e9); - - // Equation 5 - beta = sqrtf(Tkin * (Tkin + T0 + T0)) / (Tkin + T0); + Kdiff = Kdiffr(beta, Rig); + arnum = dist(gen); // much faster than distribution(generator); + //arnum = distribution(generator); + dr = Dr(V, Kdiff, r, dt, arnum); + r += dr; + + // Rig = p * c / q; + Rig = p * C_Q; + //Tkin = TkinFromRig(Rig); + Tkin = (sqrt((T0 * T0 * q * q * 1e9 * 1e9) + (q * q * Rig * Rig)) - (T0 * q * 1e9)) / (q * 1e9); + beta = Beta(Tkin); if (beta > 0.01f && Tkin < 200.0f) - { - if ((r > 100.0f) && ((r - dr) < 100.0f)) - { - // Equation under Equation 6 from - // Yamada et al. "A stochastic view of the solar modulation phenomena of cosmic rays" GEOPHYSICAL RESEARCH LETTERS, VOL. 25, NO.13, PAGES 2353-2356, JULY 1, 1998 - // https://agupubs.onlinelibrary.wiley.com/doi/epdf/10.1029/98GL51869 - w = (m0 * m0 * c * c * c * c) + (p * p * c * c); - w = (pow(w, -1.85) / p) / 1e45; - + { + if ((r > 100.0f) && ((r - dr) < 100.0f)) + { + w = W(p); outputMutex.lock(); outputQueue.push({Tkin, Tkininj, r, w}); outputMutex.unlock(); - break; + + break; } } - else if (beta < 0.01f) - { - break; - } - if (r < 0.3f) - { - r -= dr; - p = pp; - } - } + else if (beta < 0.01f) + { + break; + } + + if (r < 0.3f) + { + r -= dr; + p = pp; + } + } } } -} \ No newline at end of file +} + +double OneDimensionBpCpuModel::Beta(double Tkin) +{ + return sqrt(Tkin * (Tkin + 2.0 * T0)) / (Tkin + T0); +} + +double OneDimensionBpCpuModel::RigFromTkin(double Tkin) +{ + return sqrt(Tkin * (Tkin + 2.0 * T0)); +} + +//double OneDimensionBpCpuModel::RigFromMomentum(double p) +//{ +// return (p * c / q) / 1e9; +//} + +double OneDimensionBpCpuModel::Kdiffr(double beta, double Rig) +{ + return K0 * beta * Rig; +} + +double OneDimensionBpCpuModel::Dp(double V, double p, double r) +{ + return (2.0 * V * p * dt / (3.0 * r)); +} + +double OneDimensionBpCpuModel::Dr(double V, double Kdiff, double r, double dt, double rand) +{ + return (V + (2.0 * Kdiff / r)) * dt + (rand * sqrt(2.0 * Kdiff * dt)); +} + +//double OneDimensionBpCpuModel::TkinFromRig(double Rig) +//{ +// return (sqrt((T0 * T0 * q * q * 1e9 * 1e9) + (q * q * Rig * Rig)) - (T0 * q * 1e9)) / (q * 1e9); +//} + +double OneDimensionBpCpuModel::W(double p) +{ + double w = (m0 * m0 * c * c * c * c) + (p * p * c * c); + return (pow(w, -1.85) / p) / 1e45; +} diff --git a/CpuImplementations/src/OneDimensionFpCpuModel.cpp b/CpuImplementations/src/OneDimensionFpCpuModel.cpp index f7deeec..27c02c3 100644 --- a/CpuImplementations/src/OneDimensionFpCpuModel.cpp +++ b/CpuImplementations/src/OneDimensionFpCpuModel.cpp @@ -12,13 +12,11 @@ void OneDimensionFpCpuModel::runSimulation(ParamsCarrier *singleTone) spdlog::info("Starting initialization of 1D F-p simulation."); srand(time(NULL)); std::string destination = singleTone->getString("destination", ""); - if (destination.empty()) - { + if (destination.empty()) { destination = getDirectoryName(singleTone); - spdlog::info("Destination is not specified - using generated name for destination: " + destination); + spdlog::info("Destination is not specified - using generated name: " + destination); } - if (!createDirectory("1DFP", destination)) - { + if (!createDirectory("1DFP", destination)) { spdlog::error("Directory for 1D F-p simulations cannot be created."); return; } @@ -27,22 +25,18 @@ void OneDimensionFpCpuModel::runSimulation(ParamsCarrier *singleTone) unsigned int nthreads = std::thread::hardware_concurrency(); int targetIterations = ceil((double)singleTone->getInt("millions", 1) * 1000000.0 / ((double)nthreads * 101.0 * 250.0)); setContants(singleTone); - for (int iteration = 0; targetIterations < targetIterations; iteration++) - { - spdlog::info("Processed: {:03.2f}%", (float) iteration / ((float) targetIterations / 100.0)); + for (int iteration = 0; iteration < targetIterations; iteration++) { + spdlog::info("Processed: {:03.2f}%", (float)iteration / ((float)targetIterations / 100.0)); std::vector threads; - for (int i = 0; i < (int)nthreads; i++) - { - threads.emplace_back(std::thread(&OneDimensionFpCpuModel::simulation, this, i, nthreads, iteration)); + for (int i = 0; i < (int)nthreads; i++) { + threads.emplace_back(&OneDimensionFpCpuModel::simulation, this, i, nthreads, iteration); } - for (auto &th : threads) - { + for (auto &th : threads) { th.join(); } - while (!outputQueue.empty()) - { - struct SimulationOutput simulationOutput = outputQueue.front(); - fprintf(file, " %g %g %g %g %g \n", simulationOutput.pinj, simulationOutput.p, simulationOutput.r, simulationOutput.w, simulationOutput.sumac); + while (!outputQueue.empty()) { + SimulationOutput simulationOutput = outputQueue.front(); + fprintf(file, "%g %g %g %g %g\n", simulationOutput.pinj, simulationOutput.p, simulationOutput.r, simulationOutput.w, simulationOutput.sumac); outputQueue.pop(); } } @@ -56,86 +50,101 @@ void OneDimensionFpCpuModel::simulation(int threadNumber, unsigned int available double Tkin, Tkininj, Rig, beta; double w; double Tkinw, p, rp, dp, pp, pinj, cfactor, sumac; + thread_local std::random_device rd{}; thread_local std::mt19937 generator(rd()); thread_local std::normal_distribution distribution(0.0f, 1.0f); - for (int energy = 0; energy < 101; energy++) - { - for (int particlePerEnergy = 0; particlePerEnergy < 250; particlePerEnergy++) - { + + for (int energy = 0; energy < 101; energy++) { + for (int particlePerEnergy = 0; particlePerEnergy < 250; particlePerEnergy++) { Tkininj = getTkinInjection(((availableThreads * iteration + threadNumber) * 250) + particlePerEnergy, 0.0001, uniformEnergyInjectionMaximum, 10000); Tkin = Tkininj; Tkinw = Tkin * 1e9 * q; - Rig = sqrt(Tkinw * (Tkinw + (2.0 * T0w))) / q; + Rig = RigFromTkinJoule(Tkin); p = Rig * q / c; pinj = p; - // Equation under Equation 6 from - // Yamada et al. "A stochastic view of the solar modulation phenomena of cosmic rays" GEOPHYSICAL RESEARCH LETTERS, VOL. 25, NO.13, PAGES 2353-2356, JULY 1, 1998 - // https://agupubs.onlinelibrary.wiley.com/doi/epdf/10.1029/98GL51869 - w = (m0 * m0 * c * c * c * c) + (p * p * c * c); - w = pow(w, -1.85) / p; - w = w / 1e45; - + w = W(p); sumac = 0.0; r = 100.0001; - while (r < 100.0002) - { - // Equation 5 - beta = sqrt(Tkin * (Tkin + T0 + T0)) / (Tkin + T0); - - // Equation 6 - Rig = sqrt(Tkin * (Tkin + (2.0 * T0))); - - // Equation 7 - Kdiff = K0 * beta * Rig; - + while (r < 100.0002) { + beta = Beta(Tkin); + Rig = RigFromTkin(Tkin); + Kdiff = Kdiffr(beta, Rig); arnum = distribution(generator); - - // Equation 9 - dr = (V + (2.0 * Kdiff / r)) * dt; - dr = dr + (arnum * sqrt(2.0 * Kdiff * dt)); - - // Equation 10 - dp = 2.0 * V * p * dt / (3.0 * r); - - // Equation 11 - cfactor = 4.0 * V / (3.0 * r); - sumac = sumac + (cfactor * dt); + dr = Dr(V, Kdiff, r, dt, arnum); + dp = Dp(V, p, r); + cfactor = Cfactor(V, r); + sumac += cfactor * dt; rp = r; pp = p; - r = r + dr; - p = p - dp; + r += dr; + p -= dp; - // Equation 6 in J Rig = p * c / q; - Tkin = sqrt((T0 * T0 * q * q * 1e9 * 1e9) + (q * q * Rig * Rig)) - (T0 * q * 1e9); - Tkin = Tkin / (q * 1e9); + Tkin = TkinFromRig(Rig); - if (beta > 0.01 & Tkin < 100.0) - { - if ((r - 1.0) / ((r - dr) - 1.0) < 0.0) - { + if (beta > 0.01 && Tkin < 100.0) { + if ((r - 1.0) / ((r - dr) - 1.0) < 0.0) { outputMutex.lock(); outputQueue.push({pinj, p, r, w, sumac}); outputMutex.unlock(); } } + if (beta < 0.01) break; + if (r < 0.1) { r = rp; p = pp; } + } + } + } +} - if (beta < 0.01) - { - break; - } - if (r < 0.1) - { - r = rp; - p = pp; - } - } - } - } +double OneDimensionFpCpuModel::Beta(double Tkin) +{ + return sqrt(Tkin * (Tkin + 2.0 * T0)) / (Tkin + T0); +} + +double OneDimensionFpCpuModel::RigFromTkin(double Tkin) +{ + return sqrt(Tkin * (Tkin + 2.0 * T0)); +} + +double OneDimensionFpCpuModel::RigFromTkinJoule(double Tkin) +{ + double Tkinw = Tkin * 1e9 * q; + return sqrt(Tkinw * (Tkinw + 2.0 * T0w)) / q; +} + +double OneDimensionFpCpuModel::Kdiffr(double beta, double Rig) +{ + return K0 * beta * Rig; +} + +double OneDimensionFpCpuModel::Dp(double V, double p, double r) +{ + return 2.0 * V * p * dt / (3.0 * r); +} + +double OneDimensionFpCpuModel::Dr(double V, double Kdiff, double r, double dt, double rand) +{ + return (V + 2.0 * Kdiff / r) * dt + (rand * sqrt(2.0 * Kdiff * dt)); +} + +double OneDimensionFpCpuModel::Cfactor(double V, double r) +{ + return 4.0 * V / (3.0 * r); +} + +double OneDimensionFpCpuModel::TkinFromRig(double Rig) +{ + return (sqrt((T0 * T0 * q * q * 1e9 * 1e9) + (q * q * Rig * Rig)) - (T0 * q * 1e9)) / (q * 1e9); +} + +double OneDimensionFpCpuModel::W(double p) +{ + double w = (m0 * m0 * c * c * c * c) + (p * p * c * c); + return pow(w, -1.85) / p / 1e45; } \ No newline at end of file diff --git a/Factory/src/CosmicFactory.cpp b/Factory/src/CosmicFactory.cpp index adb5125..f15f709 100644 --- a/Factory/src/CosmicFactory.cpp +++ b/Factory/src/CosmicFactory.cpp @@ -18,6 +18,7 @@ AbstractAlgorithm *CosmicFactory::getAlgorithm(std::string name) else if (name.compare("2D SolarProp-like") == 0) { return new SolarPropLikeAlgorithm(); + } else if (name.compare("2D Geliosphere") == 0) { diff --git a/Fetching/Geliosphere_K0_phi_table.csv b/Fetching/Geliosphere_K0_phi_table.csv index f2c1cbf..c7fb931 100644 --- a/Fetching/Geliosphere_K0_phi_table.csv +++ b/Fetching/Geliosphere_K0_phi_table.csv @@ -518,10 +518,3 @@ carrington_rotation,year_week,modulation_potentional,k0_au2/s,tilt_angle,year,mo 2158,2014.9385844,731,2.65470451436389e-05,45.1,2014,12,8,1 2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 -2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 -2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 -2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 -2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 -2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 -2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 -2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 diff --git a/Fetching/fetch_script.py b/Fetching/fetch_script.py index bb613c4..7112ea4 100644 --- a/Fetching/fetch_script.py +++ b/Fetching/fetch_script.py @@ -2,9 +2,9 @@ # @author: Marek Hamracek # # -# SETTING UP CRON +# SETTING UP CRON # -# crontab -e +# crontab -e # 0 10 1 * * /path/to/python3 /path/to/fetch_script.py #First day of any month at 10 AM # #Replace /path/to/ # diff --git a/Fetching/fetch_script_log.txt b/Fetching/fetch_script_log.txt index d09dd77..78dbc2f 100644 --- a/Fetching/fetch_script_log.txt +++ b/Fetching/fetch_script_log.txt @@ -1,5 +1,5 @@ -Script started successfully at 2025-03-11 14:34:15 +Script started successfully at 2025-03-11 14:52:10 The most up-to-date entry from table_data_flow_speed.csv: YEAR DOY HR 1 diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..3ea4038 --- /dev/null +++ b/build.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +set -e +rm -rf build +mkdir build +#cmake -B build -DCPU_VERSION_ONLY=1 +#cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -march=native -flto -funroll-loops -ffast-math" +cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -march=native -flto -funroll-loops" +cmake --build build + From 937b98af3541da60f4019c98d01b5aea114c7d8e Mon Sep 17 00:00:00 2001 From: marek395 Date: Sun, 11 May 2025 00:50:13 +0200 Subject: [PATCH 4/7] update --- .../include/IGeliosphereCpuModel.hpp | 4 +-- .../include/OneDimensionBpCpuModel.hpp | 15 +++-------- .../src/OneDimensionBpCpuModel.cpp | 26 +++++++------------ build.sh | 12 ++++++--- 4 files changed, 24 insertions(+), 33 deletions(-) diff --git a/CpuImplementations/include/IGeliosphereCpuModel.hpp b/CpuImplementations/include/IGeliosphereCpuModel.hpp index 386fd86..9bc6a27 100644 --- a/CpuImplementations/include/IGeliosphereCpuModel.hpp +++ b/CpuImplementations/include/IGeliosphereCpuModel.hpp @@ -2,9 +2,7 @@ #define I_GELIOSPHERE_CPU_MODEL_H class IGeliosphereCpuModel { -protected: - - +public: virtual ~IGeliosphereCpuModel() = default; }; diff --git a/CpuImplementations/include/OneDimensionBpCpuModel.hpp b/CpuImplementations/include/OneDimensionBpCpuModel.hpp index a5308e3..6c0a6bd 100644 --- a/CpuImplementations/include/OneDimensionBpCpuModel.hpp +++ b/CpuImplementations/include/OneDimensionBpCpuModel.hpp @@ -7,8 +7,8 @@ * * @copyright Copyright (c) 2022 * - */ +*/ #ifndef BP_CPU_ONE_DIMENSION_SIMULATION_H #define BP_CPU_ONE_DIMENSION_SIMULATION_H @@ -25,19 +25,11 @@ struct SimulationOutput { double w; }; -/** - * @brief Class implements @ref AbstractAlgorithm "AbstractAlgorithm" interface - * to define support functions for running implementation of 1D B-p model. - * - */ + class OneDimensionBpCpuModel : public AbstractCpuModel, public IOneDimensionBpCpuModel { public: - /** - * @brief Definition of simulation runner. - * - * @param singleTone data structure containing input parameters. - */ + void runSimulation(ParamsCarrier *singleTone); protected: @@ -58,3 +50,4 @@ class OneDimensionBpCpuModel : public AbstractCpuModel, public IOneDimensionBpCp }; #endif + diff --git a/CpuImplementations/src/OneDimensionBpCpuModel.cpp b/CpuImplementations/src/OneDimensionBpCpuModel.cpp index cffd0ab..0e8a4cd 100644 --- a/CpuImplementations/src/OneDimensionBpCpuModel.cpp +++ b/CpuImplementations/src/OneDimensionBpCpuModel.cpp @@ -5,6 +5,7 @@ unoptimized duration: 35 min with O3 flag for: time ./Geliosphere -B -d 5 -N 1 30m17s +-O3 -march=native -flto -funroll-loops */ #include "OneDimensionBpCpuModel.hpp" #include "FileUtils.hpp" @@ -15,9 +16,6 @@ unoptimized duration: 35 min with O3 flag for: time ./Geliosphere -B -d 5 -N 1 #include #include -// Constants to avoid repeated calls -const double C_Q = c / q; -const double C_Q_1E9 = C_Q / 1e9; void OneDimensionBpCpuModel::runSimulation(ParamsCarrier *singleTone) @@ -70,15 +68,12 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available double Tkin, Tkininj, Rig, beta; double w; double p, dp, pp, Kdiff; + thread_local std::random_device rd{}; thread_local std::mt19937 generator(rd()); thread_local std::normal_distribution distribution(0.0f, 1.0f); - // cache TLS references to avoid __tls_get_addr overhead - auto& gen = generator; - auto& dist = distribution; //avoids repeated __tls_get_addr lookup for thread-local variables - - + std::vector localOutputs; for (int energy = 0; energy < 101; energy++) { @@ -88,27 +83,25 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available Tkin = Tkininj; Rig = RigFromTkin(Tkin); - //p = Rig * 1e9 * q / c; - p = Rig / C_Q_1E9; + p = Rig * 1e9 * q / c; r = rInit; while (r < 100.0002) { beta = Beta(Tkin); - //Rig = (p * c / q) / 1e9; - Rig = p * C_Q_1E9; + Rig = (p * c / q) / 1e9; pp = p; dp = Dp(V, pp, r); p -= dp; Kdiff = Kdiffr(beta, Rig); - arnum = dist(gen); // much faster than distribution(generator); - //arnum = distribution(generator); + arnum = distribution(generator); + dr = Dr(V, Kdiff, r, dt, arnum); r += dr; - // Rig = p * c / q; - Rig = p * C_Q; + Rig = p * c / q; + //Tkin = TkinFromRig(Rig); Tkin = (sqrt((T0 * T0 * q * q * 1e9 * 1e9) + (q * q * Rig * Rig)) - (T0 * q * 1e9)) / (q * 1e9); beta = Beta(Tkin); @@ -122,6 +115,7 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available outputQueue.push({Tkin, Tkininj, r, w}); outputMutex.unlock(); + break; } } diff --git a/build.sh b/build.sh index 3ea4038..fe0ef23 100755 --- a/build.sh +++ b/build.sh @@ -3,8 +3,14 @@ set -e rm -rf build mkdir build -#cmake -B build -DCPU_VERSION_ONLY=1 -#cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -march=native -flto -funroll-loops -ffast-math" -cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -march=native -flto -funroll-loops" +#1. spustenie, original +cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -g" + + +#cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3" + + + +#cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -g -march=native -flto" cmake --build build From 931371a7a64fe485df4db8377e08d287028b58a7 Mon Sep 17 00:00:00 2001 From: marek395 Date: Sun, 11 May 2025 00:51:14 +0200 Subject: [PATCH 5/7] Revert "update" This reverts commit 937b98af3541da60f4019c98d01b5aea114c7d8e. --- .../include/IGeliosphereCpuModel.hpp | 4 ++- .../include/OneDimensionBpCpuModel.hpp | 15 ++++++++--- .../src/OneDimensionBpCpuModel.cpp | 26 ++++++++++++------- build.sh | 12 +++------ 4 files changed, 33 insertions(+), 24 deletions(-) diff --git a/CpuImplementations/include/IGeliosphereCpuModel.hpp b/CpuImplementations/include/IGeliosphereCpuModel.hpp index 9bc6a27..386fd86 100644 --- a/CpuImplementations/include/IGeliosphereCpuModel.hpp +++ b/CpuImplementations/include/IGeliosphereCpuModel.hpp @@ -2,7 +2,9 @@ #define I_GELIOSPHERE_CPU_MODEL_H class IGeliosphereCpuModel { -public: +protected: + + virtual ~IGeliosphereCpuModel() = default; }; diff --git a/CpuImplementations/include/OneDimensionBpCpuModel.hpp b/CpuImplementations/include/OneDimensionBpCpuModel.hpp index 6c0a6bd..a5308e3 100644 --- a/CpuImplementations/include/OneDimensionBpCpuModel.hpp +++ b/CpuImplementations/include/OneDimensionBpCpuModel.hpp @@ -7,8 +7,8 @@ * * @copyright Copyright (c) 2022 * + */ -*/ #ifndef BP_CPU_ONE_DIMENSION_SIMULATION_H #define BP_CPU_ONE_DIMENSION_SIMULATION_H @@ -25,11 +25,19 @@ struct SimulationOutput { double w; }; - +/** + * @brief Class implements @ref AbstractAlgorithm "AbstractAlgorithm" interface + * to define support functions for running implementation of 1D B-p model. + * + */ class OneDimensionBpCpuModel : public AbstractCpuModel, public IOneDimensionBpCpuModel { public: - + /** + * @brief Definition of simulation runner. + * + * @param singleTone data structure containing input parameters. + */ void runSimulation(ParamsCarrier *singleTone); protected: @@ -50,4 +58,3 @@ class OneDimensionBpCpuModel : public AbstractCpuModel, public IOneDimensionBpCp }; #endif - diff --git a/CpuImplementations/src/OneDimensionBpCpuModel.cpp b/CpuImplementations/src/OneDimensionBpCpuModel.cpp index 0e8a4cd..cffd0ab 100644 --- a/CpuImplementations/src/OneDimensionBpCpuModel.cpp +++ b/CpuImplementations/src/OneDimensionBpCpuModel.cpp @@ -5,7 +5,6 @@ unoptimized duration: 35 min with O3 flag for: time ./Geliosphere -B -d 5 -N 1 30m17s --O3 -march=native -flto -funroll-loops */ #include "OneDimensionBpCpuModel.hpp" #include "FileUtils.hpp" @@ -16,6 +15,9 @@ unoptimized duration: 35 min with O3 flag for: time ./Geliosphere -B -d 5 -N 1 #include #include +// Constants to avoid repeated calls +const double C_Q = c / q; +const double C_Q_1E9 = C_Q / 1e9; void OneDimensionBpCpuModel::runSimulation(ParamsCarrier *singleTone) @@ -68,12 +70,15 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available double Tkin, Tkininj, Rig, beta; double w; double p, dp, pp, Kdiff; - thread_local std::random_device rd{}; thread_local std::mt19937 generator(rd()); thread_local std::normal_distribution distribution(0.0f, 1.0f); - std::vector localOutputs; + // cache TLS references to avoid __tls_get_addr overhead + auto& gen = generator; + auto& dist = distribution; //avoids repeated __tls_get_addr lookup for thread-local variables + + for (int energy = 0; energy < 101; energy++) { @@ -83,25 +88,27 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available Tkin = Tkininj; Rig = RigFromTkin(Tkin); - p = Rig * 1e9 * q / c; + //p = Rig * 1e9 * q / c; + p = Rig / C_Q_1E9; r = rInit; while (r < 100.0002) { beta = Beta(Tkin); - Rig = (p * c / q) / 1e9; + //Rig = (p * c / q) / 1e9; + Rig = p * C_Q_1E9; pp = p; dp = Dp(V, pp, r); p -= dp; Kdiff = Kdiffr(beta, Rig); - arnum = distribution(generator); - + arnum = dist(gen); // much faster than distribution(generator); + //arnum = distribution(generator); dr = Dr(V, Kdiff, r, dt, arnum); r += dr; - Rig = p * c / q; - + // Rig = p * c / q; + Rig = p * C_Q; //Tkin = TkinFromRig(Rig); Tkin = (sqrt((T0 * T0 * q * q * 1e9 * 1e9) + (q * q * Rig * Rig)) - (T0 * q * 1e9)) / (q * 1e9); beta = Beta(Tkin); @@ -115,7 +122,6 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available outputQueue.push({Tkin, Tkininj, r, w}); outputMutex.unlock(); - break; } } diff --git a/build.sh b/build.sh index fe0ef23..3ea4038 100755 --- a/build.sh +++ b/build.sh @@ -3,14 +3,8 @@ set -e rm -rf build mkdir build -#1. spustenie, original -cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -g" - - -#cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3" - - - -#cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -g -march=native -flto" +#cmake -B build -DCPU_VERSION_ONLY=1 +#cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -march=native -flto -funroll-loops -ffast-math" +cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -march=native -flto -funroll-loops" cmake --build build From d19c53244cb4ffe1f4b8b24bacf894e93d44c9dd Mon Sep 17 00:00:00 2001 From: marek395 Date: Wed, 21 May 2025 12:41:00 +0200 Subject: [PATCH 6/7] modularization --- .../include/GeliosphereCpuModel.hpp | 38 +- .../include/IGeliosphereCpuModel.hpp | 10 +- .../include/OneDimensionBpCpuModel.hpp | 4 + .../src/GeliosphereCpuModel.cpp | 179 ++--- .../src/OneDimensionBpCpuModel.cpp | 55 +- .../src/OneDimensionFpCpuModel.cpp | 52 +- Fetching/Geliosphere_K0_phi_table.csv | 520 -------------- Fetching/fetch_script.py | 196 ------ Fetching/fetch_script_log.txt | 12 - Fetching/table_data_flow_speed.csv | 11 - Fetching/table_data_phi.csv | 75 -- Fetching/table_data_tilt_angle.csv | 653 ------------------ build.sh | 4 +- 13 files changed, 170 insertions(+), 1639 deletions(-) delete mode 100644 Fetching/Geliosphere_K0_phi_table.csv delete mode 100644 Fetching/fetch_script.py delete mode 100644 Fetching/fetch_script_log.txt delete mode 100644 Fetching/table_data_flow_speed.csv delete mode 100644 Fetching/table_data_phi.csv delete mode 100644 Fetching/table_data_tilt_angle.csv diff --git a/CpuImplementations/include/GeliosphereCpuModel.hpp b/CpuImplementations/include/GeliosphereCpuModel.hpp index 8050976..0ff1154 100644 --- a/CpuImplementations/include/GeliosphereCpuModel.hpp +++ b/CpuImplementations/include/GeliosphereCpuModel.hpp @@ -1,24 +1,13 @@ -/** - * @file GeliosphereCpuModel.hpp - * @author Michal Solanik - * @brief CPU implementation for Geliosphere 2D model - * @version 0.2 - * @date 2022-07-07 - * - * @copyright Copyright (c) 2022 - * - */ - #ifndef BP_CPU_THREE_DIMENSION_SIMULATION_H #define BP_CPU_THREE_DIMENSION_SIMULATION_H #include "AbstractCpuModel.hpp" +#include "IGeliosphereCpuModel.hpp" #include #include -struct SimulationOutput -{ +struct SimulationOutput { double Tkininj; double Tkin; double r; @@ -27,21 +16,20 @@ struct SimulationOutput double theta; }; -/** - * @brief Class implements @ref AbstractAlgorithm "AbstractAlgorithm" interface - * to define support functions for running implementation of Geliosphere 2D B-p model. - * - */ -class GeliosphereCpuModel : public AbstractCpuModel -{ +class GeliosphereCpuModel : public AbstractCpuModel, public IGeliosphereCpuModel { public: - /** - * @brief Definition of simulation runner. - * - * @param singleTone data structure containing input parameters. - */ void runSimulation(ParamsCarrier *singleTone); +protected: + double Beta(double Tkin) override; + double RigFromTkin(double Tkin) override; + double W(double p) override; + double GetMomentum(double Rig) override; + double LarmorRadius(double Rig, double Bfield) override; + double AlphaH(double Larmor, double r) override; + double ComputeF(double theta, double alphaH) override; + double ComputeFPrime(double theta, double alphaH) override; + private: void simulation(int threadNumber, unsigned int availableThreads, int iteration); std::mutex outputMutex; diff --git a/CpuImplementations/include/IGeliosphereCpuModel.hpp b/CpuImplementations/include/IGeliosphereCpuModel.hpp index 386fd86..610f83f 100644 --- a/CpuImplementations/include/IGeliosphereCpuModel.hpp +++ b/CpuImplementations/include/IGeliosphereCpuModel.hpp @@ -3,8 +3,16 @@ class IGeliosphereCpuModel { protected: + virtual double Beta(double Tkin) = 0; + virtual double RigFromTkin(double Tkin) = 0; + virtual double W(double p) = 0; + virtual double GetMomentum(double Rig) = 0; + virtual double LarmorRadius(double Rig, double Bfield) = 0; + virtual double AlphaH(double Larmor, double r) = 0; + virtual double ComputeF(double theta, double alphaH) = 0; + virtual double ComputeFPrime(double theta, double alphaH) = 0; - +public: virtual ~IGeliosphereCpuModel() = default; }; diff --git a/CpuImplementations/include/OneDimensionBpCpuModel.hpp b/CpuImplementations/include/OneDimensionBpCpuModel.hpp index a5308e3..eac8aa0 100644 --- a/CpuImplementations/include/OneDimensionBpCpuModel.hpp +++ b/CpuImplementations/include/OneDimensionBpCpuModel.hpp @@ -23,6 +23,10 @@ struct SimulationOutput { double Tkininj; double r; double w; + + // Constructor + //SimulationOutput(double Tkin_, double Tkininj_, double r_, double w_) + //: Tkin(Tkin_), Tkininj(Tkininj_), r(r_), w(w_) {} }; /** diff --git a/CpuImplementations/src/GeliosphereCpuModel.cpp b/CpuImplementations/src/GeliosphereCpuModel.cpp index 5d723ec..0028a6f 100644 --- a/CpuImplementations/src/GeliosphereCpuModel.cpp +++ b/CpuImplementations/src/GeliosphereCpuModel.cpp @@ -65,46 +65,38 @@ void GeliosphereCpuModel::simulation(int threadNumber, unsigned int availableThr double Kphph, Krt, Krph, Ktph, B11Temp, B11, B12, B13, B22, B23; double sin2, sin3, dKtt1, dKtt2; double dKrtr, dKrtt; + thread_local std::random_device rd{}; thread_local std::mt19937 generator(rd()); thread_local std::normal_distribution distribution(0.0f, 1.0f); + std::vector localOutputs; + localOutputs.reserve(30 * 500); + for (int energy = 0; energy < 30; energy++) { for (int particlePerEnergy = 0; particlePerEnergy < 500; particlePerEnergy++) { - Tkininj = (useUniformInjection) - ? getTkinInjection(((availableThreads * iteration + threadNumber) * 500) + particlePerEnergy, 0.0001, uniformEnergyInjectionMaximum, 10000) - : SPbins[energy]; - Tkin = Tkininj; + Tkininj = (useUniformInjection) + ? getTkinInjection(((availableThreads * iteration + threadNumber) * 500) + particlePerEnergy, 0.0001, uniformEnergyInjectionMaximum, 10000) + : SPbins[energy]; + Tkin = Tkininj; Tkinw = Tkin * 1e9 * q; Rig = sqrt(Tkinw * (Tkinw + (2.0 * T0w))) / q; - p = Rig * q / c; - - // Equation under Equation 6 from - // Yamada et al. "A stochastic view of the solar modulation phenomena of cosmic rays" GEOPHYSICAL RESEARCH LETTERS, VOL. 25, NO.13, PAGES 2353-2356, JULY 1, 1998 - // https://agupubs.onlinelibrary.wiley.com/doi/epdf/10.1029/98GL51869 - w = (m0 * m0 * c * c * c * c) + (p * p * c * c); - w = pow(w, -1.85) / p; - w = w / 1e45; + p = GetMomentum(Rig); + w = W(p); r = rInit; theta = thetainj; while (r < 100.0) { - // Equation 5 - beta = sqrtf(Tkin * (Tkin + T0 + T0)) / (Tkin + T0); - - // Equation 8 from - // Kappl, Rolf. "SOLARPROP: Charge-sign dependent solar modulation for everyone." Computer Physics Communications 207 (2016): 386-399. - // https://arxiv.org/pdf/1511.07875.pdf - Rig = sqrt(Tkin * (Tkin + (2.0 * T0))); + beta = Beta(Tkin); + Rig = RigFromTkin(Tkin); r2 = r * r; - // Equation 25 if (theta < (1.7 * Pi / 180.) || theta > (178.3 * Pi / 180.0)) { delta = 0.003; @@ -117,16 +109,13 @@ void GeliosphereCpuModel::simulation(int threadNumber, unsigned int availableThr deltarh = delta / rh; deltarh2 = deltarh * deltarh; - // Equation 24 gamma = (r * omega) * sin(theta) / V; gamma2 = gamma * gamma; - // Equation 26 Cb = 1.0 + gamma2 + (r2 * deltarh2); Cb2 = Cb * Cb; Bfactor = (5. / 3.4) * r2 / sqrt(Cb); - // Equation 32 if (Rig < 0.1) { Kpar = K0 * beta * 0.1 * Bfactor / 3.0; @@ -136,65 +125,43 @@ void GeliosphereCpuModel::simulation(int threadNumber, unsigned int availableThr Kpar = K0 * beta * Rig * Bfactor / 3.0; } - // Equation 33 Kper = ratio * Kpar; - // Equation 27 Krr = Kper + ((Kpar - Kper) / Cb); - - // Equation 28 Ktt = Kper + (r2 * deltarh2 * (Kpar - Kper) / Cb); Kphph = 1.0; - // Equation 29 Krt = deltarh * (Kpar - Kper) * r / Cb; Krph = 0.0; Ktph = 0.0; - // Equation 16, where Krph = Ktph = 0, and Kphph = 1 B11Temp = (Kphph * Krt * Krt) - (2.0 * Krph * Krt * Ktph) + (Krr * Ktph * Ktph) + (Ktt * Krph * Krph) - (Krr * Ktt * Kphph); B11 = 2.0 * B11Temp / ((Ktph * Ktph) - (Ktt * Kphph)); B11 = sqrt(B11); - // Equation 17 B12 = ((Krph * Ktph) - (Krt * Kphph)) / ((Ktph * Ktph) - (Ktt * Kphph)); B12 = B12 * sqrt(2.0 * (Ktt - (Ktph * Ktph / Kphph))); - // Equation 20 B13 = sqrt(2.0) * Krph / sqrt(Kphph); - // Equation 18 B22 = Ktt - (Ktph * Ktph / Kphph); B22 = sqrt(2.0 * B22) / r; - // Equation 20 B23 = Ktph * sqrt(2.0 / Kphph) / r; - // Equation 34 COmega = 2.0 * r * omega * omega * sin(theta) * sin(theta) / (V * V); COmega = COmega + (2.0 * r * deltarh2); - - // Equation 36 + dKper = ratio * K0 * beta * Rig * ((2.0 * r * sqrt(Cb)) - (r2 * COmega / (2.0 * sqrt(Cb)))) / (3.0 * (5.0 / 3.4) * Cb); - // Equation 35 - dKrr = dKper + ((1.0 - ratio) * K0 * beta * Rig * ((2.0 * r * pow(Cb, 1.5)) - (r2 * COmega * 3.0 * sqrt(Cb) / 2.0)) / ( 3.0 * (5.0 / 3.4) * pow(Cb, 3.0))); + dKrr = dKper + ((1.0 - ratio) * K0 * beta * Rig * ((2.0 * r * pow(Cb, 1.5)) - (r2 * COmega * 3.0 * sqrt(Cb) / 2.0)) / (3.0 * (5.0 / 3.4) * pow(Cb, 3.0))); if ((theta > (1.7 * Pi / 180.)) && (theta < (178.3 * Pi / 180.0))) { - // Equation 37 CKtt = sin(theta) * cos(theta) * (omega * omega * r2 / (V * V)); - - // Equation 38 dKtt1 = (-1.0 * ratio * K0 * beta * Rig * r2 * CKtt) / (3.0 * (5.0 / 3.4) * pow(Cb, 1.5)); - - // Equation 39 dKtt2 = (1.0 - ratio) * K0 * beta * Rig * r2 * r2 * deltarh2; - - // Equation 41 dKtt4 = 3.0 * CKtt / pow(Cb, 2.5); - - // Equation 42 dKtt = dKtt1 - (dKtt2 * dKtt4); } else @@ -202,30 +169,17 @@ void GeliosphereCpuModel::simulation(int threadNumber, unsigned int availableThr sin2 = sin(theta) * sin(theta); sin3 = sin(theta) * sin(theta) * sin(theta); - // Equation 37 CKtt = sin(theta) * cos(theta) * (omega * omega * r2 / (V * V)); CKtt = CKtt - (r2 * delta0 * delta0 * cos(theta) / (rh * rh * sin3)); - - // Equation 38 dKtt1 = (-1.0 * ratio * K0 * beta * Rig * r2 * CKtt) / (3.0 * (5.0 / 3.4) * pow(Cb, 1.5)); - - // Equation 39 dKtt2 = (1.0 - ratio) * K0 * beta * Rig * r2 * r2 * delta0 * delta0 / (rh * rh); - - // Equation 40 dKtt3 = -2.0 * (cos(theta) / sin3) / (3.0 * (5.0 / 3.4) * pow(Cb, 1.5)); - - // Equation 41 dKtt4 = 3.0 * (CKtt / sin2) / (3.0 * (5.0 / 3.4) * pow(Cb, 2.5)); - - // Equation 42 dKtt = dKtt1 + (dKtt2 * (dKtt3 - dKtt4)); } - // Equation 43 dKrtr = (1.0 - ratio) * K0 * beta * Rig * deltarh * r2 / (3.0 * (5.0 / 3.4) * pow(Cb, 2.5)); - // Equation 44 if ((theta > (1.7 * Pi / 180.)) && (theta < (178.3 * Pi / 180.0))) { dKrtt = (1.0 - ratio) * K0 * beta * Rig * r2 * r / ((3.0 * (5.0 / 3.4) * rh * pow(Cb, 2.5))); @@ -239,70 +193,31 @@ void GeliosphereCpuModel::simulation(int threadNumber, unsigned int availableThr dKrtt = dKrtt * (1.0 - (2.0 * r2 * deltarh2) + (4.0 * gamma2)); } - // Equation 21 dr = ((-1.0 * V) + (2.0 * Krr / r) + dKrr) * dt; dr = dr + (dKrtt * dt / r) + (Krt * cos(theta) * dt / (r * sin(theta))); dr = dr + (distribution(generator) * B11 * sqrt(dt)); dr = dr + (distribution(generator) * B12 * sqrt(dt)); dr = dr + (distribution(generator) * B13 * sqrt(dt)); - // Equation 22 dtheta = (Ktt * cos(theta)) / (r2 * sin(theta)); dtheta = (dtheta * dt) + (dKtt * dt / r2); dtheta = dtheta + (dKrtr * dt) + (2.0 * Krt * dt / r); dtheta = dtheta + (distribution(generator) * B22 * sqrt(dt)) + (distribution(generator) * B23 * sqrt(dt)); - // Equation 23 - alfa = (Tkin + T0 + T0)/(Tkin + T0); + alfa = (Tkin + T0 + T0)/(Tkin + T0); dTkin = -2.0 * V * alfa * Tkin * dt / (3.0 * r); Bfield = A * sqrt(Cb) / (r * r); - - // Equation 26 from - // Kappl, Rolf. "SOLARPROP: Charge-sign dependent solar modulation for everyone." Computer Physics Communications 207 (2016): 386-399. - // https://arxiv.org/pdf/1511.07875.pdf - Larmor = 0.0225 * Rig / Bfield; - - // Equation 34 from - // Kappl, Rolf. "SOLARPROP: Charge-sign dependent solar modulation for everyone." Computer Physics Communications 207 (2016): 386-399. - // https://arxiv.org/pdf/1511.07875.pdf - alphaH = Pi / sin(alphaM + (2.0 * Larmor * Pi / (r * 180.0))); - alphaH = alphaH - 1.0; - alphaH = 1.0 / alphaH; - alphaH = acos(alphaH); - - // Equation 32 from - // Kappl, Rolf. "SOLARPROP: Charge-sign dependent solar modulation for everyone." Computer Physics Communications 207 (2016): 386-399. - // https://arxiv.org/pdf/1511.07875.pdf - arg = (1. - (2. * theta / Pi)) * tan(alphaH); - f = atan(arg) / alphaH; - - // Equation 35 from - // Kappl, Rolf. "SOLARPROP: Charge-sign dependent solar modulation for everyone." Computer Physics Communications 207 (2016): 386-399. - // https://arxiv.org/pdf/1511.07875.pdf + Larmor = LarmorRadius(Rig, Bfield); + alphaH = AlphaH(Larmor, r); + f = ComputeF(theta, alphaH); + fprime = ComputeFPrime(theta, alphaH); + DriftR = polarity * konvF * (2.0 / (3.0 * A)) * Rig * beta * r * cos(theta) * gamma * f / (Cb2 * sin(theta)); - - // Equation 36 from - // Kappl, Rolf. "SOLARPROP: Charge-sign dependent solar modulation for everyone." Computer Physics Communications 207 (2016): 386-399. - // https://arxiv.org/pdf/1511.07875.pdf DriftTheta = -1.0 * polarity * konvF * (2.0 / (3.0 * A)) * Rig * beta * r * gamma * (2.0 + (gamma * gamma)) * f / Cb2; - - // Equation 33 from - // Kappl, Rolf. "SOLARPROP: Charge-sign dependent solar modulation for everyone." Computer Physics Communications 207 (2016): 386-399. - // https://arxiv.org/pdf/1511.07875.pdf - fprime = 1.0 + (arg * arg); - fprime = tan(alphaH) / fprime; - fprime = -1.0 * fprime * 2.0 / (Pi * alphaH); - - // Equation 37 from - // Kappl, Rolf. "SOLARPROP: Charge-sign dependent solar modulation for everyone." Computer Physics Communications 207 (2016): 386-399. - // https://arxiv.org/pdf/1511.07875.pdf DriftSheetR = polarity * konvF * (1.0 / (3.0 * A)) * Rig * beta * r * gamma * fprime / Cb; - // Equation 21 dr = dr + ((DriftR + DriftSheetR) * dt); - - // Equation 22 dtheta = dtheta + (DriftTheta * dt / r); r = r + dr; @@ -329,12 +244,60 @@ void GeliosphereCpuModel::simulation(int threadNumber, unsigned int availableThr if (r > 100.0) { - outputMutex.lock(); - outputQueue.push({Tkininj, Tkin, r, w, thetainj, theta}); - outputMutex.unlock(); + //outputMutex.lock(); + //outputQueue.push({Tkininj, Tkin, r, w, thetainj, theta}); + //outputMutex.unlock(); + localOutputs.emplace_back(SimulationOutput{Tkininj, Tkin, r, w, thetainj, theta}); + break; } } } } + std::lock_guard lock(outputMutex); + for (const auto& output : localOutputs) + { + outputQueue.push(output); + } +} + + + + +double GeliosphereCpuModel::Beta(double Tkin) { + return sqrt(Tkin * (Tkin + 2.0 * T0)) / (Tkin + T0); +} + +double GeliosphereCpuModel::RigFromTkin(double Tkin) { + return sqrt(Tkin * (Tkin + 2.0 * T0)); +} + +double GeliosphereCpuModel::W(double p) { + double w = (m0 * m0 * c * c * c * c) + (p * p * c * c); + return pow(w, -1.85) / p / 1e45; +} + +double GeliosphereCpuModel::GetMomentum(double Rig) { + return Rig * q / c; +} + +double GeliosphereCpuModel::LarmorRadius(double Rig, double Bfield) { + return 0.0225 * Rig / Bfield; +} + +double GeliosphereCpuModel::AlphaH(double Larmor, double r) { + double alphaH = Pi / sin(alphaM + (2.0 * Larmor * Pi / (r * 180.0))); + alphaH = 1.0 / (alphaH - 1.0); + return acos(alphaH); +} + +double GeliosphereCpuModel::ComputeF(double theta, double alphaH) { + double arg = (1. - (2. * theta / Pi)) * tan(alphaH); + return atan(arg) / alphaH; +} + +double GeliosphereCpuModel::ComputeFPrime(double theta, double alphaH) { + double arg = (1. - (2. * theta / Pi)) * tan(alphaH); + double fprime = tan(alphaH) / (1.0 + arg * arg); + return -1.0 * fprime * 2.0 / (Pi * alphaH); } \ No newline at end of file diff --git a/CpuImplementations/src/OneDimensionBpCpuModel.cpp b/CpuImplementations/src/OneDimensionBpCpuModel.cpp index cffd0ab..6d94995 100644 --- a/CpuImplementations/src/OneDimensionBpCpuModel.cpp +++ b/CpuImplementations/src/OneDimensionBpCpuModel.cpp @@ -1,11 +1,3 @@ -/* -unoptimized duration: 35 min with O3 flag for: time ./Geliosphere -B -d 5 -N 1 - -32m20s - -30m17s - -*/ #include "OneDimensionBpCpuModel.hpp" #include "FileUtils.hpp" #include "Constants.hpp" @@ -15,9 +7,6 @@ unoptimized duration: 35 min with O3 flag for: time ./Geliosphere -B -d 5 -N 1 #include #include -// Constants to avoid repeated calls -const double C_Q = c / q; -const double C_Q_1E9 = C_Q / 1e9; void OneDimensionBpCpuModel::runSimulation(ParamsCarrier *singleTone) @@ -66,10 +55,17 @@ void OneDimensionBpCpuModel::runSimulation(ParamsCarrier *singleTone) void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int availableThreads, int iteration) { - double r, dr, arnum; - double Tkin, Tkininj, Rig, beta; - double w; - double p, dp, pp, Kdiff; + double r = 0, dr = 0, arnum = 0; + double Tkin = 0, Tkininj = 0, Rig = 0, beta = 0; + double w = 0; + double p = 0, dp = 0, pp = 0, Kdiff = 0; + + // Constants to avoid repeated calls + const double C_Q = c / q; + const double C_Q_1E9 = C_Q / 1e9; + const double t0Term = T0 * T0 * q * q * 1e18; + const double q1e9 = q * 1e9; + thread_local std::random_device rd{}; thread_local std::mt19937 generator(rd()); thread_local std::normal_distribution distribution(0.0f, 1.0f); @@ -78,7 +74,8 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available auto& gen = generator; auto& dist = distribution; //avoids repeated __tls_get_addr lookup for thread-local variables - + std::vector localOutputs; + localOutputs.reserve(101 * 250); // avoiding reallocations and segmentation fault caused by it for (int energy = 0; energy < 101; energy++) { @@ -110,7 +107,8 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available // Rig = p * c / q; Rig = p * C_Q; //Tkin = TkinFromRig(Rig); - Tkin = (sqrt((T0 * T0 * q * q * 1e9 * 1e9) + (q * q * Rig * Rig)) - (T0 * q * 1e9)) / (q * 1e9); + //Tkin = (sqrt((T0 * T0 * q * q * 1e9 * 1e9) + (q * q * Rig * Rig)) - (T0 * q * 1e9)) / (q * 1e9); + Tkin = (sqrt(t0Term + (q * q * Rig * Rig)) - (T0 * q1e9)) / q1e9; beta = Beta(Tkin); if (beta > 0.01f && Tkin < 200.0f) @@ -118,10 +116,12 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available if ((r > 100.0f) && ((r - dr) < 100.0f)) { w = W(p); - outputMutex.lock(); - outputQueue.push({Tkin, Tkininj, r, w}); - outputMutex.unlock(); + //outputMutex.lock(); + //outputQueue.push({Tkin, Tkininj, r, w}); + //outputMutex.unlock(); + localOutputs.emplace_back(SimulationOutput{Tkin, Tkininj, r, w}); + //localOutputs.emplace_back(Tkin, Tkininj, r, w); break; } } @@ -137,7 +137,20 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available } } } - } + } + { + std::lock_guard lock(outputMutex); + for (const auto& output : localOutputs) + { + outputQueue.push(output); + } + //outputMutex.lock(); + //for (const auto& output : localOutputs) + //{ + // outputQueue.push(output); + //} + //outputMutex.unlock(); + } } double OneDimensionBpCpuModel::Beta(double Tkin) diff --git a/CpuImplementations/src/OneDimensionFpCpuModel.cpp b/CpuImplementations/src/OneDimensionFpCpuModel.cpp index 27c02c3..df4d6a1 100644 --- a/CpuImplementations/src/OneDimensionFpCpuModel.cpp +++ b/CpuImplementations/src/OneDimensionFpCpuModel.cpp @@ -12,11 +12,13 @@ void OneDimensionFpCpuModel::runSimulation(ParamsCarrier *singleTone) spdlog::info("Starting initialization of 1D F-p simulation."); srand(time(NULL)); std::string destination = singleTone->getString("destination", ""); - if (destination.empty()) { + if (destination.empty()) + { destination = getDirectoryName(singleTone); - spdlog::info("Destination is not specified - using generated name: " + destination); + spdlog::info("Destination is not specified - using generated name for destination: " + destination); } - if (!createDirectory("1DFP", destination)) { + if (!createDirectory("1DFP", destination)) + { spdlog::error("Directory for 1D F-p simulations cannot be created."); return; } @@ -25,18 +27,22 @@ void OneDimensionFpCpuModel::runSimulation(ParamsCarrier *singleTone) unsigned int nthreads = std::thread::hardware_concurrency(); int targetIterations = ceil((double)singleTone->getInt("millions", 1) * 1000000.0 / ((double)nthreads * 101.0 * 250.0)); setContants(singleTone); - for (int iteration = 0; iteration < targetIterations; iteration++) { - spdlog::info("Processed: {:03.2f}%", (float)iteration / ((float)targetIterations / 100.0)); + for (int iteration = 0; iteration < targetIterations; iteration++) + { + spdlog::info("Processed: {:03.2f}%", (float) iteration / ((float) targetIterations / 100.0)); std::vector threads; - for (int i = 0; i < (int)nthreads; i++) { - threads.emplace_back(&OneDimensionFpCpuModel::simulation, this, i, nthreads, iteration); + for (int i = 0; i < (int)nthreads; i++) + { + threads.emplace_back(std::thread(&OneDimensionFpCpuModel::simulation, this, i, nthreads, iteration)); } - for (auto &th : threads) { + for (auto &th : threads) + { th.join(); } - while (!outputQueue.empty()) { - SimulationOutput simulationOutput = outputQueue.front(); - fprintf(file, "%g %g %g %g %g\n", simulationOutput.pinj, simulationOutput.p, simulationOutput.r, simulationOutput.w, simulationOutput.sumac); + while (!outputQueue.empty()) + { + struct SimulationOutput simulationOutput = outputQueue.front(); + fprintf(file, " %g %g %g %g %g \n", simulationOutput.pinj, simulationOutput.p, simulationOutput.r, simulationOutput.w, simulationOutput.sumac); outputQueue.pop(); } } @@ -55,6 +61,12 @@ void OneDimensionFpCpuModel::simulation(int threadNumber, unsigned int available thread_local std::mt19937 generator(rd()); thread_local std::normal_distribution distribution(0.0f, 1.0f); + auto& gen = generator; + auto& dist = distribution; + + std::vector localOutputs; + localOutputs.reserve(101); + for (int energy = 0; energy < 101; energy++) { for (int particlePerEnergy = 0; particlePerEnergy < 250; particlePerEnergy++) { Tkininj = getTkinInjection(((availableThreads * iteration + threadNumber) * 250) + particlePerEnergy, 0.0001, uniformEnergyInjectionMaximum, 10000); @@ -73,7 +85,8 @@ void OneDimensionFpCpuModel::simulation(int threadNumber, unsigned int available beta = Beta(Tkin); Rig = RigFromTkin(Tkin); Kdiff = Kdiffr(beta, Rig); - arnum = distribution(generator); + arnum = dist(gen); + //arnum = distribution(generator); dr = Dr(V, Kdiff, r, dt, arnum); dp = Dp(V, p, r); cfactor = Cfactor(V, r); @@ -90,9 +103,10 @@ void OneDimensionFpCpuModel::simulation(int threadNumber, unsigned int available if (beta > 0.01 && Tkin < 100.0) { if ((r - 1.0) / ((r - dr) - 1.0) < 0.0) { - outputMutex.lock(); - outputQueue.push({pinj, p, r, w, sumac}); - outputMutex.unlock(); + //outputMutex.lock(); + //outputQueue.push({pinj, p, r, w, sumac}); + localOutputs.emplace_back(SimulationOutput{pinj, p, r, w, sumac}); + //outputMutex.unlock(); } } if (beta < 0.01) break; @@ -100,6 +114,14 @@ void OneDimensionFpCpuModel::simulation(int threadNumber, unsigned int available } } } + + + std::lock_guard lock(outputMutex); + for (const auto& output : localOutputs) + { + outputQueue.push(output); + } + } double OneDimensionFpCpuModel::Beta(double Tkin) diff --git a/Fetching/Geliosphere_K0_phi_table.csv b/Fetching/Geliosphere_K0_phi_table.csv deleted file mode 100644 index c7fb931..0000000 --- a/Fetching/Geliosphere_K0_phi_table.csv +++ /dev/null @@ -1,520 +0,0 @@ -carrington_rotation,year_week,modulation_potentional,k0_au2/s,tilt_angle,year,month,day,polarity -1642,1976.4071038,434,5.34803225806452e-05,6.8,1976,5,27,1 -1643,1976.4795081,426,5.47252112676056e-05,6.2,1976,6,23,1 -1644,1976.557377,412,5.70200970873787e-05,6.8,1976,7,21,1 -1645,1976.6297814,408,5.77047058823529e-05,4.0,1976,8,17,1 -1646,1976.7021857,407,5.78779606879607e-05,6.7,1976,9,13,1 -1647,1976.7800546,408,5.77047058823529e-05,7.9,1976,10,11,1 -1648,1976.852459,404,5.84028712871287e-05,7.1,1976,11,7,1 -1649,1976.9275956,411,5.719e-05,7.4,1976,12,4,1 -1650,1977.0013661,411,5.719e-05,6.6,1976,12,31,1 -1651,1977.0767123,421,5.55272921615202e-05,7.7,1977,1,28,1 -1652,1977.1490867,417,5.61828057553957e-05,4.4,1977,2,24,1 -1653,1977.2296803,419,5.58534844868735e-05,8.6,1977,3,23,1 -1654,1977.3020547,416,5.63486538461539e-05,13.7,1977,4,19,1 -1655,1977.3799086,417,5.61828057553957e-05,14.0,1977,5,17,1 -1656,1977.4522831,442,5.22804977375566e-05,15.5,1977,6,13,1 -1657,1977.5273972,487,4.62659753593429e-05,11.8,1977,7,10,1 -1658,1977.6025114,476,4.76311764705882e-05,10.0,1977,8,7,1 -1659,1977.6748858,475,4.77584210526316e-05,12.5,1977,9,3,1 -1660,1977.7488584,475,4.77584210526316e-05,12.3,1977,9,30,1 -1661,1977.8239726,438,5.28749315068493e-05,12.4,1977,10,27,1 -1662,1977.8990867,408,5.77047058823529e-05,16.3,1977,11,24,1 -1663,1977.9742009,418,5.60177511961723e-05,15.7,1977,12,21,1 -1664,1978.0465753,478,4.73782845188285e-05,26.7,1978,1,17,1 -1665,1978.1189497,496,4.51940322580645e-05,36.1,1978,2,13,1 -1666,1978.2022831,510,4.36017647058824e-05,32.7,1978,3,13,1 -1667,1978.2746575,588,3.61185714285714e-05,26.5,1978,4,9,1 -1668,1978.3497716,669,3.01944843049327e-05,30.4,1978,5,6,1 -1669,1978.4248858,602,3.49806976744186e-05,24.5,1978,6,3,1 -1670,1978.4988584,602,3.49806976744186e-05,27.1,1978,6,30,1 -1671,1978.5739726,591,3.58702030456853e-05,26.4,1978,7,27,1 -1672,1978.646347,495,4.53112121212121e-05,34.1,1978,8,23,1 -1673,1978.7214611,495,4.53112121212121e-05,51.3,1978,9,20,1 -1674,1978.7965753,566,3.80203886925795e-05,46.5,1978,10,17,1 -1675,1978.8689497,528,4.16786363636364e-05,43.9,1978,11,13,1 -1676,1978.9440639,530,4.14730188679245e-05,45.3,1978,12,10,1 -1677,1979.019178,584,3.6453698630137e-05,47.5,1979,1,7,1 -1678,1979.0915525,609,3.44313793103448e-05,59.2,1979,2,3,1 -1679,1979.1721461,653,3.12481929555896e-05,55.2,1979,3,2,1 -1680,1979.2488584,653,3.12481929555896e-05,65.4,1979,3,30,1 -1681,1979.3212328,738,2.61737398373984e-05,67.6,1979,4,26,1 -1682,1979.396347,706,2.79407082152975e-05,62.5,1979,5,23,1 -1683,1979.4687214,812,2.26210344827586e-05,66.3,1979,6,19,1 -1684,1979.5465753,799,2.31975093867334e-05,71.5,1979,7,17,1 -1685,1979.6189497,906,1.89449668874172e-05,62.0,1979,8,13,1 -1686,1979.6913242,860,2.0643488372093e-05,70.6,1979,9,9,1 -1687,1979.769178,778,2.41694344473008e-05,73.8,1979,10,7,1 -1688,1979.8415525,774,2.43605426356589e-05,70.9,1979,11,3,1 -1689,1979.9155251,774,2.1750484496124e-05,69.1,1979,11,30,-1 -1690,1979.9906392,688,2.58989825581395e-05,72.0,1979,12,27,-1 -1691,1980.0655737,716,2.44388966480447e-05,65.1,1980,1,24,-1 -1692,1980.1379781,743,2.31351783310902e-05,69.8,1980,2,20,-1 -1693,1980.2158469,686,2.60078352769679e-05,64.8,1980,3,18,-1 -1694,1980.2882513,762,2.22731299212598e-05,50.4,1980,4,14,-1 -1695,1980.3661202,757,2.24957892998679e-05,41.0,1980,5,12,-1 -1696,1980.4385245,886,1.75551636568849e-05,31.2,1980,6,8,-1 -1697,1980.5136612,885,1.75879237288136e-05,44.0,1980,7,5,-1 -1698,1980.5887978,855,1.86063596491228e-05,48.5,1980,8,2,-1 -1699,1980.6625683,855,1.86063596491228e-05,42.7,1980,8,29,-1 -1700,1980.7349726,866,1.82247401847575e-05,44.2,1980,9,25,-1 -1701,1980.8101092,960,1.53203125e-05,47.3,1980,10,22,-1 -1702,1980.8852459,1052,1.29802756653992e-05,47.3,1980,11,19,-1 -1703,1980.9603825,1038,1.33096098265896e-05,37.3,1980,12,16,-1 -1704,1981.0328767,878,1.78193337129841e-05,40.0,1981,1,12,-1 -1705,1981.1052511,968,1.5099173553719e-05,50.0,1981,2,8,-1 -1706,1981.1885844,995,1.43790829145729e-05,49.7,1981,3,8,-1 -1707,1981.2609589,1055,1.29108412322275e-05,54.6,1981,4,4,-1 -1708,1981.336073,1124,1.14161476868327e-05,47.6,1981,5,1,-1 -1709,1981.4127853,1124,1.14161476868327e-05,42.2,1981,5,29,-1 -1710,1981.4851598,967,1.51266158221303e-05,44.4,1981,6,25,-1 -1711,1981.5602739,930,1.61834677419355e-05,36.9,1981,7,22,-1 -1712,1981.6326484,923,1.63929442036836e-05,31.1,1981,8,18,-1 -1713,1981.7077625,871,1.805446326062e-05,35.0,1981,9,15,-1 -1714,1981.7828767,1046,1.31203393881453e-05,33.3,1981,10,12,-1 -1715,1981.8552511,1010,1.39956683168317e-05,27.2,1981,11,8,-1 -1716,1981.933105,886,1.75551636568849e-05,28.0,1981,12,6,-1 -1717,1982.0054794,813,2.01584409594096e-05,29.8,1982,1,2,-1 -1718,1982.079452,813,2.01584409594096e-05,37.3,1982,1,29,-1 -1719,1982.1518264,982,1.4720850305499e-05,31.4,1982,2,25,-1 -1720,1982.2351598,828,1.95860507246377e-05,38.9,1982,3,25,-1 -1721,1982.3075342,798,2.07523496240602e-05,41.5,1982,4,21,-1 -1722,1982.3826484,758,2.24510224274406e-05,44.9,1982,5,18,-1 -1723,1982.4550228,1009,1.40208746283449e-05,48.9,1982,6,14,-1 -1724,1982.5328767,1258,8.98181637519873e-06,47.8,1982,7,12,-1 -1725,1982.6052511,1240,9.27822580645161e-06,49.1,1982,8,8,-1 -1726,1982.6776255,1422,6.62684599156118e-06,46.7,1982,9,4,-1 -1727,1982.7554794,1222,9.5833674304419e-06,34.7,1982,10,2,-1 -1728,1982.829452,1222,9.5833674304419e-06,28.2,1982,10,29,-1 -1729,1982.9018264,1150,1.08994565217391e-05,24.3,1982,11,25,-1 -1730,1982.9769406,1256,9.01433121019108e-06,26.1,1982,12,22,-1 -1731,1983.0520547,1086,1.22158149171271e-05,32.9,1983,1,19,-1 -1732,1983.1244292,969,1.50717879256966e-05,28.0,1983,2,15,-1 -1733,1983.2050228,877,1.78526938426454e-05,27.4,1983,3,14,-1 -1734,1983.2773972,874,1.79532322654462e-05,33.0,1983,4,10,-1 -1735,1983.3552511,1029,1.3526056851312e-05,31.2,1983,5,8,-1 -1736,1983.4276255,928,1.62429956896552e-05,24.3,1983,6,4,-1 -1737,1983.5027397,826,1.96611682808717e-05,25.1,1983,7,1,-1 -1738,1983.579452,826,1.96611682808717e-05,25.0,1983,7,29,-1 -1739,1983.6518264,836,1.92891746411483e-05,23.4,1983,8,25,-1 -1740,1983.7242009,803,2.05519146948941e-05,21.8,1983,9,21,-1 -1741,1983.799315,787,2.12022712833545e-05,18.2,1983,10,18,-1 -1742,1983.8744292,762,2.22731299212598e-05,20.0,1983,11,15,-1 -1743,1983.9495433,761,2.23174277266754e-05,15.7,1983,12,12,-1 -1744,1984.0218579,709,2.47931064880113e-05,17.4,1984,1,8,-1 -1745,1984.0942622,736,2.34639945652174e-05,20.0,1984,2,4,-1 -1746,1984.1748633,800,2.0671875e-05,23.8,1984,3,3,-1 -1747,1984.2486338,800,2.0671875e-05,23.9,1984,3,30,-1 -1748,1984.3210382,846,1.8925975177305e-05,24.1,1984,4,26,-1 -1749,1984.3989071,967,1.51266158221303e-05,23.9,1984,5,24,-1 -1750,1984.4713114,880,1.77528409090909e-05,23.8,1984,6,20,-1 -1751,1984.546448,842,1.90702197149644e-05,22.1,1984,7,17,-1 -1752,1984.6188524,778,2.157985218509e-05,24.1,1984,8,13,-1 -1753,1984.693989,753,2.26760458167331e-05,21.8,1984,9,10,-1 -1754,1984.7691256,751,2.27668941411451e-05,19.0,1984,10,7,-1 -1755,1984.84153,772,2.18364637305699e-05,16.7,1984,11,3,-1 -1756,1984.9193989,746,2.29961461126005e-05,13.0,1984,12,1,-1 -1757,1984.9931693,746,2.29961461126005e-05,10.4,1984,12,28,-1 -1758,1985.0657534,724,2.40424723756906e-05,9.0,1985,1,24,-1 -1759,1985.1381278,656,2.77202743902439e-05,6.3,1985,2,20,-1 -1760,1985.2214611,636,2.89516509433962e-05,6.4,1985,3,20,-1 -1761,1985.2938356,609,3.0742302955665e-05,5.0,1985,4,16,-1 -1762,1985.3689497,596,3.16623322147651e-05,5.7,1985,5,13,-1 -1763,1985.4413242,542,3.59564114391144e-05,6.8,1985,6,9,-1 -1764,1985.519178,549,3.53521174863388e-05,7.1,1985,7,7,-1 -1765,1985.5915525,543,3.58691298342542e-05,6.7,1985,8,3,-1 -1766,1985.6655251,543,3.58691298342542e-05,7.8,1985,8,30,-1 -1767,1985.7406392,501,3.98349550898204e-05,8.8,1985,9,27,-1 -1768,1985.8157534,495,4.04564393939394e-05,7.7,1985,10,24,-1 -1769,1985.8881278,464,4.39234913793104e-05,6.9,1985,11,20,-1 -1770,1985.963242,485,4.15264175257732e-05,6.9,1985,12,17,-1 -1771,1986.0383561,486,4.14174382716049e-05,6.9,1986,1,14,-1 -1772,1986.1107305,575,3.32364130434783e-05,8.1,1986,2,10,-1 -1773,1986.1913242,507,3.92281804733728e-05,7.7,1986,3,9,-1 -1774,1986.2636986,434,4.77502880184332e-05,6.0,1986,4,5,-1 -1775,1986.3415525,416,5.03112980769231e-05,4.2,1986,5,3,-1 -1776,1986.4155251,416,5.03112980769231e-05,4.0,1986,5,30,-1 -1777,1986.4878995,405,5.19884259259259e-05,3.8,1986,6,26,-1 -1778,1986.5657534,403,5.23031947890819e-05,4.5,1986,7,24,-1 -1779,1986.6381278,402,5.24617537313433e-05,3.6,1986,8,20,-1 -1780,1986.7105022,401,5.26211034912718e-05,3.8,1986,9,16,-1 -1781,1986.7856164,378,5.65188492063492e-05,7.3,1986,10,13,-1 -1782,1986.8607305,433,4.7886980369515e-05,4.9,1986,11,10,-1 -1783,1986.9358447,382,5.58072643979058e-05,5.1,1986,12,7,-1 -1784,1987.0082191,339,6.43368362831858e-05,3.9,1987,1,3,-1 -1785,1987.0821917,339,6.43368362831858e-05,3.3,1987,1,30,-1 -1786,1987.1573059,311,7.1158963022508e-05,3.4,1987,2,27,-1 -1787,1987.2378995,312,7.08942307692308e-05,3.7,1987,3,26,-1 -1788,1987.3102739,328,6.68780487804878e-05,4.8,1987,4,22,-1 -1789,1987.3881278,349,6.21656518624642e-05,9.7,1987,5,20,-1 -1790,1987.4605022,406,5.18322044334975e-05,9.7,1987,6,16,-1 -1791,1987.5356164,435,4.7614224137931e-05,11.6,1987,7,13,-1 -1792,1987.6079908,468,4.34503205128205e-05,15.8,1987,8,9,-1 -1793,1987.683105,501,3.98349550898204e-05,21.3,1987,9,6,-1 -1794,1987.7582191,492,4.07728658536585e-05,15.3,1987,10,3,-1 -1795,1987.8321917,492,4.07728658536585e-05,14.5,1987,10,30,-1 -1796,1987.9073059,534,3.66664325842697e-05,10.8,1987,11,27,-1 -1797,1987.98242,534,3.66664325842697e-05,11.2,1987,12,24,-1 -1798,1988.0546448,626,2.95968450479233e-05,14.6,1988,1,20,-1 -1799,1988.1270491,593,3.18803752107926e-05,19.8,1988,2,16,-1 -1800,1988.2076502,581,3.27750645438898e-05,28.5,1988,3,15,-1 -1801,1988.2800546,602,3.12327657807309e-05,19.8,1988,4,11,-1 -1802,1988.3551912,590,3.21006355932203e-05,28.5,1988,5,8,-1 -1803,1988.4275956,610,3.06731557377049e-05,31.1,1988,6,4,-1 -1804,1988.5054644,681,2.62827643171806e-05,30.2,1988,7,2,-1 -1805,1988.5792349,681,2.62827643171806e-05,38.7,1988,7,29,-1 -1806,1988.6516393,697,2.54168758967001e-05,44.7,1988,8,25,-1 -1807,1988.7267759,682,2.62274560117302e-05,36.9,1988,9,22,-1 -1808,1988.8019125,714,2.45393907563025e-05,34.8,1988,10,19,-1 -1809,1988.8743169,728,2.38475274725275e-05,32.6,1988,11,15,-1 -1810,1988.9494535,819,1.99269688644689e-05,43.6,1988,12,12,-1 -1811,1989.0246575,893,1.73278975363942e-05,45.2,1989,1,9,-1 -1812,1989.0970319,898,1.71677338530067e-05,61.1,1989,2,5,-1 -1813,1989.1776255,1183,1.02763630600169e-05,59.3,1989,3,4,-1 -1814,1989.2515981,1183,1.02763630600169e-05,61.0,1989,3,31,-1 -1815,1989.3267123,1132,1.12546378091873e-05,60.5,1989,4,28,-1 -1816,1989.4018264,1234,9.37895056726094e-06,75.0,1989,5,25,-1 -1817,1989.4742009,1187,1.02031908171862e-05,73.3,1989,6,21,-1 -1818,1989.5520547,1022,1.36970401174168e-05,72.8,1989,7,19,-1 -1819,1989.6244292,1114,1.16212971274686e-05,68.7,1989,8,15,-1 -1820,1989.6968036,1195,1.00583158995816e-05,61.6,1989,9,11,-1 -1821,1989.7719178,1356,7.50608407079646e-06,70.9,1989,10,8,-1 -1822,1989.8470319,1470,6.03698979591837e-06,74.2,1989,11,5,-1 -1823,1989.9221461,1362,7.42263215859031e-06,72.3,1989,12,2,-1 -1824,1989.9961187,1362,7.42263215859031e-06,74.7,1989,12,29,-1 -1825,1990.0712328,1232,9.41274350649351e-06,74.3,1990,1,26,-1 -1826,1990.1436073,1196,1.00403428093645e-05,74.5,1990,2,22,-1 -1827,1990.2242009,1275,8.70955882352941e-06,69.1,1990,3,21,-1 -1828,1990.2965753,1424,6.60147471910112e-06,63.1,1990,4,17,-1 -1829,1990.3744292,1452,6.25361570247934e-06,68.5,1990,5,15,-1 -1830,1990.4468036,1435,6.4631968641115e-06,64.0,1990,6,11,-1 -1831,1990.5219178,1247,9.16193865276664e-06,72.1,1990,7,8,-1 -1832,1990.5942922,1294,8.41373647604328e-06,71.1,1990,8,4,-1 -1833,1990.6694063,1187,1.02031908171862e-05,71.1,1990,9,1,-1 -1834,1990.7433789,1187,1.02031908171862e-05,72.5,1990,9,28,-1 -1835,1990.8184931,1073,1.25023881640261e-05,66.1,1990,10,25,-1 -1836,1990.8936073,996,1.43531626506024e-05,63.2,1990,11,22,-1 -1837,1990.9687214,985,1.63981218274112e-05,44.0,1990,12,19,1 -1838,1991.0410958,872,2.0183119266055e-05,60.9,1991,1,15,1 -1839,1991.1134703,862,2.05658700696056e-05,63.3,1991,2,11,1 -1840,1991.1968036,1257,1.00778281622912e-05,58.3,1991,3,11,1 -1841,1991.269178,1197,1.12250877192982e-05,54.5,1991,4,7,1 -1842,1991.3442922,1158,1.20345595854922e-05,49.4,1991,5,4,1 -1843,1991.4182648,1158,1.20345595854922e-05,49.1,1991,5,31,1 -1844,1991.4933789,2016,1.46083333333333e-06,51.4,1991,6,28,1 -1845,1991.5684931,1938,2.03520123839009e-06,47.1,1991,7,25,1 -1846,1991.6408675,1471,6.7481237253569e-06,41.0,1991,8,21,1 -1847,1991.7159817,1190,1.13664705882353e-05,41.1,1991,9,18,1 -1848,1991.7910958,1126,1.2740621669627e-05,40.3,1991,10,15,1 -1849,1991.8634703,1115,1.29926905829596e-05,38.0,1991,11,11,1 -1850,1991.9385844,1028,1.51763813229572e-05,30.8,1991,12,8,1 -1851,1992.0136612,1019,1.54235623159961e-05,27.6,1992,1,5,1 -1852,1992.0860655,1066,1.41787429643527e-05,22.6,1992,2,1,1 -1853,1992.159836,1066,1.41787429643527e-05,24.3,1992,2,28,1 -1854,1992.2377049,948,1.75381012658228e-05,25.6,1992,3,26,1 -1855,1992.3128415,815,2.24906134969325e-05,19.5,1992,4,23,1 -1856,1992.3879781,860,2.0643488372093e-05,9.3,1992,5,20,1 -1857,1992.4603825,748,2.56525668449198e-05,15.4,1992,6,16,1 -1858,1992.5382513,682,2.93747507331378e-05,17.5,1992,7,14,1 -1859,1992.6106557,695,2.85856834532374e-05,16.3,1992,8,10,1 -1860,1992.6830601,724,2.69275690607735e-05,16.0,1992,9,6,1 -1861,1992.7581967,658,3.09134042553192e-05,16.3,1992,10,3,1 -1862,1992.8346994,658,3.09134042553192e-05,17.0,1992,10,31,1 -1863,1992.9071038,679,2.95611340206186e-05,17.6,1992,11,27,1 -1864,1992.9822404,616,3.38945454545455e-05,23.5,1992,12,24,1 -1865,1993.0575342,632,3.27121518987342e-05,21.3,1993,1,21,1 -1866,1993.1299086,634,3.25685488958991e-05,19.5,1993,2,17,1 -1867,1993.2105022,685,2.919e-05,21.5,1993,3,16,1 -1868,1993.2828767,621,3.35185024154589e-05,19.8,1993,4,12,1 -1869,1993.3607305,599,3.52200500834725e-05,20.8,1993,5,10,1 -1870,1993.433105,580,3.67934482758621e-05,18.6,1993,6,6,1 -1871,1993.5082191,573,3.73994240837696e-05,14.9,1993,7,3,1 -1872,1993.5821917,573,3.73994240837696e-05,17.0,1993,7,30,1 -1873,1993.6573059,571,3.7575288966725e-05,15.5,1993,8,27,1 -1874,1993.7296803,548,3.969e-05,17.3,1993,9,23,1 -1875,1993.8047945,545,3.99789908256881e-05,14.6,1993,10,20,1 -1876,1993.8799086,534,4.1066404494382e-05,17.1,1993,11,17,1 -1877,1993.9550228,541,4.03692975970425e-05,18.5,1993,12,14,1 -1878,1994.0273972,536,4.08653731343284e-05,18.0,1994,1,10,1 -1879,1994.0997716,598,3.53003678929766e-05,17.7,1994,2,6,1 -1880,1994.183105,603,3.49014427860697e-05,17.5,1994,3,6,1 -1881,1994.2554794,605,3.47437190082645e-05,17.3,1994,4,2,1 -1882,1994.329452,605,3.47437190082645e-05,17.5,1994,4,29,1 -1883,1994.4045662,576,3.71379166666667e-05,15.1,1994,5,26,1 -1884,1994.4796803,573,3.73994240837696e-05,12.3,1994,6,23,1 -1885,1994.5547945,544,4.00760294117647e-05,10.0,1994,7,20,1 -1886,1994.6271689,518,4.27305405405406e-05,10.4,1994,8,16,1 -1887,1994.7022831,497,4.5077323943662e-05,11.2,1994,9,13,1 -1888,1994.7773972,507,4.39355621301775e-05,10.7,1994,10,10,1 -1889,1994.8497716,499,4.48453106212425e-05,10.7,1994,11,6,1 -1890,1994.9248858,505,4.4160297029703e-05,9.1,1994,12,3,1 -1891,1995.0015981,505,4.4160297029703e-05,9.8,1994,12,31,1 -1892,1995.0739726,484,4.66321487603306e-05,8.6,1995,1,27,1 -1893,1995.146347,470,4.84027659574468e-05,7.7,1995,2,23,1 -1894,1995.2296803,494,4.54288663967611e-05,11.6,1995,3,23,1 -1895,1995.3020547,476,4.76311764705882e-05,10.2,1995,4,19,1 -1896,1995.3771689,468,4.8664358974359e-05,10.0,1995,5,16,1 -1897,1995.4495433,472,4.81433898305085e-05,10.3,1995,6,12,1 -1898,1995.5273972,473,4.80145243128964e-05,10.0,1995,7,10,1 -1899,1995.5997716,464,4.91943103448276e-05,6.8,1995,8,6,1 -1900,1995.6721461,459,4.98697385620915e-05,7.2,1995,9,2,1 -1901,1995.7461187,459,4.98697385620915e-05,5.9,1995,9,29,1 -1902,1995.8239726,457,5.01440481400438e-05,5.3,1995,10,27,1 -1903,1995.896347,451,5.09815742793792e-05,5.4,1995,11,23,1 -1904,1995.9714611,437,5.30252402745996e-05,4.3,1995,12,20,1 -1905,1996.046448,436,5.31762385321101e-05,3.0,1996,1,17,1 -1906,1996.1188524,414,5.66827536231884e-05,2.8,1996,2,13,1 -1907,1996.1967213,412,5.70200970873787e-05,4.5,1996,3,11,1 -1908,1996.2691256,411,5.719e-05,5.0,1996,4,7,1 -1909,1996.3469945,419,5.58534844868735e-05,4.2,1996,5,5,1 -1910,1996.4193989,424,5.50437735849057e-05,4.8,1996,6,1,1 -1911,1996.4931693,424,5.50437735849057e-05,6.1,1996,6,28,1 -1912,1996.568306,425,5.48841176470588e-05,7.7,1996,7,25,1 -1913,1996.6434426,429,5.42529370629371e-05,9.3,1996,8,22,1 -1914,1996.7158469,431,5.39417401392111e-05,10.0,1996,9,18,1 -1915,1996.7909836,449,5.1265723830735e-05,6.3,1996,10,15,1 -1916,1996.8661202,451,5.09815742793792e-05,7.1,1996,11,12,1 -1917,1996.9412568,437,5.30252402745996e-05,9.8,1996,12,9,1 -1918,1997.0136986,418,5.60177511961723e-05,8.5,1997,1,5,1 -1919,1997.086073,400,5.9115e-05,5.1,1997,2,1,1 -1920,1997.1694063,404,5.84028712871287e-05,2.7,1997,3,1,1 -1921,1997.2433789,404,5.84028712871287e-05,3.7,1997,3,28,1 -1922,1997.3157534,413,5.68510169491526e-05,4.9,1997,4,24,1 -1923,1997.3908675,404,5.84028712871287e-05,4.4,1997,5,21,1 -1924,1997.4659817,405,5.82270370370371e-05,4.5,1997,6,18,1 -1925,1997.5410958,409,5.75322982885086e-05,7.0,1997,7,15,1 -1926,1997.6134703,394,6.02103045685279e-05,13.9,1997,8,11,1 -1927,1997.6885844,404,5.84028712871287e-05,12.6,1997,9,8,1 -1928,1997.7636986,424,5.50437735849057e-05,8.4,1997,10,5,1 -1929,1997.836073,439,5.27253075170843e-05,3.5,1997,11,1,1 -1930,1997.9100456,439,5.27253075170843e-05,6.7,1997,11,28,1 -1931,1997.9878995,424,5.50437735849057e-05,9.1,1997,12,26,1 -1932,1998.0602739,427,5.45670491803279e-05,17.8,1998,1,22,1 -1933,1998.1326484,423,5.52041843971631e-05,15.7,1998,2,18,1 -1934,1998.2159817,413,5.68510169491526e-05,33.9,1998,3,18,1 -1935,1998.2883561,513,4.32718713450292e-05,34.7,1998,4,14,1 -1936,1998.3634703,572,3.74872027972028e-05,24.0,1998,5,11,1 -1937,1998.4358447,555,3.90278378378378e-05,29.8,1998,6,7,1 -1938,1998.5136986,514,4.31627626459144e-05,28.2,1998,7,5,1 -1939,1998.586073,568,3.78414084507042e-05,16.0,1998,8,1,1 -1940,1998.6600456,568,3.78414084507042e-05,20.6,1998,8,28,1 -1941,1998.73242,515,4.30540776699029e-05,16.8,1998,9,24,1 -1942,1998.8102739,478,4.73782845188285e-05,28.0,1998,10,22,1 -1943,1998.8826484,502,4.45007569721116e-05,43.1,1998,11,18,1 -1944,1998.9577625,540,4.04677777777778e-05,50.9,1998,12,15,1 -1945,1999.0328767,602,3.49806976744186e-05,42.5,1999,1,12,1 -1946,1999.1052511,602,3.49806976744186e-05,50.5,1999,2,8,1 -1947,1999.1858447,589,3.60355008488964e-05,48.1,1999,3,7,1 -1948,1999.2582191,573,3.73994240837696e-05,46.5,1999,4,3,1 -1949,1999.336073,589,3.60355008488964e-05,49.3,1999,5,1,1 -1950,1999.4100456,589,3.60355008488964e-05,55.0,1999,5,28,1 -1951,1999.48242,539,4.05666233766234e-05,70.3,1999,6,24,1 -1952,1999.5575342,513,4.32718713450292e-05,74.5,1999,7,21,1 -1953,1999.6326484,609,3.44313793103448e-05,72.1,1999,8,18,1 -1954,1999.7050228,691,2.88253111432706e-05,72.9,1999,9,14,1 -1955,1999.7801369,733,2.36068383356071e-05,60.4,1999,10,11,-1 -1956,1999.8552511,751,2.27668941411451e-05,67.6,1999,11,8,-1 -1957,1999.9303652,787,2.12022712833545e-05,71.5,1999,12,5,-1 -1958,2000.0027322,752,2.27214095744681e-05,73.9,2000,1,1,-1 -1959,2000.0765027,752,2.27214095744681e-05,74.5,2000,1,28,-1 -1960,2000.1516393,794,2.09145151133501e-05,74.5,2000,2,25,-1 -1961,2000.2295081,865,1.82590317919075e-05,73.6,2000,3,23,-1 -1962,2000.3019125,848,1.88543632075472e-05,72.6,2000,4,19,-1 -1963,2000.3770491,967,1.51266158221303e-05,63.6,2000,5,16,-1 -1964,2000.4521857,1073,1.25023881640261e-05,73.7,2000,6,13,-1 -1965,2000.5273224,1167,1.05740681233933e-05,56.7,2000,7,10,-1 -1966,2000.5997267,1057,1.2864770577105e-05,57.3,2000,8,6,-1 -1967,2000.6748633,992,1.44571572580645e-05,63.4,2000,9,3,-1 -1968,2000.7486338,992,1.44571572580645e-05,49.9,2000,9,30,-1 -1969,2000.8237704,882,1.76866496598639e-05,44.8,2000,10,27,-1 -1970,2000.8961748,1023,1.36724706744868e-05,54.3,2000,11,23,-1 -1971,2000.9740437,960,1.53203125e-05,52.3,2000,12,21,-1 -1972,2001.0465753,881,1.77197077185017e-05,19.6,2001,1,17,-1 -1973,2001.1189497,774,2.1750484496124e-05,18.7,2001,2,13,-1 -1974,2001.2022831,725,2.39935344827586e-05,10.8,2001,3,13,-1 -1975,2001.2746575,995,1.43790829145729e-05,39.9,2001,4,9,-1 -1976,2001.3497716,874,1.79532322654462e-05,50.3,2001,5,6,-1 -1977,2001.4221461,832,1.94368990384615e-05,46.8,2001,6,2,-1 -1978,2001.4988584,832,1.94368990384615e-05,49.4,2001,6,30,-1 -1979,2001.5739726,808,2.03539603960396e-05,36.1,2001,7,27,-1 -1980,2001.646347,904,1.69778761061947e-05,29.3,2001,8,23,-1 -1981,2001.7187214,897,1.71996237458194e-05,27.6,2001,9,19,-1 -1982,2001.7965753,959,1.53482142857143e-05,37.0,2001,10,17,-1 -1983,2001.8689497,865,1.82590317919075e-05,42.1,2001,11,13,-1 -1984,2001.9440639,833,1.93998349339736e-05,37.9,2001,12,10,-1 -1985,2002.019178,977,1.48547210849539e-05,40.5,2002,1,7,-1 -1986,2002.0915525,826,1.96611682808717e-05,49.6,2002,2,3,-1 -1987,2002.1721461,888,1.74898648648649e-05,42.6,2002,3,2,-1 -1988,2002.2461187,888,1.74898648648649e-05,46.2,2002,3,29,-1 -1989,2002.3212328,895,1.72636173184358e-05,44.8,2002,4,26,-1 -1990,2002.396347,900,1.71041666666667e-05,37.3,2002,5,23,-1 -1991,2002.4687214,863,1.83278534183082e-05,38.3,2002,6,19,-1 -1992,2002.5438356,948,1.56590189873418e-05,43.1,2002,7,16,-1 -1993,2002.6189497,1058,1.28418005671077e-05,36.1,2002,8,13,-1 -1994,2002.6913242,963,1.52369548286604e-05,55.8,2002,9,9,-1 -1995,2002.7664383,926,1.63027807775378e-05,45.4,2002,10,6,-1 -1996,2002.8415525,1023,1.36724706744868e-05,38.1,2002,11,3,-1 -1997,2002.9155251,1023,1.36724706744868e-05,45.3,2002,11,30,-1 -1998,2002.9906392,986,1.46147312373225e-05,50.2,2002,12,27,-1 -1999,2003.0630136,895,1.72636173184358e-05,51.5,2003,1,23,-1 -2000,2003.1381278,892,1.73601457399103e-05,43.8,2003,2,20,-1 -2001,2003.2187214,876,1.78861301369863e-05,39.9,2003,3,19,-1 -2002,2003.2910958,909,1.68215759075908e-05,39.4,2003,4,15,-1 -2003,2003.3689497,945,1.57450396825397e-05,42.4,2003,5,13,-1 -2004,2003.4413242,1067,1.26370079662605e-05,42.0,2003,6,9,-1 -2005,2003.5164383,959,1.53482142857143e-05,43.6,2003,7,6,-1 -2006,2003.5888127,908,1.68526982378855e-05,39.2,2003,8,2,-1 -2007,2003.6655251,908,1.68526982378855e-05,36.7,2003,8,30,-1 -2008,2003.7378995,869,1.81223388952819e-05,31.9,2003,9,26,-1 -2009,2003.8130136,963,1.52369548286604e-05,44.9,2003,10,23,-1 -2010,2003.8853881,1281,8.61519320843091e-06,42.2,2003,11,19,-1 -2011,2003.963242,930,1.61834677419355e-05,45.5,2003,12,17,-1 -2012,2004.0355191,936,1.60064102564103e-05,49.6,2004,1,13,-1 -2013,2004.1079234,784,2.13271683673469e-05,38.5,2004,2,9,-1 -2014,2004.1885245,705,2.4998670212766e-05,31.8,2004,3,8,-1 -2015,2004.2609289,676,2.65617603550296e-05,36.3,2004,4,4,-1 -2016,2004.3360655,630,2.93363095238095e-05,33.6,2004,5,1,-1 -2017,2004.409836,630,2.93363095238095e-05,30.1,2004,5,28,-1 -2018,2004.4849726,636,2.89516509433962e-05,30.8,2004,6,25,-1 -2019,2004.5601092,693,2.56295995670996e-05,34.3,2004,7,22,-1 -2020,2004.6325136,662,2.73653700906344e-05,26.4,2004,8,18,-1 -2021,2004.704918,632,2.92072784810127e-05,23.2,2004,9,14,-1 -2022,2004.7827868,545,3.56955275229358e-05,23.4,2004,10,12,-1 -2023,2004.8551912,645,2.83880813953488e-05,33.3,2004,11,8,-1 -2024,2004.9303278,615,3.03307926829268e-05,35.8,2004,12,5,-1 -2025,2005.0054794,788,2.11608502538071e-05,32.2,2005,1,2,-1 -2026,2005.079452,788,2.11608502538071e-05,41.1,2005,1,29,-1 -2027,2005.1518264,642,2.85741822429907e-05,38.2,2005,2,25,-1 -2028,2005.23242,620,2.99939516129032e-05,32.0,2005,3,24,-1 -2029,2005.3075342,589,3.21745543293718e-05,23.8,2005,4,21,-1 -2030,2005.3826484,681,2.62827643171806e-05,20.8,2005,5,18,-1 -2031,2005.4550228,610,3.06731557377049e-05,21.6,2005,6,14,-1 -2032,2005.5301369,643,2.85119556765163e-05,22.8,2005,7,11,-1 -2033,2005.6052511,676,2.65617603550296e-05,17.8,2005,8,8,-1 -2034,2005.6776255,798,2.07523496240602e-05,20.6,2005,9,4,-1 -2035,2005.7527397,596,3.16623322147651e-05,22.4,2005,10,1,-1 -2036,2005.829452,596,3.16623322147651e-05,22.7,2005,10,29,-1 -2037,2005.9018264,542,3.59564114391144e-05,24.1,2005,11,25,-1 -2038,2005.9769406,540,3.61319444444445e-05,18.8,2005,12,22,-1 -2039,2006.049315,516,3.83444767441861e-05,9.7,2006,1,18,-1 -2040,2006.1244292,462,4.41631493506494e-05,16.8,2006,2,15,-1 -2041,2006.2050228,435,4.7614224137931e-05,18.0,2006,3,14,-1 -2042,2006.2773972,430,4.83008720930233e-05,17.6,2006,4,10,-1 -2043,2006.3552511,423,4.92894503546099e-05,12.6,2006,5,8,-1 -2044,2006.4276255,423,4.92894503546099e-05,15.0,2006,6,4,-1 -2045,2006.5027397,443,4.65478273137698e-05,16.7,2006,7,1,-1 -2046,2006.5767123,443,4.65478273137698e-05,18.7,2006,7,28,-1 -2047,2006.6518264,436,4.74787844036697e-05,18.4,2006,8,25,-1 -2048,2006.7242009,440,4.69431818181818e-05,11.0,2006,9,21,-1 -2049,2006.799315,407,5.16767506142506e-05,10.9,2006,10,18,-1 -2050,2006.8716894,408,5.15220588235294e-05,11.6,2006,11,14,-1 -2051,2006.9495433,467,4.35678533190578e-05,16.8,2006,12,12,-1 -2052,2007.0219178,391,5.42594309462916e-05,15.9,2007,1,8,-1 -2053,2007.0942922,396,5.34299242424242e-05,12.9,2007,2,4,-1 -2054,2007.1776255,376,5.68803191489362e-05,11.3,2007,3,4,-1 -2055,2007.2515981,376,5.68803191489362e-05,13.6,2007,3,31,-1 -2056,2007.3239726,355,6.09216549295775e-05,13.6,2007,4,27,-1 -2057,2007.3990867,351,6.17462606837607e-05,15.6,2007,5,24,-1 -2058,2007.4742009,354,6.11260593220339e-05,14.3,2007,6,21,-1 -2059,2007.549315,357,6.05162815126051e-05,13.3,2007,7,18,-1 -2060,2007.6216894,361,5.97190096952909e-05,15.8,2007,8,14,-1 -2061,2007.6940639,352,6.15383522727273e-05,14.4,2007,9,10,-1 -2062,2007.7719178,348,6.23771551724138e-05,15.2,2007,10,8,-1 -2063,2007.8442922,353,6.13316218130312e-05,14.8,2007,11,4,-1 -2064,2007.9194063,340,6.41139705882353e-05,14.9,2007,12,1,-1 -2065,2007.9961187,340,6.41139705882353e-05,17.7,2007,12,29,-1 -2066,2008.068306,360,5.99166666666667e-05,20.8,2008,1,25,-1 -2067,2008.1407103,367,5.85556880108992e-05,19.6,2008,2,21,-1 -2068,2008.2185792,362,5.95224447513812e-05,17.6,2008,3,19,-1 -2069,2008.2937158,361,5.97190096952909e-05,16.1,2008,4,16,-1 -2070,2008.3688524,370,5.79881756756757e-05,14.8,2008,5,13,-1 -2071,2008.4412568,367,5.85556880108992e-05,15.1,2008,6,9,-1 -2072,2008.5163934,356,6.07183988764045e-05,12.8,2008,7,6,-1 -2073,2008.59153,342,6.3672149122807e-05,12.8,2008,8,3,-1 -2074,2008.6653005,342,6.3672149122807e-05,14.8,2008,8,30,-1 -2075,2008.7377049,336,6.50133928571429e-05,9.7,2008,9,26,-1 -2076,2008.8155737,322,6.83373447204969e-05,9.0,2008,10,24,-1 -2077,2008.8879781,302,7.36204470198676e-05,10.7,2008,11,20,-1 -2078,2008.9631147,309,7.16935679611651e-05,8.1,2008,12,17,-1 -2079,2009.0356164,302,7.36204470198676e-05,9.6,2009,1,13,-1 -2080,2009.1107305,285,7.86940789473684e-05,10.4,2009,2,10,-1 -2081,2009.1913242,276,8.16331521739131e-05,9.7,2009,3,9,-1 -2082,2009.2636986,267,8.47703651685393e-05,7.7,2009,4,5,-1 -2083,2009.3415525,267,8.47703651685393e-05,4.8,2009,5,3,-1 -2084,2009.4155251,267,8.47703651685393e-05,6.6,2009,5,30,-1 -2085,2009.4878995,270,8.37013888888889e-05,7.8,2009,6,26,-1 -2086,2009.5630136,269,8.40550650557621e-05,9.3,2009,7,23,-1 -2087,2009.6381278,274,8.23125e-05,5.8,2009,8,20,-1 -2088,2009.7105022,270,8.37013888888889e-05,5.2,2009,9,16,-1 -2089,2009.7856164,260,8.73605769230769e-05,4.5,2009,10,13,-1 -2090,2009.8579908,258,8.81264534883721e-05,9.8,2009,11,9,-1 -2091,2009.9358447,255,8.92977941176471e-05,17.3,2009,12,7,-1 -2092,2010.0082191,271,8.33503228782288e-05,25.1,2010,1,3,-1 -2093,2010.0821917,271,8.33503228782288e-05,22.1,2010,1,30,-1 -2094,2010.1573059,316,6.98520569620253e-05,24.0,2010,2,27,-1 -2095,2010.2378995,347,6.25898775216138e-05,23.8,2010,3,26,-1 -2096,2010.3102739,376,5.68803191489362e-05,21.6,2010,4,22,-1 -2097,2010.3853881,361,5.97190096952909e-05,26.2,2010,5,19,-1 -2098,2010.4605022,371,5.78010444743935e-05,23.4,2010,6,16,-1 -2099,2010.5356164,377,5.66991047745358e-05,32.6,2010,7,13,-1 -2100,2010.6079908,388,5.47673969072165e-05,25.7,2010,8,9,-1 -2101,2010.6803652,388,5.47673969072165e-05,33.0,2010,9,5,-1 -2102,2010.7582191,374,5.72456550802139e-05,23.6,2010,10,3,-1 -2103,2010.8321917,374,5.72456550802139e-05,21.4,2010,10,30,-1 -2104,2010.9045662,389,5.45972043701799e-05,17.8,2010,11,26,-1 -2105,2010.98242,412,5.09108009708738e-05,36.4,2010,12,24,-1 -2106,2011.0547945,398,5.31039572864322e-05,54.3,2011,1,20,-1 -2107,2011.1271689,414,5.06096014492754e-05,54.9,2011,2,16,-1 -2108,2011.2077625,426,4.88617957746479e-05,62.4,2011,3,15,-1 -2109,2011.2828767,496,4.0351814516129e-05,64.1,2011,4,12,-1 -2110,2011.3579908,453,4.5267798013245e-05,56.3,2011,5,9,-1 -2111,2011.4303652,551,3.51822822141561e-05,45.2,2011,6,5,-1 -2112,2011.5082191,518,3.81522683397683e-05,42.3,2011,7,3,-1 -2113,2011.5821917,518,3.81522683397683e-05,47.8,2011,7,30,-1 -2114,2011.6545662,509,3.90291011787819e-05,47.0,2011,8,26,-1 -2115,2011.7269406,513,3.86355994152047e-05,57.2,2011,9,22,-1 -2116,2011.8047945,534,3.66664325842697e-05,49.0,2011,10,20,-1 -2117,2011.8771689,488,4.12008196721312e-05,55.8,2011,11,16,-1 -2118,2011.9522831,438,4.72097602739726e-05,60.9,2011,12,13,-1 -2119,2012.0245901,490,4.09859693877551e-05,60.7,2012,1,9,-1 -2120,2012.0997267,533,3.67566838649156e-05,63.5,2012,2,6,-1 -2121,2012.1775956,634,2.90790615141956e-05,58.2,2012,3,4,-1 -2122,2012.2513661,634,2.90790615141956e-05,54.9,2012,3,31,-1 -2123,2012.3265027,506,3.93283102766798e-05,55.9,2012,4,28,-1 -2124,2012.4016393,494,4.0561487854251e-05,60.3,2012,5,25,-1 -2125,2012.4740437,546,3.56092032967033e-05,68.3,2012,6,21,-1 -2126,2012.5491803,664,2.72484939759036e-05,66.4,2012,7,18,-1 -2127,2012.6243169,643,2.85119556765163e-05,64.8,2012,8,15,-1 -2128,2012.6967213,583,3.26233919382504e-05,66.1,2012,9,11,-1 -2129,2012.7718579,587,3.23231473594549e-05,70.4,2012,10,8,-1 -2130,2012.8442622,571,3.7575288966725e-05,67.5,2012,11,4,1 -2131,2012.9221311,544,4.00760294117647e-05,68.7,2012,12,2,1 -2132,2012.9959016,544,4.00760294117647e-05,64.2,2012,12,29,1 -2133,2013.0684931,533,4.11674859287054e-05,70.3,2013,1,25,1 -2134,2013.1436073,530,4.14730188679245e-05,73.2,2013,2,22,1 -2135,2013.2242009,564,3.82006382978723e-05,69.2,2013,3,21,1 -2136,2013.2965753,559,3.86569051878354e-05,68.7,2013,4,17,1 -2137,2013.3716894,674,2.98754599406528e-05,67.9,2013,5,14,1 -2138,2013.4468036,679,2.95611340206186e-05,61.9,2013,6,11,1 -2139,2013.5219178,665,3.04531578947368e-05,67.7,2013,7,8,1 -2140,2013.5942922,640,3.2143125e-05,67.6,2013,8,4,1 -2141,2013.6682648,640,3.2143125e-05,59.6,2013,8,31,1 -2142,2013.7433789,614,3.404667752443e-05,60.8,2013,9,28,1 -2143,2013.8184931,571,3.7575288966725e-05,57.6,2013,10,25,1 -2144,2013.8908675,590,3.59527118644068e-05,59.9,2013,11,21,1 -2145,2013.9687214,625,3.3222e-05,63.1,2013,12,19,1 -2146,2014.0410958,606,3.46652475247525e-05,66.3,2014,1,15,1 -2147,2014.1134703,681,2.94366960352423e-05,70.5,2014,2,11,1 -2148,2014.1940639,652,3.13157668711657e-05,54.4,2014,3,10,1 -2149,2014.269178,633,3.26402369668247e-05,48.9,2014,4,7,1 -2150,2014.3442922,660,3.07809090909091e-05,28.9,2014,5,4,1 -2151,2014.4182648,660,3.07809090909091e-05,25.4,2014,5,31,1 -2152,2014.4933789,656,3.10467073170732e-05,24.8,2014,6,28,1 -2153,2014.5684931,628,3.3002101910828e-05,40.2,2014,7,25,1 -2154,2014.6408675,590,3.59527118644068e-05,49.4,2014,8,21,1 -2155,2014.713242,634,3.25685488958991e-05,65.5,2014,9,17,1 -2156,2014.7910958,632,3.27121518987342e-05,64.9,2014,10,15,1 -2157,2014.8634703,645,3.17946511627907e-05,41.8,2014,11,11,1 -2158,2014.9385844,731,2.65470451436389e-05,45.1,2014,12,8,1 -2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 -2293,2025.0164384,849,1.0886669720848057e-07,61.2,2025,1,6,-1 diff --git a/Fetching/fetch_script.py b/Fetching/fetch_script.py deleted file mode 100644 index 7112ea4..0000000 --- a/Fetching/fetch_script.py +++ /dev/null @@ -1,196 +0,0 @@ -# @file fetch_script.py -# @author: Marek Hamracek -# -# -# SETTING UP CRON -# -# crontab -e -# 0 10 1 * * /path/to/python3 /path/to/fetch_script.py #First day of any month at 10 AM -# #Replace /path/to/ -# -# -# - -import requests -import pandas as pd -import urllib3 -import datetime -import argparse - -# Disable the InsecureRequestWarning - http://wso.stanford.edu/Tilts.html site does not have a certificate -urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) - -# Define the URL -url_flow_speed = "https://omniweb.gsfc.nasa.gov/cgi/nx1.cgi" -url_phi = "https://cosmicrays.oulu.fi/phi/Phi_Table_2017.txt" -url_tilt_angle = "http://wso.stanford.edu/Tilts.html" - -# Define the payload for OMNIWEB form request -payload = { - "activity": "retrieve", - "res": "daily", - "spacecraft": "omni2_daily", - "start_date": "20250101", - "end_date": "20250110", - "vars": "24", -} - -def connect_to_url(url, method='get', data=None, verify_ssl=True): - """Connect to a URL and handle exceptions.""" - try: - if method == 'get': - response = requests.get(url, verify=verify_ssl) - elif method == 'post': - response = requests.post(url, data=data) - response.raise_for_status() - print(f"{url} connected successfully.") - return response - except requests.exceptions.RequestException as e: - print(f"Error connecting to {url}: {e}") - return None - -def parse_to_csv(html_content: str, table_start: str, table_end: str, header_start: str, output_file_path: str): - """Parse HTML content and save to CSV.""" - - try: - # Clean text_data - text_data = html_content.replace("\x00", "") - start_index, end_index = None, None - header = None - lines = text_data.splitlines() - - # Locate to-be-read table on html content - for i, line in enumerate(lines): - if header_start in line: - header = line.split() - - if table_end in line and start_index is not None: - end_index = i - break - elif table_start in line: - start_index = i - - if start_index is None or end_index is None: - raise ValueError("Table boundaries not found.\n\n") - - if header is None: - print("Warning: No header found, generating default header.") - - # Convert to desired format - table_string = "\n".join(lines[start_index + 1:end_index]) - rows = table_string.split("\n") - data = [row.split() for row in rows] - - # Write to .csv file - df = pd.DataFrame(data, columns=header) - df.to_csv(output_file_path, index=False) - print("Table data were saved to:", output_file_path) - - with open(args.log_file, "a") as log_file: - log_file.write("\nThe most up-to-date entry from " + output_file_path + ":\n" + str(df.tail(1))) - - return df.tail(1) - - except ValueError as e: - print(f"Value Error: {e}") - except Exception as e: - print(f"An unspecified error occurred: {e}") - -def compute_new_entry(last_entry_flow_speed, last_entry_phi, last_entry_tilt_angle): - """Compute and append a new entry to an existing CSV.""" - - filepath = args.csv_file - - try: - df = pd.read_csv(filepath) - - # Date format conversion - date = pd.to_datetime(last_entry_tilt_angle['Start'], format='%Y:%m:%d') - - carrington_rotation = last_entry_tilt_angle.iloc[0]['Rot'] - year_week = round(date.dt.year.iloc[0] + date.dt.day_of_year.iloc[0] / 365, 7) - modulation_potentional = last_entry_phi.iloc[0].dropna().iloc[-1] # Last non-NaN value #Geliosphere has some calcs that are yet to be considered - k0_au2_s = (float(last_entry_flow_speed.iloc[0]['1']) * 6.68459e-9) * (99 / (3 * int(modulation_potentional))) #1D Models - tilt_angle = last_entry_tilt_angle.iloc[0]['R_av'] - year = date.dt.year.iloc[0] - month = date.dt.month.iloc[0] - day = date.dt.day.iloc[0] - #polarity = 1 if (month in [12, 1, 2] and ((month == 12 and day >= 21) or month == 1 or month == 2)) or month in [3, 4, 5, 10, 11] else -1 - reference_year = 2012 - years_since_ref = year - reference_year - - # Determine polarity by checking the 11-year cycle - if (years_since_ref // 11) % 2 == 0: - polarity = 1 - else: - polarity = -1 - - # 2D Solarprop-like Models - #if polarity == 1: - # k0_au2_s = (137/int(modulation_potentional)) - 0.061 - #elif polarity == -1: - # k0_au2_s = 0.07 * (137/int(modulation_potentional)) - 0.061 - - - # Create a new row as a DataFrame - new_row = pd.DataFrame({ - 'carrington_rotation': [carrington_rotation], - 'year_week': [year_week], - 'modulation_potentional': [modulation_potentional], - 'k0_au2/s': [k0_au2_s], - 'tilt_angle': [tilt_angle], - 'year': [year], - 'month': [month], - 'day': [day], - 'polarity': [polarity] - }) - - df = pd.concat([df, new_row], ignore_index=True) - - print("\n Last entries: file: ",filepath," \n---------------------------------------------------") - print(df.tail(5),"\n") - df.to_csv(filepath, index=False) - - except ValueError as e: - print(f"Value Error: {e}") - except Exception as e: - print(f"An error occurred when computing new entry: {e}") - -def log_script_start(): - """Log the start of the script.""" - - with open(args.log_file, "w") as log_file: - log_file.write(f"\nScript started successfully at {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n") - -def main(): - """Main function to orchestrate the script.""" - - print("\n") - print(f"Script started successfully at {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") - print("\n") - - log_script_start() - - response_flow_speed = connect_to_url(url_flow_speed, method='post', data=payload) - response_phi = connect_to_url(url_phi, verify_ssl=False) - response_tilt_angle = connect_to_url(url_tilt_angle) - - if response_flow_speed and response_phi and response_tilt_angle: - last_entry_flow_speed = parse_to_csv(response_flow_speed.text, "YEAR DOY", "", "YEAR DOY", "table_data_flow_speed.csv") - last_entry_phi = parse_to_csv(response_phi.text, "+++", "+++", "Year Jan", "table_data_phi.csv") - last_entry_tilt_angle = parse_to_csv(response_tilt_angle.text, "Carr Rot", "", "Carr Rot", "table_data_tilt_angle.csv") - compute_new_entry(last_entry_flow_speed, last_entry_phi, last_entry_tilt_angle) - - print(args.csv_file, "has been updated successfully") - - print(args.log_file ," has been updated successfully\n") - -if __name__ == "__main__": - # Set up argument parser - parser = argparse.ArgumentParser(description="Fetch and process data.") - parser.add_argument('--csv_file', type=str, default='Geliosphere_K0_phi_table.csv', help="Path to the output CSV file") - parser.add_argument('--log_file', type=str, default='fetch_script_log.txt', help="Path to the output log file") - - args = parser.parse_args() - - main() \ No newline at end of file diff --git a/Fetching/fetch_script_log.txt b/Fetching/fetch_script_log.txt deleted file mode 100644 index 78dbc2f..0000000 --- a/Fetching/fetch_script_log.txt +++ /dev/null @@ -1,12 +0,0 @@ - -Script started successfully at 2025-03-11 14:52:10 - -The most up-to-date entry from table_data_flow_speed.csv: - YEAR DOY HR 1 -9 2025 10 0 419. -The most up-to-date entry from table_data_phi.csv: - Year Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Annual -73 2024 764 770 766 759 812 766 728 788 849 None None None None -The most up-to-date entry from table_data_tilt_angle.csv: - Carr Rot Start Date R_av R_n R_s L_av L_n L_s -651 CR 2293 2025:01:06 19h 61.2 53.1 -69.2 74.1 74.3 -74.0 \ No newline at end of file diff --git a/Fetching/table_data_flow_speed.csv b/Fetching/table_data_flow_speed.csv deleted file mode 100644 index 7abcfb2..0000000 --- a/Fetching/table_data_flow_speed.csv +++ /dev/null @@ -1,11 +0,0 @@ -YEAR,DOY,HR,1 -2025,1,0,504. -2025,2,0,509. -2025,3,0,436. -2025,4,0,535. -2025,5,0,593. -2025,6,0,540. -2025,7,0,534. -2025,8,0,450. -2025,9,0,378. -2025,10,0,419. diff --git a/Fetching/table_data_phi.csv b/Fetching/table_data_phi.csv deleted file mode 100644 index 023ca47..0000000 --- a/Fetching/table_data_phi.csv +++ /dev/null @@ -1,75 +0,0 @@ -Year,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec,Annual -1951,N/A,661,651,642,601,571,600,623,580,574,588,573,606 -1952,599,609,622,595,557,540,528,529,521,558,541,553,563 -1953,575,563,569,565,564,553,561,556,553,543,545,533,557 -1954,527,515,497,504,499,501,495,480,485,487,495,504,499 -1955,539,505,503,503,496,500,500,508,496,516,513,549,511 -1956,580,606,656,613,637,627,602,607,632,580,663,775,632 -1957,856,863,840,914,872,902,933,893,1015,970,986,1046,924 -1958,1040,1021,1078,1061,978,937,1010,954,939,936,922,959,986 -1959,932,966,900,862,925,880,1071,1038,992,909,896,916,941 -1960,962,932,888,947,945,906,905,854,856,856,892,850,899 -1961,789,770,771,775,746,750,856,784,753,729,683,700,759 -1962,704,715,705,720,689,682,675,675,696,701,677,686,694 -1963,644,627,629,611,634,610,606,615,641,619,608,591,620 -1964,577,579,562,553,538,531,534,529,521,518,516,499,538 -1965,497,495,484,472,466,498,515,517,511,499,484,485,494 -1966,501,503,525,534,517,551,571,575,673,614,591,616,564 -1967,633,647,614,623,659,675,656,683,674,663,691,694,659 -1968,680,688,693,684,708,752,746,732,758,801,883,854,748 -1969,761,756,771,788,864,897,861,812,784,774,770,772,801 -1970,768,740,746,791,783,849,848,801,754,736,776,704,775 -1971,691,652,644,644,627,579,574,559,557,535,538,550,596 -1972,545,542,509,499,516,565,533,649,542,529,554,532,543 -1973,525,528,548,603,639,582,559,546,513,516,508,505,548 -1974,514,500,527,535,580,603,648,605,635,629,614,566,580 -1975,560,535,527,517,511,501,506,523,516,520,545,524,524 -1976,531,521,522,540,520,508,501,500,492,495,494,499,510 -1977,506,503,492,499,498,510,546,540,541,515,504,503,513 -1978,547,560,568,613,667,623,619,560,555,603,583,583,590 -1979,622,638,664,720,696,757,757,821,799,748,749,701,723 -1980,717,727,692,735,734,813,817,803,793,853,905,906,791 -1981,833,878,888,919,955,869,860,858,816,911,894,827,876 -1982,773,877,784,765,735,880,1012,1008,1082,1008,973,1029,911 -1983,936,876,816,807,890,834,776,777,748,743,733,731,806 -1984,710,722,763,791,859,807,784,747,731,730,739,725,759 -1985,709,665,654,637,629,596,606,606,575,571,554,561,614 -1986,564,627,578,524,515,511,508,507,503,488,524,491,528 -1987,466,446,447,451,470,507,527,551,571,571,597,594,517 -1988,665,640,627,642,636,646,691,703,694,712,723,796,681 -1989,828,832,980,956,1014,1000,912,952,986,1055,1126,1078,977 -1990,1018,1000,1034,1103,1123,1125,1036,1059,999,941,890,889,1018 -1991,826,814,1018,990,972,1360,1334,1133,990,953,943,895,1019 -1992,889,923,852,769,797,734,693,696,713,671,688,646,756 -1993,658,662,695,651,635,620,612,612,596,591,593,595,627 -1994,596,635,625,631,612,610,594,574,556,564,563,570,594 -1995,553,542,560,549,542,544,541,535,530,533,530,526,540 -1996,522,505,505,499,505,505,506,509,514,522,525,517,511 -1997,506,497,494,498,495,496,499,489,496,507,518,510,500 -1998,505,500,498,559,606,583,554,589,558,536,552,576,551 -1999,618,623,609,593,601,584,568,632,687,719,735,757,644 -2000,728,759,795,788,846,899,958,908,868,811,889,859,842 -2001,820,761,723,866,789,769,757,809,804,844,798,775,793 -2002,851,767,798,804,801,785,830,889,841,820,870,849,825 -2003,822,821,808,833,844,903,853,834,800,844,1026,840,852 -2004,852,766,715,691,664,663,700,685,660,601,667,651,693 -2005,757,675,656,634,692,647,663,686,755,629,603,603,667 -2006,582,552,522,519,506,508,521,519,514,496,500,546,524 -2007,492,498,484,463,459,456,459,463,453,455,462,453,466 -2008,462,465,462,464,465,463,457,445,437,437,429,426,451 -2009,421,414,407,398,389,393,393,396,389,390,397,390,398 -2010,398,436,448,475,462,471,478,489,483,483,496,499,468 -2011,488,486,513,568,534,599,576,568,568,590,549,516,546 -2012,542,574,644,557,555,590,662,649,610,610,601,587,598 -2013,571,565,595,590,667,675,656,644,630,598,610,635,620 -2014,630,670,650,639,620,658,640,607,640,636,648,703,645 -2015,674,672,709,684,654,664,628,622,623,612,603,590,645 -2016,554,526,531,529,524,525,537,519,518,497,482,483,519 -2017,465,458,451,466,460,453,477,505,522,493,466,460,473 -2018,459,451,448,442,446,431,433,433,429,425,430,434,439 -2019,434,438,421,421,444,426,426,429,419,414,418,417,426 -2020,410,398,402,391,399,408,411,412,413,416,416,431,409 -2021,435,464,430,419,422,428,438,428,432,432,453,443,436 -2022,449,472,474,482,514,551,579,607,583,563,566,622,539 -2023,634,686,694,662,676,680,712,749,758,720,760,775,709 -2024,764,770,766,759,812,766,728,788,849,,,, diff --git a/Fetching/table_data_tilt_angle.csv b/Fetching/table_data_tilt_angle.csv deleted file mode 100644 index 3d1c77b..0000000 --- a/Fetching/table_data_tilt_angle.csv +++ /dev/null @@ -1,653 +0,0 @@ -Carr,Rot,Start,Date,R_av,R_n,R_s,L_av,L_n,L_s -CR,1642,1976:05:27,15h,6.8,4.7,-9.0,14.5,13.6,-15.5 -CR,1643,1976:06:23,21h,6.2,4.5,-7.8,15.3,15.7,-14.8 -CR,1644,1976:07:21,04h,6.8,8.2,-5.5,20.0,26.6,-13.5 -CR,1645,1976:08:17,11h,4.0,4.1,-4.0,13.2,12.2,-14.2 -CR,1646,1976:09:13,17h,6.7,8.7,-4.7,14.8,14.7,-15.0 -CR,1647,1976:10:11,00h,7.9,7.4,-8.4,16.1,14.1,-18.1 -CR,1648,1976:11:07,06h,7.1,5.8,-8.5,13.7,12.8,-14.6 -CR,1649,1976:12:04,13h,7.4,7.0,-7.9,17.0,19.0,-15.1 -CR,1650,1976:12:31,20h,6.6,4.3,-8.8,17.3,15.3,-19.2 -CR,1651,1977:01:28,02h,7.7,2.5,-12.9,17.6,16.9,-18.3 -CR,1652,1977:02:24,09h,4.4,0.2,-8.5,15.3,14.9,-15.6 -CR,1653,1977:03:23,15h,8.6,4.3,-13.0,23.3,17.7,-29.0 -CR,1654,1977:04:19,22h,13.7,12.0,-15.4,28.3,25.4,-31.2 -CR,1655,1977:05:17,05h,14.0,12.5,-15.5,32.9,30.6,-35.3 -CR,1656,1977:06:13,11h,15.5,13.6,-17.3,32.9,27.8,-38.0 -CR,1657,1977:07:10,18h,11.8,11.5,-12.2,25.4,20.6,-30.1 -CR,1658,1977:08:07,00h,10.0,9.8,-10.1,19.4,14.4,-24.4 -CR,1659,1977:09:03,07h,12.5,10.4,-14.7,23.0,19.7,-26.2 -CR,1660,1977:09:30,14h,12.3,9.3,-15.2,21.8,14.6,-28.9 -CR,1661,1977:10:27,20h,12.4,9.8,-15.1,29.1,29.0,-29.2 -CR,1662,1977:11:24,03h,16.3,9.5,-23.1,36.8,31.9,-41.6 -CR,1663,1977:12:21,10h,15.7,14.5,-16.9,34.2,39.5,-29.0 -CR,1664,1978:01:17,16h,26.7,25.6,-27.9,53.2,54.4,-52.0 -CR,1665,1978:02:13,23h,36.1,38.9,-33.2,56.5,58.9,-54.1 -CR,1666,1978:03:13,05h,32.7,37.5,-28.0,54.1,58.2,-50.1 -CR,1667,1978:04:09,12h,26.5,25.8,-27.2,48.1,49.1,-47.2 -CR,1668,1978:05:06,19h,30.4,32.3,-28.4,51.1,52.9,-49.3 -CR,1669,1978:06:03,01h,24.5,29.5,-19.4,44.4,49.3,-39.4 -CR,1670,1978:06:30,08h,27.1,36.2,-18.0,46.0,54.8,-37.1 -CR,1671,1978:07:27,14h,26.4,30.6,-22.2,44.2,52.6,-35.8 -CR,1672,1978:08:23,21h,34.1,51.6,-16.5,62.9,74.1,-51.6 -CR,1673,1978:09:20,04h,51.3,52.4,-50.3,69.6,74.8,-64.3 -CR,1674,1978:10:17,10h,46.5,41.6,-51.3,63.7,61.6,-65.7 -CR,1675,1978:11:13,17h,43.9,42.3,-45.4,61.3,61.3,-61.3 -CR,1676,1978:12:10,23h,45.3,45.8,-44.7,65.8,66.0,-65.7 -CR,1677,1979:01:07,06h,47.5,47.8,-47.2,66.4,66.6,-66.3 -CR,1678,1979:02:03,13h,59.2,60.5,-58.0,74.4,73.8,-75.0 -CR,1679,1979:03:02,19h,55.2,47.9,-62.6,70.7,67.0,-74.5 -CR,1680,1979:03:30,02h,65.4,60.8,-69.9,74.8,75.1,-74.4 -CR,1681,1979:04:26,08h,67.6,61.9,-73.4,73.7,74.0,-73.3 -CR,1682,1979:05:23,15h,62.5,64.7,-60.3,75.0,75.1,-75.0 -CR,1683,1979:06:19,22h,66.3,75.1,-57.5,74.2,74.7,-73.7 -CR,1684,1979:07:17,04h,71.5,74.7,-68.4,74.4,73.8,-75.0 -CR,1685,1979:08:13,11h,62.0,71.3,-52.7,74.0,74.8,-73.2 -CR,1686,1979:09:09,17h,70.6,73.5,-67.8,72.4,70.8,-74.0 -CR,1687,1979:10:07,00h,73.8,74.1,-73.4,74.5,74.0,-74.9 -CR,1688,1979:11:03,07h,70.9,75.1,-66.6,67.3,59.5,-75.1 -CR,1689,1979:11:30,13h,69.1,73.2,-65.0,70.5,74.8,-66.3 -CR,1690,1979:12:27,20h,72.0,75.0,-68.9,74.5,74.0,-75.0 -CR,1691,1980:01:24,03h,65.1,72.3,-58.0,73.5,73.5,-73.4 -CR,1692,1980:02:20,09h,69.8,64.6,-75.1,74.9,74.9,-74.8 -CR,1693,1980:03:18,16h,64.8,56.9,-72.7,74.1,73.6,-74.6 -CR,1694,1980:04:14,22h,50.4,50.9,-49.9,71.4,68.2,-74.6 -CR,1695,1980:05:12,05h,41.0,37.4,-44.5,58.6,56.2,-60.9 -CR,1696,1980:06:08,12h,31.2,33.1,-29.2,50.7,53.6,-47.8 -CR,1697,1980:07:05,18h,44.0,41.2,-46.9,58.1,57.6,-58.5 -CR,1698,1980:08:02,01h,48.5,50.1,-47.0,68.4,70.6,-66.1 -CR,1699,1980:08:29,07h,42.7,40.7,-44.6,64.1,67.2,-61.0 -CR,1700,1980:09:25,14h,44.2,38.9,-49.4,64.7,62.5,-66.9 -CR,1701,1980:10:22,21h,47.3,43.8,-50.8,67.2,65.2,-69.1 -CR,1702,1980:11:19,03h,47.3,43.8,-50.9,66.5,65.5,-67.6 -CR,1703,1980:12:16,10h,37.3,28.1,-46.6,55.7,49.7,-61.7 -CR,1704,1981:01:12,16h,40.0,31.5,-48.5,60.3,54.2,-66.5 -CR,1705,1981:02:08,23h,50.0,51.5,-48.4,62.1,60.6,-63.6 -CR,1706,1981:03:08,06h,49.7,58.0,-41.5,58.4,60.5,-56.4 -CR,1707,1981:04:04,12h,54.6,64.5,-44.7,65.4,71.8,-59.0 -CR,1708,1981:05:01,19h,47.6,53.5,-41.7,63.1,67.3,-59.0 -CR,1709,1981:05:29,01h,42.2,50.8,-33.7,60.9,66.2,-55.5 -CR,1710,1981:06:25,08h,44.4,43.7,-45.1,68.1,64.6,-71.7 -CR,1711,1981:07:22,15h,36.9,43.6,-30.2,58.6,64.4,-52.8 -CR,1712,1981:08:18,21h,31.1,25.5,-36.7,56.3,51.8,-60.8 -CR,1713,1981:09:15,04h,35.0,34.8,-35.2,55.6,51.5,-59.7 -CR,1714,1981:10:12,10h,33.3,39.0,-27.7,49.9,48.5,-51.3 -CR,1715,1981:11:08,17h,27.2,30.6,-23.8,47.7,43.4,-51.9 -CR,1716,1981:12:06,00h,28.0,24.8,-31.2,47.6,39.6,-55.5 -CR,1717,1982:01:02,06h,29.8,18.3,-41.4,50.4,37.5,-63.3 -CR,1718,1982:01:29,13h,37.3,31.3,-43.2,44.5,34.7,-54.4 -CR,1719,1982:02:25,19h,31.4,31.4,-31.4,41.1,41.4,-40.9 -CR,1720,1982:03:25,02h,38.9,36.2,-41.5,50.9,51.4,-50.5 -CR,1721,1982:04:21,09h,41.5,35.2,-47.7,55.5,50.1,-60.9 -CR,1722,1982:05:18,15h,44.9,42.7,-47.1,57.2,55.3,-59.1 -CR,1723,1982:06:14,22h,48.9,46.3,-51.5,58.4,58.4,-58.4 -CR,1724,1982:07:12,05h,47.8,47.5,-48.1,60.1,63.0,-57.1 -CR,1725,1982:08:08,11h,49.1,47.2,-50.9,61.1,62.9,-59.2 -CR,1726,1982:09:04,18h,46.7,46.0,-47.3,61.3,62.4,-60.2 -CR,1727,1982:10:02,00h,34.7,37.1,-32.3,53.8,57.6,-49.9 -CR,1728,1982:10:29,07h,28.2,31.9,-24.5,47.6,52.5,-42.8 -CR,1729,1982:11:25,14h,24.3,26.3,-22.3,43.5,42.1,-45.0 -CR,1730,1982:12:22,20h,26.1,23.3,-28.8,48.1,48.8,-47.3 -CR,1731,1983:01:19,03h,32.9,33.9,-31.8,47.4,47.4,-47.5 -CR,1732,1983:02:15,09h,28.0,29.7,-26.3,45.4,45.0,-45.8 -CR,1733,1983:03:14,16h,27.4,31.7,-23.1,41.3,44.5,-38.0 -CR,1734,1983:04:10,23h,33.0,35.3,-30.7,46.6,47.1,-46.2 -CR,1735,1983:05:08,05h,31.2,30.8,-31.6,49.9,49.1,-50.6 -CR,1736,1983:06:04,12h,24.3,20.4,-28.3,42.5,36.4,-48.5 -CR,1737,1983:07:01,18h,25.1,22.2,-27.9,44.4,38.9,-50.0 -CR,1738,1983:07:29,01h,25.0,23.8,-26.2,42.5,38.9,-46.1 -CR,1739,1983:08:25,08h,23.4,18.7,-28.0,39.8,33.7,-45.9 -CR,1740,1983:09:21,14h,21.8,19.6,-24.0,38.2,33.2,-43.2 -CR,1741,1983:10:18,21h,18.2,15.7,-20.7,35.5,31.5,-39.5 -CR,1742,1983:11:15,03h,20.0,18.4,-21.6,36.6,34.9,-38.4 -CR,1743,1983:12:12,10h,15.7,14.8,-16.7,31.2,34.7,-27.8 -CR,1744,1984:01:08,17h,17.4,13.1,-21.7,32.8,32.2,-33.5 -CR,1745,1984:02:04,23h,20.0,13.8,-26.1,36.2,34.0,-38.4 -CR,1746,1984:03:03,06h,23.8,21.9,-25.6,41.2,42.0,-40.3 -CR,1747,1984:03:30,12h,23.9,21.4,-26.3,42.5,41.7,-43.3 -CR,1748,1984:04:26,19h,24.1,19.1,-29.1,40.3,35.0,-45.6 -CR,1749,1984:05:24,02h,23.9,20.0,-27.8,41.1,37.3,-44.9 -CR,1750,1984:06:20,08h,23.8,21.8,-25.9,42.1,40.4,-43.8 -CR,1751,1984:07:17,15h,22.1,18.6,-25.6,38.0,34.0,-42.0 -CR,1752,1984:08:13,21h,24.1,21.5,-26.8,38.9,35.1,-42.6 -CR,1753,1984:09:10,04h,21.8,20.2,-23.5,36.8,33.3,-40.2 -CR,1754,1984:10:07,11h,19.0,17.2,-20.8,34.1,31.6,-36.7 -CR,1755,1984:11:03,17h,16.7,14.5,-18.8,32.2,30.8,-33.5 -CR,1756,1984:12:01,00h,13.0,11.0,-14.9,27.6,25.9,-29.2 -CR,1757,1984:12:28,07h,10.4,6.3,-14.5,23.7,19.6,-27.9 -CR,1758,1985:01:24,13h,9.0,5.1,-12.8,19.7,17.9,-21.5 -CR,1759,1985:02:20,20h,6.3,1.5,-11.1,16.9,14.0,-19.7 -CR,1760,1985:03:20,02h,6.4,3.2,-9.5,16.8,16.6,-16.9 -CR,1761,1985:04:16,09h,5.0,2.3,-7.7,15.6,15.2,-15.9 -CR,1762,1985:05:13,16h,5.7,4.5,-6.9,16.3,17.7,-14.9 -CR,1763,1985:06:09,22h,6.8,6.9,-6.7,17.8,18.7,-16.8 -CR,1764,1985:07:07,05h,7.1,7.7,-6.5,18.9,19.8,-17.9 -CR,1765,1985:08:03,11h,6.7,7.1,-6.3,19.4,21.7,-17.1 -CR,1766,1985:08:30,18h,7.8,8.1,-7.5,17.5,18.3,-16.8 -CR,1767,1985:09:27,01h,8.8,11.2,-6.4,18.5,21.2,-15.9 -CR,1768,1985:10:24,07h,7.7,8.6,-6.7,18.6,20.1,-17.1 -CR,1769,1985:11:20,14h,6.9,5.1,-8.7,16.7,14.9,-18.6 -CR,1770,1985:12:17,20h,6.9,4.2,-9.5,17.0,16.6,-17.4 -CR,1771,1986:01:14,03h,6.9,3.2,-10.7,19.3,22.1,-16.6 -CR,1772,1986:02:10,10h,8.1,0.1,-16.0,17.9,11.8,-23.9 -CR,1773,1986:03:09,16h,7.7,0.5,-14.9,15.6,10.3,-20.9 -CR,1774,1986:04:05,23h,6.0,1.7,-10.3,14.3,12.6,-16.0 -CR,1775,1986:05:03,05h,4.2,1.4,-6.9,15.1,14.8,-15.4 -CR,1776,1986:05:30,12h,4.0,1.8,-6.2,14.2,15.1,-13.3 -CR,1777,1986:06:26,19h,3.8,2.6,-5.0,12.1,12.7,-11.6 -CR,1778,1986:07:24,01h,4.5,4.7,-4.2,11.6,13.8,-9.4 -CR,1779,1986:08:20,08h,3.6,4.8,-2.5,12.0,14.4,-9.6 -CR,1780,1986:09:16,14h,3.8,4.5,-3.2,11.4,14.2,-8.6 -CR,1781,1986:10:13,21h,7.3,9.9,-4.7,16.9,26.3,-7.4 -CR,1782,1986:11:10,04h,4.9,5.4,-4.3,10.0,14.9,-5.2 -CR,1783,1986:12:07,10h,5.1,4.6,-5.6,12.1,15.2,-8.9 -CR,1784,1987:01:03,17h,3.9,0.7,-7.0,9.0,8.5,-9.4 -CR,1785,1987:01:30,23h,3.3,-0.8,-7.4,9.0,7.5,-10.5 -CR,1786,1987:02:27,06h,3.4,-0.5,-7.3,8.4,6.3,-10.5 -CR,1787,1987:03:26,13h,3.7,1.5,-5.9,9.1,8.5,-9.7 -CR,1788,1987:04:22,19h,4.8,2.8,-6.7,9.1,8.1,-10.0 -CR,1789,1987:05:20,02h,9.7,7.9,-11.4,25.9,33.4,-18.4 -CR,1790,1987:06:16,09h,9.7,8.5,-10.9,19.9,21.2,-18.6 -CR,1791,1987:07:13,15h,11.6,12.7,-10.5,18.8,22.8,-14.7 -CR,1792,1987:08:09,22h,15.8,18.5,-13.1,23.2,28.6,-17.9 -CR,1793,1987:09:06,04h,21.3,18.0,-24.7,33.6,25.2,-42.0 -CR,1794,1987:10:03,11h,15.3,16.8,-13.8,22.4,20.8,-23.9 -CR,1795,1987:10:30,18h,14.5,14.1,-14.9,27.1,24.1,-30.2 -CR,1796,1987:11:27,00h,10.8,10.5,-11.0,23.1,20.5,-25.6 -CR,1797,1987:12:24,07h,11.2,11.4,-11.0,24.9,23.7,-26.2 -CR,1798,1988:01:20,13h,14.6,12.0,-17.1,27.2,26.0,-28.5 -CR,1799,1988:02:16,20h,19.8,21.0,-18.6,35.3,38.1,-32.5 -CR,1800,1988:03:15,03h,28.5,25.2,-31.7,44.0,40.0,-48.0 -CR,1801,1988:04:11,09h,19.8,17.3,-22.3,31.6,22.8,-40.4 -CR,1802,1988:05:08,16h,28.5,21.7,-35.4,44.1,34.9,-53.3 -CR,1803,1988:06:04,22h,31.1,25.1,-37.1,45.3,40.3,-50.3 -CR,1804,1988:07:02,05h,30.2,25.6,-34.7,42.6,39.8,-45.3 -CR,1805,1988:07:29,12h,38.7,43.3,-34.0,49.5,57.6,-41.5 -CR,1806,1988:08:25,18h,44.7,45.2,-44.1,56.5,59.0,-54.0 -CR,1807,1988:09:22,01h,36.9,45.4,-28.3,50.2,63.3,-37.2 -CR,1808,1988:10:19,07h,34.8,38.9,-30.6,48.3,58.1,-38.5 -CR,1809,1988:11:15,14h,32.6,29.1,-36.2,52.9,55.1,-50.7 -CR,1810,1988:12:12,21h,43.6,49.0,-38.3,58.9,65.7,-52.1 -CR,1811,1989:01:09,03h,45.2,46.5,-43.9,62.6,66.8,-58.3 -CR,1812,1989:02:05,10h,61.1,61.2,-61.0,71.5,75.1,-67.8 -CR,1813,1989:03:04,16h,59.3,69.5,-49.1,65.8,71.2,-60.4 -CR,1814,1989:03:31,23h,61.0,75.1,-46.9,67.8,70.8,-64.7 -CR,1815,1989:04:28,06h,60.5,74.3,-46.8,67.8,70.3,-65.3 -CR,1816,1989:05:25,12h,75.0,75.2,-74.9,69.9,66.6,-73.2 -CR,1817,1989:06:21,19h,73.3,74.6,-71.9,61.1,47.9,-74.4 -CR,1818,1989:07:19,01h,72.8,71.9,-73.8,74.4,74.0,-74.8 -CR,1819,1989:08:15,08h,68.7,69.6,-67.8,71.9,68.6,-75.2 -CR,1820,1989:09:11,15h,61.6,63.3,-59.9,59.0,43.5,-74.5 -CR,1821,1989:10:08,21h,70.9,70.7,-71.2,64.2,74.9,-53.6 -CR,1822,1989:11:05,04h,74.2,74.9,-73.5,66.9,74.6,-59.2 -CR,1823,1989:12:02,11h,72.3,70.1,-74.5,69.6,75.1,-64.1 -CR,1824,1989:12:29,17h,74.7,74.5,-74.9,70.2,74.5,-65.9 -CR,1825,1990:01:26,00h,74.3,75.0,-73.6,70.4,74.7,-66.0 -CR,1826,1990:02:22,06h,74.5,75.0,-74.1,74.5,75.1,-73.9 -CR,1827,1990:03:21,13h,69.1,68.6,-69.7,75.0,75.0,-75.1 -CR,1828,1990:04:17,20h,63.1,71.0,-55.2,70.2,75.2,-65.3 -CR,1829,1990:05:15,02h,68.5,61.8,-75.1,74.8,74.5,-75.1 -CR,1830,1990:06:11,09h,64.0,56.4,-71.7,72.4,70.2,-74.6 -CR,1831,1990:07:08,15h,72.1,72.2,-72.0,73.6,72.7,-74.5 -CR,1832,1990:08:04,22h,71.1,68.9,-73.4,65.1,75.0,-55.2 -CR,1833,1990:09:01,05h,71.1,72.9,-69.2,73.8,73.4,-74.1 -CR,1834,1990:09:28,11h,72.5,70.6,-74.4,74.8,74.9,-74.7 -CR,1835,1990:10:25,18h,66.1,62.4,-69.8,75.0,74.8,-75.1 -CR,1836,1990:11:22,00h,63.2,55.4,-70.9,68.7,74.0,-63.4 -CR,1837,1990:12:19,07h,44.0,47.0,-40.9,61.4,69.2,-53.6 -CR,1838,1991:01:15,14h,60.9,50.6,-71.3,63.8,59.7,-67.9 -CR,1839,1991:02:11,20h,63.3,56.7,-70.0,66.7,63.1,-70.2 -CR,1840,1991:03:11,03h,58.3,58.1,-58.5,63.7,63.9,-63.4 -CR,1841,1991:04:07,09h,54.5,50.5,-58.5,62.9,61.4,-64.3 -CR,1842,1991:05:04,16h,49.4,46.7,-52.2,60.8,59.9,-61.6 -CR,1843,1991:05:31,23h,49.1,47.4,-50.7,63.3,63.5,-63.0 -CR,1844,1991:06:28,05h,51.4,49.8,-53.1,65.2,65.5,-65.0 -CR,1845,1991:07:25,12h,47.1,43.5,-50.7,60.5,56.2,-64.8 -CR,1846,1991:08:21,18h,41.0,30.8,-51.3,58.8,50.8,-66.8 -CR,1847,1991:09:18,01h,41.1,32.6,-49.6,55.9,46.3,-65.4 -CR,1848,1991:10:15,08h,40.3,33.2,-47.3,54.6,46.4,-62.7 -CR,1849,1991:11:11,14h,38.0,30.7,-45.4,53.7,47.3,-60.1 -CR,1850,1991:12:08,21h,30.8,33.2,-28.3,49.7,52.2,-47.2 -CR,1851,1992:01:05,04h,27.6,27.0,-28.3,45.4,46.6,-44.1 -CR,1852,1992:02:01,10h,22.6,24.1,-21.0,41.7,44.9,-38.5 -CR,1853,1992:02:28,17h,24.3,26.4,-22.2,42.9,47.1,-38.7 -CR,1854,1992:03:26,23h,25.6,27.0,-24.2,44.4,49.2,-39.7 -CR,1855,1992:04:23,06h,19.5,19.4,-19.5,40.5,42.0,-39.1 -CR,1856,1992:05:20,13h,9.3,2.1,-16.5,23.9,19.2,-28.5 -CR,1857,1992:06:16,19h,15.4,9.1,-21.7,32.9,28.9,-36.8 -CR,1858,1992:07:14,02h,17.5,9.7,-25.3,39.5,35.9,-43.1 -CR,1859,1992:08:10,08h,16.3,4.2,-28.4,39.7,33.3,-46.1 -CR,1860,1992:09:06,15h,16.0,6.9,-25.1,30.4,16.3,-44.5 -CR,1861,1992:10:03,22h,16.3,9.7,-22.9,32.4,23.1,-41.7 -CR,1862,1992:10:31,04h,17.0,13.7,-20.4,33.4,28.2,-38.5 -CR,1863,1992:11:27,11h,17.6,8.7,-26.5,33.2,20.0,-46.4 -CR,1864,1992:12:24,17h,23.5,12.3,-34.6,35.4,20.4,-50.4 -CR,1865,1993:01:21,00h,21.3,5.1,-37.4,36.8,21.5,-52.2 -CR,1866,1993:02:17,07h,19.5,5.1,-33.9,33.6,19.1,-48.1 -CR,1867,1993:03:16,13h,21.5,10.8,-32.3,37.9,28.5,-47.3 -CR,1868,1993:04:12,20h,19.8,12.2,-27.3,34.7,27.0,-42.5 -CR,1869,1993:05:10,02h,20.8,16.6,-25.0,35.3,31.7,-38.8 -CR,1870,1993:06:06,09h,18.6,14.3,-22.9,36.4,30.3,-42.5 -CR,1871,1993:07:03,16h,14.9,10.7,-19.1,34.2,27.6,-40.8 -CR,1872,1993:07:30,22h,17.0,14.6,-19.4,34.8,28.5,-41.1 -CR,1873,1993:08:27,05h,15.5,11.8,-19.1,32.5,26.3,-38.6 -CR,1874,1993:09:23,11h,17.3,14.2,-20.3,30.3,27.8,-32.9 -CR,1875,1993:10:20,18h,14.6,12.2,-17.0,28.7,26.2,-31.1 -CR,1876,1993:11:17,01h,17.1,11.7,-22.4,31.9,26.3,-37.4 -CR,1877,1993:12:14,07h,18.5,10.5,-26.5,36.7,31.8,-41.6 -CR,1878,1994:01:10,14h,18.0,8.6,-27.4,38.4,33.4,-43.3 -CR,1879,1994:02:06,20h,17.7,8.7,-26.7,35.0,26.9,-43.1 -CR,1880,1994:03:06,03h,17.5,9.3,-25.8,35.9,29.2,-42.6 -CR,1881,1994:04:02,10h,17.3,10.2,-24.3,35.8,29.7,-42.0 -CR,1882,1994:04:29,16h,17.5,10.4,-24.7,34.7,29.1,-40.3 -CR,1883,1994:05:26,23h,15.1,11.2,-18.9,30.7,25.9,-35.6 -CR,1884,1994:06:23,06h,12.3,8.5,-16.2,26.1,21.4,-30.8 -CR,1885,1994:07:20,12h,10.0,6.9,-13.2,22.7,18.5,-26.9 -CR,1886,1994:08:16,19h,10.4,8.7,-12.0,23.0,19.6,-26.4 -CR,1887,1994:09:13,01h,11.2,9.8,-12.7,25.2,21.5,-28.9 -CR,1888,1994:10:10,08h,10.7,9.8,-11.5,24.1,21.5,-26.8 -CR,1889,1994:11:06,15h,10.7,9.8,-11.5,23.0,20.5,-25.6 -CR,1890,1994:12:03,21h,9.1,5.3,-12.8,23.2,18.1,-28.3 -CR,1891,1994:12:31,04h,9.8,5.2,-14.4,22.1,17.6,-26.5 -CR,1892,1995:01:27,10h,8.6,4.1,-13.1,21.0,14.8,-27.2 -CR,1893,1995:02:23,17h,7.7,3.7,-11.7,19.4,16.8,-22.0 -CR,1894,1995:03:23,00h,11.6,7.3,-15.8,25.9,20.4,-31.3 -CR,1895,1995:04:19,06h,10.2,6.1,-14.4,25.4,19.4,-31.3 -CR,1896,1995:05:16,13h,10.0,6.9,-13.1,24.0,16.5,-31.6 -CR,1897,1995:06:12,19h,10.3,8.5,-12.0,25.5,21.3,-29.7 -CR,1898,1995:07:10,02h,10.0,8.5,-11.5,22.1,17.7,-26.5 -CR,1899,1995:08:06,09h,6.8,5.8,-7.9,18.6,17.8,-19.3 -CR,1900,1995:09:02,15h,7.2,6.1,-8.4,20.2,20.4,-19.9 -CR,1901,1995:09:29,22h,5.9,6.4,-5.4,18.4,21.1,-15.7 -CR,1902,1995:10:27,04h,5.3,3.0,-7.6,17.1,18.0,-16.2 -CR,1903,1995:11:23,11h,5.4,3.0,-7.9,14.3,12.1,-16.5 -CR,1904,1995:12:20,18h,4.3,4.1,-4.5,9.7,8.7,-10.7 -CR,1905,1996:01:17,00h,3.0,3.1,-2.8,9.7,9.9,-9.5 -CR,1906,1996:02:13,07h,2.8,3.8,-1.8,8.9,12.7,-5.0 -CR,1907,1996:03:11,13h,4.5,2.9,-6.1,14.3,12.1,-16.6 -CR,1908,1996:04:07,20h,5.0,4.4,-5.7,14.2,12.6,-15.9 -CR,1909,1996:05:05,03h,4.2,3.8,-4.6,11.6,11.7,-11.5 -CR,1910,1996:06:01,09h,4.8,4.8,-4.8,13.1,14.4,-11.8 -CR,1911,1996:06:28,16h,6.1,9.7,-2.5,18.4,22.2,-14.7 -CR,1912,1996:07:25,22h,7.7,12.4,-2.9,20.2,23.6,-16.7 -CR,1913,1996:08:22,05h,9.3,15.9,-2.7,24.9,28.4,-21.5 -CR,1914,1996:09:18,12h,10.0,15.2,-4.9,25.5,28.4,-22.6 -CR,1915,1996:10:15,18h,6.3,11.5,-1.1,19.7,23.6,-15.8 -CR,1916,1996:11:12,01h,7.1,7.0,-7.2,15.7,13.0,-18.5 -CR,1917,1996:12:09,08h,9.8,10.8,-8.7,24.7,27.4,-21.9 -CR,1918,1997:01:05,14h,8.5,5.2,-11.9,25.6,22.3,-29.0 -CR,1919,1997:02:01,21h,5.1,1.3,-9.0,16.9,14.5,-19.4 -CR,1920,1997:03:01,03h,2.7,2.2,-3.2,12.6,18.3,-6.8 -CR,1921,1997:03:28,10h,3.7,2.9,-4.5,15.7,19.9,-11.5 -CR,1922,1997:04:24,17h,4.9,7.6,-2.3,13.5,20.9,-6.0 -CR,1923,1997:05:21,23h,4.4,6.6,-2.1,12.6,16.2,-9.1 -CR,1924,1997:06:18,06h,4.5,7.2,-1.8,13.5,17.7,-9.3 -CR,1925,1997:07:15,12h,7.0,9.0,-5.1,19.8,18.9,-20.8 -CR,1926,1997:08:11,19h,13.9,17.1,-10.8,34.6,39.4,-29.9 -CR,1927,1997:09:08,02h,12.6,11.9,-13.3,33.7,30.4,-37.0 -CR,1928,1997:10:05,08h,8.4,9.6,-7.3,21.0,23.3,-18.6 -CR,1929,1997:11:01,15h,3.5,7.1,0.2,12.9,12.9,-13.0 -CR,1930,1997:11:28,21h,6.7,10.5,-2.9,26.6,31.3,-22.0 -CR,1931,1997:12:26,04h,9.1,8.7,-9.6,25.5,22.0,-29.0 -CR,1932,1998:01:22,11h,17.8,17.1,-18.6,36.5,32.1,-40.8 -CR,1933,1998:02:18,17h,15.7,13.5,-17.9,29.3,24.6,-34.0 -CR,1934,1998:03:18,00h,33.9,24.2,-43.6,51.9,40.4,-63.4 -CR,1935,1998:04:14,06h,34.7,26.3,-43.1,52.6,42.1,-63.0 -CR,1936,1998:05:11,13h,24.0,20.8,-27.2,39.7,30.7,-48.6 -CR,1937,1998:06:07,20h,29.8,21.3,-38.2,46.7,36.5,-56.8 -CR,1938,1998:07:05,02h,28.2,25.2,-31.2,49.1,41.3,-56.8 -CR,1939,1998:08:01,09h,16.0,20.7,-11.3,41.5,39.2,-43.7 -CR,1940,1998:08:28,15h,20.6,26.2,-15.0,46.7,44.5,-48.8 -CR,1941,1998:09:24,22h,16.8,24.0,-9.6,39.7,39.7,-39.8 -CR,1942,1998:10:22,05h,28.0,24.8,-31.3,41.1,34.8,-47.4 -CR,1943,1998:11:18,11h,43.1,44.2,-42.0,62.5,64.4,-60.5 -CR,1944,1998:12:15,18h,50.9,63.2,-38.6,64.5,74.6,-54.5 -CR,1945,1999:01:12,00h,42.5,45.0,-39.9,62.8,67.1,-58.4 -CR,1946,1999:02:08,07h,50.5,57.5,-43.4,66.7,72.6,-60.9 -CR,1947,1999:03:07,14h,48.1,54.1,-42.1,61.7,70.5,-52.9 -CR,1948,1999:04:03,20h,46.5,40.8,-52.1,61.2,62.3,-60.1 -CR,1949,1999:05:01,03h,49.3,37.2,-61.5,70.8,66.7,-74.9 -CR,1950,1999:05:28,10h,55.0,37.0,-73.0,68.8,63.6,-74.1 -CR,1951,1999:06:24,16h,70.3,65.7,-74.9,74.9,74.8,-75.1 -CR,1952,1999:07:21,23h,74.5,74.0,-75.0,74.0,72.8,-75.1 -CR,1953,1999:08:18,05h,72.1,73.5,-70.7,72.7,73.8,-71.5 -CR,1954,1999:09:14,12h,72.9,73.5,-72.3,69.9,72.4,-67.4 -CR,1955,1999:10:11,19h,60.4,65.6,-55.2,73.0,75.0,-71.1 -CR,1956,1999:11:08,01h,67.6,71.7,-63.5,74.7,74.8,-74.6 -CR,1957,1999:12:05,08h,71.5,73.2,-69.9,74.7,74.6,-74.7 -CR,1958,2000:01:01,14h,73.9,74.6,-73.3,74.5,74.6,-74.3 -CR,1959,2000:01:28,21h,74.5,75.1,-73.8,73.0,74.1,-72.0 -CR,1960,2000:02:25,04h,74.5,74.0,-74.9,73.0,74.6,-71.3 -CR,1961,2000:03:23,10h,73.6,72.6,-74.5,69.2,73.9,-64.4 -CR,1962,2000:04:19,17h,72.6,72.6,-72.7,74.5,74.4,-74.7 -CR,1963,2000:05:16,23h,63.6,60.2,-67.0,70.8,73.4,-68.3 -CR,1964,2000:06:13,06h,73.7,73.1,-74.3,71.9,74.3,-69.6 -CR,1965,2000:07:10,13h,56.7,52.9,-60.5,67.4,65.4,-69.5 -CR,1966,2000:08:06,19h,57.3,69.0,-45.6,63.6,68.4,-58.8 -CR,1967,2000:09:03,02h,63.4,66.9,-59.9,67.6,65.4,-69.9 -CR,1968,2000:09:30,08h,49.9,45.4,-54.5,63.2,58.5,-67.9 -CR,1969,2000:10:27,15h,44.8,50.4,-39.2,61.5,63.0,-60.1 -CR,1970,2000:11:23,22h,54.3,48.1,-60.4,66.3,62.5,-70.1 -CR,1971,2000:12:21,04h,52.3,33.0,-71.5,58.3,50.6,-66.0 -CR,1972,2001:01:17,11h,19.6,29.4,-9.8,47.8,44.9,-50.6 -CR,1973,2001:02:13,17h,18.7,35.5,-1.8,51.9,50.8,-52.9 -CR,1974,2001:03:13,00h,10.8,18.0,-3.5,40.0,35.2,-44.8 -CR,1975,2001:04:09,07h,39.9,35.4,-44.3,56.1,53.1,-59.1 -CR,1976,2001:05:06,13h,50.3,54.4,-46.2,67.9,69.6,-66.1 -CR,1977,2001:06:02,20h,46.8,43.7,-49.9,61.0,56.4,-65.5 -CR,1978,2001:06:30,02h,49.4,46.5,-52.3,63.3,63.6,-63.1 -CR,1979,2001:07:27,09h,36.1,40.2,-31.9,59.8,62.7,-57.0 -CR,1980,2001:08:23,16h,29.3,23.8,-34.8,52.0,45.6,-58.4 -CR,1981,2001:09:19,22h,27.6,22.4,-32.8,44.7,39.1,-50.3 -CR,1982,2001:10:17,05h,37.0,29.7,-44.3,47.3,39.8,-54.8 -CR,1983,2001:11:13,12h,42.1,34.0,-50.1,57.1,51.3,-63.0 -CR,1984,2001:12:10,18h,37.9,34.9,-40.8,61.3,56.7,-65.9 -CR,1985,2002:01:07,01h,40.5,36.4,-44.5,56.0,44.9,-67.2 -CR,1986,2002:02:03,07h,49.6,38.2,-61.0,62.2,49.3,-75.1 -CR,1987,2002:03:02,14h,42.6,45.3,-40.0,59.0,54.8,-63.1 -CR,1988,2002:03:29,21h,46.2,51.2,-41.2,58.0,55.6,-60.4 -CR,1989,2002:04:26,03h,44.8,50.1,-39.5,56.4,57.2,-55.7 -CR,1990,2002:05:23,10h,37.3,42.4,-32.2,55.0,57.6,-52.3 -CR,1991,2002:06:19,16h,38.3,38.3,-38.3,57.3,56.6,-58.0 -CR,1992,2002:07:16,23h,43.1,35.1,-51.1,56.2,48.7,-63.7 -CR,1993,2002:08:13,06h,36.1,34.7,-37.5,48.9,45.8,-51.9 -CR,1994,2002:09:09,12h,55.8,42.1,-69.4,61.8,54.7,-68.9 -CR,1995,2002:10:06,19h,45.4,37.8,-53.0,58.1,51.0,-65.3 -CR,1996,2002:11:03,01h,38.1,34.1,-42.0,53.6,48.8,-58.5 -CR,1997,2002:11:30,08h,45.3,40.3,-50.3,58.9,56.6,-61.1 -CR,1998,2002:12:27,15h,50.2,41.4,-58.9,60.4,54.4,-66.4 -CR,1999,2003:01:23,21h,51.5,47.3,-55.8,62.3,57.4,-67.2 -CR,2000,2003:02:20,04h,43.8,33.6,-53.9,55.7,44.7,-66.6 -CR,2001,2003:03:19,10h,39.9,29.5,-50.3,51.9,38.7,-65.0 -CR,2002,2003:04:15,17h,39.4,28.6,-50.1,52.9,39.9,-65.9 -CR,2003,2003:05:13,00h,42.4,36.0,-48.8,57.9,50.4,-65.3 -CR,2004,2003:06:09,06h,42.0,39.3,-44.6,58.2,54.7,-61.7 -CR,2005,2003:07:06,13h,43.6,44.4,-42.8,61.0,60.1,-61.8 -CR,2006,2003:08:02,19h,39.2,43.5,-35.0,58.6,60.5,-56.8 -CR,2007,2003:08:30,02h,36.7,37.6,-35.8,56.7,57.8,-55.6 -CR,2008,2003:09:26,09h,31.9,34.4,-29.5,53.6,55.7,-51.5 -CR,2009,2003:10:23,15h,44.9,44.5,-45.3,62.8,63.8,-61.9 -CR,2010,2003:11:19,22h,42.2,44.4,-40.0,56.9,59.8,-53.9 -CR,2011,2003:12:17,04h,45.5,45.1,-46.0,59.3,59.9,-58.7 -CR,2012,2004:01:13,11h,49.6,54.9,-44.3,61.9,63.6,-60.1 -CR,2013,2004:02:09,18h,38.5,34.0,-43.1,54.2,52.1,-56.3 -CR,2014,2004:03:08,00h,31.8,29.0,-34.6,50.3,48.9,-51.7 -CR,2015,2004:04:04,07h,36.3,32.7,-39.8,53.4,51.1,-55.7 -CR,2016,2004:05:01,14h,33.6,32.4,-34.8,51.7,50.3,-53.2 -CR,2017,2004:05:28,20h,30.1,26.6,-33.6,48.5,44.7,-52.3 -CR,2018,2004:06:25,03h,30.8,28.8,-32.8,48.7,46.6,-50.9 -CR,2019,2004:07:22,09h,34.3,30.3,-38.3,47.4,45.6,-49.2 -CR,2020,2004:08:18,16h,26.4,26.0,-26.8,40.0,40.0,-40.0 -CR,2021,2004:09:14,23h,23.2,25.6,-20.8,40.9,42.2,-39.6 -CR,2022,2004:10:12,05h,23.4,26.6,-20.3,37.6,37.4,-37.8 -CR,2023,2004:11:08,12h,33.3,32.3,-34.2,48.5,46.5,-50.5 -CR,2024,2004:12:05,18h,35.8,41.5,-30.1,52.2,55.9,-48.5 -CR,2025,2005:01:02,01h,32.2,37.3,-27.2,46.5,51.3,-41.7 -CR,2026,2005:01:29,08h,41.1,55.6,-26.6,45.8,56.7,-35.0 -CR,2027,2005:02:25,14h,38.2,49.6,-26.7,46.3,56.1,-36.4 -CR,2028,2005:03:24,21h,32.0,39.2,-24.8,44.3,54.2,-34.4 -CR,2029,2005:04:21,03h,23.8,29.0,-18.5,42.2,50.3,-34.1 -CR,2030,2005:05:18,10h,20.8,20.9,-20.8,38.9,38.9,-38.8 -CR,2031,2005:06:14,17h,21.6,22.2,-21.1,38.4,37.9,-38.9 -CR,2032,2005:07:11,23h,22.8,21.8,-23.8,38.6,34.9,-42.3 -CR,2033,2005:08:08,06h,17.8,15.7,-20.0,34.5,28.4,-40.5 -CR,2034,2005:09:04,12h,20.6,24.7,-16.6,42.1,43.5,-40.6 -CR,2035,2005:10:01,19h,22.4,25.0,-19.7,41.6,41.5,-41.7 -CR,2036,2005:10:29,02h,22.7,21.3,-24.0,40.8,37.4,-44.2 -CR,2037,2005:11:25,08h,24.1,25.8,-22.4,43.8,43.8,-43.9 -CR,2038,2005:12:22,15h,18.8,16.9,-20.7,37.8,35.6,-39.9 -CR,2039,2006:01:18,21h,9.7,6.4,-13.0,28.9,27.1,-30.7 -CR,2040,2006:02:15,04h,16.8,16.6,-17.0,37.4,41.1,-33.6 -CR,2041,2006:03:14,11h,18.0,11.0,-25.0,34.2,26.8,-41.6 -CR,2042,2006:04:10,17h,17.6,18.3,-17.0,40.8,38.5,-43.1 -CR,2043,2006:05:08,00h,12.6,10.5,-14.8,35.9,37.6,-34.2 -CR,2044,2006:06:04,07h,15.0,15.1,-15.0,34.7,33.4,-36.0 -CR,2045,2006:07:01,13h,16.7,16.9,-16.5,34.0,30.1,-38.0 -CR,2046,2006:07:28,20h,18.7,19.6,-17.8,36.3,34.1,-38.6 -CR,2047,2006:08:25,02h,18.4,17.2,-19.6,35.8,31.2,-40.3 -CR,2048,2006:09:21,09h,11.0,11.4,-10.6,27.6,25.0,-30.2 -CR,2049,2006:10:18,16h,10.9,11.8,-10.0,28.3,25.0,-31.7 -CR,2050,2006:11:14,22h,11.6,13.6,-9.7,30.7,24.1,-37.3 -CR,2051,2006:12:12,05h,16.8,14.9,-18.7,33.2,26.5,-40.0 -CR,2052,2007:01:08,11h,15.9,9.0,-22.8,32.7,24.4,-40.9 -CR,2053,2007:02:04,18h,12.9,6.3,-19.4,32.2,25.7,-38.6 -CR,2054,2007:03:04,01h,11.3,5.9,-16.7,29.4,22.5,-36.3 -CR,2055,2007:03:31,07h,13.6,8.5,-18.7,33.4,26.2,-40.6 -CR,2056,2007:04:27,14h,13.6,10.8,-16.5,31.7,23.8,-39.5 -CR,2057,2007:05:24,20h,15.6,16.7,-14.5,33.5,29.2,-37.9 -CR,2058,2007:06:21,03h,14.3,16.1,-12.5,32.0,28.6,-35.4 -CR,2059,2007:07:18,10h,13.3,17.9,-8.8,30.3,28.3,-32.4 -CR,2060,2007:08:14,16h,15.8,21.5,-10.0,31.4,30.1,-32.6 -CR,2061,2007:09:10,23h,14.4,18.9,-10.0,29.8,27.1,-32.5 -CR,2062,2007:10:08,05h,15.2,17.3,-13.0,29.1,26.0,-32.2 -CR,2063,2007:11:04,12h,14.8,12.7,-16.9,30.4,23.6,-37.2 -CR,2064,2007:12:01,19h,14.9,12.5,-17.3,30.7,23.9,-37.4 -CR,2065,2007:12:29,01h,17.7,12.9,-22.6,32.7,23.1,-42.2 -CR,2066,2008:01:25,08h,20.8,14.4,-27.3,35.5,26.2,-44.7 -CR,2067,2008:02:21,14h,19.6,11.0,-28.1,35.1,25.8,-44.4 -CR,2068,2008:03:19,21h,17.6,10.0,-25.3,35.7,28.2,-43.3 -CR,2069,2008:04:16,04h,16.1,8.6,-23.5,35.6,27.7,-43.5 -CR,2070,2008:05:13,10h,14.8,11.1,-18.5,34.6,28.8,-40.5 -CR,2071,2008:06:09,17h,15.1,14.4,-15.8,34.2,30.9,-37.5 -CR,2072,2008:07:06,23h,12.8,11.9,-13.7,30.0,26.6,-33.4 -CR,2073,2008:08:03,06h,12.8,12.7,-13.0,30.0,28.2,-31.7 -CR,2074,2008:08:30,13h,14.8,15.4,-14.1,31.9,30.7,-33.0 -CR,2075,2008:09:26,19h,9.7,11.3,-8.0,26.1,24.1,-28.1 -CR,2076,2008:10:24,02h,9.0,8.6,-9.3,24.4,20.6,-28.2 -CR,2077,2008:11:20,09h,10.7,10.7,-10.7,27.6,28.1,-27.1 -CR,2078,2008:12:17,15h,8.1,5.7,-10.6,22.1,21.0,-23.3 -CR,2079,2009:01:13,22h,9.6,2.7,-16.4,21.7,16.7,-26.8 -CR,2080,2009:02:10,04h,10.4,3.4,-17.4,24.1,19.7,-28.5 -CR,2081,2009:03:09,11h,9.7,1.8,-17.7,23.1,17.7,-28.5 -CR,2082,2009:04:05,18h,7.7,-0.2,-15.5,20.2,13.3,-27.2 -CR,2083,2009:05:03,00h,4.8,-0.9,-10.5,16.4,11.9,-21.0 -CR,2084,2009:05:30,07h,6.6,6.3,-6.8,21.2,24.0,-18.3 -CR,2085,2009:06:26,13h,7.8,9.1,-6.5,21.3,24.9,-17.8 -CR,2086,2009:07:23,20h,9.3,12.3,-6.3,20.5,23.9,-17.0 -CR,2087,2009:08:20,03h,5.8,8.1,-3.5,12.8,13.8,-11.8 -CR,2088,2009:09:16,09h,5.2,8.3,-2.0,12.0,13.5,-10.5 -CR,2089,2009:10:13,16h,4.5,7.9,-1.1,10.1,15.3,-4.9 -CR,2090,2009:11:09,22h,9.8,10.0,-9.6,23.1,30.9,-15.2 -CR,2091,2009:12:07,05h,17.3,18.9,-15.8,33.5,38.4,-28.5 -CR,2092,2010:01:03,12h,25.1,28.0,-22.2,47.0,51.7,-42.2 -CR,2093,2010:01:30,18h,22.1,23.7,-20.6,43.8,51.2,-36.3 -CR,2094,2010:02:27,01h,24.0,24.5,-23.6,42.1,52.7,-31.6 -CR,2095,2010:03:26,07h,23.8,25.2,-22.3,41.5,48.9,-34.0 -CR,2096,2010:04:22,14h,21.6,24.5,-18.6,36.3,45.1,-27.5 -CR,2097,2010:05:19,21h,26.2,30.5,-22.0,37.2,46.9,-27.6 -CR,2098,2010:06:16,03h,23.4,24.4,-22.3,27.9,31.7,-24.1 -CR,2099,2010:07:13,10h,32.6,34.6,-30.5,45.6,48.6,-42.7 -CR,2100,2010:08:09,16h,25.7,27.2,-24.1,41.2,44.4,-38.1 -CR,2101,2010:09:05,23h,33.0,31.0,-35.1,49.6,50.7,-48.5 -CR,2102,2010:10:03,06h,23.6,23.4,-23.9,43.5,47.1,-40.0 -CR,2103,2010:10:30,12h,21.4,16.9,-26.0,40.4,40.9,-40.0 -CR,2104,2010:11:26,19h,17.8,11.5,-24.1,48.8,54.5,-43.1 -CR,2105,2010:12:24,01h,36.4,43.2,-29.6,48.2,54.1,-42.3 -CR,2106,2011:01:20,08h,54.3,74.7,-33.8,53.6,61.4,-45.8 -CR,2107,2011:02:16,15h,54.9,71.8,-38.1,56.1,67.4,-44.7 -CR,2108,2011:03:15,21h,62.4,73.2,-51.6,65.2,70.9,-59.4 -CR,2109,2011:04:12,04h,64.1,74.4,-53.7,69.9,75.0,-64.8 -CR,2110,2011:05:09,11h,56.3,69.7,-42.8,63.7,70.5,-57.0 -CR,2111,2011:06:05,17h,45.2,51.1,-39.4,63.5,69.2,-57.8 -CR,2112,2011:07:03,00h,42.3,41.9,-42.7,64.5,65.4,-63.6 -CR,2113,2011:07:30,06h,47.8,50.0,-45.6,67.1,68.8,-65.4 -CR,2114,2011:08:26,13h,47.0,47.9,-46.0,66.7,69.1,-64.3 -CR,2115,2011:09:22,20h,57.2,59.9,-54.6,71.1,75.1,-67.1 -CR,2116,2011:10:20,02h,49.0,49.8,-48.3,69.6,73.9,-65.3 -CR,2117,2011:11:16,09h,55.8,68.6,-43.0,66.9,75.1,-58.7 -CR,2118,2011:12:13,15h,60.9,73.2,-48.6,68.8,72.2,-65.4 -CR,2119,2012:01:09,22h,60.7,72.6,-48.9,67.1,65.7,-68.5 -CR,2120,2012:02:06,05h,63.5,73.7,-53.2,70.0,74.1,-65.9 -CR,2121,2012:03:04,11h,58.2,74.6,-41.9,60.4,69.7,-51.2 -CR,2122,2012:03:31,18h,54.9,66.2,-43.7,58.0,64.2,-51.7 -CR,2123,2012:04:28,00h,55.9,63.5,-48.3,68.0,74.7,-61.2 -CR,2124,2012:05:25,07h,60.3,57.2,-63.4,74.3,73.7,-74.9 -CR,2125,2012:06:21,14h,68.3,70.5,-66.1,74.6,74.2,-75.1 -CR,2126,2012:07:18,20h,66.4,67.5,-65.2,73.9,74.5,-73.3 -CR,2127,2012:08:15,03h,64.8,63.5,-66.1,73.1,74.9,-71.2 -CR,2128,2012:09:11,09h,66.1,73.0,-59.3,71.6,74.9,-68.3 -CR,2129,2012:10:08,16h,70.4,68.3,-72.4,73.4,74.1,-72.7 -CR,2130,2012:11:04,23h,67.5,59.9,-75.0,71.5,68.6,-74.3 -CR,2131,2012:12:02,05h,68.7,63.4,-73.9,61.9,72.9,-50.9 -CR,2132,2012:12:29,12h,64.2,56.0,-72.4,73.1,72.4,-73.8 -CR,2133,2013:01:25,18h,70.3,69.9,-70.8,71.5,75.0,-68.0 -CR,2134,2013:02:22,01h,73.2,72.8,-73.6,64.8,69.2,-60.5 -CR,2135,2013:03:21,08h,69.2,64.9,-73.6,73.6,72.3,-74.8 -CR,2136,2013:04:17,14h,68.7,63.6,-73.7,70.1,65.5,-74.8 -CR,2137,2013:05:14,21h,67.9,74.9,-60.8,68.9,62.6,-75.1 -CR,2138,2013:06:11,03h,61.9,72.9,-50.9,71.7,69.3,-74.0 -CR,2139,2013:07:08,10h,67.7,70.0,-65.5,73.0,75.0,-70.9 -CR,2140,2013:08:04,17h,67.6,71.1,-64.2,68.3,69.8,-66.9 -CR,2141,2013:08:31,23h,59.6,63.2,-55.9,68.3,74.9,-61.7 -CR,2142,2013:09:28,06h,60.8,59.0,-62.5,70.4,74.5,-66.3 -CR,2143,2013:10:25,13h,57.6,57.7,-57.6,67.2,71.3,-63.0 -CR,2144,2013:11:21,19h,59.9,74.9,-44.9,66.9,73.8,-60.0 -CR,2145,2013:12:19,02h,63.1,74.3,-51.9,66.5,74.1,-58.9 -CR,2146,2014:01:15,08h,66.3,74.5,-58.0,64.4,72.6,-56.3 -CR,2147,2014:02:11,15h,70.5,74.7,-66.2,68.7,73.8,-63.5 -CR,2148,2014:03:10,22h,54.4,69.5,-39.4,60.5,75.0,-45.9 -CR,2149,2014:04:07,04h,48.9,51.2,-46.5,62.7,74.3,-51.1 -CR,2150,2014:05:04,11h,28.9,18.5,-39.4,56.7,65.3,-48.1 -CR,2151,2014:05:31,17h,25.4,17.2,-33.6,48.8,54.4,-43.2 -CR,2152,2014:06:28,00h,24.8,22.3,-27.3,48.1,58.5,-37.7 -CR,2153,2014:07:25,07h,40.2,31.9,-48.6,58.8,65.9,-51.8 -CR,2154,2014:08:21,13h,49.4,45.7,-53.1,60.0,62.2,-57.9 -CR,2155,2014:09:17,20h,65.5,71.0,-60.0,69.1,74.7,-63.6 -CR,2156,2014:10:15,02h,64.9,64.6,-65.1,72.5,74.3,-70.7 -CR,2157,2014:11:11,09h,41.8,27.6,-56.0,52.5,40.2,-64.8 -CR,2158,2014:12:08,16h,45.1,36.6,-53.7,53.8,45.8,-61.8 -CR,2159,2015:01:04,22h,41.5,31.7,-51.2,55.2,48.6,-61.8 -CR,2160,2015:02:01,05h,36.1,28.1,-44.0,50.6,45.6,-55.6 -CR,2161,2015:02:28,11h,31.9,26.5,-37.4,49.2,47.3,-51.1 -CR,2162,2015:03:27,18h,24.0,16.0,-32.0,44.6,44.4,-44.8 -CR,2163,2015:04:24,01h,27.9,25.3,-30.5,43.3,44.4,-42.2 -CR,2164,2015:05:21,07h,35.9,37.4,-34.5,51.4,58.5,-44.4 -CR,2165,2015:06:17,14h,37.2,45.4,-29.0,52.7,61.5,-43.9 -CR,2166,2015:07:14,20h,31.9,39.0,-24.8,47.4,56.7,-38.2 -CR,2167,2015:08:11,03h,33.7,41.9,-25.4,49.8,59.0,-40.6 -CR,2168,2015:09:07,10h,32.9,42.1,-23.7,48.7,59.2,-38.2 -CR,2169,2015:10:04,16h,32.1,40.1,-24.0,50.4,60.3,-40.5 -CR,2170,2015:10:31,23h,30.8,33.2,-28.3,51.4,58.0,-44.7 -CR,2171,2015:11:28,05h,29.3,30.8,-27.7,50.6,57.0,-44.1 -CR,2172,2015:12:25,12h,34.2,38.4,-29.9,50.3,56.2,-44.3 -CR,2173,2016:01:21,19h,31.7,31.0,-32.4,51.2,55.6,-46.8 -CR,2174,2016:02:18,01h,25.7,23.3,-28.0,47.5,50.9,-44.1 -CR,2175,2016:03:16,08h,28.9,30.4,-27.5,47.9,53.4,-42.3 -CR,2176,2016:04:12,15h,25.8,28.9,-22.6,43.5,51.1,-35.9 -CR,2177,2016:05:09,21h,28.1,32.6,-23.6,42.6,50.1,-35.2 -CR,2178,2016:06:06,04h,25.6,27.5,-23.8,42.5,48.4,-36.5 -CR,2179,2016:07:03,10h,22.0,19.2,-24.9,39.4,43.8,-35.0 -CR,2180,2016:07:30,17h,25.3,24.6,-26.1,40.5,44.4,-36.6 -CR,2181,2016:08:27,00h,26.1,25.8,-26.5,39.1,40.9,-37.4 -CR,2182,2016:09:23,06h,28.7,30.0,-27.3,41.8,42.9,-40.6 -CR,2183,2016:10:20,13h,27.0,26.4,-27.6,43.4,43.8,-43.0 -CR,2184,2016:11:16,19h,24.1,24.2,-24.0,41.7,41.7,-41.6 -CR,2185,2016:12:14,02h,19.6,16.5,-22.8,39.2,38.3,-40.1 -CR,2186,2017:01:10,09h,21.3,19.3,-23.3,40.6,39.2,-42.0 -CR,2187,2017:02:06,15h,16.4,16.2,-16.7,35.3,37.0,-33.6 -CR,2188,2017:03:05,22h,13.1,11.7,-14.4,31.0,31.5,-30.5 -CR,2189,2017:04:02,04h,11.7,11.1,-12.2,28.9,32.8,-25.0 -CR,2190,2017:04:29,11h,13.0,15.6,-10.4,31.4,37.8,-25.0 -CR,2191,2017:05:26,18h,13.9,17.0,-10.8,31.2,38.2,-24.2 -CR,2192,2017:06:23,00h,18.5,23.7,-13.4,32.0,41.4,-22.7 -CR,2193,2017:07:20,07h,15.1,17.9,-12.3,27.3,36.2,-18.4 -CR,2194,2017:08:16,13h,9.7,9.3,-10.1,20.4,26.1,-14.7 -CR,2195,2017:09:12,20h,17.3,23.3,-11.3,28.5,38.8,-18.2 -CR,2196,2017:10:10,03h,16.4,21.7,-11.1,30.6,40.6,-20.6 -CR,2197,2017:11:06,09h,15.0,19.2,-10.9,29.2,38.0,-20.4 -CR,2198,2017:12:03,16h,14.0,17.0,-11.0,29.1,39.0,-19.3 -CR,2199,2017:12:30,22h,10.8,11.6,-10.0,25.6,36.5,-14.8 -CR,2200,2018:01:27,05h,10.3,9.3,-11.3,26.7,35.4,-18.0 -CR,2201,2018:02:23,12h,9.5,10.1,-8.9,24.1,34.7,-13.6 -CR,2202,2018:03:22,18h,6.8,4.2,-9.4,20.0,25.6,-14.4 -CR,2203,2018:04:19,01h,6.2,5.8,-6.6,18.7,23.4,-14.0 -CR,2204,2018:05:16,08h,6.3,9.7,-2.9,16.5,23.1,-9.9 -CR,2205,2018:06:12,14h,7.0,9.1,-4.8,17.7,21.0,-14.3 -CR,2206,2018:07:09,21h,11.6,11.5,-11.6,25.3,26.3,-24.3 -CR,2207,2018:08:06,03h,8.8,12.0,-5.5,23.1,26.3,-19.9 -CR,2208,2018:09:02,10h,8.7,14.0,-3.5,23.8,25.0,-22.5 -CR,2209,2018:09:29,17h,10.3,13.0,-7.6,26.3,25.1,-27.5 -CR,2210,2018:10:26,23h,10.4,12.8,-8.0,25.4,24.4,-26.4 -CR,2211,2018:11:23,06h,8.0,7.4,-8.7,21.1,18.2,-24.1 -CR,2212,2018:12:20,12h,7.6,7.0,-8.3,22.5,22.2,-22.8 -CR,2213,2019:01:16,19h,7.5,4.4,-10.7,21.2,17.2,-25.1 -CR,2214,2019:02:13,02h,6.6,4.6,-8.6,16.1,14.2,-18.1 -CR,2215,2019:03:12,08h,7.7,6.2,-9.3,19.3,14.8,-23.9 -CR,2216,2019:04:08,15h,8.2,6.3,-10.0,20.7,14.3,-27.1 -CR,2217,2019:05:05,21h,8.5,7.5,-9.4,25.1,22.7,-27.4 -CR,2218,2019:06:02,04h,6.5,6.6,-6.5,20.9,19.4,-22.4 -CR,2219,2019:06:29,11h,6.9,7.6,-6.1,19.8,17.6,-22.0 -CR,2220,2019:07:26,17h,8.7,10.6,-6.8,18.6,15.9,-21.3 -CR,2221,2019:08:23,00h,7.3,9.8,-4.7,17.5,12.6,-22.4 -CR,2222,2019:09:19,06h,5.7,9.1,-2.4,16.8,12.6,-20.9 -CR,2223,2019:10:16,13h,5.3,7.3,-3.4,15.3,10.9,-19.8 -CR,2224,2019:11:12,20h,5.9,7.0,-4.8,14.6,11.2,-18.1 -CR,2225,2019:12:10,02h,6.9,6.0,-7.7,13.6,7.9,-19.3 -CR,2226,2020:01:06,09h,4.3,2.0,-6.6,10.8,6.9,-14.6 -CR,2227,2020:02:02,15h,3.0,1.3,-4.8,9.1,4.8,-13.3 -CR,2228,2020:02:29,22h,3.0,2.5,-3.6,7.5,5.6,-9.5 -CR,2229,2020:03:28,05h,3.3,2.7,-3.9,8.8,7.9,-9.6 -CR,2230,2020:04:24,11h,2.1,1.8,-2.4,6.1,6.4,-5.8 -CR,2231,2020:05:21,18h,5.2,5.0,-5.4,14.5,10.8,-18.2 -CR,2232,2020:06:18,00h,4.0,7.4,-0.5,9.1,11.3,-6.8 -CR,2233,2020:07:15,07h,6.6,7.7,-5.5,15.0,13.8,-16.2 -CR,2234,2020:08:11,14h,6.3,9.1,-3.5,14.0,14.5,-13.5 -CR,2235,2020:09:07,20h,8.2,10.6,-5.8,14.5,13.9,-15.1 -CR,2236,2020:10:05,03h,10.7,9.9,-11.5,16.9,13.0,-20.8 -CR,2237,2020:11:01,10h,13.2,17.1,-9.2,21.7,27.2,-16.2 -CR,2238,2020:11:28,16h,14.8,10.0,-19.6,37.3,31.3,-43.2 -CR,2239,2020:12:25,23h,8.5,4.6,-12.4,23.1,22.0,-24.3 -CR,2240,2021:01:22,05h,9.3,5.3,-13.3,23.2,16.5,-30.0 -CR,2241,2021:02:18,12h,11.3,9.0,-13.6,21.7,14.1,-29.3 -CR,2242,2021:03:17,19h,11.9,9.8,-14.0,25.6,18.4,-32.9 -CR,2243,2021:04:14,01h,11.9,9.8,-13.9,24.1,18.7,-29.6 -CR,2244,2021:05:11,08h,9.8,12.1,-7.5,22.3,21.4,-23.2 -CR,2245,2021:06:07,14h,11.4,13.3,-9.6,30.6,22.1,-39.2 -CR,2246,2021:07:04,21h,9.3,13.2,-5.4,23.7,23.1,-24.4 -CR,2247,2021:08:01,04h,9.0,12.0,-6.0,22.7,23.1,-22.3 -CR,2248,2021:08:28,10h,15.2,15.4,-15.1,33.2,25.2,-41.2 -CR,2249,2021:09:24,17h,12.0,14.3,-9.8,24.5,18.7,-30.4 -CR,2250,2021:10:21,23h,14.0,16.5,-11.5,30.2,26.4,-34.0 -CR,2251,2021:11:18,06h,19.5,16.7,-22.4,35.4,26.6,-44.2 -CR,2252,2021:12:15,13h,23.6,19.0,-28.2,40.5,30.8,-50.2 -CR,2253,2022:01:11,19h,28.9,20.2,-37.6,46.0,34.7,-57.3 -CR,2254,2022:02:08,02h,30.9,28.1,-33.7,49.5,45.4,-53.6 -CR,2255,2022:03:07,08h,29.2,33.6,-24.7,50.5,53.3,-47.7 -CR,2256,2022:04:03,15h,45.9,52.1,-39.6,64.1,67.9,-60.3 -CR,2257,2022:04:30,22h,57.6,56.1,-59.0,73.8,73.1,-74.4 -CR,2258,2022:05:28,04h,61.0,56.8,-65.3,74.9,75.0,-74.9 -CR,2259,2022:06:24,11h,68.7,64.3,-73.1,74.7,74.9,-74.4 -CR,2260,2022:07:21,17h,67.8,61.8,-73.8,74.3,74.9,-73.7 -CR,2261,2022:08:18,00h,65.6,59.0,-72.2,73.0,72.1,-73.9 -CR,2262,2022:09:14,07h,72.3,74.6,-70.1,71.0,70.7,-71.2 -CR,2263,2022:10:11,13h,74.3,73.5,-75.1,67.0,73.3,-60.6 -CR,2264,2022:11:07,20h,72.9,70.6,-75.1,63.3,73.9,-52.6 -CR,2265,2022:12:05,02h,64.0,73.2,-54.9,67.3,72.7,-61.9 -CR,2266,2023:01:01,09h,73.3,73.2,-73.5,73.8,72.6,-75.0 -CR,2267,2023:01:28,16h,74.6,75.0,-74.1,74.4,73.8,-75.1 -CR,2268,2023:02:24,22h,74.3,73.9,-74.6,74.4,74.3,-74.5 -CR,2269,2023:03:24,05h,68.4,62.5,-74.2,74.7,74.7,-74.6 -CR,2270,2023:04:20,12h,73.9,75.1,-72.7,73.2,71.4,-75.0 -CR,2271,2023:05:17,18h,71.5,74.9,-68.1,74.2,73.3,-75.0 -CR,2272,2023:06:14,01h,70.7,72.2,-69.2,74.5,74.0,-75.0 -CR,2273,2023:07:11,07h,70.3,68.9,-71.6,68.2,68.5,-67.8 -CR,2274,2023:08:07,14h,73.9,73.7,-74.2,72.1,75.0,-69.2 -CR,2275,2023:09:03,21h,72.7,70.6,-74.9,74.6,74.2,-75.1 -CR,2276,2023:10:01,03h,72.0,74.1,-69.9,74.7,74.2,-75.2 -CR,2277,2023:10:28,10h,62.0,69.5,-54.6,74.5,74.2,-74.8 -CR,2278,2023:11:24,16h,60.8,67.9,-53.7,72.9,71.1,-74.6 -CR,2279,2023:12:21,23h,55.7,49.0,-62.4,66.8,58.7,-74.8 -CR,2280,2024:01:18,06h,60.4,68.9,-51.8,71.4,74.6,-68.3 -CR,2281,2024:02:14,12h,68.1,69.3,-66.9,72.6,75.1,-70.2 -CR,2282,2024:03:12,19h,69.3,74.2,-64.3,74.5,75.1,-74.0 -CR,2283,2024:04:09,01h,60.3,66.9,-53.7,74.5,74.9,-74.0 -CR,2284,2024:05:06,08h,56.7,50.4,-63.0,68.2,61.5,-74.9 -CR,2285,2024:06:02,15h,57.6,47.3,-68.0,65.2,65.2,-65.3 -CR,2286,2024:06:29,21h,46.6,40.8,-52.4,66.3,57.6,-75.0 -CR,2287,2024:07:27,04h,52.7,41.6,-63.7,63.7,52.3,-75.2 -CR,2288,2024:08:23,10h,61.9,49.1,-74.7,67.3,60.4,-74.3 -CR,2289,2024:09:19,17h,62.3,52.6,-72.0,70.6,66.2,-75.1 -CR,2290,2024:10:17,00h,62.6,55.6,-69.5,73.3,71.5,-75.2 -CR,2291,2024:11:13,06h,64.0,54.1,-73.9,74.7,75.0,-74.5 -CR,2292,2024:12:10,13h,63.2,53.1,-73.3,74.5,75.0,-74.0 -CR,2293,2025:01:06,19h,61.2,53.1,-69.2,74.1,74.3,-74.0 diff --git a/build.sh b/build.sh index 3ea4038..088dd66 100755 --- a/build.sh +++ b/build.sh @@ -3,8 +3,8 @@ set -e rm -rf build mkdir build -#cmake -B build -DCPU_VERSION_ONLY=1 +cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release #-DCMAKE_CXX_FLAGS_RELEASE="-O3" #cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -march=native -flto -funroll-loops -ffast-math" -cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -march=native -flto -funroll-loops" +#cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -march=native -flto -funroll-loops" cmake --build build From 516d5e6eda3a1b32b3ca64710b540aa8df833ed8 Mon Sep 17 00:00:00 2001 From: marek395 Date: Wed, 21 May 2025 17:38:20 +0200 Subject: [PATCH 7/7] removed comments --- .../include/IOneDimensionBpCpuModel.hpp | 2 - .../src/GeliosphereCpuModel.cpp | 4 +- .../src/OneDimensionBpCpuModel.cpp | 42 +++++-------------- .../src/OneDimensionFpCpuModel.cpp | 7 ++-- build.sh | 10 ----- 5 files changed, 15 insertions(+), 50 deletions(-) delete mode 100755 build.sh diff --git a/CpuImplementations/include/IOneDimensionBpCpuModel.hpp b/CpuImplementations/include/IOneDimensionBpCpuModel.hpp index 568a36c..bb79b8b 100644 --- a/CpuImplementations/include/IOneDimensionBpCpuModel.hpp +++ b/CpuImplementations/include/IOneDimensionBpCpuModel.hpp @@ -5,11 +5,9 @@ class IOneDimensionBpCpuModel { protected: virtual double Beta(double Tkin) = 0; virtual double RigFromTkin(double Tkin) = 0; - //virtual double RigFromMomentum(double p) = 0; virtual double Kdiffr(double beta, double Rig) = 0; virtual double Dp(double V, double p, double r) = 0; virtual double Dr(double V, double Kdiff, double r, double dt, double rand) = 0; - //virtual double TkinFromRig(double Rig) = 0; virtual double W(double p) = 0; public: diff --git a/CpuImplementations/src/GeliosphereCpuModel.cpp b/CpuImplementations/src/GeliosphereCpuModel.cpp index 0028a6f..e3443ac 100644 --- a/CpuImplementations/src/GeliosphereCpuModel.cpp +++ b/CpuImplementations/src/GeliosphereCpuModel.cpp @@ -244,9 +244,7 @@ void GeliosphereCpuModel::simulation(int threadNumber, unsigned int availableThr if (r > 100.0) { - //outputMutex.lock(); - //outputQueue.push({Tkininj, Tkin, r, w, thetainj, theta}); - //outputMutex.unlock(); + localOutputs.emplace_back(SimulationOutput{Tkininj, Tkin, r, w, thetainj, theta}); break; diff --git a/CpuImplementations/src/OneDimensionBpCpuModel.cpp b/CpuImplementations/src/OneDimensionBpCpuModel.cpp index 6d94995..a160f00 100644 --- a/CpuImplementations/src/OneDimensionBpCpuModel.cpp +++ b/CpuImplementations/src/OneDimensionBpCpuModel.cpp @@ -60,7 +60,7 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available double w = 0; double p = 0, dp = 0, pp = 0, Kdiff = 0; - // Constants to avoid repeated calls + const double C_Q = c / q; const double C_Q_1E9 = C_Q / 1e9; const double t0Term = T0 * T0 * q * q * 1e18; @@ -70,12 +70,12 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available thread_local std::mt19937 generator(rd()); thread_local std::normal_distribution distribution(0.0f, 1.0f); - // cache TLS references to avoid __tls_get_addr overhead + auto& gen = generator; - auto& dist = distribution; //avoids repeated __tls_get_addr lookup for thread-local variables + auto& dist = distribution; std::vector localOutputs; - localOutputs.reserve(101 * 250); // avoiding reallocations and segmentation fault caused by it + localOutputs.reserve(101 * 250); for (int energy = 0; energy < 101; energy++) { @@ -85,29 +85,28 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available Tkin = Tkininj; Rig = RigFromTkin(Tkin); - //p = Rig * 1e9 * q / c; + p = Rig / C_Q_1E9; r = rInit; while (r < 100.0002) { beta = Beta(Tkin); - //Rig = (p * c / q) / 1e9; + Rig = p * C_Q_1E9; pp = p; dp = Dp(V, pp, r); p -= dp; Kdiff = Kdiffr(beta, Rig); - arnum = dist(gen); // much faster than distribution(generator); - //arnum = distribution(generator); + arnum = dist(gen); + dr = Dr(V, Kdiff, r, dt, arnum); r += dr; - // Rig = p * c / q; + Rig = p * C_Q; - //Tkin = TkinFromRig(Rig); - //Tkin = (sqrt((T0 * T0 * q * q * 1e9 * 1e9) + (q * q * Rig * Rig)) - (T0 * q * 1e9)) / (q * 1e9); + Tkin = (sqrt(t0Term + (q * q * Rig * Rig)) - (T0 * q1e9)) / q1e9; beta = Beta(Tkin); @@ -116,12 +115,9 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available if ((r > 100.0f) && ((r - dr) < 100.0f)) { w = W(p); - //outputMutex.lock(); - //outputQueue.push({Tkin, Tkininj, r, w}); - //outputMutex.unlock(); localOutputs.emplace_back(SimulationOutput{Tkin, Tkininj, r, w}); - //localOutputs.emplace_back(Tkin, Tkininj, r, w); + break; } } @@ -144,12 +140,6 @@ void OneDimensionBpCpuModel::simulation(int threadNumber, unsigned int available { outputQueue.push(output); } - //outputMutex.lock(); - //for (const auto& output : localOutputs) - //{ - // outputQueue.push(output); - //} - //outputMutex.unlock(); } } @@ -163,11 +153,6 @@ double OneDimensionBpCpuModel::RigFromTkin(double Tkin) return sqrt(Tkin * (Tkin + 2.0 * T0)); } -//double OneDimensionBpCpuModel::RigFromMomentum(double p) -//{ -// return (p * c / q) / 1e9; -//} - double OneDimensionBpCpuModel::Kdiffr(double beta, double Rig) { return K0 * beta * Rig; @@ -183,11 +168,6 @@ double OneDimensionBpCpuModel::Dr(double V, double Kdiff, double r, double dt, d return (V + (2.0 * Kdiff / r)) * dt + (rand * sqrt(2.0 * Kdiff * dt)); } -//double OneDimensionBpCpuModel::TkinFromRig(double Rig) -//{ -// return (sqrt((T0 * T0 * q * q * 1e9 * 1e9) + (q * q * Rig * Rig)) - (T0 * q * 1e9)) / (q * 1e9); -//} - double OneDimensionBpCpuModel::W(double p) { double w = (m0 * m0 * c * c * c * c) + (p * p * c * c); diff --git a/CpuImplementations/src/OneDimensionFpCpuModel.cpp b/CpuImplementations/src/OneDimensionFpCpuModel.cpp index df4d6a1..efbe6b5 100644 --- a/CpuImplementations/src/OneDimensionFpCpuModel.cpp +++ b/CpuImplementations/src/OneDimensionFpCpuModel.cpp @@ -86,7 +86,7 @@ void OneDimensionFpCpuModel::simulation(int threadNumber, unsigned int available Rig = RigFromTkin(Tkin); Kdiff = Kdiffr(beta, Rig); arnum = dist(gen); - //arnum = distribution(generator); + dr = Dr(V, Kdiff, r, dt, arnum); dp = Dp(V, p, r); cfactor = Cfactor(V, r); @@ -103,10 +103,9 @@ void OneDimensionFpCpuModel::simulation(int threadNumber, unsigned int available if (beta > 0.01 && Tkin < 100.0) { if ((r - 1.0) / ((r - dr) - 1.0) < 0.0) { - //outputMutex.lock(); - //outputQueue.push({pinj, p, r, w, sumac}); + localOutputs.emplace_back(SimulationOutput{pinj, p, r, w, sumac}); - //outputMutex.unlock(); + } } if (beta < 0.01) break; diff --git a/build.sh b/build.sh deleted file mode 100755 index 088dd66..0000000 --- a/build.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -set -e -rm -rf build -mkdir build -cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release #-DCMAKE_CXX_FLAGS_RELEASE="-O3" -#cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -march=native -flto -funroll-loops -ffast-math" -#cmake -B build -DCPU_VERSION_ONLY=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS_RELEASE="-O3 -march=native -flto -funroll-loops" -cmake --build build -