diff --git a/III/Ovodas/consts.py b/III/Ovodas/consts.py new file mode 100644 index 0000000..45d3663 --- /dev/null +++ b/III/Ovodas/consts.py @@ -0,0 +1,18 @@ +# Ovodo +# phi_p, phi_s, dphi = 10, 46, 6 +# phi_1, phi_2 = 14, 41 +# lambda_1, lambda_2 = 5, 25 +# lambda_v, lambda_r, dlambda = 0, 24, 6 +# M = 25e6 + +# mano +phi_p, phi_s, dphi = 13, 49, 6 +phi_1, phi_2 = 17, 44 +lambda_1, lambda_2 = 5, 25 +lambda_range = [lambda_1, 10, 16, 22, lambda_2] +lambda_v, lambda_r, dlambda = 0, 24, 6 +M = 25e6 + +# bendri +lambda_range = [lambda_1, 6, 12, 18, 24, lambda_2] +maxlambda = 26 diff --git a/III/Ovodas/krasovskio.csv b/III/Ovodas/krasovskio.csv index 0b2558c..849212f 100644 --- a/III/Ovodas/krasovskio.csv +++ b/III/Ovodas/krasovskio.csv @@ -1,184 +1,184 @@ -phi,M,N,R,r,lgr,Sm,Sn,lnU,lgU,D,P -0,6335552.9,6378245,6356863.1,6378245,6.8047012,0,111321.4,0,0,0,0 -0.5,6335557.7,6378246.6,6356866.3,6378003.8,6.8046848,55288.1,111317.2,0.00866835,0.00376462,29800,352636.9 -1,6335572.2,6378251.5,6356876,6377280.1,6.8046355,110576.4,111304.5,0.01733736,0.00752952,59601,705247.6 -1.5,6335596.4,6378259.6,6356892.2,6376074,6.8045533,165864.8,111283.5,0.02600772,0.01129501,89408,1057806.1 -2,6335630.3,6378271,6356914.9,6374385.5,6.8044383,221153.4,111254,0.03468008,0.01506137,119221,1410286.1 -2.5,6335673.9,6378285.6,6356944,6372214.9,6.8042904,276442.4,111216.1,0.04335512,0.01882889,149044,1762661.7 -3,6335727.1,6378303.5,6356979.6,6369562.2,6.8041096,331731.8,111169.8,0.05203351,0.02259787,178878,2114906.6 -3.5,6335789.9,6378324.6,6357021.7,6366427.7,6.8038958,387021.7,111115.1,0.06071593,0.02636859,208726,2466994.7 -4,6335862.4,6378348.9,6357070.1,6362811.5,6.8036491,442312.2,111052,0.06940304,0.03014136,238590,2818900 -4.5,6335944.4,6378376.4,6357125,6358714,6.8033693,497603.4,110980.5,0.07809552,0.03391645,268473,3170596.3 -5,6336036.1,6378407.2,6357186.3,6354135.4,6.8030565,552895.4,110900.6,0.08679406,0.03769418,298376,3522057.5 -5.5,6336137.2,6378441.1,6357254,6349076,6.8027105,608188.2,110812.3,0.09549933,0.04147483,328303,3873257.7 -6,6336247.9,6378478.2,6357328,6343536.3,6.8023314,663481.9,110715.6,0.10421201,0.0452587,358255,4224170.6 -6.5,6336368.1,6378518.6,6357408.4,6337516.5,6.8019191,718776.6,110610.5,0.1129328,0.04904609,388234,4574770.4 -7,6336497.7,6378562.1,6357495.1,6331017.2,6.8014735,774072.4,110497.1,0.12166237,0.0528373,418244,4925031 -7.5,6336636.7,6378608.7,6357588.1,6324038.8,6.8009945,829369.3,110375.3,0.13040143,0.05663262,448287,5274926.4 -8,6336785.1,6378658.5,6357687.3,6316581.8,6.8004821,884667.6,110245.2,0.13915066,0.06043237,478365,5624430.5 -8.5,6336942.8,6378711.4,6357792.8,6308646.8,6.7999362,939967.1,110106.7,0.14791078,0.06423683,508480,5973517.5 -9,6337109.8,6378767.4,6357904.5,6300234.2,6.7993567,995268.1,109959.8,0.15668247,0.06804633,538635,6322161.5 -9.5,6337286,6378826.6,6358022.4,6291344.8,6.7987435,1050570.6,109804.7,0.16546646,0.07186117,568832,6670336.4 -10,6337471.4,6378888.8,6358146.4,6281979.1,6.7980965,1105874.7,109641.2,0.17426346,0.07568166,599074,7018016.5 -10.5,6337665.9,6378954,6358276.4,6272137.8,6.7974156,1161180.4,109469.5,0.18307417,0.0795081,629363,7365175.9 -11,6337869.5,6379022.3,6358412.6,6261821.7,6.7967007,1216487.8,109289.4,0.19189933,0.08334082,659701,7711788.7 -11.5,6338082,6379093.6,6358554.8,6251031.4,6.7959517,1271797.1,109101.1,0.20073967,0.08718013,690092,8057829.3 -12,6338303.5,6379167.9,6358702.9,6239767.8,6.7951684,1327108.3,108904.5,0.20959592,0.09102635,720538,8403271.7 -12.5,6338533.9,6379245.2,6358857,6228031.6,6.7943508,1382421.4,108699.7,0.21846883,0.09487981,751041,8748090.4 -13,6338773.1,6379325.4,6359016.9,6215823.8,6.7934987,1437736.6,108486.6,0.22735913,0.09874082,781603,9092259.6 -13.5,6339021,6379408.6,6359182.7,6203145,6.7926119,1493053.9,108265.3,0.2362676,0.10260971,812228,9435753.7 -14,6339277.5,6379494.7,6359354.3,6189996.4,6.7916904,1548373.4,108035.8,0.24519499,0.10648683,842918,9778547.1 -14.5,6339542.6,6379583.6,6359531.6,6176378.8,6.7907339,1603695.2,107798.1,0.25414206,0.1103725,873676,10120614.2 -15,6339816.3,6379675.4,6359714.6,6162293.2,6.7897424,1659019.3,107552.3,0.26310961,0.11426705,904504,10461929.6 -15.5,6340098.3,6379770,6359903.2,6147740.7,6.7887155,1714345.9,107298.3,0.27209841,0.11817084,935405,10802467.6 -16,6340388.7,6379867.4,6360097.4,6132722.2,6.7876533,1769674.9,107036.2,0.28110927,0.1220842,966382,11142203 -16.5,6340687.4,6379967.6,6360297.1,6117238.8,6.7865554,1825006.5,106766,0.29014298,0.12600749,997438,11481110.2 -17,6340994.2,6380070.5,6360502.3,6101291.7,6.7854218,1880340.8,106487.6,0.29920036,0.12994107,1028575,11819164.1 -17.5,6341309,6380176.1,6360712.9,6084882.1,6.7842522,1935677.8,106201.2,0.30828224,0.13388527,1059796,12156339.2 -18,6341631.9,6380284.3,6360928.8,6068011,6.7830464,1991017.6,105906.8,0.31738944,0.13784048,1091105,12492610.4 -18.5,6341962.6,6380395.3,6361149.9,6050679.8,6.7818042,2046360.2,105604.3,0.32652282,0.14180706,1122503,12827952.6 -19,6342301.1,6380508.8,6361376.3,6032889.6,6.7805254,2101705.7,105293.8,0.33568324,0.14578538,1153994,13162340.5 -19.5,6342647.3,6380624.9,6361607.7,6014641.7,6.7792098,2157054.2,104975.3,0.34487154,0.14977581,1185581,13495749.1 -20,6343001.1,6380743.5,6361844.3,5995937.6,6.7778571,2212405.8,104648.9,0.35408863,0.15377874,1217267,13828153.4 -20.5,6343362.3,6380864.6,6362085.8,5976778.4,6.7764672,2267760.5,104314.5,0.36333539,0.15779455,1249055,14159528.6 -21,6343730.9,6380988.2,6362332.3,5957165.7,6.7750397,2323118.4,103972.2,0.37261272,0.16182365,1280948,14489849.6 -21.5,6344106.7,6381114.2,6362583.6,5937100.8,6.7735744,2378479.5,103622,0.38192155,0.16586642,1312950,14819091.6 -22,6344489.7,6381242.6,6362839.6,5916585.1,6.7720711,2433844,103263.9,0.3912628,0.16992327,1345062,15147230.1 -22.5,6344879.7,6381373.4,6363100.4,5895620.2,6.7705295,2489211.8,102898,0.40063743,0.17399462,1377290,15474240.1 -23,6345276.6,6381506.4,6363365.7,5874207.6,6.7689493,2544583,102524.3,0.4100464,0.17808089,1409636,15800097.2 -23.5,6345680.3,6381641.8,6363635.6,5852348.9,6.7673302,2599957.8,102142.8,0.41949068,0.18218249,1442103,16124776.7 -24,6346090.7,6381779.3,6363910,5830045.5,6.7656719,2655336.1,101753.5,0.42897127,0.18629985,1474695,16448254.3 -24.5,6346507.6,6381919.1,6364188.7,5807299.2,6.7639742,2710718,101356.5,0.43848918,0.19043343,1507415,16770505.4 -25,6346930.9,6382061,6364471.7,5784111.5,6.7622367,2766103.6,100951.8,0.44804545,0.19458367,1540267,17091505.9 -25.5,6347360.6,6382205,6364758.9,5760484.3,6.760459,2821492.8,100539.4,0.45764111,0.19875101,1573254,17411231.4 -26,6347796.3,6382351,6365050.2,5736419.1,6.7586409,2876885.9,100119.4,0.46727724,0.20293592,1606381,17729657.8 -26.5,6348238.2,6382499.1,6365345.6,5711917.8,6.7567819,2932282.8,99691.8,0.47695491,0.20713888,1639650,18046760.9 -27,6348685.9,6382649.1,6365644.9,5686982,6.7548819,2987683.6,99256.6,0.48667524,0.21136037,1673066,18362516.9 -27.5,6349139.4,6382801.1,6365948,5661613.7,6.7529402,3043088.3,98813.8,0.49643934,0.21560087,1706633,18676901.7 -28,6349598.5,6382955,6366254.9,5635814.7,6.7509567,3098497,98363.5,0.50624838,0.21986088,1740354,18989891.5 -28.5,6350063.2,6383110.6,6366565.5,5609586.9,6.7489309,3153909.7,97905.8,0.51610351,0.22414091,1774233,19301462.6 -29,6350533.1,6383268.1,6366879.6,5582932.1,6.7468623,3209326.5,97440.5,0.52600594,0.22844148,1808275,19611591.4 -29.5,6351008.3,6383427.3,6367197.2,5555852.3,6.7447507,3264747.5,96967.9,0.53595688,0.23276312,1842484,19920254.2 -30,6351488.6,6383588.2,6367518.2,5528349.6,6.7425955,3320172.6,96487.9,0.54595758,0.23710636,1876864,20227427.6 -30.5,6351973.8,6383750.8,6367842.4,5500425.8,6.7403963,3375601.9,96000.5,0.5560093,0.24147177,1911419,20533088.2 -31,6352463.7,6383914.9,6368169.9,5472083.1,6.7381527,3431035.4,95505.9,0.56611334,0.2458599,1946154,20837212.8 -31.5,6352958.3,6384080.6,6368500.4,5443323.5,6.7358641,3486473.3,95003.9,0.57627102,0.25027132,1981074,21139778 -32,6353457.4,6384247.7,6368834,5414149.1,6.7335302,3541915.5,94494.7,0.58648371,0.25470664,2016182,21440761 -32.5,6353960.8,6384416.4,6369170.4,5384562.1,6.7311504,3597362.1,93978.3,0.59675278,0.25916644,2051485,21740138.6 -33,6354468.4,6384586.4,6369509.6,5354564.7,6.7287242,3652813,93454.8,0.60707964,0.26365134,2086986,22037888 -33.5,6354980,6384757.7,6369851.5,5324158.9,6.726251,3708268.5,92924.1,0.61746576,0.26816197,2122691,22333986.5 -34,6355495.5,6384930.3,6370195.9,5293347.2,6.7237304,3763728.4,92386.3,0.6279126,0.27269898,2158605,22628411.3 -34.5,6356014.7,6385104.2,6370542.9,5262131.6,6.7211617,3819192.8,91841.5,0.63842169,0.27726302,2194732,22921139.9 -35,6356537.5,6385279.3,6370892.2,5230514.6,6.7185444,3874661.8,91289.7,0.64899458,0.28185476,2231079,23212149.9 -35.5,6357063.7,6385455.4,6371243.8,5198498.4,6.7158779,3930135.3,90730.9,0.65963286,0.28647491,2267651,23501418.9 -36,6357593.1,6385632.7,6371597.5,5166085.4,6.7131616,3985613.5,90165.2,0.67033816,0.29112416,2304453,23788924.7 -36.5,6358125.6,6385811,6371953.3,5133278,6.7103948,4041096.3,89592.6,0.68111215,0.29580325,2341491,24074645.2 -37,6358661.1,6385990.2,6372311,5100078.6,6.7075769,4096583.7,89013.2,0.69195655,0.30051291,2378771,24358558.4 -37.5,6359199.3,6386170.4,6372670.6,5066489.6,6.7047072,4152075.9,88426.9,0.70287311,0.30525391,2416300,24640642.5 -38,6359740.1,6386351.4,6373031.9,5032513.6,6.701785,4207572.7,87833.9,0.71386364,0.31002704,2454082,24920875.6 -38.5,6360283.3,6386533.3,6373394.8,4998153,6.6988095,4263074.3,87234.2,0.72492999,0.31483309,2492126,25199236.2 -39,6360828.8,6386715.8,6373759.2,4963410.4,6.6957802,4318580.6,86627.9,0.73607406,0.3196729,2530436,25475702.9 -39.5,6361376.4,6386899.1,6374125,4928288.4,6.6926961,4374091.7,86014.9,0.74729781,0.32454731,2569021,25750254.1 -40,6361926,6387083,6374492.1,4892789.5,6.6895565,4429607.6,85395.3,0.75860325,0.3294572,2607886,26022868.7 -40.5,6362477.3,6387267.5,6374860.3,4856916.3,6.6863606,4485128.2,84769.2,0.76999243,0.33440346,2647039,26293525.6 -41,6363030.2,6387452.5,6375229.7,4820671.6,6.6831075,4540653.7,84136.6,0.78146748,0.33938701,2686487,26562203.7 -41.5,6363584.6,6387638,6375600,4784058,6.6797964,4596184.1,83497.6,0.79303058,0.3444088,2726238,26828882.3 -42,6364140.2,6387823.9,6375971.1,4747078.3,6.6764264,4651719.3,82852.1,0.80468399,0.34946981,2766300,27093540.7 -42.5,6364696.9,6388010.2,6376342.9,4709735.1,6.6729965,4707259.3,82200.4,0.81643001,0.35457105,2806680,27356158.2 -43,6365254.6,6388196.8,6376715.4,4672031.4,6.6695057,4762804.2,81542.3,0.82827103,0.35971354,2847386,27616714.4 -43.5,6365813,6388383.6,6377088.3,4633969.7,6.6659532,4818353.9,80878,0.8402095,0.36489835,2888428,27875189.1 -44,6366372.1,6388570.6,6377461.7,4595553.1,6.6623378,4873908.6,80207.5,0.85224796,0.37012658,2929813,28131562.1 -44.5,6366931.5,6388757.7,6377835.3,4556784.3,6.6586585,4929468.1,79530.9,0.86438901,0.37539938,2971551,28385813.5 -45,6367491.2,6388944.9,6378209,4517666.3,6.6549141,4985032.5,78848.2,0.87663535,0.38071789,3013650,28637923.3 -45.5,6368051,6389132.1,6378582.9,4478201.9,6.6511037,5040601.8,78159.4,0.88898975,0.38608334,3056122,28887871.9 -46,6368610.7,6389319.3,6378956.6,4438394.1,6.6472259,5096176,77464.6,0.90145509,0.39149697,3098974,29135639.6 -46.5,6369170.1,6389506.4,6379330.1,4398245.9,6.6432795,5151755,76763.9,0.91403432,0.39696006,3142219,29381207.2 -47,6369729.1,6389693.3,6379703.4,4357760.4,6.6392633,5207339,76057.3,0.92673052,0.40247395,3185865,29624555.4 -63,6386389.6,6395259.3,6390822.9,2903387,6.4629049,6988506.8,50673.7,1.42081379,0.61705158,4884398,36133477.6 -63.5,6386841.8,6395410.3,6391124.6,2853618.1,6.4553958,7044240.5,49805,1.44017621,0.62546058,4950961,36293908.3 -47.5,6370287.5,6389880,6380076.3,4316940.4,6.635176,5262927.8,75344.8,0.93954684,0.40804001,3229924,29865665.1 -48,6370845.2,6390066.5,6380448.6,4275789,6.6310163,5318521.5,74626.6,0.95248656,0.41365965,3274408,30104517.4 -48.5,6371401.9,6390252.6,6380820.3,4234309.5,6.6267826,5374120,73902.6,0.96555306,0.41933437,3319327,30341093.4 -49,6371957.5,6390438.3,6381191.2,4192504.8,6.6224736,5429723.4,73173,0.97874987,0.42506566,3364694,30575374.6 -49.5,6372511.8,6390623.6,6381561.3,4150378,6.6180877,5485331.6,72437.8,0.9920806,0.43085513,3410522,30807342.6 -50,6373064.6,6390808.4,6381930.3,4107932.5,6.6136233,5540944.7,71696.9,1.00554902,0.43670439,3456823,31036979.1 -50.5,6373615.8,6390992.7,6382298.3,4065171.2,6.6090788,5596562.6,70950.6,1.01915904,0.44261514,3503611,31264265.9 -51,6374165.3,6391176.3,6382665.1,4022097.6,6.6044526,5652185.3,70198.8,1.0329147,0.44858915,3550899,31489185.1 -51.5,6374712.8,6391359.3,6383030.6,3978714.7,6.5997428,5707812.8,69441.7,1.0468202,0.45462824,3598703,31711719 -52,6375258.1,6391541.5,6383394.6,3935025.9,6.5949476,5763445,68679.2,1.06087991,0.46073429,3647037,31931850 -52.5,6375801.2,6391723,6383757.2,3891034.4,6.5900651,5819082,67911.4,1.07509837,0.46690929,3695916,32149560.6 -53,6376341.8,6391903.7,6384118,3846743.7,6.5850932,5874723.7,67138.3,1.08948027,0.47315527,3745357,32364833.7 -53.5,6376879.8,6392083.4,6384477.1,3802156.9,6.58003,5930370.2,66360.2,1.10403052,0.47947436,3795377,32577652 -54,6377415,6392262.3,6384834.3,3757277.5,6.5748733,5986021.3,65576.9,1.11875421,0.48586878,3845994,32787998.8 -54.5,6377947.3,6392440.1,6385189.6,3712108.9,6.5696207,6041677.1,64788.5,1.13365667,0.49234083,3897225,32995857.4 -55,6378476.4,6392616.9,6385542.7,3666654.4,6.56427,6097337.5,63995.2,1.14874341,0.49889292,3949089,33201211.1 -55.5,6379002.3,6392792.5,6385893.7,3620917.6,6.5588186,6153002.5,63196.9,1.16402021,0.50552755,4001607,33404043.8 -56,6379524.7,6392967,6386242.3,3574901.8,6.5532641,6208672,62393.8,1.17949308,0.51224733,4054799,33604339.2 -56.5,6380043.5,6393140.3,6386588.6,3528610.6,6.5476037,6264346.2,61585.9,1.1951683,0.51905499,4108686,33802081.4 -57,6380558.6,6393312.4,6386932.3,3482047.5,6.5418347,6320024.8,60773.2,1.21105243,0.52595338,4163292,33997254.5 -57.5,6381069.7,6393483.1,6387273.4,3435216,6.535954,6375707.9,59955.8,1.22715232,0.53294548,4218639,34189843.1 -58,6381576.8,6393652.4,6387611.8,3388119.6,6.5299587,6431395.5,59133.8,1.24347516,0.5400344,4274753,34379831.8 -58.5,6382079.6,6393820.4,6387947.3,3340762,6.5238455,6487087.4,58307.3,1.26002844,0.54722339,4331659,34567205.3 -59,6382578.1,6393986.8,6388279.9,3293146.7,6.5176111,6542783.8,57476.3,1.27682002,0.55451589,4389384,34751948.6 -59.5,6383072,6394151.7,6388609.4,3245277.3,6.5112518,6598484.4,56640.8,1.29385817,0.56191546,4447957,34934047 -60,6383561.2,6394315.1,6388935.9,3197157.5,6.504764,6654189.4,55800.9,1.31115151,0.56942587,4507407,35113485.9 -60.5,6384045.5,6394476.8,6389259,3148791,6.4981438,6709898.6,54956.8,1.32870915,0.57705105,4567766,35290250.9 -61,6384524.9,6394636.9,6389578.9,3100181.5,6.4913871,6765612,54108.4,1.34654062,0.58479516,4629066,35464327.8 -61.5,6384999.2,6394795.2,6389895.3,3051332.5,6.4844895,6821329.6,53255.8,1.36465596,0.59266255,4691342,35635702.6 -62,6385468.1,6394951.7,6390208.2,3002248,6.4774466,6877051.2,52399.1,1.38306574,0.60065781,4754630,35804361.5 -62.5,6385931.6,6395106.5,6390517.4,2952931.5,6.4702534,6932777,51538.4,1.4017811,0.60878579,4818968,35970290.9 -63,6386389.6,6395259.3,6390822.9,2903387,6.4629049,6988506.8,50673.7,1.42081379,0.61705158,4884398,36133477.6 -63.5,6386841.8,6395410.3,6391124.6,2853618.1,6.4553958,7044240.5,49805,1.44017621,0.62546058,4950961,36293908.3 -64,6387288.1,6395559.3,6391422.4,2803628.6,6.4477205,7099978.2,48932.6,1.45988147,0.63401846,5018703,36451570.2 -64.5,6387728.5,6395706.2,6391716.1,2753422.5,6.4398729,7155719.7,48056.3,1.47994344,0.64273127,5087671,36606450.4 -65,6388162.8,6395851.2,6392005.8,2703003.5,6.4318466,7211465,47176.3,1.5003768,0.65160536,5157916,36758536.6 -65.5,6388590.7,6395994,6392291.3,2652375.5,6.423635,7267214.2,46292.7,1.52119715,0.66064752,5229491,36907816.3 -66,6389012.3,6396134.7,6392572.5,2601542.3,6.4152309,7322967,45405.5,1.54242101,0.66986493,5302453,37054277.6 -66.5,6389427.4,6396273.2,6392849.4,2550508,6.4066267,7378723.4,44514.8,1.56406596,0.67926521,5376863,37197908.6 -67,6389835.8,6396409.5,6393121.8,2499276.3,6.3978143,7434483.5,43620.6,1.58615071,0.6888565,5452785,37338697.6 -67.5,6390237.4,6396543.5,6393389.6,2447851.2,6.388785,7490247.1,42723.1,1.60869521,0.69864745,5530287,37476633.3 -68,6390632.1,6396675.2,6393652.9,2396236.7,6.3795297,7546014.2,41822.2,1.63172073,0.7086473,5609443,37611704.4 -68.5,6391019.7,6396804.5,6393911.5,2344436.7,6.3700385,7601784.7,40918.1,1.65525002,0.71886595,5690330,37743900.1 -69,6391400.3,6396931.4,6394165.3,2292455.2,6.3603009,7657558.5,40010.9,1.67930744,0.72931395,5773034,37873209.5 -69.5,6391773.5,6397056,6394414.2,2240296.2,6.3503054,7713335.6,39100.5,1.70391908,0.74000265,5857642,37999622.3 -70,6392139.4,6397178,6394658.2,2187963.7,6.3400401,7769116,38187.2,1.72911299,0.75094423,5944253,38123128 -70.5,6392497.8,6397297.6,6394897.2,2135461.8,6.3294918,7824899.5,37270.8,1.75491933,0.76215178,6032968,38243716.7 -71,6392848.5,6397414.6,6395131.1,2082794.5,6.3186464,7880686.1,36351.6,1.78137062,0.77363943,6123901,38361378.5 -71.5,6393191.6,6397529,6395359.9,2029965.7,6.3074887,7936475.7,35429.6,1.80850195,0.78542242,6217172,38476103.9 -72,6393526.8,6397640.8,6395583.5,1976979.7,6.2960022,7992268.3,34504.8,1.83635134,0.79751725,6312911,38587883.5 -72.5,6393854.1,6397750,6395801.7,1923840.5,6.2841691,8048063.8,33577.4,1.86495998,0.80994182,6411260,38696708.3 -73,6394173.3,6397856.5,6396014.6,1870552.2,6.2719698,8103862.1,32647.3,1.89437265,0.82271559,6512374,38802569.3 -73.5,6394484.4,6397960.2,6396222.1,1817118.9,6.2593833,8159663.2,31714.7,1.92463815,0.83585973,6616419,38905457.9 -74,6394787.4,6398061.3,6396424.1,1763544.7,6.2463865,8215466.9,30779.7,1.95580977,0.84939739,6723579,39005365.7 -74.5,6395081.9,6398159.5,6396620.5,1709833.8,6.2329539,8271273.2,29842.2,1.98794588,0.86335392,6834055,39102284.6 -75,6395368.1,6398254.9,6396811.3,1655990.2,6.2190578,8327082.1,28902.5,2.02111059,0.87775717,6948066,39196206.6 -75.5,6395645.8,6398347.5,6396996.5,1602018.3,6.2046675,8382893.4,27960.5,2.05537452,0.89263781,7065857,39287124.1 -76,6395914.8,6398437.3,6397175.9,1547922.1,6.1897491,8438707.2,27016.3,2.09081573,0.90802973,7187695,39375029.6 -76.5,6396175.2,6398524.1,6397349.6,1493705.8,6.1742651,8494523.2,26070.1,2.1275208,0.92397054,7313878,39459915.9 -77,6396426.9,6398608,6397517.4,1439373.6,6.1581735,8550341.5,25121.8,2.16558612,0.9405021,7444737,39541776.1 -77.5,6396669.7,6398689,6397679.3,1384929.8,6.1414278,8606161.9,24171.6,2.20511939,0.95767118,7580642,39620603.5 -78,6396903.6,6398767,6397835.2,1330378.5,6.1239752,8661984.4,23219.5,2.24624154,0.9755303,7722010,39696391.7 -78.5,6397128.6,6398842,6397985.2,1275723.9,6.1057567,8717808.9,22265.6,2.28908893,0.99413869,7869308,39769134.3 -79,6397344.4,6398913.9,6398129.1,1220970.3,6.0867051,8773635.3,21310,2.33381609,1.01356345,8023069,39838825.5 -80,6397748.8,6399048.8,6398398.7,1111183.2,6.0457856,8885293.6,19393.8,2.42964003,1.05517925,8352487,39969030.9 -80.5,6397937.1,6399111.5,6398524.3,1056158,6.0237289,8941125.4,18433.4,2.48117171,1.07755918,8529640,40029534.5 -79.5,6397551.2,6398982.9,6398267,1166122,6.066744,8829463.6,20352.7,2.38059915,1.03388107,8183897,39905459.5 -81,6398116.2,6399171.2,6398643.7,1001050.9,6.0004562,8996958.7,17471.6,2.535465,1.10113845,8716287,40086965.3 -81.5,6398285.8,6399227.8,6398756.8,945866.1,5.9758297,9052793.5,16508.5,2.59283719,1.12605488,8913518,40141318.5 -82,6398446.1,6399281.2,6398863.7,890607.8,5.9496865,9108629.8,15544,2.65366331,1.15247133,9122623,40192589.8 -82.5,6398596.9,6399331.5,6398964.2,835280.4,5.9218323,9164467.5,14578.4,2.71839106,1.18058223,9345140,40240774.8 -83,6398738.2,6399378.6,6399058.4,779888.1,5.8920323,9220306.4,13611.6,2.78756089,1.21062231,9582929,40285869.8 -83.5,6398870,6399422.5,6399146.2,724435.2,5.8599995,9276146.5,12643.8,2.86183358,1.24287853,9838259,40327870.8 -84,6398992.1,6399463.3,6399227.7,668926.1,5.8253781,9331987.7,11675,2.94202876,1.27770685,10113950,40366774.5 -84.5,6399104.6,6399500.8,6399302.7,613365,5.787719,9387830,10705.2,3.02918039,1.31555632,10413555,40402577.8 -85,6399207.5,6399535,6399371.3,557756.2,5.7464444,9443673.1,9734.7,3.12461859,1.3570046,10741648,40435277.5 -85.5,6399300.7,6399566.1,6399433.4,502104.2,5.7007938,9499517.2,8763.4,3.23009491,1.40281239,11104248,40464871.2 -86,6399384.1,6399593.9,6399489,446413.1,5.6497369,9555362,7791.4,3.34798154,1.4540099,11509513,40491356.2 -86.5,6399457.8,6399618.5,6399538.1,390687.4,5.5918294,9611207.5,6818.8,3.48160433,1.51204154,11968874,40514730.5 -87,6399521.7,6399639.8,6399580.7,334931.3,5.5249557,9667053.6,5845.7,3.63583421,1.57902273,12499077,40534992.1 -87.5,6399575.8,6399657.8,6399616.8,279149.2,5.4458363,9722900.2,4872.1,3.81822278,1.65823308,13126083,40552139.4 -88,6399620,6399672.6,6399646.3,223345.3,5.3489769,9778747.2,3898.1,4.04142115,1.7551669,13893383,40566170.9 -88.5,6399654.5,6399684.1,6399669.3,167524.2,5.2240775,9834594.6,2923.8,4.32914586,1.88012415,14882507,40577085.4 -89,6399679.1,6399692.3,6399685.7,111690,5.0480144,9890442.2,1949.4,4.73464143,2.05622864,16276498,40584882.2 -89.5,6399693.9,6399697.2,6399695.5,55847.2,4.7470013,9946290,974.7,5.42780692,2.35726659,18659426,40589560.5 -90,6399698.8,6399698.8,6399698.8,0,inf,10002137.9,0,inf,inf,inf,40591120 +phi,M,N,R,r,lgr,Sm,Sn,lnU,lgU,_,P,D +0,6335552.9,6378245,6356863.1,6378245,6.8047012,0,111321.4,0,0,0,0,0.000 +0.5,6335557.7,6378246.6,6356866.3,6378003.8,6.8046848,55288.1,111317.2,0.00866835,0.00376462,29800,352636.9,29.800 +1,6335572.2,6378251.5,6356876,6377280.1,6.8046355,110576.4,111304.5,0.01733736,0.00752952,59601,705247.6,59.601 +1.5,6335596.4,6378259.6,6356892.2,6376074,6.8045533,165864.8,111283.5,0.02600772,0.01129501,89408,1057806.1,89.408 +2,6335630.3,6378271,6356914.9,6374385.5,6.8044383,221153.4,111254,0.03468008,0.01506137,119221,1410286.1,119.221 +2.5,6335673.9,6378285.6,6356944,6372214.9,6.8042904,276442.4,111216.1,0.04335512,0.01882889,149044,1762661.7,149.044 +3,6335727.1,6378303.5,6356979.6,6369562.2,6.8041096,331731.8,111169.8,0.05203351,0.02259787,178878,2114906.6,178.878 +3.5,6335789.9,6378324.6,6357021.7,6366427.7,6.8038958,387021.7,111115.1,0.06071593,0.02636859,208726,2466994.7,208.726 +4,6335862.4,6378348.9,6357070.1,6362811.5,6.8036491,442312.2,111052,0.06940304,0.03014136,238590,2818900,238.590 +4.5,6335944.4,6378376.4,6357125,6358714,6.8033693,497603.4,110980.5,0.07809552,0.03391645,268473,3170596.3,268.473 +5,6336036.1,6378407.2,6357186.3,6354135.4,6.8030565,552895.4,110900.6,0.08679406,0.03769418,298376,3522057.5,298.376 +5.5,6336137.2,6378441.1,6357254,6349076,6.8027105,608188.2,110812.3,0.09549933,0.04147483,328303,3873257.7,328.303 +6,6336247.9,6378478.2,6357328,6343536.3,6.8023314,663481.9,110715.6,0.10421201,0.0452587,358255,4224170.6,358.255 +6.5,6336368.1,6378518.6,6357408.4,6337516.5,6.8019191,718776.6,110610.5,0.1129328,0.04904609,388234,4574770.4,388.234 +7,6336497.7,6378562.1,6357495.1,6331017.2,6.8014735,774072.4,110497.1,0.12166237,0.0528373,418244,4925031,418.244 +7.5,6336636.7,6378608.7,6357588.1,6324038.8,6.8009945,829369.3,110375.3,0.13040143,0.05663262,448287,5274926.4,448.287 +8,6336785.1,6378658.5,6357687.3,6316581.8,6.8004821,884667.6,110245.2,0.13915066,0.06043237,478365,5624430.5,478.365 +8.5,6336942.8,6378711.4,6357792.8,6308646.8,6.7999362,939967.1,110106.7,0.14791078,0.06423683,508480,5973517.5,508.480 +9,6337109.8,6378767.4,6357904.5,6300234.2,6.7993567,995268.1,109959.8,0.15668247,0.06804633,538635,6322161.5,538.635 +9.5,6337286,6378826.6,6358022.4,6291344.8,6.7987435,1050570.6,109804.7,0.16546646,0.07186117,568832,6670336.4,568.832 +10,6337471.4,6378888.8,6358146.4,6281979.1,6.7980965,1105874.7,109641.2,0.17426346,0.07568166,599074,7018016.5,599.074 +10.5,6337665.9,6378954,6358276.4,6272137.8,6.7974156,1161180.4,109469.5,0.18307417,0.0795081,629363,7365175.9,629.363 +11,6337869.5,6379022.3,6358412.6,6261821.7,6.7967007,1216487.8,109289.4,0.19189933,0.08334082,659701,7711788.7,659.701 +11.5,6338082,6379093.6,6358554.8,6251031.4,6.7959517,1271797.1,109101.1,0.20073967,0.08718013,690092,8057829.3,690.092 +12,6338303.5,6379167.9,6358702.9,6239767.8,6.7951684,1327108.3,108904.5,0.20959592,0.09102635,720538,8403271.7,720.538 +12.5,6338533.9,6379245.2,6358857,6228031.6,6.7943508,1382421.4,108699.7,0.21846883,0.09487981,751041,8748090.4,751.041 +13,6338773.1,6379325.4,6359016.9,6215823.8,6.7934987,1437736.6,108486.6,0.22735913,0.09874082,781603,9092259.6,781.603 +13.5,6339021,6379408.6,6359182.7,6203145,6.7926119,1493053.9,108265.3,0.2362676,0.10260971,812228,9435753.7,812.228 +14,6339277.5,6379494.7,6359354.3,6189996.4,6.7916904,1548373.4,108035.8,0.24519499,0.10648683,842918,9778547.1,842.918 +14.5,6339542.6,6379583.6,6359531.6,6176378.8,6.7907339,1603695.2,107798.1,0.25414206,0.1103725,873676,10120614.2,873.676 +15,6339816.3,6379675.4,6359714.6,6162293.2,6.7897424,1659019.3,107552.3,0.26310961,0.11426705,904504,10461929.6,904.504 +15.5,6340098.3,6379770,6359903.2,6147740.7,6.7887155,1714345.9,107298.3,0.27209841,0.11817084,935405,10802467.6,935.405 +16,6340388.7,6379867.4,6360097.4,6132722.2,6.7876533,1769674.9,107036.2,0.28110927,0.1220842,966382,11142203,966.382 +16.5,6340687.4,6379967.6,6360297.1,6117238.8,6.7865554,1825006.5,106766,0.29014298,0.12600749,997438,11481110.2,997.438 +17,6340994.2,6380070.5,6360502.3,6101291.7,6.7854218,1880340.8,106487.6,0.29920036,0.12994107,1028575,11819164.1,1028.575 +17.5,6341309,6380176.1,6360712.9,6084882.1,6.7842522,1935677.8,106201.2,0.30828224,0.13388527,1059796,12156339.2,1059.796 +18,6341631.9,6380284.3,6360928.8,6068011,6.7830464,1991017.6,105906.8,0.31738944,0.13784048,1091105,12492610.4,1091.105 +18.5,6341962.6,6380395.3,6361149.9,6050679.8,6.7818042,2046360.2,105604.3,0.32652282,0.14180706,1122503,12827952.6,1122.503 +19,6342301.1,6380508.8,6361376.3,6032889.6,6.7805254,2101705.7,105293.8,0.33568324,0.14578538,1153994,13162340.5,1153.994 +19.5,6342647.3,6380624.9,6361607.7,6014641.7,6.7792098,2157054.2,104975.3,0.34487154,0.14977581,1185581,13495749.1,1185.581 +20,6343001.1,6380743.5,6361844.3,5995937.6,6.7778571,2212405.8,104648.9,0.35408863,0.15377874,1217267,13828153.4,1217.267 +20.5,6343362.3,6380864.6,6362085.8,5976778.4,6.7764672,2267760.5,104314.5,0.36333539,0.15779455,1249055,14159528.6,1249.055 +21,6343730.9,6380988.2,6362332.3,5957165.7,6.7750397,2323118.4,103972.2,0.37261272,0.16182365,1280948,14489849.6,1280.948 +21.5,6344106.7,6381114.2,6362583.6,5937100.8,6.7735744,2378479.5,103622,0.38192155,0.16586642,1312950,14819091.6,1312.950 +22,6344489.7,6381242.6,6362839.6,5916585.1,6.7720711,2433844,103263.9,0.3912628,0.16992327,1345062,15147230.1,1345.062 +22.5,6344879.7,6381373.4,6363100.4,5895620.2,6.7705295,2489211.8,102898,0.40063743,0.17399462,1377290,15474240.1,1377.290 +23,6345276.6,6381506.4,6363365.7,5874207.6,6.7689493,2544583,102524.3,0.4100464,0.17808089,1409636,15800097.2,1409.636 +23.5,6345680.3,6381641.8,6363635.6,5852348.9,6.7673302,2599957.8,102142.8,0.41949068,0.18218249,1442103,16124776.7,1442.103 +24,6346090.7,6381779.3,6363910,5830045.5,6.7656719,2655336.1,101753.5,0.42897127,0.18629985,1474695,16448254.3,1474.695 +24.5,6346507.6,6381919.1,6364188.7,5807299.2,6.7639742,2710718,101356.5,0.43848918,0.19043343,1507415,16770505.4,1507.415 +25,6346930.9,6382061,6364471.7,5784111.5,6.7622367,2766103.6,100951.8,0.44804545,0.19458367,1540267,17091505.9,1540.267 +25.5,6347360.6,6382205,6364758.9,5760484.3,6.760459,2821492.8,100539.4,0.45764111,0.19875101,1573254,17411231.4,1573.254 +26,6347796.3,6382351,6365050.2,5736419.1,6.7586409,2876885.9,100119.4,0.46727724,0.20293592,1606381,17729657.8,1606.381 +26.5,6348238.2,6382499.1,6365345.6,5711917.8,6.7567819,2932282.8,99691.8,0.47695491,0.20713888,1639650,18046760.9,1639.650 +27,6348685.9,6382649.1,6365644.9,5686982,6.7548819,2987683.6,99256.6,0.48667524,0.21136037,1673066,18362516.9,1673.066 +27.5,6349139.4,6382801.1,6365948,5661613.7,6.7529402,3043088.3,98813.8,0.49643934,0.21560087,1706633,18676901.7,1706.633 +28,6349598.5,6382955,6366254.9,5635814.7,6.7509567,3098497,98363.5,0.50624838,0.21986088,1740354,18989891.5,1740.354 +28.5,6350063.2,6383110.6,6366565.5,5609586.9,6.7489309,3153909.7,97905.8,0.51610351,0.22414091,1774233,19301462.6,1774.233 +29,6350533.1,6383268.1,6366879.6,5582932.1,6.7468623,3209326.5,97440.5,0.52600594,0.22844148,1808275,19611591.4,1808.275 +29.5,6351008.3,6383427.3,6367197.2,5555852.3,6.7447507,3264747.5,96967.9,0.53595688,0.23276312,1842484,19920254.2,1842.484 +30,6351488.6,6383588.2,6367518.2,5528349.6,6.7425955,3320172.6,96487.9,0.54595758,0.23710636,1876864,20227427.6,1876.864 +30.5,6351973.8,6383750.8,6367842.4,5500425.8,6.7403963,3375601.9,96000.5,0.5560093,0.24147177,1911419,20533088.2,1911.419 +31,6352463.7,6383914.9,6368169.9,5472083.1,6.7381527,3431035.4,95505.9,0.56611334,0.2458599,1946154,20837212.8,1946.154 +31.5,6352958.3,6384080.6,6368500.4,5443323.5,6.7358641,3486473.3,95003.9,0.57627102,0.25027132,1981074,21139778,1981.074 +32,6353457.4,6384247.7,6368834,5414149.1,6.7335302,3541915.5,94494.7,0.58648371,0.25470664,2016182,21440761,2016.182 +32.5,6353960.8,6384416.4,6369170.4,5384562.1,6.7311504,3597362.1,93978.3,0.59675278,0.25916644,2051485,21740138.6,2051.485 +33,6354468.4,6384586.4,6369509.6,5354564.7,6.7287242,3652813,93454.8,0.60707964,0.26365134,2086986,22037888,2086.986 +33.5,6354980,6384757.7,6369851.5,5324158.9,6.726251,3708268.5,92924.1,0.61746576,0.26816197,2122691,22333986.5,2122.691 +34,6355495.5,6384930.3,6370195.9,5293347.2,6.7237304,3763728.4,92386.3,0.6279126,0.27269898,2158605,22628411.3,2158.605 +34.5,6356014.7,6385104.2,6370542.9,5262131.6,6.7211617,3819192.8,91841.5,0.63842169,0.27726302,2194732,22921139.9,2194.732 +35,6356537.5,6385279.3,6370892.2,5230514.6,6.7185444,3874661.8,91289.7,0.64899458,0.28185476,2231079,23212149.9,2231.079 +35.5,6357063.7,6385455.4,6371243.8,5198498.4,6.7158779,3930135.3,90730.9,0.65963286,0.28647491,2267651,23501418.9,2267.651 +36,6357593.1,6385632.7,6371597.5,5166085.4,6.7131616,3985613.5,90165.2,0.67033816,0.29112416,2304453,23788924.7,2304.453 +36.5,6358125.6,6385811,6371953.3,5133278,6.7103948,4041096.3,89592.6,0.68111215,0.29580325,2341491,24074645.2,2341.491 +37,6358661.1,6385990.2,6372311,5100078.6,6.7075769,4096583.7,89013.2,0.69195655,0.30051291,2378771,24358558.4,2378.771 +37.5,6359199.3,6386170.4,6372670.6,5066489.6,6.7047072,4152075.9,88426.9,0.70287311,0.30525391,2416300,24640642.5,2416.300 +38,6359740.1,6386351.4,6373031.9,5032513.6,6.701785,4207572.7,87833.9,0.71386364,0.31002704,2454082,24920875.6,2454.082 +38.5,6360283.3,6386533.3,6373394.8,4998153,6.6988095,4263074.3,87234.2,0.72492999,0.31483309,2492126,25199236.2,2492.126 +39,6360828.8,6386715.8,6373759.2,4963410.4,6.6957802,4318580.6,86627.9,0.73607406,0.3196729,2530436,25475702.9,2530.436 +39.5,6361376.4,6386899.1,6374125,4928288.4,6.6926961,4374091.7,86014.9,0.74729781,0.32454731,2569021,25750254.1,2569.021 +40,6361926,6387083,6374492.1,4892789.5,6.6895565,4429607.6,85395.3,0.75860325,0.3294572,2607886,26022868.7,2607.886 +40.5,6362477.3,6387267.5,6374860.3,4856916.3,6.6863606,4485128.2,84769.2,0.76999243,0.33440346,2647039,26293525.6,2647.039 +41,6363030.2,6387452.5,6375229.7,4820671.6,6.6831075,4540653.7,84136.6,0.78146748,0.33938701,2686487,26562203.7,2686.487 +41.5,6363584.6,6387638,6375600,4784058,6.6797964,4596184.1,83497.6,0.79303058,0.3444088,2726238,26828882.3,2726.238 +42,6364140.2,6387823.9,6375971.1,4747078.3,6.6764264,4651719.3,82852.1,0.80468399,0.34946981,2766300,27093540.7,2766.300 +42.5,6364696.9,6388010.2,6376342.9,4709735.1,6.6729965,4707259.3,82200.4,0.81643001,0.35457105,2806680,27356158.2,2806.680 +43,6365254.6,6388196.8,6376715.4,4672031.4,6.6695057,4762804.2,81542.3,0.82827103,0.35971354,2847386,27616714.4,2847.386 +43.5,6365813,6388383.6,6377088.3,4633969.7,6.6659532,4818353.9,80878,0.8402095,0.36489835,2888428,27875189.1,2888.428 +44,6366372.1,6388570.6,6377461.7,4595553.1,6.6623378,4873908.6,80207.5,0.85224796,0.37012658,2929813,28131562.1,2929.813 +44.5,6366931.5,6388757.7,6377835.3,4556784.3,6.6586585,4929468.1,79530.9,0.86438901,0.37539938,2971551,28385813.5,2971.551 +45,6367491.2,6388944.9,6378209,4517666.3,6.6549141,4985032.5,78848.2,0.87663535,0.38071789,3013650,28637923.3,3013.650 +45.5,6368051,6389132.1,6378582.9,4478201.9,6.6511037,5040601.8,78159.4,0.88898975,0.38608334,3056122,28887871.9,3056.122 +46,6368610.7,6389319.3,6378956.6,4438394.1,6.6472259,5096176,77464.6,0.90145509,0.39149697,3098974,29135639.6,3098.974 +46.5,6369170.1,6389506.4,6379330.1,4398245.9,6.6432795,5151755,76763.9,0.91403432,0.39696006,3142219,29381207.2,3142.219 +47,6369729.1,6389693.3,6379703.4,4357760.4,6.6392633,5207339,76057.3,0.92673052,0.40247395,3185865,29624555.4,3185.865 +63,6386389.6,6395259.3,6390822.9,2903387,6.4629049,6988506.8,50673.7,1.42081379,0.61705158,4884398,36133477.6,4884.398 +63.5,6386841.8,6395410.3,6391124.6,2853618.1,6.4553958,7044240.5,49805,1.44017621,0.62546058,4950961,36293908.3,4950.961 +47.5,6370287.5,6389880,6380076.3,4316940.4,6.635176,5262927.8,75344.8,0.93954684,0.40804001,3229924,29865665.1,3229.924 +48,6370845.2,6390066.5,6380448.6,4275789,6.6310163,5318521.5,74626.6,0.95248656,0.41365965,3274408,30104517.4,3274.408 +48.5,6371401.9,6390252.6,6380820.3,4234309.5,6.6267826,5374120,73902.6,0.96555306,0.41933437,3319327,30341093.4,3319.327 +49,6371957.5,6390438.3,6381191.2,4192504.8,6.6224736,5429723.4,73173,0.97874987,0.42506566,3364694,30575374.6,3364.694 +49.5,6372511.8,6390623.6,6381561.3,4150378,6.6180877,5485331.6,72437.8,0.9920806,0.43085513,3410522,30807342.6,3410.522 +50,6373064.6,6390808.4,6381930.3,4107932.5,6.6136233,5540944.7,71696.9,1.00554902,0.43670439,3456823,31036979.1,3456.823 +50.5,6373615.8,6390992.7,6382298.3,4065171.2,6.6090788,5596562.6,70950.6,1.01915904,0.44261514,3503611,31264265.9,3503.611 +51,6374165.3,6391176.3,6382665.1,4022097.6,6.6044526,5652185.3,70198.8,1.0329147,0.44858915,3550899,31489185.1,3550.899 +51.5,6374712.8,6391359.3,6383030.6,3978714.7,6.5997428,5707812.8,69441.7,1.0468202,0.45462824,3598703,31711719,3598.703 +52,6375258.1,6391541.5,6383394.6,3935025.9,6.5949476,5763445,68679.2,1.06087991,0.46073429,3647037,31931850,3647.037 +52.5,6375801.2,6391723,6383757.2,3891034.4,6.5900651,5819082,67911.4,1.07509837,0.46690929,3695916,32149560.6,3695.916 +53,6376341.8,6391903.7,6384118,3846743.7,6.5850932,5874723.7,67138.3,1.08948027,0.47315527,3745357,32364833.7,3745.357 +53.5,6376879.8,6392083.4,6384477.1,3802156.9,6.58003,5930370.2,66360.2,1.10403052,0.47947436,3795377,32577652,3795.377 +54,6377415,6392262.3,6384834.3,3757277.5,6.5748733,5986021.3,65576.9,1.11875421,0.48586878,3845994,32787998.8,3845.994 +54.5,6377947.3,6392440.1,6385189.6,3712108.9,6.5696207,6041677.1,64788.5,1.13365667,0.49234083,3897225,32995857.4,3897.225 +55,6378476.4,6392616.9,6385542.7,3666654.4,6.56427,6097337.5,63995.2,1.14874341,0.49889292,3949089,33201211.1,3949.089 +55.5,6379002.3,6392792.5,6385893.7,3620917.6,6.5588186,6153002.5,63196.9,1.16402021,0.50552755,4001607,33404043.8,4001.607 +56,6379524.7,6392967,6386242.3,3574901.8,6.5532641,6208672,62393.8,1.17949308,0.51224733,4054799,33604339.2,4054.799 +56.5,6380043.5,6393140.3,6386588.6,3528610.6,6.5476037,6264346.2,61585.9,1.1951683,0.51905499,4108686,33802081.4,4108.686 +57,6380558.6,6393312.4,6386932.3,3482047.5,6.5418347,6320024.8,60773.2,1.21105243,0.52595338,4163292,33997254.5,4163.292 +57.5,6381069.7,6393483.1,6387273.4,3435216,6.535954,6375707.9,59955.8,1.22715232,0.53294548,4218639,34189843.1,4218.639 +58,6381576.8,6393652.4,6387611.8,3388119.6,6.5299587,6431395.5,59133.8,1.24347516,0.5400344,4274753,34379831.8,4274.753 +58.5,6382079.6,6393820.4,6387947.3,3340762,6.5238455,6487087.4,58307.3,1.26002844,0.54722339,4331659,34567205.3,4331.659 +59,6382578.1,6393986.8,6388279.9,3293146.7,6.5176111,6542783.8,57476.3,1.27682002,0.55451589,4389384,34751948.6,4389.384 +59.5,6383072,6394151.7,6388609.4,3245277.3,6.5112518,6598484.4,56640.8,1.29385817,0.56191546,4447957,34934047,4447.957 +60,6383561.2,6394315.1,6388935.9,3197157.5,6.504764,6654189.4,55800.9,1.31115151,0.56942587,4507407,35113485.9,4507.407 +60.5,6384045.5,6394476.8,6389259,3148791,6.4981438,6709898.6,54956.8,1.32870915,0.57705105,4567766,35290250.9,4567.766 +61,6384524.9,6394636.9,6389578.9,3100181.5,6.4913871,6765612,54108.4,1.34654062,0.58479516,4629066,35464327.8,4629.066 +61.5,6384999.2,6394795.2,6389895.3,3051332.5,6.4844895,6821329.6,53255.8,1.36465596,0.59266255,4691342,35635702.6,4691.342 +62,6385468.1,6394951.7,6390208.2,3002248,6.4774466,6877051.2,52399.1,1.38306574,0.60065781,4754630,35804361.5,4754.630 +62.5,6385931.6,6395106.5,6390517.4,2952931.5,6.4702534,6932777,51538.4,1.4017811,0.60878579,4818968,35970290.9,4818.968 +63,6386389.6,6395259.3,6390822.9,2903387,6.4629049,6988506.8,50673.7,1.42081379,0.61705158,4884398,36133477.6,4884.398 +63.5,6386841.8,6395410.3,6391124.6,2853618.1,6.4553958,7044240.5,49805,1.44017621,0.62546058,4950961,36293908.3,4950.961 +64,6387288.1,6395559.3,6391422.4,2803628.6,6.4477205,7099978.2,48932.6,1.45988147,0.63401846,5018703,36451570.2,5018.703 +64.5,6387728.5,6395706.2,6391716.1,2753422.5,6.4398729,7155719.7,48056.3,1.47994344,0.64273127,5087671,36606450.4,5087.671 +65,6388162.8,6395851.2,6392005.8,2703003.5,6.4318466,7211465,47176.3,1.5003768,0.65160536,5157916,36758536.6,5157.916 +65.5,6388590.7,6395994,6392291.3,2652375.5,6.423635,7267214.2,46292.7,1.52119715,0.66064752,5229491,36907816.3,5229.491 +66,6389012.3,6396134.7,6392572.5,2601542.3,6.4152309,7322967,45405.5,1.54242101,0.66986493,5302453,37054277.6,5302.453 +66.5,6389427.4,6396273.2,6392849.4,2550508,6.4066267,7378723.4,44514.8,1.56406596,0.67926521,5376863,37197908.6,5376.863 +67,6389835.8,6396409.5,6393121.8,2499276.3,6.3978143,7434483.5,43620.6,1.58615071,0.6888565,5452785,37338697.6,5452.785 +67.5,6390237.4,6396543.5,6393389.6,2447851.2,6.388785,7490247.1,42723.1,1.60869521,0.69864745,5530287,37476633.3,5530.287 +68,6390632.1,6396675.2,6393652.9,2396236.7,6.3795297,7546014.2,41822.2,1.63172073,0.7086473,5609443,37611704.4,5609.443 +68.5,6391019.7,6396804.5,6393911.5,2344436.7,6.3700385,7601784.7,40918.1,1.65525002,0.71886595,5690330,37743900.1,5690.330 +69,6391400.3,6396931.4,6394165.3,2292455.2,6.3603009,7657558.5,40010.9,1.67930744,0.72931395,5773034,37873209.5,5773.034 +69.5,6391773.5,6397056,6394414.2,2240296.2,6.3503054,7713335.6,39100.5,1.70391908,0.74000265,5857642,37999622.3,5857.642 +70,6392139.4,6397178,6394658.2,2187963.7,6.3400401,7769116,38187.2,1.72911299,0.75094423,5944253,38123128,5944.253 +70.5,6392497.8,6397297.6,6394897.2,2135461.8,6.3294918,7824899.5,37270.8,1.75491933,0.76215178,6032968,38243716.7,6032.968 +71,6392848.5,6397414.6,6395131.1,2082794.5,6.3186464,7880686.1,36351.6,1.78137062,0.77363943,6123901,38361378.5,6123.901 +71.5,6393191.6,6397529,6395359.9,2029965.7,6.3074887,7936475.7,35429.6,1.80850195,0.78542242,6217172,38476103.9,6217.172 +72,6393526.8,6397640.8,6395583.5,1976979.7,6.2960022,7992268.3,34504.8,1.83635134,0.79751725,6312911,38587883.5,6312.911 +72.5,6393854.1,6397750,6395801.7,1923840.5,6.2841691,8048063.8,33577.4,1.86495998,0.80994182,6411260,38696708.3,6411.260 +73,6394173.3,6397856.5,6396014.6,1870552.2,6.2719698,8103862.1,32647.3,1.89437265,0.82271559,6512374,38802569.3,6512.374 +73.5,6394484.4,6397960.2,6396222.1,1817118.9,6.2593833,8159663.2,31714.7,1.92463815,0.83585973,6616419,38905457.9,6616.419 +74,6394787.4,6398061.3,6396424.1,1763544.7,6.2463865,8215466.9,30779.7,1.95580977,0.84939739,6723579,39005365.7,6723.579 +74.5,6395081.9,6398159.5,6396620.5,1709833.8,6.2329539,8271273.2,29842.2,1.98794588,0.86335392,6834055,39102284.6,6834.055 +75,6395368.1,6398254.9,6396811.3,1655990.2,6.2190578,8327082.1,28902.5,2.02111059,0.87775717,6948066,39196206.6,6948.066 +75.5,6395645.8,6398347.5,6396996.5,1602018.3,6.2046675,8382893.4,27960.5,2.05537452,0.89263781,7065857,39287124.1,7065.857 +76,6395914.8,6398437.3,6397175.9,1547922.1,6.1897491,8438707.2,27016.3,2.09081573,0.90802973,7187695,39375029.6,7187.695 +76.5,6396175.2,6398524.1,6397349.6,1493705.8,6.1742651,8494523.2,26070.1,2.1275208,0.92397054,7313878,39459915.9,7313.878 +77,6396426.9,6398608,6397517.4,1439373.6,6.1581735,8550341.5,25121.8,2.16558612,0.9405021,7444737,39541776.1,7444.737 +77.5,6396669.7,6398689,6397679.3,1384929.8,6.1414278,8606161.9,24171.6,2.20511939,0.95767118,7580642,39620603.5,7580.642 +78,6396903.6,6398767,6397835.2,1330378.5,6.1239752,8661984.4,23219.5,2.24624154,0.9755303,7722010,39696391.7,7722.010 +78.5,6397128.6,6398842,6397985.2,1275723.9,6.1057567,8717808.9,22265.6,2.28908893,0.99413869,7869308,39769134.3,7869.308 +79,6397344.4,6398913.9,6398129.1,1220970.3,6.0867051,8773635.3,21310,2.33381609,1.01356345,8023069,39838825.5,8023.069 +80,6397748.8,6399048.8,6398398.7,1111183.2,6.0457856,8885293.6,19393.8,2.42964003,1.05517925,8352487,39969030.9,8352.487 +80.5,6397937.1,6399111.5,6398524.3,1056158,6.0237289,8941125.4,18433.4,2.48117171,1.07755918,8529640,40029534.5,8529.640 +79.5,6397551.2,6398982.9,6398267,1166122,6.066744,8829463.6,20352.7,2.38059915,1.03388107,8183897,39905459.5,8183.897 +81,6398116.2,6399171.2,6398643.7,1001050.9,6.0004562,8996958.7,17471.6,2.535465,1.10113845,8716287,40086965.3,8716.287 +81.5,6398285.8,6399227.8,6398756.8,945866.1,5.9758297,9052793.5,16508.5,2.59283719,1.12605488,8913518,40141318.5,8913.518 +82,6398446.1,6399281.2,6398863.7,890607.8,5.9496865,9108629.8,15544,2.65366331,1.15247133,9122623,40192589.8,9122.623 +82.5,6398596.9,6399331.5,6398964.2,835280.4,5.9218323,9164467.5,14578.4,2.71839106,1.18058223,9345140,40240774.8,9345.140 +83,6398738.2,6399378.6,6399058.4,779888.1,5.8920323,9220306.4,13611.6,2.78756089,1.21062231,9582929,40285869.8,9582.929 +83.5,6398870,6399422.5,6399146.2,724435.2,5.8599995,9276146.5,12643.8,2.86183358,1.24287853,9838259,40327870.8,9838.259 +84,6398992.1,6399463.3,6399227.7,668926.1,5.8253781,9331987.7,11675,2.94202876,1.27770685,10113950,40366774.5,10113.950 +84.5,6399104.6,6399500.8,6399302.7,613365,5.787719,9387830,10705.2,3.02918039,1.31555632,10413555,40402577.8,10413.555 +85,6399207.5,6399535,6399371.3,557756.2,5.7464444,9443673.1,9734.7,3.12461859,1.3570046,10741648,40435277.5,10741.648 +85.5,6399300.7,6399566.1,6399433.4,502104.2,5.7007938,9499517.2,8763.4,3.23009491,1.40281239,11104248,40464871.2,11104.248 +86,6399384.1,6399593.9,6399489,446413.1,5.6497369,9555362,7791.4,3.34798154,1.4540099,11509513,40491356.2,11509.513 +86.5,6399457.8,6399618.5,6399538.1,390687.4,5.5918294,9611207.5,6818.8,3.48160433,1.51204154,11968874,40514730.5,11968.874 +87,6399521.7,6399639.8,6399580.7,334931.3,5.5249557,9667053.6,5845.7,3.63583421,1.57902273,12499077,40534992.1,12499.077 +87.5,6399575.8,6399657.8,6399616.8,279149.2,5.4458363,9722900.2,4872.1,3.81822278,1.65823308,13126083,40552139.4,13126.083 +88,6399620,6399672.6,6399646.3,223345.3,5.3489769,9778747.2,3898.1,4.04142115,1.7551669,13893383,40566170.9,13893.383 +88.5,6399654.5,6399684.1,6399669.3,167524.2,5.2240775,9834594.6,2923.8,4.32914586,1.88012415,14882507,40577085.4,14882.507 +89,6399679.1,6399692.3,6399685.7,111690,5.0480144,9890442.2,1949.4,4.73464143,2.05622864,16276498,40584882.2,16276.498 +89.5,6399693.9,6399697.2,6399695.5,55847.2,4.7470013,9946290,974.7,5.42780692,2.35726659,18659426,40589560.5,18659.426 +90,6399698.8,6399698.8,6399698.8,0,inf,10002137.9,0,inf,inf,inf,40591120,inf diff --git a/III/Ovodas/task1.py b/III/Ovodas/task1.py index 815af8b..78ce5e4 100755 --- a/III/Ovodas/task1.py +++ b/III/Ovodas/task1.py @@ -1,9 +1,15 @@ #!/usr/bin/python3 -from math import sin, cos, sqrt, e, log, radians, pi, degrees +from math import sin, cos, sqrt, e, log, radians, degrees + + +def sinq(x): + return sin(x)**2 + + +def sqr(x): + return x**2 -sinq = lambda x: sin(x)**2 -sqr = lambda x: x**2 # duota B = radians(13) @@ -35,7 +41,7 @@ r = N * cos(B) # Lygiagretės lanko ilgis metrais Sn = r/degrees(1) -## Trapecijos plotas esant 1 radiano platumai +# Trapecijos plotas esant 1 radiano platumai P = sqr(b)/2 * ( sin(B)/(1-e2*sinq(B)) + 1/(2*e)*log( (1+e*sin(B))/(1-e*sin(B)) ) ) g = globals() diff --git a/III/Ovodas/task2_1.py b/III/Ovodas/task2_1.py index 9c0dea1..14d52cb 100755 --- a/III/Ovodas/task2_1.py +++ b/III/Ovodas/task2_1.py @@ -1,62 +1,118 @@ #!/usr/bin/python3 +import sys import csv -from math import degrees, radians, tan, pi, log + +from math import radians, degrees, tan, atan, pi, log, sin, cos from shapely.geometry import LineString import matplotlib.pyplot as plt -phi_p, phi_s, dphi = 13, 49, 6 -lambda_v, lambda_r, dlambda = 0, 24, 6 -M = 25e6 +from consts import ( + phi_p, phi_s, dphi, + phi_1, phi_2, + lambda_1, lambda_2, lambda_range, + lambda_v, lambda_r, dlambda, + M +) + + +def c(x): + return "{}°".format(x) + + +def annotate(ax, text, point, heading): + ax.annotate(text, point, textcoords="offset points", xytext=heading) + + +def ctg(x): + return cos(x)/sin(x) + + +def arccot(x): + return atan(1/x) + + +def cosec(x): + return 1/sin(x) + + +rphi_1, rphi_2 = radians(phi_1), radians(phi_2) +rlambda_1, rlambda_2 = radians(lambda_1), radians(lambda_2) phil = round((phi_p+phi_s)/2) nphi = int((phi_s-phi_p)/dphi)+1 nlambda = int((lambda_r-lambda_v)/dlambda)+1 # label orientations W, E, N, S = (-25, -5), (10, -5), (-5, 10), (-5, -20) +SW, NE = (-10, -10), (5, 5) -krasovskio = {} +kr = {} with open("krasovskio.csv") as f: for row in csv.DictReader(f): - krasovskio[float(row['phi'])] = row -betamm = float(krasovskio[phil]["r"]) * 1000 / M + kr[float(row['phi'])] = row +betamm = float(kr[phil]["r"]) * 1000 / M + + +def yx(lat, lon): + # lat - phi in degrees + # lon - lambda in degrees + phi = radians(lat) + U = tan(pi/4 + phi/2) + xmm = betamm * log(U) + ymm = betamm * radians(lon) + return (ymm, xmm) + points = [] for i in range(nphi): phid = phi_p + i*dphi - phi = radians(phid) - U = tan(pi/4 + phi/2) - xmm = betamm * log(U) on_y = [] for j in range(nlambda): lambdad = lambda_v + j*dlambda - ymm = betamm * lambdad / degrees(1) - on_y.append((ymm, xmm)) - points.append(on_y) + on_y.append(yx(phid, lambdad)) + points.append(sorted(on_y)) + fig, ax = plt.subplots() ax.set_aspect('equal') ax.axis("off") -def annotate(ax, nr, point, heading): - text = "{}°".format(nr) - ax.annotate(text, point, textcoords="offset points", xytext=heading) - - # abscises for i in range(nphi): row = [points[i][j] for j in range(nlambda)] ax.plot(*(LineString(row).xy), color="xkcd:black", linewidth=.5) - annotate(ax, phi_p+i*dphi, row[0], W) - annotate(ax, phi_p+i*dphi, row[-1], E) + annotate(ax, c(phi_p+i*dphi), row[0], W) + annotate(ax, c(phi_p+i*dphi), row[-1], E) # ordinates for i in range(nlambda): col = [points[j][i] for j in range(nphi)] ax.plot(*(LineString(col).xy), color="xkcd:black", linewidth=.5) - annotate(ax, lambda_v+i*dlambda, col[0], S) - annotate(ax, lambda_v+i*dlambda, col[-1], N) + annotate(ax, c(lambda_v+i*dlambda), col[0], S) + annotate(ax, c(lambda_v+i*dlambda), col[-1], N) + +# loksodroma +A = yx(phi_1, lambda_1) +B = yx(phi_2, lambda_2) +loksodroma = ((A, B)) +ax.plot(*(LineString(loksodroma).xy), color="xkcd:black", linewidth=.5) + +# ortodroma +ctgu = ctg(rphi_1)*tan(rphi_2)*cosec(rlambda_2-rlambda_1)-ctg(rlambda_2-rlambda_1) +u = arccot(ctgu) +ortodroma = [] +for lambdad in lambda_range: + phi_ort = atan(tan(rphi_1)*cosec(u)*sin(u-rlambda_1+radians(lambdad))) + ortodroma.append(yx(round(degrees(phi_ort)*2)/2, lambdad)) +ax.plot(*(LineString(ortodroma).xy), color="xkcd:black", linewidth=.5) + +annotate(ax, "A", A, SW) +annotate(ax, "B", B, NE) if __name__ == '__main__': - plt.show() + if len(sys.argv) == 2: + plt.savefig(sys.argv[1], bbox_inches='tight') + print("Saved %s" % sys.argv[1]) + else: + plt.show() diff --git a/III/Ovodas/task2_2.py b/III/Ovodas/task2_2.py new file mode 100755 index 0000000..b352b69 --- /dev/null +++ b/III/Ovodas/task2_2.py @@ -0,0 +1,139 @@ +#!/usr/bin/python3 + +import sys +import csv +from math import radians, degrees, tan, atan, sin, cos + +from shapely.geometry import LineString +import matplotlib.pyplot as plt + +from consts import ( + phi_p, phi_s, dphi, + phi_1, phi_2, + lambda_1, lambda_2, lambda_range, + lambda_v, lambda_r, dlambda, + M +) + + +def c(x): + return "{}°".format(x) + + +def annotate(ax, text, point, heading): + ax.annotate(text, point, textcoords="offset points", xytext=heading) + + +def ctg(x): + return cos(x)/sin(x) + + +def arccot(x): + return atan(1/x) + + +def cosec(x): + return 1/sin(x) + + +phi_loks = 27.308 # loksodromos platuma 12 ilgumoje interpoliavus + +rphi_1, rphi_2 = radians(phi_1), radians(phi_2) +rlambda_1, rlambda_2 = radians(lambda_1), radians(lambda_2) +phil = round((phi_p+phi_s)/2) +nphi = int((phi_s-phi_p)/dphi)+1 +nlambda = int((lambda_r-lambda_v)/dlambda)+1 +midlambda = int(lambda_r+lambda_v)/2 +midnlambda = int((lambda_r-midlambda)/dlambda)+1 + +# label orientations +W, E, N, S = (-25, -5), (10, -5), (-5, 10), (-5, -20) +SW, NE = (-10, -10), (5, 5) + +kr = {} +with open("krasovskio.csv") as f: + for row in csv.DictReader(f): + kr[float(row['phi'])] = {k: float(v) for k, v in row.items()} + +alpha = (kr[phi_1]["lgr"]-kr[phi_2]["lgr"])/(kr[phi_2]["lgU"]-kr[phi_1]["lgU"]) +Ualpha = (10**kr[phi_p]["lgU"])**alpha +U1alpha = (10**kr[phi_1]["lgU"])**alpha +U2alpha = (10**kr[phi_2]["lgU"])**alpha +C1 = (kr[phi_1]["r"]*U1alpha)/alpha +C2 = (kr[phi_2]["r"]*U2alpha)/alpha +if abs(C1 - C2) / C1 > 1e-6: + raise ValueError("too large error between C1 and C2") +Cmm = C1 * 1000 / M +qmm = Cmm/Ualpha + + +def yx(lat, lon): + # lat - phi in degrees + # lon - lambda in degrees + lgU = kr[round(lat*2)/2.]["lgU"] + Ualpha = (10**lgU)**alpha + pmm = Cmm/Ualpha + delta = alpha * lon + xmm = qmm-pmm*cos(radians(delta)) + ymm = pmm*sin(radians(delta)) + return (ymm, xmm) + + +points = [] +for i in range(nphi): + phid = phi_p + i*dphi + on_y = [] + for j in range(midnlambda): + lambdad = j*dlambda + ymm, xmm = yx(phid, lambdad) + on_y.append((ymm, xmm)) + if j > 0: + on_y.append((-ymm, xmm)) + points.append(sorted(on_y)) + + +fig, ax = plt.subplots() +ax.set_aspect('equal') +ax.axis("off") + + +# abscises +for i in range(nphi): + row = [points[i][j] for j in range(nlambda)] + ax.plot(*(LineString(row).xy), color="xkcd:black", linewidth=.5) + annotate(ax, c(phi_p+i*dphi), row[0], W) + annotate(ax, c(phi_p+i*dphi), row[-1], E) + +# ordinates +for i in range(nlambda): + col = [points[j][i] for j in range(nphi)] + ax.plot(*(LineString(col).xy), color="xkcd:black", linewidth=.5) + annotate(ax, c(lambda_v+i*dlambda), col[0], S) + annotate(ax, c(lambda_v+i*dlambda), col[-1], N) + +# loksodroma +rmidlambda = radians(midlambda) +A = yx(phi_1, lambda_1-midlambda) +MidLoks = yx(phi_loks, 0) +B = yx(phi_2, lambda_2-midlambda) +loksodroma = ((A, MidLoks, B)) +ax.plot(*(LineString(loksodroma).xy), color="xkcd:black", linewidth=.5) + +# ortodroma +ctgu = ctg(rphi_1)*tan(rphi_2)*cosec(rlambda_2-rlambda_1)-ctg(rlambda_2-rlambda_1) +u = arccot(ctgu) +ortodroma = [] +for lambdad in lambda_range: + phi_ort = atan(tan(rphi_1)*cosec(u)*sin(u-rlambda_1+radians(lambdad))) + ortodroma.append(yx(round(degrees(phi_ort)*2)/2, lambdad-midlambda)) +ax.plot(*(LineString(ortodroma).xy), color="xkcd:black", linewidth=.5) + +annotate(ax, "A", A, SW) +annotate(ax, "B", B, NE) + +if __name__ == '__main__': + if len(sys.argv) == 2: + plt.savefig(sys.argv[1], bbox_inches='tight') + print("Saved %s" % sys.argv[1]) + else: + plt.show() diff --git a/III/Ovodas/task2_4.py b/III/Ovodas/task2_4.py new file mode 100755 index 0000000..fb24b82 --- /dev/null +++ b/III/Ovodas/task2_4.py @@ -0,0 +1,40 @@ +#!/usr/bin/python3 + +import csv +from math import sin, cos, acos, radians, degrees, atan + +from consts import phi_1, lambda_1, phi_2, lambda_2 + + +# krasovskio +kr = {} +with open("krasovskio.csv") as f: + for row in csv.DictReader(f): + kr[float(row['phi'])] = {k: float(v) for k, v in row.items()} + + +def sec(x): + return 1/cos(x) + + +# konstantos/radianai +midphi = (phi_1+phi_2)/2 +rphi_1, rphi_2 = radians(phi_1), radians(phi_2) +rlambda_1, rlambda_2 = radians(lambda_1), radians(lambda_2) + +# ortodroma +rdelta = acos(sin(rphi_1)*sin(rphi_2) + cos(rphi_1)*cos(rphi_2)*cos(rlambda_2-rlambda_1)) +delta = degrees(rdelta) +R = 6366255.58 # rutulio spindulys iš pavyzdžio +ortodromos_ilgis = rdelta * R + +# loksodroma +D_1 = kr[phi_1]["D"] +D_2 = kr[phi_2]["D"] +ralpha_loks = atan(60*(lambda_2 - lambda_1) / (D_2 - D_1)) + +loksodromos_ilgis = (rphi_2 - rphi_1) * kr[midphi]["R"] * sec(ralpha_loks) + +if __name__ == '__main__': + print("Ortodromos ilgis (m): %d" % round(ortodromos_ilgis)) + print("Loksodromos ilgis (m): %d" % round(loksodromos_ilgis)) diff --git a/III/Ovodas/task2_5.py b/III/Ovodas/task2_5.py new file mode 100755 index 0000000..73e6912 --- /dev/null +++ b/III/Ovodas/task2_5.py @@ -0,0 +1,71 @@ +#!/usr/bin/python3 + +from shapely.geometry import LineString, box + +from task2_1 import ( + loksodroma as cilindr_loksodroma, + ortodroma as cilindr_ortodroma, + yx as cilindr_yx +) +from task2_2 import ( + loksodroma as kugine_loksodroma, + ortodroma as kugine_ortodroma +) +from task2_4 import loksodromos_ilgis, ortodromos_ilgis +from consts import M, maxlambda + +# mastelių koeficientų lentelė +mLentele = ( + ((10, 16), 0.897), + ((16, 22), 0.919), + ((22, 28), 0.952), + ((28, 34), 1.000), + ((34, 40), 1.065), + ((40, 46), 1.152), + ((46, 52), 1.270), +) + +# Kūginė projekcija: loksodroma +apsk_kugine_loksodroma = LineString(kugine_loksodroma).length * M / 1000 +proc_kugine_loksodroma = 100*(loksodromos_ilgis-apsk_kugine_loksodroma)/loksodromos_ilgis +# Kūginė projekcija: ortodroma +apsk_kugine_ortodroma = LineString(kugine_ortodroma).length * M / 1000 +proc_kugine_ortodroma = 100*(ortodromos_ilgis-apsk_kugine_ortodroma)/apsk_kugine_ortodroma + + +# Merkatoriaus projekcija (cilindrinė) +def apsk_cilindr(linija): + """Apskaičiuoti duotos linijos ilgį cilindrinėje projekcijoje. + + Liniją padalina į dalis pagal mLentele koordinates, ir + sudeda kiekvieno segmento ilgį padauginus iš koeficiento. + """ + ls = LineString(linija) + total = 0 + for (phifrom, phito), coeff in mLentele: + # stačiakampis, apribojantis liniją + poly = box(*cilindr_yx(phifrom, 0), *cilindr_yx(phito, maxlambda)) + # stačiakampio ir linijos sankirta -- gauname tik liniją, kurios ilgį + # reikia priskaičiuoti + subline = ls.intersection(poly) + # pridedame santykinį linijos ilgį prie sumos + total += subline.length * coeff + return total * M / 1000 + + +matav_cilindr_ortodroma = apsk_cilindr(cilindr_ortodroma) +proc_cilindr_ortodroma = 100*(ortodromos_ilgis-matav_cilindr_ortodroma)/ortodromos_ilgis +matav_cilindr_loksodroma = apsk_cilindr(cilindr_loksodroma) +proc_cilindr_loksodroma = 100*(loksodromos_ilgis-matav_cilindr_loksodroma)/loksodromos_ilgis + + +tpl = """Sferinės loksodromos ilgis (m): {loksodromos_ilgis:.0f} +Sferinės ortodromos ilgis (m): {ortodromos_ilgis:.0f} + +Apskaičiuotas kūginės loksodromos ilgis (m): {apsk_kugine_loksodroma:.0f} paklaida: {proc_kugine_loksodroma:+.2f}% +Apskaičiuotas kūginės ortodromos ilgis (m): {apsk_kugine_ortodroma:.0f} paklaida: {proc_kugine_ortodroma:+.2f}% +Apskaičiuotas cilindrinės loksodromos ilgis (m): {matav_cilindr_loksodroma:.0f} paklaida: {proc_cilindr_loksodroma:+.2f}% +Apskaičiuotas cilindrinės ortodromos ilgis (m): {matav_cilindr_ortodroma:.0f} paklaida: {proc_cilindr_ortodroma:+.2f}%""" + +if __name__ == '__main__': + print(tpl.format(**dict(locals())))