From aa87018610c54f4b8ca5b8f0bf516cb35956debc Mon Sep 17 00:00:00 2001 From: ZarebaMichal Date: Mon, 23 May 2022 13:21:07 +0200 Subject: [PATCH] jad55a swiry5 --- run4.py | 101 ++++ test-A/out.tsv | 1440 ++++++++++++++++++++++++------------------------ 2 files changed, 821 insertions(+), 720 deletions(-) create mode 100644 run4.py diff --git a/run4.py b/run4.py new file mode 100644 index 0000000..6a92d2e --- /dev/null +++ b/run4.py @@ -0,0 +1,101 @@ +import pandas as pd + +import tensorflow.keras + +import numpy as np +import pandas as pd +import xgboost as xg +import keras_tuner as kt + + +import tensorflow.keras +from sklearn.preprocessing import PolynomialFeatures +from tensorflow.keras.models import Sequential +from tensorflow.keras.layers import Dense + +in_columns = ["id_stacji", "nazwa_stacji", "typ_zbioru", "rok", "miesiąc"] +df = pd.read_csv("train/in.tsv", names=in_columns, sep="\t") +df_test = pd.read_csv("dev-0/in.tsv", names=in_columns, sep="\t") + +df = pd.concat([df, df_test]) +x = pd.get_dummies(df, columns=["id_stacji", "rok", "miesiąc"]) +x = x.drop(["nazwa_stacji", "typ_zbioru"], axis=1) +x = x.iloc[:-600] +y = pd.read_csv("train/expected.tsv", sep="\t", names=["rainfall"]) +from keras_tuner import HyperModel + + +class ANNHyperModel(HyperModel): + + def build(self, hp): + model = tensorflow.keras.Sequential() + # Tune the number of units in the first Dense layer + # Choose an optimal value between 32-512 + hp_units1 = hp.Int('units1', min_value=32, max_value=512, step=32) + hp_units2 = hp.Int('units2', min_value=32, max_value=512, step=32) + hp_units3 = hp.Int('units3', min_value=32, max_value=512, step=32) + hp_units4 = hp.Int('units4', min_value=32, max_value=512, step=32) + hp_units5 = hp.Int('units5', min_value=32, max_value=512, step=32) + model.add(Dense(units=hp_units1, activation='relu')) + model.add(tensorflow.keras.layers.Dense(units=hp_units2, activation='relu')) + model.add(tensorflow.keras.layers.Dense(units=hp_units3, activation='relu')) + model.add(tensorflow.keras.layers.Dense(units=hp_units4, activation='relu')) + model.add(tensorflow.keras.layers.Dense(units=hp_units5, activation='relu')) + model.add(Dense(1, kernel_initializer='normal', activation='linear')) + + # Tune the learning rate for the optimizer + # Choose an optimal value from 0.01, 0.001, or 0.0001 + hp_learning_rate = hp.Choice('learning_rate', + values=[1e-2, 1e-3, 1e-4]) + + model.compile( + optimizer=tensorflow.keras.optimizers.Adam(learning_rate=hp_learning_rate), + loss="mean_squared_error", + metrics=["mean_squared_error"] + ) + + return model + + +hypermodel = ANNHyperModel() + +tuner = kt.Hyperband( + hypermodel, + objective='mean_squared_error', + max_epochs=100, + factor=3, + directory='keras_tuner_dir', + project_name='keras_tuner_demo2' +) +#po#ly = PolynomialFeatures(2, interaction_only=True) +#x = poly.fit_transform(x) + +tuner.search(x, y, epochs=100) + +for h_param in [f"units{i}" for i in range(1,4)] + ['learning_rate']: + print(h_param, tuner.get_best_hyperparameters()[0].get(h_param)) + +best_model = tuner.get_best_models()[0] +best_model.build(x.shape) +best_model.summary() + +best_model.fit( + x, + y, + epochs=100, + batch_size=64 +) +x_test = pd.read_csv("test-A/in.tsv", sep="\t", names=in_columns) +df_train = pd.read_csv("train/in.tsv", names=in_columns, sep="\t") + +x_test = pd.concat([x_test, df_train]) + +x_test = x_test.drop(["nazwa_stacji", "typ_zbioru"], axis=1) +x_test = pd.get_dummies(x_test, columns=["id_stacji", "rok", "miesiąc"]) +x_test = x_test.iloc[:-8760] +#poly = PolynomialFeatures(2, interaction_only=True) +#x_test= poly.fit_transform(x_test) +pred = best_model.predict(x_test) +out = pd.DataFrame(pred) +out.to_csv("test-A/out.tsv", sep="\t", header=False, index=False) + diff --git a/test-A/out.tsv b/test-A/out.tsv index ffefd01..71c4dea 100644 --- a/test-A/out.tsv +++ b/test-A/out.tsv @@ -1,720 +1,720 @@ -29.768827 -31.710934 -25.947386 -65.865814 -94.77142 -114.37246 -267.67337 -79.05 -22.198778 -30.015196 -0.77619606 -36.607475 -32.040398 -23.410757 -20.933651 -46.35751 -68.885345 -84.41064 -214.4227 -68.81003 -22.564512 -36.37552 -0.7750267 -35.860756 -28.45677 -22.61162 -12.750895 -28.282078 -42.130436 -50.473534 -198.78934 -57.830463 -6.8050694 -18.999502 -0.39034083 -34.995014 -32.081997 -30.39704 -26.069925 -33.538437 -49.200855 -57.2747 -194.36443 -58.705776 -11.797995 -19.14976 -2.9994378 -42.935097 -41.19398 -31.216568 -18.490124 -46.83151 -55.347782 -61.226147 -226.54759 -75.09426 -13.05011 -28.890455 -2.6280134 -42.83845 -34.12765 -34.041317 -14.151872 -43.16164 -84.168724 -68.39946 -206.99031 -64.17023 -19.97442 -27.795473 -1.8570788 -39.287224 -73.50281 -43.264767 -35.221607 -69.05361 -71.57579 -159.38692 -138.5164 -76.181175 -48.190136 -88.11768 -40.029705 -36.388363 -53.091106 -30.611635 -22.116873 -50.795856 -60.175373 -126.41033 -105.502365 -64.094 -41.69571 -76.10021 -34.018032 -28.866465 -54.94752 -35.660526 -26.42289 -38.85401 -43.275616 -86.747185 -97.854546 -63.582706 -27.548965 -61.679012 -36.39546 -39.086494 -53.172565 -31.599945 -15.062006 -41.29092 -28.807964 -70.37855 -74.02393 -38.011692 -26.961302 -56.131237 -34.914795 -36.574535 -61.374165 -29.996223 -19.522264 -35.30924 -26.275454 -89.87295 -83.250534 -50.232162 -16.714674 -59.613472 -30.33827 -32.41292 -54.90512 -31.695812 -17.038128 -45.495266 -64.784615 -95.57392 -97.75278 -43.71451 -32.27741 -68.80456 -41.79691 -34.033474 -66.951 -52.04297 -63.834324 -58.75339 -151.93985 -185.99472 -82.47497 -60.243435 -118.82472 -31.286264 -70.15191 -30.866854 -65.51252 -33.71638 -44.06059 -43.156414 -119.626625 -164.40796 -55.633682 -64.691 -117.69537 -25.543737 -59.254627 -22.899462 -49.461475 -35.71159 -42.201054 -26.526714 -78.81432 -94.05439 -48.567738 -41.814167 -76.44896 -15.583934 -38.371964 -30.227304 -62.371246 -38.133854 -45.94922 -28.859892 -96.47675 -112.52793 -39.394268 -59.719074 -95.52548 -19.755741 -49.826992 -38.96448 -50.95127 -27.731993 -34.4079 -26.898699 -69.4348 -84.0044 -36.27161 -37.634377 -91.10705 -9.411579 -39.077915 -28.078686 -56.351387 -39.72655 -39.507206 -35.008457 -96.16712 -96.08316 -38.845943 -34.881115 -102.334 -18.096418 -57.51453 -23.643545 -68.91438 -40.340076 -64.35278 -80.57987 -171.30374 -122.14152 -168.53508 -135.12654 -59.93749 -42.409897 -33.502815 -53.63959 -43.22733 -12.881696 -34.009533 -66.72509 -115.99827 -72.96914 -111.18923 -87.165886 -42.2375 -29.80407 -23.460453 -35.037533 -44.076653 -30.367064 -39.012802 -41.577755 -91.794945 -57.63648 -102.555214 -100.69443 -25.96717 -25.826982 -26.393908 -50.35998 -46.176365 -22.302404 -35.97891 -39.476307 -76.81781 -56.1276 -86.66329 -80.52142 -23.073082 -16.710262 -23.169739 -40.953266 -44.768852 -24.090218 -43.517773 -49.627193 -75.399315 -57.97147 -80.86941 -88.35143 -26.624178 -22.928816 -24.78655 -46.010754 -47.502544 -26.133184 -48.554012 -60.307346 -113.14658 -68.38705 -97.11715 -87.75183 -38.506832 -26.219118 -24.893072 -64.144226 -62.02367 -28.595633 -56.70183 -43.877804 -113.810104 -58.863773 -118.88107 -24.803537 -68.351746 -48.071407 -56.337 -32.57636 -61.18072 -18.022352 -40.731678 -37.413822 -106.591255 -49.778187 -83.87528 -40.833057 -74.84911 -65.841156 -65.22743 -24.579933 -49.57162 -19.616034 -38.668423 -25.795933 -71.332985 -12.445528 -53.427128 -17.607317 -42.376125 -20.470846 -55.093052 -33.560688 -60.75558 -22.70563 -41.93246 -32.02728 -57.677334 -22.550138 -52.273907 -29.322697 -47.643826 -29.080462 -55.710026 -36.8679 -59.263603 -22.002928 -40.35642 -21.511324 -54.34159 -19.27072 -48.78236 -20.016003 -43.70546 -30.943249 -46.619495 -33.181873 -64.42601 -19.728548 -40.91917 -35.649113 -86.03784 -24.138144 -51.750748 -7.8447046 -65.34695 -37.790295 -62.44808 -27.031673 -31.275948 -80.59913 -38.15263 -63.089703 -63.768795 -96.979774 -154.4645 -88.00219 -45.566902 -111.882225 -52.34145 -51.61661 -34.020042 -70.416756 -30.74914 -57.650585 -49.916973 -80.57194 -129.2919 -76.397804 -43.738304 -107.43316 -41.34737 -40.05952 -30.254633 -56.77443 -25.214893 -39.229153 -27.307367 -41.47715 -104.674675 -55.716885 -18.897581 -82.424644 -39.92004 -51.220802 -35.052357 -66.763954 -36.844784 -39.67828 -27.09925 -44.44125 -110.51386 -59.62324 -29.343317 -86.50091 -36.552353 -50.523415 -36.864414 -64.57985 -37.053104 -45.855167 -31.428461 -35.232834 -110.696175 -62.690487 -18.582106 -84.735054 -37.799644 -55.218586 -33.57713 -73.19039 -33.680454 -44.116436 -51.681057 -58.83019 -105.26037 -47.82239 -31.637362 -107.15266 -43.57518 -48.261734 -19.09772 -35.40402 -54.373318 -84.873 -73.425545 -97.66967 -129.35089 -85.74763 -134.07031 -89.46151 -51.83254 -40.597164 -13.370298 -30.924215 -42.800823 -81.76861 -45.784023 -87.87326 -95.3313 -62.761784 -124.04597 -88.03689 -52.175373 -35.226295 -12.951839 -36.408188 -41.305347 -48.164265 -34.44769 -51.187 -86.965096 -59.00666 -90.467285 -73.2937 -42.741135 -35.346066 -15.431298 -36.347134 -43.491768 -71.42104 -25.56713 -45.363186 -76.976715 -52.63792 -87.98268 -66.87461 -41.872917 -34.80686 -12.906402 -30.621836 -36.880997 -66.3061 -38.594982 -44.79704 -89.877235 -54.465115 -68.122505 -66.405426 -46.202015 -40.57584 -15.699238 -43.36423 -37.616035 -85.72425 -54.143612 -57.94193 -83.285614 -68.555565 -114.828606 -81.15429 -52.625195 -41.959118 -47.80524 -30.740017 -45.90752 -39.258354 -92.28929 -126.03588 -162.56863 -107.06367 -57.86804 -73.240585 -15.373644 -78.55369 -26.410315 -19.209906 -26.784182 -39.789516 -62.686054 -90.27366 -132.42712 -74.84585 -54.2385 -64.775024 -16.135954 -59.462833 -27.216444 -25.983725 -22.478933 -19.814653 -35.031803 -46.010487 -117.24417 -56.08985 -23.68829 -41.701653 -16.824888 -61.166157 -30.868568 -14.427874 -24.083454 -25.282736 -31.428076 -35.10749 -103.914154 -54.108814 -26.572021 -39.960423 -17.59418 -60.02397 -24.550568 -21.823027 -18.051483 -24.622034 -41.605923 -51.765728 -100.26422 -54.618298 -32.434883 -35.246204 -15.632042 -64.4011 -31.022802 -21.047064 -31.70244 -41.283813 -55.257378 -56.06593 -106.475685 -57.775555 -44.38738 -53.183846 -21.745354 -59.396908 -59.96606 -23.377733 -42.891838 -40.60528 -144.10867 -62.18588 -84.63456 -114.16346 -92.97891 -35.304394 -46.432552 -44.924847 -51.52634 -23.273352 -40.025597 -33.951744 -128.19244 -49.487675 -81.606766 -97.59548 -70.46565 -46.104206 -33.108555 -45.067516 -57.97599 -27.05974 -41.840313 -24.287077 -99.62037 -23.172823 -71.359886 -80.709175 -53.978825 -31.972918 -33.588802 -46.028744 -44.23429 -16.955746 -31.927532 -23.236137 -57.12891 -19.746452 -49.895313 -62.143078 -40.452145 -21.789297 -19.2713 -50.835594 -48.54475 -32.7299 -39.93382 -30.765825 -73.55161 -25.303349 -68.703926 -77.04268 -43.02554 -30.584929 -38.109722 -58.09123 -53.42061 -25.45497 -36.63343 -20.933962 -109.423744 -32.913 -52.228554 -67.33789 -56.60648 -30.546947 -33.423256 -49.716213 -29.646261 -46.802814 -29.599552 -16.726786 -123.45725 -158.77644 -121.74203 -87.97587 -73.92507 -101.8169 -19.138021 -31.863274 -21.690622 -52.842457 -26.074862 -16.066233 -98.36007 -159.38803 -85.9804 -100.246574 -59.780132 -98.99523 -21.525974 -26.167301 -28.30958 -59.63785 -22.389616 -11.130052 -73.047325 -116.8402 -87.59267 -80.19492 -41.915485 -88.18464 -23.433455 -36.30151 -30.179205 -62.539066 -30.275785 -11.31489 -64.562546 -91.95034 -78.52566 -71.181 -35.21088 -78.18988 -16.709229 -30.673925 -25.738956 -54.974422 -24.598145 -6.2577395 -58.22228 -96.34599 -67.47898 -67.22231 -34.127453 -67.865204 -15.70143 -32.303738 -26.537416 -59.87077 -33.952793 -13.087846 -94.61457 -120.526085 -75.96827 -81.99293 -61.240013 -85.60027 -25.255638 -38.79995 +26.673447 +47.208614 +28.466967 +80.046265 +99.13709 +122.54153 +285.3503 +106.21095 +20.997137 +35.85399 +17.863832 +54.56237 +24.600603 +14.591456 +27.439363 +65.12832 +116.61464 +103.73411 +201.3001 +99.20202 +30.48622 +30.694275 +6.1946635 +34.62956 +20.046453 +13.265361 +16.727589 +18.583155 +70.69804 +24.296717 +222.17532 +69.48451 +14.247454 +19.88241 +-3.1908062 +48.76167 +40.914715 +15.617181 +21.406456 +32.63265 +58.877277 +38.785526 +177.43922 +44.11204 +26.44636 +18.95489 +7.452373 +41.81396 +37.51916 +37.92526 +16.04649 +26.274946 +45.59905 +49.57782 +147.36583 +87.546616 +16.613913 +24.539 +5.1581106 +40.867226 +29.703373 +16.161856 +12.900649 +23.104307 +55.18285 +50.516808 +203.4388 +61.70536 +9.466535 +17.240294 +2.8556283 +22.207188 +98.269295 +61.95484 +48.16038 +95.96799 +104.897224 +140.46349 +155.65974 +155.90144 +76.45265 +120.17742 +53.85426 +61.631626 +51.310547 +24.455574 +25.600435 +49.26066 +46.776104 +138.11021 +84.9935 +17.700432 +38.57915 +91.473854 +28.300068 +28.169905 +56.980495 +32.024815 +26.609663 +32.64398 +36.400425 +51.87595 +74.155396 +40.213535 +29.823147 +84.448555 +27.185099 +21.10536 +66.22131 +35.728405 +23.125086 +25.53015 +28.531565 +55.063152 +32.885437 +25.484179 +32.312412 +61.329662 +27.647314 +30.184671 +73.44175 +38.79935 +29.178642 +30.205046 +33.938404 +93.92817 +54.077335 +73.358955 +22.764795 +54.404015 +41.836945 +38.29262 +66.46634 +27.408724 +11.155957 +40.249798 +42.105984 +72.019646 +59.345417 +44.651836 +26.411978 +94.59383 +43.89729 +32.194027 +59.33807 +58.244045 +83.84045 +77.96369 +133.12263 +169.5872 +52.500904 +72.307915 +110.37735 +43.192917 +88.03059 +25.661049 +75.28388 +63.422592 +83.54292 +69.8715 +148.48286 +202.33571 +41.37737 +60.354023 +120.52673 +21.70798 +93.292076 +37.51177 +46.297546 +24.014265 +29.111025 +33.565353 +107.55305 +106.68063 +48.16464 +44.909756 +95.6269 +6.728013 +36.745792 +25.648596 +62.16689 +36.360798 +49.984093 +25.597424 +93.21102 +99.74195 +51.42593 +50.114124 +78.848656 +14.871907 +39.297543 +20.071066 +56.90475 +40.207027 +17.572622 +34.98196 +55.845158 +67.828224 +21.284473 +35.49482 +48.522644 +17.899542 +32.717464 +22.934532 +55.924786 +27.669783 +50.071766 +46.529617 +79.65024 +155.34645 +51.117996 +69.258385 +146.94205 +17.344324 +45.25134 +19.160282 +40.765778 +31.187092 +51.21391 +95.22155 +145.36366 +109.48986 +160.34361 +164.37608 +58.38247 +40.262833 +34.904766 +56.102055 +25.714392 +17.558084 +32.068447 +37.407932 +89.41668 +79.50518 +109.40727 +77.11373 +46.41479 +36.506504 +8.171697 +29.767462 +36.85764 +15.174018 +35.239147 +51.919033 +64.0477 +63.668156 +102.02747 +79.38661 +20.499804 +23.111345 +15.025412 +65.44816 +47.233353 +14.12633 +56.461987 +53.56046 +83.96995 +90.811844 +109.798676 +53.59363 +26.86626 +25.798628 +43.481647 +69.61544 +68.8332 +29.37274 +57.056866 +71.05946 +113.48328 +80.36236 +150.01265 +169.21858 +37.98312 +47.543766 +28.237295 +55.483868 +51.94769 +37.185726 +38.088 +26.265646 +80.31066 +32.79183 +93.07218 +65.76957 +33.421406 +25.25756 +11.247613 +44.33144 +72.85529 +32.90303 +43.513824 +37.26408 +77.807274 +43.561077 +53.65865 +17.888699 +71.27682 +65.58638 +59.968204 +17.115574 +46.713913 +24.626543 +46.502666 +25.406767 +86.03095 +30.628157 +53.739826 +21.493185 +67.99064 +52.54716 +63.49009 +21.615953 +31.819136 +24.106464 +15.492977 +26.602455 +62.48731 +22.523443 +25.420616 +18.071154 +36.191288 +30.286392 +28.591028 +20.824995 +42.049255 +13.313319 +24.52712 +16.125267 +53.572983 +30.677786 +51.611755 +26.340235 +53.039692 +28.433748 +48.568222 +41.068752 +48.415257 +11.058991 +27.631529 +17.900068 +33.813583 +20.41974 +44.50104 +22.64669 +16.16556 +21.07026 +36.17624 +26.645575 +49.25822 +6.9269176 +38.60101 +33.16409 +74.18522 +27.346664 +73.69259 +26.887894 +56.38901 +32.910767 +51.402508 +37.413292 +59.08227 +116.706985 +67.05933 +110.86559 +109.21003 +112.65856 +269.74057 +143.9936 +76.421326 +142.29231 +81.77709 +90.544495 +37.154675 +43.013515 +32.84057 +47.76931 +32.02772 +76.27146 +88.62087 +41.558926 +41.4642 +79.12191 +19.47277 +39.833347 +19.374685 +67.5998 +19.440363 +24.51599 +23.707956 +32.62247 +98.018036 +43.591213 +15.448009 +84.61883 +28.15992 +37.208805 +33.062283 +71.05042 +24.671097 +20.94422 +25.635834 +27.223957 +93.97844 +43.315643 +26.863558 +71.423195 +12.7623205 +45.533665 +42.444824 +56.661774 +29.885668 +42.042213 +32.72293 +23.867918 +83.22148 +71.11688 +21.46422 +64.89437 +25.411974 +50.64607 +45.595013 +66.28742 +37.40312 +46.80032 +43.956295 +51.99349 +89.16053 +73.30396 +21.799105 +108.48568 +46.015133 +41.40225 +30.210333 +67.687965 +70.797676 +170.69325 +149.1168 +160.16106 +207.66945 +140.52074 +222.12315 +129.32285 +79.37078 +74.391335 +4.0123825 +33.946487 +44.80115 +92.91587 +44.571926 +98.895096 +121.07217 +75.53537 +145.55763 +74.02572 +36.572353 +26.72333 +17.610489 +40.29557 +40.851215 +39.01737 +18.960686 +32.304497 +83.650734 +59.082912 +116.41115 +73.08725 +60.137203 +38.581364 +3.3016737 +18.082216 +39.925613 +32.411884 +4.8469424 +33.254955 +38.836414 +46.264084 +58.50475 +31.545984 +49.521202 +30.833982 +4.3107314 +13.452947 +44.790257 +23.406263 +15.552362 +17.999979 +45.061382 +22.92537 +41.842876 +49.76068 +42.583565 +25.03069 +25.784369 +28.467627 +56.060978 +43.421333 +33.293278 +29.1948 +61.9995 +27.474495 +78.83908 +91.11141 +48.330288 +43.42172 +20.63817 +43.412743 +45.98789 +55.700302 +62.839558 +81.09647 +156.20586 +110.580925 +42.509174 +61.343456 +12.180739 +67.18185 +15.451295 +25.069002 +20.630957 +31.13776 +73.95345 +68.574104 +114.67341 +66.701 +39.580936 +38.442154 +2.013252 +54.021183 +24.14944 +32.046898 +52.481823 +19.044579 +74.53474 +98.685745 +146.71782 +77.98864 +62.68655 +74.5114 +27.560377 +82.75706 +30.619629 +21.63842 +49.055164 +29.543007 +85.78891 +46.542934 +153.52042 +80.52776 +50.180843 +32.861084 +32.661976 +89.16494 +34.242237 +26.62152 +31.520014 +30.239937 +42.587936 +55.56906 +101.27456 +49.345783 +49.636623 +61.00239 +12.127416 +58.79004 +29.926256 +27.548574 +33.184437 +35.09115 +68.17204 +52.141674 +131.2184 +73.66517 +56.86899 +85.29031 +24.576185 +65.305626 +79.7589 +31.793224 +60.05248 +84.584694 +101.48016 +87.46233 +119.515434 +124.3038 +126.57375 +63.179173 +59.31258 +50.17171 +60.514744 +37.066868 +40.07807 +50.780186 +104.83147 +62.073345 +51.65332 +73.53602 +83.10209 +30.735657 +44.386925 +49.57483 +38.456387 +22.877241 +42.559006 +31.18187 +109.909294 +16.126635 +86.89414 +113.79715 +53.595066 +22.685228 +46.080135 +72.21722 +37.641827 +19.221071 +33.058235 +16.284273 +60.008278 +27.288052 +28.539228 +68.00509 +39.02921 +14.950258 +31.176584 +52.481274 +56.324253 +19.280542 +31.48382 +16.380342 +74.02952 +40.95988 +63.797108 +95.08477 +57.72244 +32.029594 +26.010489 +52.760685 +47.99029 +20.779707 +36.93411 +17.93992 +89.67417 +15.823379 +36.11553 +50.715748 +52.68913 +40.116306 +21.276077 +55.599503 +36.032787 +118.70977 +50.9193 +29.543688 +144.39502 +162.99754 +98.90239 +105.970085 +81.90501 +125.401024 +21.18458 +44.983944 +10.926419 +53.407722 +42.523838 +12.368892 +121.91477 +146.43028 +74.481316 +60.212734 +68.74755 +101.07006 +17.937243 +22.278307 +22.865438 +38.766243 +35.54668 +15.331695 +84.96952 +109.50478 +94.17562 +49.56972 +45.86224 +74.9797 +23.806185 +27.915377 +46.423897 +74.419365 +46.608837 +11.582054 +61.70638 +101.99142 +81.46888 +65.03362 +52.351315 +58.762447 +14.20324 +20.973318 +40.34822 +52.765656 +38.630318 +21.692686 +62.89668 +109.78147 +92.03016 +98.60455 +63.87299 +63.505074 +42.905895 +25.246513 +29.093576 +62.133175 +48.620327 +9.083835 +85.54682 +143.1693 +79.832565 +115.774445 +123.055695 +88.50884 +31.918764 +47.049