diff --git a/geo_rect.txt b/geo_rect.txt deleted file mode 100644 index fc6de6d..0000000 --- a/geo_rect.txt +++ /dev/null @@ -1,482 +0,0 @@ -# Comments can be added, beginning with #. This file -# gives lat/lon rectangles contained within the given region; -# if an MPC code is within that rectangle, we can ID it. -# Every now and then, an MPC code is added for which no -# rectangle exists; I then have to add a rectangle or two. -# 2017 January 5 version. - 6.61665 32.28687 2.38989 37.29359 Algeria - 303.64175 -38.50229 302.15234 -35.24411 Argentina - 300.93768 -34.54863 301.45872 -34.35379 Argentina - 301.02672 -38.17328 290.50902 -32.37026 Argentina - 302.89095 -35.28965 302.12838 -34.78234 Argentina - 301.52562 -38.73412 302.23469 -34.71156 Argentina - 301.53716 -32.76203 289.89217 -30.46666 Argentina - 300.86715 -37.92774 301.67172 -34.51240 Argentina - 44.38080 40.25636 44.17335 40.43883 Armenia - 141.01 -30.01 150.00 -33.99 Australia/NSW - 148.52754 -30.66768 151.34384 -35.50398 Australia/NSW - 151.01217 -33.80402 153.68080 -29.2 Australia/NSW - 129.05 -25.9 137.95 -11. Australia/NT - 138.05 -25.9 145.0 -10.0 Australia/QLD - 141.01 -29.99 149.9 -12. Australia/QLD - 149.8 -28.13 155.0 -18.0 Australia/QLD - 140.95 -36.36183 129.05 -26.01 Australia/SA - 148.97923 -43.76038 143.24429 -39.31771 Australia/Tas - 141.01 -35.25 143.559 -39.3 Australia/VIC - 143.5 -36.13 147.72 -39.3 Australia/VIC - 147.7 -37.21 149.07 -39.3 Australia/VIC - 145.0 -35.91 145.668 -36.2 Australia/VIC - 128.95 -36. 112.0 -13. Australia/WA - 11.77107 47.13301 11.07798 47.38256 Austria - 14.95533 47.58366 13.45508 48.49058 Austria - 13.77652 47.85553 15.89764 46.77534 Austria - 12.71037 47.53385 11.72928 47.11555 Austria - 13.62320 48.48479 13.46255 48.55128 Austria - 13.82595 48.48858 14.22155 48.58330 Austria - 14.90986 47.82697 16.77988 48.62573 Austria - 15.57874 48.60150 15.01147 48.88719 Austria - 15.93372 48.60211 15.53398 48.78982 Austria - 46.10015 39.06738 45.69896 39.36664 Azerbaijan - 46.89377 41.06503 47.56782 39.61658 Azerbaijan - 46.96026 39.95542 46.35821 41.06521 Azerbaijan - 30.15230 54.46161 30.24712 54.52937 Belarus - 30.35523 55.04222 30.28705 55.08988 Belarus - 30.27812 54.45837 30.34033 54.49805 Belarus - 5.00553 49.85874 5.79216 50.71319 Belgium - 4.18511 50.66358 5.12566 51.27599 Belgium - 5.03911 50.69128 5.52083 51.25122 Belgium - 4.22644 51.19 3.3 50.54 Belgium - 294.57113 -16.66101 297.32325 -21.86877 Bolivia - 330.28916 0.03543 306.83735 -29.53313 Brazil - 25.91725 43.19499 24.57098 41.61325 Bulgaria - 24.61143 42.22372 23.15293 41.60719 Bulgaria - 24.74661 42.19076 22.90864 42.96089 Bulgaria - 249.86930 59.89073 245.42444 49.75608 Canada/Alberta - 236.05 48.95000 236.73242 48.30226 Canada/BritColumbia - 298.30604 43.60429 295.96096 44.91909 Canada/Nova Scotia - 285.38574 45.38654 284.44996 45.47462 Canada/Ontario - 285.30635 45.04469 284.26289 45.40900 Canada/Ontario - 278.01652 46.07583 280.78125 42.81625 Canada/Ontario - 280.53092 44.70740 283.10161 43.72765 Canada/Ontario - 280.61230 44.63715 282.41811 45.99670 Canada/Ontario - 281.96388 45.35858 284.33828 44.63588 Canada/Ontario - 284.05454 45.67770 284.31170 45.46830 Canada/Quebec - 288.34713 49.15252 289.08656 45.40976 Canada/Quebec - 289.08652 49.14671 283.48122 45.64804 Canada/Quebec - 288.45030 49.03629 285.83650 45.04943 Canada/Quebec - 259.00000 59.85359 264.58043 49.23669 Saskatchewan - 341.07668 29.33848 344.78648 27.34900 Canary Islands (Spain) - 345.29990 27.92153 346.61836 29.48773 Canary Islands (Spain) - 287.27601 -18.48732 289.85593 -30.23000 Chile - 289.63796 -21.14104 291.00284 -19.37383 Chile - 289.68590 -24.07358 291.98828 -22.49820 Chile - 289.71092 -22.55626 291.47813 -21.05284 Chile - 289.25121 -34.25046 289.79314 -32.89775 Chile - 285.80770 -29.84105 289.33794 -35.91613 Chile - 104.25747 24.19882 100.66574 26.37183 China - 120.96994 37.04413 112.44415 41.89970 China - 102.24809 38.09609 122.48633 28.34430 China - 112.97536 16.33786 111.69634 17.32442 China - 118.89432 29.70569 112.50888 21.95902 China - 89.22342 42.33261 83.80413 45.06978 China - 112.82856 24.59552 103.89170 29.04381 China - 289.80134 6.65930 282.37228 0.92859 Colombia - 14.37218 44.83130 13.54180 45.31539 Croatia - 285.83226 19.46548 274.36275 23.57952 Cuba - 13.27408 50.15501 16.70350 49.14363 Czech Republic - 13.61627 50.11020 16.13267 50.55676 Czech Republic - 13.65693 49.53284 12.59025 50.36078 Czech Republic - 16.61382 49.92082 17.71492 49.19658 Czech Republic - 14.72286 49.17884 14.04752 48.71847 Czech Republic - 7.87268 57.21603 10.83340 55.13003 Denmark - 11.24686 55.51475 12.66328 55.77501 Denmark - 279.33622 -2.99496 282.40127 0.51311 Ecuador - 29.97687 28.99062 32.08110 30.46994 Egypt - 26.09511 58.15057 27.17496 58.57450 Estonia - 21.23840 61.25700 25.27909 59.96295 Finland - 26.28669 62.37893 30.37196 63.17464 Finland - 28.10833 63.40558 24.37278 65.13680 Finland - 22.18440 63.74796 27.25431 60.32244 Finland - 27.00762 62.46570 29.20649 61.34238 Finland - 56.49389 -22.56023 54.39112 -19.98478 France (Reunion) - 6.47313 43.07395 7.47170 44.08644 France - 359.42644 45.55514 354.42487 49.06454 France - 6.45043 44.83291 6.92869 44.66553 France - 7.39646 47.89687 7.52004 47.73689 France - 358.05139 48.41314 5.18263 49.66888 France - 6.11932 46.11860 6.14777 46.14370 France - 359.24805 48.46442 5.81866 45.07158 France - 7.39606 49.02656 7.78044 48.53779 France - 1.96742 45.20164 359.97887 42.84921 France - 5.75009 47.67562 6.38579 46.80298 France - 5.61726 49.08000 7.40853 47.60524 France - 7.42463 47.61814 7.20815 47.45129 France - 0.11053 45.63178 358.54598 43.41854 France - 1.90180 42.60236 6.52492 45.13567 France - 7.47031 47.58889 7.57657 47.61036 France - 1.51183 50.11989 2.53668 51.09 France - 44.32504 41.45680 44.96372 41.83815 Georgia - 44.71709 42.29313 45.01203 42.53524 Georgia - 42.93323 41.69227 42.66417 41.86347 Georgia - 11.86763 48.90576 12.65896 47.82995 Germany - 8.36860 48.52978 8.23668 49.04188 Germany - 6.63620 51.72678 6.53515 51.86976 Germany - 8.34661 48.00262 11.90089 50.97926 Germany - 7.40419 51.71744 6.61616 51.88706 Germany - 11.30153 48.03125 12.06161 47.67951 Germany - 9.15661 50.42325 6.73535 49.30787 Germany - 13.48518 50.89690 13.96587 51.25538 Germany - 12.67531 51.19280 14.43134 52.49042 Germany - 10.96989 48.04770 10.02392 47.63486 Germany - 10.19652 50.29814 6.32771 51.73617 Germany - 9.42431 54.52353 9.67069 54.82626 Germany - 13.88152 52.14215 7.38403 54.50790 Germany - 12.95814 50.41432 12.96201 50.41902 Germany - 7.41326 51.89521 7.07711 52.73193 Germany - 12.63158 48.62492 13.28095 48.33621 Germany - 12.85996 50.81841 7.34744 53.18958 Germany - 10.92026 48.15199 11.33561 47.52379 Germany - 12.63383 48.61270 13.41502 48.96749 Germany - 12.74389 50.56976 13.24772 50.80878 Germany - 13.73321 48.85481 13.38786 48.58992 Germany - 18.52225 46.08073 17.75627 45.84474 Hungary - 18.02318 46.49048 19.38919 46.06637 Hungary - 20.45682 46.47066 17.60547 47.71569 Hungary - 18.04473 46.51059 17.39601 45.98276 Hungary - 19.34007 46.38363 19.88454 46.20231 Hungary - 17.62012 47.03845 16.93915 46.29733 Hungary - 20.64428 46.37501 19.87099 46.19900 Hungary - 21.54896 47.49385 20.53981 48.49713 Hungary - 21.03545 46.35997 18.92757 48.00685 Hungary - 80.94995 11.93615 72.25161 21.70166 India - 140.8 -9.95 96.4 0.8 Indonesia - 349.68828 51.33700 351.84398 54.36996 Ireland - 351.71360 51.40094 354.14121 53.94126 Ireland - 34.61037 32.75544 34.93281 31.66239 Israel - 35.03207 31.88782 35.03133 31.88867 Israel - 35.16755 31.09339 34.58640 30.44606 Israel - 9.22529 46.12911 10.32621 46.21294 Italy - 7.22159 44.33260 6.98587 44.67398 Italy - 13.97572 43.72679 13.18425 42.85468 Italy - 7.81254 44.70741 7.04130 45.20363 Italy - 13.85618 45.63548 13.88033 45.64737 Italy - 10.33888 45.77192 9.13544 46.13470 Italy - 13.42322 46.09051 13.55026 46.21083 Italy - 9.14671 46.04991 9.03194 45.98286 Italy - 7.82084 45.76976 8.85791 45.93909 Italy - 10.41452 45.78326 7.77584 43.70087 Italy - 9.14544 45.77229 9.05210 45.85571 Italy - 12.51691 45.91538 13.42967 46.18919 Italy - 12.32192 45.48387 13.54898 45.95027 Italy - 14.86710 35.66777 14.06173 36.20539 Malta - 9.98153 46.20762 9.30265 46.28067 Italy - 10.53103 46.42760 12.41900 46.64194 Italy - 10.31590 44.66722 12.84818 46.49271 Italy - 13.26438 41.18909 10.27730 44.78384 Italy - 7.83963 45.88043 7.18678 45.19624 Italy - 12.39965 46.48974 13.11894 46.59146 Italy - 16.85007 40.21829 12.83623 42.89678 Italy - 9.05729 45.78153 8.84568 45.81827 Italy - 9.14225 45.95035 9.08380 45.85379 Italy - 7.82013 44.72374 7.18956 44.22609 Italy - 18.32110 40.31866 12.59002 36.87520 Italy - 13.40772 45.94012 13.50458 45.98338 Italy - 13.73348 45.62637 13.87513 45.65408 Italy - 9.13802 45.95847 9.01496 45.98434 Italy - 142.41803 40.62646 135.85227 34.65505 Japan - 145.42389 40.02539 140.37555 45.51070 Japan - 132.07509 31.12666 129.96510 33.88421 Japan - 137.47065 35.69954 130.98739 32.77891 Japan - 130.22831 28.80645 123.60558 23.99891 Japan - 128.51568 28.61316 132.03310 31.09215 Japan - 76.80139 43.16215 78.01635 43.35917 Kazakhstan - 68.94648 54.84532 69.22710 54.95710 Kazakhstan - 24.48257 56.73339 24.28742 56.85303 Latvia - 25.23357 54.61716 25.65696 55.38338 Lithuania - 6.10358 49.51990 6.19952 49.59137 Luxembourg - 240.65300 25.08918 246.53771 31.98011 Mexico - 244.32956 25.81214 267.58568 14.14910 Mexico - 353.56604 35.73798 357.51698 32.50899 Morocco - 348.15687 35.45834 354.36490 30.17274 Morocco - 15.30026 -18.17073 19.80994 -27.80360 Namibia - 4.64944 53.29173 6.98727 52.70932 Netherlands - 4.36278 52.18116 4.93898 52.38185 Netherlands - 4.79648 52.88124 6.55358 51.92444 Netherlands - 5.25194 51.37910 5.91140 51.94351 Netherlands - 5.32070 52.19322 4.38880 51.55362 Netherlands - 3.31142 52.22369 4.30885 51.42195 Netherlands - 179.99964 -34.43301 163.37326 -46.06644 New Zealand - 5.80706 59.42062 11.09182 60.80218 Norway - 17.22674 70.06652 20.65773 69.25394 Norway - 59.92183 22.02317 57.65821 23.96686 Oman - 281.52564 -11.13791 290.04915 -17.37018 Peru - 19.22420 54.05977 17.81850 54.69971 Poland - 22.44148 53.54546 15.56263 50.95163 Poland - 22.31687 51.13676 18.65259 49.86165 Poland - 350.04202 36.89861 352.12015 40.04591 Portugal - 351.06074 41.28876 351.76161 41.87686 Portugal - 350.79105 41.35177 352.89082 39.74868 Portugal - 27.07851 45.04467 28.12082 45.46308 Romania - 23.72071 46.20137 26.81314 44.25090 Romania - 100.92996 51.62484 100.91512 51.61492 Russia - 147.87097 73.06036 85.78350 54.39476 Russia - 135.59385 42.34297 131.39585 44.70389 Russia - 20.54298 54.68216 20.44457 54.74098 Russia - 51.76038 55.31230 40.81277 58.97559 Russia - 56.24474 57.66734 43.99374 51.16343 Russia - 32.53500 58.68073 30.15329 60.02166 Russia - 39.80419 54.64454 35.72156 56.08148 Russia - 42.63997 43.64096 42.40687 43.82810 Russia - 80.12065 67.09643 87.30336 55.65619 Russia - 41.47221 43.59200 41.27990 43.76269 Russia - 128.30607 50.70356 127.43486 50.28087 Russia - 106.60230 54.70434 102.41636 50.89779 Russia - 34.20227 55.44211 61.57681 57.57751 Russia - 42.76794 43.66783 42.53104 43.83595 Russia - 39.05161 59.84562 31.84386 64.02026 Russia - 42.60496 43.18686 42.37323 43.37487 Russia - 40.93433 44.00896 36.89120 46.00609 Russia - 30.54116 56.31013 30.49285 56.33333 Russian - 21.62744 43.09564 21.46921 43.19533 Serbia - 20.61842 44.69833 20.36477 44.95660 Serbia - 129.30596 34.99683 129.01363 35.24521 South Korea - 129.35262 35.23450 127.07631 38.24005 South Korea - 17.08892 48.20689 18.50908 48.70852 Slovakia - 18.63849 48.21585 17.64866 47.81890 Slovakia - 20.66723 49.01991 20.13318 49.25464 Slovakia - 13.98334 45.91241 14.64436 46.28308 Slovenia - 25.67944 -29.45349 26.82695 -28.59323 South Africa - 33.33702 -34.91447 16.00973 -29.54048 South Africa - 29.48779 -27.76375 26.28938 -25.04480 South Africa - 353.15673 38.41337 352.96623 38.91491 Spain - 0.63811 42.45263 1.29566 42.70475 Spain - 357.99562 41.60509 359.94960 42.68468 Spain - 359.04635 38.18180 3.84426 42.19356 Spain - 353.08863 37.07867 352.67005 37.70526 Spain - 354.01517 44.06738 351.98298 42.01052 Spain - 1.23369 42.20425 3.38035 42.31715 Spain - 358.01192 41.49569 353.76232 43.94090 Spain - 353.02873 38.37658 352.74144 38.71400 Spain - 359.10680 36.17 353.92993 41.61828 Spain - 354.11423 39.48736 353.22975 41.02301 Spain - 353.06263 38.39722 352.87295 38.23484 Spain - 350.33447 43.99672 352.01542 42.17897 Spain - 357.92440 42.67212 359.23211 42.94738 Spain - 359.93739 37.48754 358.95936 38.25640 Spain - 354.60324 36. 353.06 39.49919 Spain - 18.76861 57.24090 13.73735 61.67034 Sweden - 14.37558 56.23627 13.02547 55.62849 Sweden - 6.17831 46.18730 6.12009 46.31933 Switzerland - 8.50701 47.09278 7.10557 47.41936 Switzerland - 8.24722 46.47836 6.77550 47.11145 Switzerland - 8.95274 45.86221 9.01990 45.93288 Switzerland - 7.05813 46.51238 7.86613 46.07514 Switzerland - 9.05927 46.18075 8.85845 46.07033 Switzerland - 6.34541 46.48209 6.09176 46.43322 Switzerland - 8.00252 47.40629 7.45649 47.47703 Switzerland - 8.64389 46.62154 9.06862 46.17459 Switzerland - 9.23322 46.55868 8.50026 47.57926 Switzerland - 211.17965 -17.96670 210.28531 -17.38015 Tahiti - 122.49201 25.30605 119.52135 22.23798 Taiwan - 120.96746 21.69588 120.45697 22.29089 Taiwan - 69.32095 38.24574 68.52171 38.63428 Tajikistan - 33.68903 35.22869 33.79786 35.31185 Cyprus - 35.62401 36.23383 27.01750 41.61430 Turkey - 1.94100 59.61122 353.21842 54.31511 UK - 357.46802 50.82156 353.40818 49.77902 UK - 1.07865 53.59679 1.68877 51.09137 UK - 1.19916 50.69946 354.63121 54.49213 UK - 23.02990 48.45982 22.28328 48.65960 Ukraine - 36.92971 47.90002 39.07874 49.46208 Ukraine - 34.47825 44.15279 32.66402 45.29246 Ukraine - 26.46046 48.84453 31.01293 50.77833 Ukraine - 32.80411 46.69306 31.20490 47.50455 Ukraine - 30.38654 47.33838 37.03701 50.19871 Ukraine - 24.79999 49.50705 23.71992 50.00582 Ukraine - 303.58894 -34.13235 302.96592 -34.87199 Uruguay - 302.18632 -31.50065 302.01711 -31.37483 Uruguay - 303.06863 -34.13551 301.88885 -34.50044 Uruguay - 306.19767 -32.19005 303.52816 -35.03627 Uruguay - 146.51312 14.15603 144.79387 16.24828 US/Saipan - 274.09821 31.39566 272.08953 34.89272 US/Alabama - 268.36336 36.37514 265.67800 33.81165 US/Arkansas - 248.97814 31.48247 250.88369 31.37873 US/Arizona - 247.61342 32.48613 246.00860 36.95936 US/Arizona - 249.23374 36.91626 247.49363 31.88178 US/Arizona - 250.87184 36.86667 248.99272 31.45067 US/Arizona - 238.86410 34.91128 245.27696 32.77682 US/California - 243.46207 34.89419 244.82814 35.40058 US/California - 233.97168 38.29867 239.85402 41.89763 US/California - 240.34050 36.27090 241.61677 37.73416 US/California - 234.31524 36.11588 240.49117 38.56487 US/California - 238.86311 33.00473 244.48753 32.68207 US/California - 237.19797 34.87757 243.54896 36.39758 US/California - 239.81512 38.56778 240.24063 38.83188 US/California - 251.27290 37.17636 257.42189 40.72642 US/Colorado - 288.08929 41.27979 286.52451 41.97197 US/Connecticut - 286.58396 41.03896 286.39302 41.13619 US/Connecticut - 283.05352 38.91522 282.94656 38.89205 US/Dist. of Columbia - 283.02008 38.94338 282.92284 38.91495 US/Dist. of Columbia - 284.32314 39.74019 284.41781 39.83478 US/Delaware - 280.08739 24.55355 274.09770 30.26932 US/Florida - 274.85693 30.08210 272.70328 30.93678 US/Florida - 278.07759 33.27050 275.18090 30.83992 US/Georgia - 276.52011 33.23236 274.82532 34.92468 US/Georgia - 208.11119 15.91896 199.52699 23.36126 US/Hawaii - 264.28549 40.66623 268.67268 43.42008 US/Iowa - 270.54364 39.47932 271.76096 37.54756 US/Illinois - 269.99035 39.40000 272.39884 42.44013 US/Illinois - 274.35714 39.13478 275.09390 41.59075 US/Indiana - 274.41896 38.69236 272.51996 41.62497 US/Indiana - 258.03061 37.04481 264.98072 39.44302 US/Kansas - 264.71141 37.02656 265.34441 39.13161 US/Kansas - 275.35419 38.80459 275.53264 39.05982 US/Kentucky - 266.77794 28.37703 269.79065 30.93144 US/Louisiana - 286.74501 42.08170 287.90030 42.68512 US/Massachusetts - 290.01801 42.07212 288.79462 41.71572 US/Massachusetts - 289.41961 42.07267 287.86394 42.69641 US/Massachusetts - 290.16019 41.19328 288.96360 41.73186 US/Massachusetts - 288.97082 41.72306 288.88003 41.51031 US/Massachusetts - 279.69170 38.66519 280.21083 38.41186 US/Maryland - 282.98410 39.38145 284.16730 39.69751 US/Maryland - 283.15359 39.67944 282.56804 39.14057 US/Maryland - 282.79297 39.16783 283.07672 39.00463 US/Maryland - 284.00634 39.39551 283.07116 38.91496 US/Maryland - 283.73299 38.40581 282.98016 38.77862 US/Maryland - 289.40218 43.17284 292.38625 45.49407 US/Maine - 273.82685 45.50000 276.74686 41.91169 US/Michigan - 276.01155 45.39406 277.30550 42.66632 US/Michigan - 263.44847 48.40000 267.00491 45.45367 US/Minnesota - 263.59876 43.56922 267.19388 45.49729 US/Minnesota - 268.33553 36.55900 269.54974 38.86144 US/Missouri - 268.48172 40.37630 265.41096 36.56147 US/Missouri - 269.52981 38.51000 269.71555 38.91137 US/Missouri - 271.27766 31.15366 269.08369 32.30217 US/Mississippi - 279.36988 35.91417 277.03615 35.45887 US/North Carolina - 283.87672 36.44960 279.19530 35.05624 US/North Carolina - 256.01000 46.01000 262.94274 47.94690 US/North Dakota - 263.21675 42.64064 258.01327 40.07413 US/Nebraska - 288.86824 42.90658 287.71823 43.72684 US/New Hampshire - 287.55183 42.95032 288.67638 42.72690 US/New Hampshire - 286.03993 40.05112 285.26323 40.40047 US/New Jersey - 286.02081 39.51938 285.09411 40.08385 US/New Jersey - 285.06475 41.11543 285.69326 40.39727 US/NJersey - 285.58109 41.04388 285.94319 40.72276 US/NJersey - 250.96014 32.18088 251.74794 31.37343 US/New Mexico - 251.04479 36.90350 256.83688 32.10319 US/New Mexico - 251.31717 31.77652 250.96447 31.88656 US/New Mexico - 245.79594 39.10819 240.13574 41.88559 US/Nevada - 285.28487 43.48866 281.15970 42.01000 US/New York - 288.02765 40.59884 286.40026 40.98034 US/New York - 284.68342 43.40701 283.83141 44.21315 US/New York - 285.28469 44.89083 286.32985 41.56256 US/New York - 286.65227 40.45582 285.99421 40.75287 US/New York - 285.40609 43.38339 284.76268 44.82673 US/New York - 285.95255 40.52323 285.81321 40.63037 US/New York - 275.59037 39.41750 275.33780 39.11907 US/Ohio - 278.10000 41.62071 275.53377 39.13711 US/Ohio - 279.40390 41.82165 278.02807 41.40543 US/Ohio - 264.66442 34.35134 263.34684 33.97883 US/Oklahoma - 265.30758 36.91492 260.85666 34.31888 US/Oklahoma - 235.91614 45.38179 237.08507 46.01402 US/Oregon - 238.21609 45.51368 238.76851 45.66509 US/Oregon - 234.26266 42.11058 242.53700 45.45399 US/Oregon - 279.50000 41.95000 284.14685 39.76448 US/Pennsylvania - 282.36194 41.40296 284.73003 39.92457 US/Pennsylvania - 284.05076 41.35314 284.62669 41.89344 US/Pennsylvania - 294.41706 17.79858 292.66117 18.71838 US/Puerto Rico - 288.57593 41.28832 288.21614 42.00158 US/Rhode Island - 288.69987 41.76081 288.70101 41.76237 US/Rhode Island - 278.45121 33.18432 280.21837 34.75049 US/South Carolina - 256.02582 43.03508 262.94006 45.87507 US/South Dakota - 272.06505 36.56574 275.46641 35.09277 US/Tennessee - 259.69386 28.60968 265.69505 33.34339 US/Texas - 259.83167 31.75243 255.39546 30.01360 US/Texas - 264.19655 28.84069 260.98198 26.62710 US/Texas - 246.00609 37.01000 250.87440 40.98044 US/Utah - 248.82748 40.95510 246.02467 41.92253 US/Utah - 284.19850 36.64312 279.34199 37.42538 US/Virginia - 281.39691 37.70604 282.48261 39.02905 US/Virginia - 281.34360 37.40360 283.37554 38.08067 US/Virginia - 282.45969 39.02029 282.22998 39.26128 US/Virginia - 282.46112 38.63830 282.73284 39.01321 US/Virginia - 281.41325 37.40108 280.44364 38.31963 US/Virginia - 287.75496 44.93516 286.69528 43.74232 US/Vermont - 242.78113 46.09176 236.97857 48.94098 US/Washington - 270.50908 42.64428 271.85063 42.52370 US/Wisconsin - 268.55994 45.63911 267.39841 44.68223 US/Wisconsin - 269.70159 44.08395 268.56847 44.90404 US/Wisconsin - 272.70229 44.85605 269.40793 42.58773 US/Wisconsin - 69.38634 41.25923 69.23515 41.37295 Uzbekistan - 67.03072 38.60081 66.69847 39.28591 Uzbekistan - 298.51379 10.89575 288.12733 7.46167 Venezuela - 5.51071 51.07930 5.70547 50.91883 Belgium - 6.34297 51.00898 6.17260 51.27992 Germany - 26.63057 45.41100 27.96808 46.72719 Romania - 285.08416 40.48342 284.94812 41.01119 US/New Jersey - 280.67042 39.27276 281.18351 38.88932 US/Maryland - 13.52581 45.60564 13.78469 45.74273 Italy - 4.23751 50.37992 4.70797 50.11947 Belgium - 104.42589 31.37728 99.01084 25.10455 China - 15.39128 54.91666 12.90015 55.68523 Sweden - 12.95356 51.26536 13.83750 50.75349 Germany - 74.05081 54.53047 73.20871 55.05239 Russia - 305.53652 -25.54862 305.39697 -25.42642 Brazil - 25.56116 44.95954 22.35973 47.57260 Romania - 19.57343 44.15475 21.20080 45.13906 Serbia - 31.33039 47.40610 30.39340 46.42793 Ukraine - 30.78123 46.11240 30.24923 46.33999 Ukraine - 30.65547 49.04073 29.27688 47.27598 Ukraine - 29.39856 48.96114 28.28230 48.29963 Ukraine - 77.43455 42.88148 76.61461 43.19381 Kazakhstan - 96.90260 43.21432 110.16990 48.87652 Mongolia - 100.02152 6.14915 99.57825 6.45837 Malaysia - 30.30223 46.38358 30.25318 46.41961 Ukraine - 27.46413 44.05312 27.41397 44.02646 Romania - 9.96550 46.27478 9.75459 46.33378 Italy - 9.44364 46.27453 9.29940 46.45667 Italy - 83.05079 31.05223 79.52197 33.94879 China - 288.84875 43.55543 289.01883 43.82094 US/New Hampshire - 7.72354 46.08248 7.84323 45.94726 Switzerland - 279.29658 35.87750 278.37300 36.50155 US/North Carolina - 116.80721 46.14765 124.77135 41.29276 China - 117.03214 41.86662 112.53541 44.52529 China - 113.48795 37.85035 103.68011 40.98266 China - 5.90190 49.81806 6.30784 49.52869 Luxembourg - 6.10404 49.80395 5.88514 50.01196 Luxembourg - 275.00347 32.4587 275.00547 32.46070 US/Georgia - 14.57480 50.55550 13.56000 50.69136 Czech Republic - 15.35000 50.55101 14.11936 50.79937 Czech Republic - 79.51755 9.92011 82.02845 5.87815 Sri Lanka - 288.84566 43.05434 289.21137 42.90932 US/New Hampshire - 7.40123 47.65749 7.53318 47.57013 France - 12.07376 48.89947 12.30139 49.00423 Germany - 7.10484 46.51763 6.86329 46.14480 Switzerland - 287.73409 43.48336 287.69418 43.70823 US/New Hampshire - 287.74348 42.90121 287.62977 43.57021 US/New Hampshire - 74.8 32.66 79.33 33.14660 India - 279.40943 35.54311 277.63 35.208 US/North Carolina - 16.71246 41.32380 18.89564 39.65512 Italy - 6.44283 44.07038 6.839 44.68136 France - 5.69418 45.18373 6.78 46.13 France - 104.17336 3.08606 100.06346 5.58630 Malaysia - 104.82343 3.13948 101.25321 2.49142 Malaysia - 105.05283 2.59110 102.32156 1.88975 Malaysia - 102.43595 2.57526 101.81870 2.21927 Malaysia - 74.46 31 69.48 32.7 Pakistan - 6.03126 50.72360 6.03187 50.72442 Belgium - 278.85 33.91 277.58011 35.15091 US/South Carolina - 25.6 36.24444 20.51789 40.00086 Greece - 27.3 34.56925 21.95182 36.32124 Greece - 3.35 51.38495 2.63 50.85931 Belgium - 2.66066 51.15361 2.57584 51.02061 Belgium - 29.27 47.39 28.29 46.59 Moldova - 262.90506 26.70310 261.76033 26.11985 US/Texas - 230.1 49.05 239.9 59.9 Canada/BritColumbia - 7.89194 54.49314 9.18899 54.84021 Germany - 8.55140 47.37781 7.73 47.54 Switzerland - 124.40330 37.13088 128.78533 33.62468 South Korea - 18. 54.9 14.42221 53.31103 Poland - 18.7 43.423 17.31 45 Bosnia/Herzegovina - 0. -90. 180. -60. Antarctica - 180. -90. 360. -60. Antarctica diff --git a/mpc_stat.cpp b/mpc_stat.cpp deleted file mode 100644 index d487959..0000000 --- a/mpc_stat.cpp +++ /dev/null @@ -1,265 +0,0 @@ -/* Copyright (C) 2018, Project Pluto - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301, USA. */ - -/* NOTE: This code to read the MPC observatory file and output it with -atitudes, altitudes, and country/area names is essentially obsolete. -Use 'mpc_code.cpp' from the 'lunar' repository instead. It replaces -and improves upon the following. */ - -#include -#include -#include -#include -#include -#include - -#define PI 3.1415926535897932384626433832795028841971693993751058209749445923 -#define EARTH_MAJOR_AXIS 6378137. -#define EARTH_MINOR_AXIS 6356752.314245 - /* above are WGS84 ellipsoid constants */ -#define EARTH_AXIS_RATIO (EARTH_MINOR_AXIS / EARTH_MAJOR_AXIS) -#define SWAP( A, B, TEMP) { TEMP = A; A = B; B = TEMP; } - -int lat_alt_to_parallax( const double lat, const double ht_in_meters, - double *rho_cos_phi, double *rho_sin_phi) -{ - const double u = atan( sin( lat) * EARTH_AXIS_RATIO / cos( lat)); - - *rho_sin_phi = EARTH_AXIS_RATIO * sin( u) + - (ht_in_meters / EARTH_MAJOR_AXIS) * sin( lat); - *rho_cos_phi = cos( u) + (ht_in_meters / EARTH_MAJOR_AXIS) * cos( lat); - return( 0); -} - -/* Takes parallax constants (rho_cos_phi, rho_sin_phi) in units of the -equatorial radius, and returns the geographical latitude/altitude. The -previous (non-iterative) version of this function, used before 2016 Oct -1, was derived by me as an approximate inversion of the above function -to convert lat/altitude to parallax. It could be off by as much as 16 -meters in altitude and wrong in latitude by about three meters for each -km of altitude (i.e., about 25 meters at the top of Everest). It's -presumably much worse for more oblate planets than the earth. - - An exact non-iterative solution is possible, but it involves solving a -fourth-degree (quartic) polynomial, and I don't recommend it. The -iterations in the following function start out with a laughably poor guess, -but convergence is fast; eight iterations gets sub-micron accuracy. - - For a solution for truly oblate objects, and for points near the -center of the object, see 'ellip_pt.c'. (Since MPC stations are on -the only mildly oblate earth, and none of them are near the geocenter, -the following code is perfectly good for the current purposes.) */ - -int parallax_to_lat_alt( const double rho_cos_phi, const double rho_sin_phi, - double *lat, double *ht_in_meters) -{ - double lat0 = atan2( rho_sin_phi, rho_cos_phi); - double rho0 = sqrt( rho_sin_phi * rho_sin_phi + rho_cos_phi * rho_cos_phi); - double tlat = lat0, talt = 0.; - int iter; - - for( iter = 0; iter < 8; iter++) - { - double rc2, rs2; - - lat_alt_to_parallax( tlat, talt, &rc2, &rs2); - talt -= (sqrt( rs2 * rs2 + rc2 * rc2) - rho0) * EARTH_MAJOR_AXIS; - tlat -= atan2( rs2, rc2) - lat0; - } - if( lat) - *lat = tlat; - if( ht_in_meters) - *ht_in_meters = talt; - return( 0); -} - - -/* The following code reads in the MPC file ObsCodes.htm, which gives -longitudes and parallax constants; and outputs the same file with new -columns for latitude and altitude. Be warned that the parallax -constants are usually given to five places, or a precision of about -64 meters. Therefore, the latitude and longitude are good to a -similar precision. The longitude is given to .0001 degree precision, -and is therefore good to about 11 meters. Some stations give one more -or one fewer decimal place, with corresponding change in precision -(though not necessarily accuracy). Also, note that the altitudes that -are computed are relative to the ellipsoid, not to the geoid/mean sea level. - - It's been modified a bit so that it can read in lat/lon rectangles -from the 'geo_rect.txt' file. Each rectangle covers part of the interior -of a state or nation; if a given lat/lon from 'ObsCodes.htm' falls within -that rectangle, you can assign that state/nation data to it. I first made -a slew of rectangles covering most MPC codes, ran this program, found -some codes without state/nation info, and made some more rectangles to -cover those codes. Every now and then, I have to add another rectangle -to cover a new code. - - Note that the MPC list of observatory codes is usually 'ObsCodes.html'; -the code now checks for both possibilities. -*/ - - -#define GEO_RECT struct geo_rect - -GEO_RECT - { - double lat1, lon1, lat2, lon2; - char name[60]; - }; - -int load_geo_rects( GEO_RECT *rects) -{ - FILE *ifile = fopen( "geo_rect.txt", "rb"); - int rval = 0; - char buff[100]; - - if( ifile) - { - while( fgets( buff, sizeof( buff), ifile)) - if( sscanf( buff, "%lf %lf %lf %lf", - &rects[rval].lon1, &rects[rval].lat1, - &rects[rval].lon2, &rects[rval].lat2) == 4) - { - double temp_double; - int i; - - if( rects[rval].lat1 > rects[rval].lat2) - SWAP( rects[rval].lat1, rects[rval].lat2, temp_double); - if( rects[rval].lon1 > rects[rval].lon2) - SWAP( rects[rval].lon1, rects[rval].lon2, temp_double); - for( i = 0; buff[i] >= ' '; i++) - ; - while( i < 56) /* pad the string */ - buff[i++] = ' '; - buff[i] = '\0'; - strcpy( rects[rval].name, buff + 42); - /* Crossing the prime meridian is a problem, since - you go from longitude 359.9999 to .0001. This is - handled by making two rectangles, one on each side - of the prime meridian. */ - if( rects[rval].lon2 - rects[rval].lon1 > 180.) - { - SWAP( rects[rval].lon1, rects[rval].lon2, temp_double); - rects[rval + 1] = rects[rval]; - rects[rval].lon2 = 361.; - rects[rval + 1].lon1 = -1.; - rval++; - } - rval++; - } - fclose( ifile); - } - else - perror( "geo_rect.txt not opened"); - return( rval); -} - -int code_compare( const void *a, const void *b) -{ - const char *a1 = (const char *)(*(const char **)a); - const char *b1 = (const char *)(*(const char **)b); - int rval = strcmp( a1 + 4, b1 + 4); - - if( !rval) /* same country */ - rval = strcmp( a1, b1); - return( rval); -} - -#define MAX_RECTS 1000 -#define MAX_CODES 8000 - -int main( const int argc, const char **argv) -{ - char buff[190]; - int in_code_section = 0, n_geo_rects; - const char *ifilename = (argc > 1 ? argv[1] : "ObsCodes.htm"); - FILE *ifile = fopen( ifilename, "rb"); - FILE *ofile = (argc > 2 ? fopen( argv[2], "wb") : NULL); - GEO_RECT *rects = (GEO_RECT *)calloc( MAX_RECTS, sizeof( GEO_RECT)); - - assert( rects); - if( !ifile) - { - fprintf( stderr, "Input %s not opened: ", ifilename); - perror( ""); - exit( 0); - } - n_geo_rects = load_geo_rects( rects); - while( fgets( buff, sizeof( buff), ifile)) - { - if( !memcmp( buff, "000 ", 5)) - in_code_section = 1; - if( !memcmp( buff, "", 6)) - in_code_section = 0; - if( in_code_section && strlen( buff) > 30 && buff[3] == ' ') - { - memmove( buff + 68, buff + 30, strlen( buff + 29)); - memmove( buff + 25, buff + 21, 9); /* move rho sin phi */ - memmove( buff + 15, buff + 13, 8); /* move rho cos phi */ - buff[13] = buff[14] = buff[23] = buff[24] = ' '; - memset( buff + 34, ' ', 34); - if( buff[7] == '.' && buff[16] == '.' && buff[27] == '.' && - atof( buff + 15)) - { - const double x = atof( buff + 15); - const double y = atof( buff + 25); - const double lon = atof( buff + 4); - char alt_buff[7]; - int rect_no = -1, i; - double lat, ht_in_meters; - - parallax_to_lat_alt( x, y, &lat, &ht_in_meters); - if( buff[21] != ' ' && buff[32] != ' ') - { /* make sure there's precision for altitude */ - snprintf( alt_buff, sizeof( alt_buff), "%5.0f", ht_in_meters); - } - else /* put blanks in for altitude */ - strcpy( alt_buff, " "); - - lat *= 180. / PI; - for( i = 0; i < n_geo_rects; i++) - if( rects[i].lon1 < lon && rects[i].lon2 > lon) - if( rects[i].lat1 < lat && rects[i].lat2 > lat) - rect_no = i; - snprintf( buff + 34, sizeof( buff) - 34, " %+09.5f %s ", lat, alt_buff); - if( rect_no >= 0) - memcpy( buff + 53, rects[rect_no].name, 15); - else - memset( buff + 53, ' ', 15); - buff[67] = ' '; - if( buff[22] == ' ') /* parallax given to 5 or fewer digits */ - buff[44] = ' '; /* means lat's good to .0001 deg at best */ - if( buff[21] == ' ') /* parallax given to 4 or fewer digits */ - buff[43] = ' '; /* means lat's good to .001 deg at best */ - if( buff[20] == ' ') /* parallax given to 3 or fewer digits */ - buff[42] = ' '; /* means lat's good to .01 deg at best */ - } - memmove( buff + 4, buff + 3, strlen( buff + 2)); - buff[3] = ' '; /* insert room for four-digit MPC codes */ - if( in_code_section) - { - if( ofile) - fprintf( ofile, "%s", buff); - else - printf( "%s", buff); - } - } - } - if( ofile) - fclose( ofile); - free( rects); -}