Існує відносно проста точна формула для площі будь-якого сферичного чотирикутника, обмеженого паралелями (лініями широти) та меридіанами (лініями довготи). Це можна отримати прямо, використовуючи основні властивості еліпса (основної осі а та другорядної осі b ), який обертається навколо своєї другорядної осі для отримання еліпсоїда. (Виведення робить приємне вправне обчислення, але я вважаю, що це мало би зацікавило цей сайт.)
Формула спрощується шляхом розбиття обчислення на основні етапи.
По-перше, відстань між східною та західною межами - меридіанами l0 та l1 - це частка цілого кола, що дорівнює q = (l1 - l0) / 360 (коли меридіани вимірюються в градусах) або 1 = ( l1 - l0) / (2 * pi) (коли вимірюються меридіани в радіанах). Знайдіть площу всього зрізу, розташованого між паралелями f0 та f1, і просто помножте його на q .
По-друге, будемо використовувати формулу для площі горизонтального зрізу еліпсоїда, обмеженого екватором (при f0 = 0), і паралелі на широті f (= f1). Площа зрізу між будь-якими двома широтами f0 та f1 (лежить на одній півкулі) буде різницею між більшою та меншою площею.
Нарешті, за умови, що модель справді є еліпсоїдом (а не сферою), площа такого зрізу між екватором і паралеллю на широті f задається
area(f) = pi * b^2 * (log(zp/zm) / (2*e) + sin(f) / (zp*zm))
де a
і b
- довжини головної та другорядної осей генеруючого еліпса, відповідно,
e = sqrt(1 - (b/a)^2)
- це його ексцентричність, і
zm = 1 - e*sin(f); zp = 1 + e*sin(f)
(Це набагато простіше, ніж обчислення з геодезикою, яка все одно є лише наближенням до паралелей. Будь ласка, зверніть увагу на коментар @cffk щодо способу обчислення log(zp/zm)
таким чином, щоб уникнути втрати точності на малих широтах.)
area(f)
- площа непрозорого зрізу від екватора до широти f (близько 30 градусів на північ на ілюстрації. X і Y - геоцентричні декартові координатні осі, показані для довідки.
Для еліпсоїда WGS 84 використовуйте постійні значення
a = 6 378 137 meters, b = 6 356 752.3142 meters,
тягне за собою
e = 0.08181919084296
(Для сферичної моделі з a = b формула стає невизначеною. Ви повинні взяти обмеження як e -> 0 зверху, яке потім зводиться до стандартної формули 2 * pi * a^2 * sin(f)
.)
Відповідно до цих формул, чотирикутник 30 'на 30' на основі екватора має площу 3077,2300079129 квадратних кілометрів, а чотирикутник 30 'на 30', що торкається полюса (який насправді є просто трикутником), має площу всього 13,6686152 квадратних кілометрів.
Для перевірки формули, застосовані до всіх комірок сітки 720 на 360, що охоплюють земну поверхню, дають загальну площу поверхні 4 * пі * (6371.0071809) ^ 2 квадратних кілометри, що вказує на те, що авталійний радіус Землі повинен бути 6371,0071809 кілометрів. Це відрізняється від значення Вікіпедії лише останньою значною цифрою (приблизно десята частина міліметра). (Я думаю, що розрахунки Вікіпедії трохи відключені :-).
В якості додаткових перевірок, я використовував версії цих формул для відтворення Додатки 4 та 5 в Л. М. Bugayevskiy і Джон П. Снайдер, картографічні проекції: Ручний контрольний (Taylor & Francis, 1995). Додаток 4 показує довжину дуги 30-метрів перерізів меридіанів і паралелей, поданих до найближчого метра. Точкова перевірка результатів показала ідеальну згоду. Потім я відтворив таблицю з кроком 0,0005 ', а не 0,5', і числово інтегрував області чотирикутника, як оцінюється з цими довжинами дуги. Загальна площа еліпсоїда була точно відтворена кращою за вісім значущих фігур. У додатку 5 показані значення area(f)
для f = 0, 1/2, 1, ..., 90 градусів, помножені на 1 / (2 * pi). Ці значення задаються найближчим квадратним кілометром. Візуальна перевірка значень біля 0, 45 та 90 градусів показала ідеальну згоду.
Цю точну формулу можна застосувати за допомогою растрової алгебри, що починається з сітки, що задає широти верхніх меж кожної клітини, а інша - широт нижньої межі. Кожна з них, по суті, є y-координатною сіткою. (У кожному випадку ви можете створити, sin(f)
а потім zm
і zp
як проміжні результати.) Відніміть два результати, візьміть абсолютне значення цього і помножте на дріб q, отриманий на першому кроці (рівний 0,5 / 360 = 1/720 наприклад, для ширини комірки 30 '). Це буде сітка, значення якої містять точнообласті кожної комірки (до власної числової точності сітки). Просто переконайтеся, що висловите широти у формі, очікуваній синусоїдою: багато растрових калькуляторів дадуть вам координати в градусах, але очікують радіани на їх тригельні функції!
Для запису тут наводяться точні площі 30 'на 30' комірок на еліпсоїді WGS 84 від екватора до полюса, з інтервалами 30 ', до 11 цифр (те саме число, що використовується для незначного радіусу b ):
3077.2300079,3077.0019391,3076.5458145,3075.8616605,3074.9495164,3073.8094348,3072.4414813,3070.8457347,3069.0222870,3066.9712434,3064.6927222,3062.1868550,3059.4537865,3056.4936748,3053.3066912,3049.8930202,3046.2528597,3042.3864209,3038.2939285,3033.9756204,3029.4317480,3024.6625762,3019.6683833,3014.4494612,3009.0061153,3003.3386648,2997.4474422,2991.3327939,2984.9950800,2978.4346744,2971.6519646,2964.6473522,2957.4212526,2949.9740951,2942.3063230,2934.4183938,2926.3107788,2917.9839636,2909.4384482,2900.6747464,2891.6933866,2882.4949115,2873.0798782,2863.4488581,2853.6024374,2843.5412166,2833.2658109,2822.7768503,2812.0749792,2801.1608571,2790.0351582,2778.6985716,2767.1518013,2755.3955665,2743.4306011,2731.2576543,2718.8774905,2706.2908892,2693.4986451,2680.5015685,2667.3004848,2653.8962347,2640.2896746,2626.4816763,2612.4731271,2598.2649300,2583.8580035,2569.2532818,2554.4517149,2539.4542684,2524.2619238,2508.8756783,2493.2965451,2477.5255533,2461.5637477,2445.4121891,2429.0719545,2412.5441367,2395.8298444,2378.9302026,2361.8463521,2344.5794500,2327.1306692,2309.5011988,2291.6922441,2273.7050264,2255.5407830,2237.2007674,2218.6862492,2199.9985139,2181.1388633,2162.1086151,2142.9091030,2123.5416769,2104.0077025,2084.3085615,2064.4456516,2044.4203864,2024.2341953,2003.8885234,1983.3848318,1962.7245972,1941.9093120,1920.9404843,1899.8196375,1878.5483108,1857.1280585,1835.5604507,1813.8470724,1791.9895239,1769.9894206,1747.8483931,1725.5680867,1703.1501618,1680.5962932,1657.9081707,1635.0874985,1612.1359952,1589.0553936,1565.8474409,1542.5138984,1519.0565410,1495.4771578,1471.7775513,1447.9595378,1424.0249466,1399.9756206,1375.8134157,1351.5402005,1327.1578567,1302.6682785,1278.0733724,1253.3750574,1228.5752643,1203.6759360,1178.6790272,1153.5865040,1128.4003439,1103.1225355,1077.7550785,1052.2999830,1026.7592702,1001.1349711,975.42912705,949.64378940,923.78101904,897.84288636,871.83147097,845.74886152,819.59715539,793.37845851,767.09488512,740.74855748,714.34160569,687.87616739,661.35438752,634.77841811,608.15041795,581.47255240,554.74699308,527.97591765,501.16150951,474.30595754,447.41145586,420.48020351,393.51440422,366.51626611,339.48800143,312.43182627,285.34996030,258.24462644,231.11805066,203.97246162,176.81009042,149.63317034,122.44393648,95.244625564,68.037475592,40.824725575,13.608615243
Значення знаходяться в квадратних кілометрах.
Якщо ви хочете наблизити ці області або просто краще зрозуміти їх поведінку, формула зводиться до ряду потужностей за цією схемою:
area(f) = 2 * pi * b^2 * z * (1 + (4/3)y + (6/5)y^2 + (8/7)y^3 + ...)
де
z = sin(f), y = (e*z)^2.
(Еквівалентна формула з'являється в рівнянні Бугаєвського та Снайдера, цитата , рівняння (2.1).)
Оскільки e ^ 2 настільки малий (приблизно 1/150 для всіх еліпсоїдальних моделей землі), а z лежить між 0 і 1, y також мало. Таким чином, терміни y ^ 2, y ^ 3, ... швидко зменшуються, додаючи в кожний додаток точність ще двох знаків після коми. Якби ми взагалі ігнорували y , формула була б такою, як область сфери радіуса b . Решта термінів можна розуміти як коригування для екваторіального виступу Землі.
Редагувати
Було порушено питання щодо того, як геодезичний розрахунок відстані площі порівнюється з цими точними формулами. Метод геодезичної відстані наближає кожен чотирикутник геодезичними засобами, а не паралелями, які з'єднують його кути по горизонталі, і застосовує евклідову формулу для трапеції. Для невеликих чотирикутників, таких як 30 'квадратики, це зміщення трохи низько і має відносну точність між 6 і 10 частинами на мільйон. Ось графік помилки для WGS 84 (або будь-якого розумного земного еліпсоїда для цього питання):
Таким чином, якщо (1) у вас легкий доступ до геодезичних обчислень відстані і (2) ви можете допустити помилки на рівні ppm, ви можете розглянути можливість використання цих геодезичних обчислень та помноження їх результатів на 1.00000791 для виправлення зміщення. Для ще двох десяткових знаків точності віднімайте pi / 2 * cos (2f) / 10 ^ 6 від поправочного коефіцієнта: результат буде точним до 0,04 проміле.