From e6787b081101481f9adf8fbcdd55e393f7f8afc0 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 8 Sep 2024 18:42:46 +0200 Subject: [PATCH 01/37] - Add dymaxion projection --- src/lib_proj.cmake | 1 + src/pj_list.h | 1 + src/projections/dymaxion.cpp | 645 +++++++++++++++++++++++++++++++++++ 3 files changed, 647 insertions(+) create mode 100644 src/projections/dymaxion.cpp diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index c39e5dfd4d..482a0947eb 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -28,6 +28,7 @@ print_variable(ENABLE_IPO) ############################################## set(SRC_LIBPROJ_PROJECTIONS + projections/dymaxion.cpp projections/aeqd.cpp projections/adams.cpp projections/gnom.cpp diff --git a/src/pj_list.h b/src/pj_list.h index e0b2035687..80d2b900d5 100644 --- a/src/pj_list.h +++ b/src/pj_list.h @@ -37,6 +37,7 @@ PROJ_HEAD(crast, "Craster Parabolic (Putnins P4)") PROJ_HEAD(defmodel, "Deformation model") PROJ_HEAD(deformation, "Kinematic grid shift") PROJ_HEAD(denoy, "Denoyer Semi-Elliptical") +PROJ_HEAD(dymaxion, "Dymaxion Fuller") PROJ_HEAD(eck1, "Eckert I") PROJ_HEAD(eck2, "Eckert II") PROJ_HEAD(eck3, "Eckert III") diff --git a/src/projections/dymaxion.cpp b/src/projections/dymaxion.cpp new file mode 100644 index 0000000000..c01f2e55fc --- /dev/null +++ b/src/projections/dymaxion.cpp @@ -0,0 +1,645 @@ +/* enable predefined math constants M_* for MS Visual Studio */ +#if defined(_MSC_VER) || defined(_WIN32) +#ifndef _USE_MATH_DEFINES +#define _USE_MATH_DEFINES +#endif +#endif + +#include +#include +#include + +#include "proj.h" +#include "proj_internal.h" + +PROJ_HEAD(dymaxion, "Dymaxion") "\n\tMisc, Sph&Ell"; + + +namespace { // anonymous namespace + struct pj_face { + const PJ_XYZ p1; + const PJ_XYZ p2; + const PJ_XYZ p3; + }; +} // anonymous namespace + + +constexpr pj_face ico_faces[23] = { + { + { 0.42015243, 0.07814525, 0.90408255}, + { 0.51883673, 0.83542038, 0.18133184}, + { 0.99500944, -0.0913478 , 0.04014718} + }, { + { 0.42015243, 0.07814525, 0.90408255}, + { -0.41468223, 0.65596241, 0.63067581}, + { 0.51883673, 0.83542038, 0.18133184} + }, { + { 0.42015243, 0.07814525, 0.90408255}, + { -0.51545596, -0.3817169 , 0.76720099}, + { -0.41468223, 0.65596241, 0.63067581} + }, { + { 0.42015243, 0.07814525, 0.90408255}, + { 0.3557814 , -0.84358 , 0.40223423}, + { -0.51545596, -0.3817169 , 0.76720099} + }, { + { 0.42015243, 0.07814525, 0.90408255}, + { 0.99500944, -0.0913478 , 0.04014718}, + { 0.3557814 , -0.84358 , 0.40223423} + }, { + { 0.99500944, -0.0913478 , 0.04014718}, + { 0.51883673, 0.83542038, 0.18133184}, + { 0.51545596, 0.3817169 , -0.76720099} + }, { + { 0.51545596, 0.3817169 , -0.76720099}, + { 0.51883673, 0.83542038, 0.18133184}, + { -0.3557814 , 0.84358 , -0.40223423} + }, { + { -0.3557814 , 0.84358 , -0.40223423}, + { 0.51883673, 0.83542038, 0.18133184}, + { -0.41468223, 0.65596241, 0.63067581} + }, { + { -0.51545596, -0.3817169 , 0.76720099}, + { -0.99500944, 0.0913478 , -0.04014718}, + { -0.41468223, 0.65596241, 0.63067581} + }, { + { -0.51545596, -0.3817169 , 0.76720099}, + { -0.51883673, -0.83542038, -0.18133184}, + { -0.99500944, 0.0913478 , -0.04014718} + }, { + { -0.51545596, -0.3817169 , 0.76720099}, + { 0.3557814 , -0.84358 , 0.40223423}, + { -0.51883673, -0.83542038, -0.18133184} + }, { + { -0.51883673, -0.83542038, -0.18133184}, + { 0.3557814 , -0.84358 , 0.40223423}, + { 0.41468223, -0.65596241, -0.63067581} + }, { + { 0.41468223, -0.65596241, -0.63067581}, + { 0.3557814 , -0.84358 , 0.40223423}, + { 0.99500944, -0.0913478 , 0.04014718} + }, { + { 0.51545596, 0.3817169 , -0.76720099}, + { 0.41468223, -0.65596241, -0.63067581}, + { 0.99500944, -0.0913478 , 0.04014718} + }, { + { -0.42015243, -0.07814525, -0.90408255}, + { -0.3557814 , 0.84358 , -0.40223423}, + { -0.99500944, 0.0913478 , -0.04014718} + }, { + { -0.42015243, -0.07814525, -0.90408255}, + { -0.99500944, 0.0913478 , -0.04014718}, + { -0.51883673, -0.83542038, -0.18133184} + }, { + { -0.42015243, -0.07814525, -0.90408255}, + { -0.51883673, -0.83542038, -0.18133184}, + { 0.41468223, -0.65596241, -0.63067581} + }, { + { -0.42015243, -0.07814525, -0.90408255}, + { 0.41468223, -0.65596241, -0.63067581}, + { 0.51545596, 0.3817169 , -0.76720099} + }, { + { -0.3557814 , 0.84358 , -0.40223423}, + { -0.38796691, 0.38271738, -0.65315839}, + { 0.51545596, 0.3817169 , -0.76720099} + }, { + { -0.42015243, -0.07814525, -0.90408255}, + { 0.51545596, 0.3817169 , -0.76720099}, + { -0.38796691, 0.38271738, -0.65315839} + }, { + { -0.99500944, 0.0913478 , -0.04014718}, + { -0.3557814 , 0.84358 , -0.40223423}, + { -0.58849102, 0.53029673, 0.0627648 } + }, { + { -0.3557814 , 0.84358 , -0.40223423}, + { -0.41468223, 0.65596241, 0.63067581}, + { -0.58849102, 0.53029673, 0.0627648 } + }, { + { -0.99500944, 0.0913478 , -0.04014718}, + { -0.58849102, 0.53029673, 0.0627648 }, + { -0.41468223, 0.65596241, 0.63067581} + } +}; +constexpr PJ_XYZ ico_centers[23] = { + { 0.6446662 , 0.27407261, 0.37518719}, + { 0.17476898, 0.52317601, 0.57203007}, + {-0.16999525, 0.11746359, 0.76731978}, + { 0.08682596, -0.38238388, 0.69117259}, + { 0.59031442, -0.28559418, 0.44882132}, + { 0.67643404, 0.37526316, -0.18190733}, + { 0.22617043, 0.68690576, -0.32936779}, + {-0.08387563, 0.77832093, 0.13659114}, + {-0.64171587, 0.12186443, 0.45257654}, + {-0.67643404, -0.37526316, 0.18190733}, + {-0.22617043, -0.68690576, 0.32936779}, + { 0.08387563, -0.77832093, -0.13659114}, + { 0.58849102, -0.53029673, -0.0627648 }, + { 0.64171587, -0.12186443, -0.45257654}, + {-0.59031442, 0.28559418, -0.44882132}, + {-0.6446662 , -0.27407261, -0.37518719}, + {-0.17476898, -0.52317601, -0.57203007}, + { 0.16999525, -0.11746359, -0.76731978}, + {-0.07609745, 0.53600476, -0.6075312 }, + {-0.09755446, 0.22876301, -0.77481398}, + {-0.64642729, 0.48840818, -0.12653887}, + {-0.45298488, 0.67661305, 0.09706879}, + {-0.66606089, 0.42586898, 0.21776448} +}; +constexpr PJ_XYZ ico_normals[23] = { + { 0.81125347, 0.34489532, 0.47213877}, + { 0.21993078, 0.65836918, 0.71984754}, + {-0.21392348, 0.14781718, 0.96560179}, + { 0.10926253, -0.48119516, 0.86977751}, + { 0.74285673, -0.35939417, 0.56480059}, + { 0.8512304 , 0.47223438, -0.22891374}, + { 0.28461481, 0.8644081 , -0.41447926}, + {-0.10554981, 0.97944573, 0.17188746}, + {-0.80754076, 0.15335525, 0.5695262 }, + {-0.8512304 , -0.47223438, 0.22891374}, + {-0.28461481, -0.8644081 , 0.41447926}, + { 0.10554981, -0.97944573, -0.17188746}, + { 0.74056215, -0.66732996, -0.07898376}, + { 0.80754076, -0.15335525, -0.5695262 }, + {-0.74285673, 0.35939417, -0.56480059}, + {-0.81125347, -0.34489532, -0.47213877}, + {-0.21993078, -0.65836918, -0.71984754}, + { 0.21392348, -0.14781718, -0.96560179}, + {-0.09351474, 0.65868628, -0.7465838 }, + {-0.11988286, 0.28112261, -0.95215449}, + {-0.78831255, 0.5956096 , -0.15431307}, + {-0.55241119, 0.82512383, 0.11837456}, + {-0.81225557, 0.51934358, 0.26556192} +}; +constexpr double ico_dym_trans[23][2][4] = { + { + {3676785.5510927686, -3835017.5258469363, -3516181.100781365, 13536571.967011793}, + {597946.1042109424, 4588467.130704259, -4379277.462052473, 23446030.407177} + }, { + {6186177.998246177, -1393567.906883936, -615475.9397151419, 9668980.022865457}, + {597946.093114201, 4588467.19100263, -4379277.400388917, 23446030.35137834} + }, { + {6193487.4205306955, -412638.4248002627, 1435299.1378493956, 7735184.010119925}, + {610606.3190418222, 6287486.747151732, -827230.8805747802, 20096597.543368153} + }, { + {6320833.944116932, -6999.892727576209, -797903.6645324827, 9668980.01852922}, + {390035.65327668283, 5584900.236424718, 3040789.8291663616, 16747164.616387902} + }, { + {1785817.7590237681, -3817376.0879736473, -4777879.8689040495, 15470367.924944565}, + {3873198.442246702, 4557911.138766957, -2193951.03617877, 20096597.49643075} + }, { + {1653953.7215915888, -4829262.34292155, -3812125.819798014, 15470368.002101175}, + {-2905701.4190057977, 2866384.5748423464, -4891868.701844473, 26795463.40708426} + }, { + {6107473.601907308, -1644266.3344992409, 764719.3344694556, 9668979.981535126}, + {-20484.64090943463, -2749071.518667839, -5747332.184563468, 30144896.19948345} + }, { + {6325351.40269263, 599247.8045318229, 469545.1276272928, 7735184.023318606}, + {356890.77120627166, 1136808.9882550093, -6258588.8944518985, 26795463.32486729} + }, { + {3707748.665652811, 320266.29512553854, 5171041.496392702, 3867592.035741229}, + {610606.2571372315, 6287486.77106971, -827230.7444765394, 20096597.416174263} + }, { + {3343388.1054673023, -4896993.030290109, 2330419.6578763095, 3867592.0439363136}, + {20484.769920770817, 2749071.5830884464, 5747332.153289897, 13397731.73801166} + }, { + {6107473.60190731, -1644266.3344992383, 764719.3344694556, 7735183.976051465}, + {20484.640909436934, 2749071.5186678423, 5747332.184563471, 13397731.622928448} + }, { + {6325351.402692626, 599247.8045318197, 469545.1276272917, 9668979.934267987}, + {-356890.771206269, -1136808.988255014, 6258588.894451901, 10048298.748312276} + }, { + {4266333.312707111, 4606685.514783113, 1080041.5952454251, 13536571.999992047}, + {-356890.7685546608, -1136809.0066234802, 6258588.89126666, 10048298.733154824} + }, { + {3707748.6656528125, 320266.2951255404, 5171041.496392703, 13536571.921845356}, + {-610606.2571372343, -6287486.771069713, 827230.7444765412, 3349432.839619261} + }, { + {2461379.3653720734, 5855954.878351068, 488922.6024620175, 1933795.9726568952}, + {3483162.766967333, -1026989.0986009572, -5234740.860790558, 30144896.267866686} + }, { + {1320556.259205771, -5891237.862543248, 2034474.981967402, 1933795.9952873993}, + {-3483162.743619373, 1026989.0359898619, 5234740.88860963, 10048298.745932998} + }, { + {6186177.998246178, -1393567.906883938, -615475.9397151434, 7735183.934721128}, + {-597946.0931142012, -4588467.191002626, 4379277.400388914, 6698865.774823346} + }, { + {6193487.420530697, -412638.4248002642, 1435299.1378493954, 9668979.94746666}, + {-610606.3190418243, -6287486.747151733, 827230.8805747859, 3349432.9668131615} + }, { + {3631143.294565724, 4247670.019959572, 3292753.7141836006, 4834490.01017019}, + {5202228.852835585, -2460476.189043276, -2822411.933114077, 32936090.315075427} + }, { + {6320833.984249294, -6999.986858507935, -797903.6226051609, 7735183.986468951}, + {-236523.47825744975, -6260972.143136178, -1818765.4625549014, 1116477.6505621031} + }, { + {3665612.680171031, 5148002.543997674, 1144110.7942403506, 3222993.3353615967}, + {1397369.4993098697, 199220.39584036605, -6369559.895786125, 27911940.952937342} + }, { + {5467774.722326167, 3524051.3707974004, 951903.3183405161, 5156789.374365881}, + {356890.8085771865, 1136808.9426368838, -6258588.900606924, 26795463.37416993} + }, { + {2424810.9279973777, 777520.1747496846, 5896048.635731078, 2578394.7320210026}, + {2832719.751595245, 5495499.807718434, -2082980.0653286842, 22329552.792623065} + } +}; + +constexpr pj_face dymaxion_faces[23] = { + { + {11602775.971724393, 20096597.491866, 1.0}, + {11602775.971724393, 26795463.322488002, 1.0}, + {17404163.95758659, 23446030.407177, 1.0} + }, { + {11602775.971724393, 20096597.491866, 1.0}, + {5801387.985862196, 23446030.407177, 1.0}, + {11602775.971724393, 26795463.322488002, 1.0} + }, { + {11602775.971724393, 20096597.491866, 1.0}, + {5801387.985862196, 16747164.576555002, 1.0}, + {5801387.985862196, 23446030.407177, 1.0} + }, { + {11602775.971724393, 20096597.491866, 1.0}, + {11602775.971724393, 13397731.661244001, 1.0}, + {5801387.985862196, 16747164.576555002, 1.0} + }, { + {11602775.971724393, 20096597.491866, 1.0}, + {17404163.95758659, 23446030.407177, 1.0}, + {17404163.95758659, 16747164.576555002, 1.0} + }, { + {17404163.95758659, 23446030.407177, 1.0}, + {11602775.971724393, 26795463.322488002, 1.0}, + {17404163.95758659, 30144896.237799004, 1.0} + }, { + {11602775.971724393, 33494329.153110005, 1.0}, + {11602775.971724393, 26795463.322488002, 1.0}, + {5801387.985862196, 30144896.237799004, 1.0} + }, { + {5801387.985862196, 30144896.237799004, 1.0}, + {11602775.971724393, 26795463.322488002, 1.0}, + {5801387.985862196, 23446030.407177, 1.0} + }, { + {5801387.985862196, 16747164.576555002, 1.0}, + {0.0, 20096597.491866, 1.0}, + {5801387.985862196, 23446030.407177, 1.0} + }, { + {5801387.985862196, 16747164.576555002, 1.0}, + {5801387.985862196, 10048298.745933, 1.0}, + {0.0, 13397731.661244001, 1.0} + }, { + {5801387.985862196, 16747164.576555002, 1.0}, + {11602775.971724393, 13397731.661244001, 1.0}, + {5801387.985862196, 10048298.745933, 1.0} + }, { + {5801387.985862196, 10048298.745933, 1.0}, + {11602775.971724393, 13397731.661244001, 1.0}, + {11602775.971724393, 6698865.830622001, 1.0} + }, { + {11602775.971724393, 6698865.830622001, 1.0}, + {11602775.971724393, 13397731.661244001, 1.0}, + {17404163.95758659, 10048298.745933, 1.0} + }, { + {11602775.971724393, 0.0, 1.0}, + {11602775.971724393, 6698865.830622001, 1.0}, + {17404163.95758659, 3349432.9153110003, 1.0} + }, { + {0.0, 33494329.153110005, 1.0}, + {5801387.985862196, 30144896.237799004, 1.0}, + {0.0, 26795463.322488002, 1.0} + }, { + {0.0, 6698865.830622001, 1.0}, + {0.0, 13397731.661244001, 1.0}, + {5801387.985862196, 10048298.745933, 1.0} + }, { + {5801387.985862196, 3349432.9153110003, 1.0}, + {5801387.985862196, 10048298.745933, 1.0}, + {11602775.971724393, 6698865.830622001, 1.0} + }, { + {5801387.985862196, 3349432.9153110003, 1.0}, + {11602775.971724393, 6698865.830622001, 1.0}, + {11602775.971724393, 0.0, 1.0} + }, { + {5801387.985862196, 30144896.237799004, 1.0}, + {2900693.992931098, 31819612.695454504, 1.0}, + {5801387.985862196, 36843762.068421006, 1.0} + }, { + {5801387.985862196, 3349432.9153110003, 1.0}, + {11602775.971724393, 0.0, 1.0}, + {5801387.985862196, 0.0, 1.0} + }, { + {0.0, 26795463.322488002, 1.0}, + {5801387.985862196, 30144896.237799004, 1.0}, + {3867591.9905747976, 26795463.322488002, 1.0} + }, { + {5801387.985862196, 30144896.237799004, 1.0}, + {5801387.985862196, 23446030.407177, 1.0}, + {3867591.9905747976, 26795463.322488002, 1.0} + }, { + {0.0, 20096597.491866, 1.0}, + {1933795.9952873988, 23446030.407177, 1.0}, + {5801387.985862196, 23446030.407177, 1.0} + } +}; + +constexpr double dym_ico_trans[23][3][3] = { + { + { 9.058433279771384e-08, 1.4731493732699052e-08, -0.9269301899999991}, + { -9.44826679987233e-08, 1.1304527499839262e-07, -1.0974189099999994}, + { -8.662754779110161e-08, -1.0789150406568015e-07, 4.077454709999999} + },{ + { 1.5240780519329358e-07, 1.473149373269901e-08, -1.6442540899999978}, + { -3.4333093302050216e-08, 1.1304527499839258e-07, -1.7953209499999985}, + { -1.51633738709386e-08, -1.0789150406568015e-07, 3.248271909999998} + },{ + { 1.525878853745444e-07, 1.504340175606161e-08, -1.6526118100000007}, + { -1.0166102516109274e-08, 1.5490373090569122e-07, -2.9169376700000003}, + { 3.536121881520939e-08, -2.0380342501548998e-08, 0.9033697899999995} + },{ + { 1.557252983599121e-07, 9.609243061078464e-09, -1.5798064100000002}, + { -1.7245441994882394e-10, 1.375942246501773e-07, -2.6850295500000003}, + { -1.96578129712955e-08, 7.491541593592458e-08, -0.37337721000000035} + },{ + { 4.399688326690425e-08, 9.54233233151121e-08, -2.0080176699999996}, + { -9.404803666461074e-08, 1.122924714451482e-07, -1.0873330499999996}, + { -1.1771180391040664e-07, -5.405199315156007e-08, 3.3561273899999997} + },{ + { 4.074817450170371e-08, -7.158726449003567e-08, 1.9642587099999982}, + { -1.1897770528054373e-07, 7.061862589298568e-08, 0.3236332400000001}, + { -9.391868744648748e-08, -1.2052012839388902e-07, 4.500442009999996} + },{ + { 1.5046877525297362e-07, -5.046779687011883e-10, -1.2134956799999999}, + { -4.0509505754953036e-08, -6.772840231043597e-08, 3.120257019999999}, + { 1.8840259480379495e-08, -1.4159603341569342e-07, 3.7568638499999985} + },{ + { 1.55836594139745e-07, 8.792657069014762e-09, -1.52490368}, + { 1.4763566099823772e-08, 2.800736643244269e-08, -0.08634832999999958}, + { 1.1568102351290336e-08, -1.5419177904390005e-07, 4.178749899999998} + },{ + { 9.134716490113195e-08, 1.504340175606163e-08, -1.2973306300000003}, + { 7.890345398644546e-09, 1.5490373090569127e-07, -3.021690130000001}, + { 1.2739806091251417e-07, -2.0380342501549028e-08, 0.3694283599999999} + },{ + { 8.237047688665845e-08, 5.04677968701152e-10, -1.0017709799999996}, + { -1.2064637664394705e-07, 6.772840231043599e-08, -0.8160591599999997}, + { 5.741414913322641e-08, 1.4159603341569342e-07, -1.937212839999999} + },{ + { 1.504687752529736e-07, 5.046779687011514e-10, -1.3968356299999996}, + { -4.0509505754953036e-08, 6.772840231043597e-08, -1.2809642399999992}, + { 1.8840259480379524e-08, 1.415960334156934e-07, -1.713430739999999} + },{ + { 1.55836594139745e-07, -8.792657069014724e-09, -1.3345540299999996}, + { 1.4763566099823759e-08, -2.8007366432442684e-08, -0.6396431699999997}, + { 1.1568102351290311e-08, 1.5419177904390013e-07, -1.7978079499999997} + },{ + { 1.0510891988020954e-07, -8.792657069014762e-09, -0.7459721899999996}, + { 1.1349411668458604e-07, -2.8007366432442694e-08, -1.7851916299999993}, + { 2.6608799545245027e-08, 1.541917790439001e-07, -1.9723217899999996} + },{ + { 9.134716490113195e-08, -1.5043401756061595e-08, -0.5444247299999998}, + { 7.890345398644617e-09, -1.5490373090569122e-07, 0.29016699000000007}, + { 1.2739806091251412e-07, 2.038034250154901e-08, -2.2453721499999992} + },{ + { 6.064058047097081e-08, 8.58140802540336e-08, -3.294437479999999}, + { 1.4427215125754238e-07, -2.530175320502907e-08, 0.7693199999999997}, + { 1.2045502760769865e-08, -1.2896740908748457e-07, 3.4155942999999986} + },{ + { 3.2534318590648264e-08, -8.581408025403363e-08, 0.15470457999999998}, + { -1.4514141392576755e-07, 2.530175320502908e-08, -0.2476383}, + { 5.01230094778404e-08, 1.289674090874846e-07, -1.7680179200000001} + },{ + { 1.524078051932937e-07, -1.4731493732699067e-08, -1.25498709}, + { -3.433309330205022e-08, -1.1304527499839266e-07, 0.49967191}, + { -1.5163373870938614e-08, 1.0789150406568026e-07, -1.17748929} + },{ + { 1.5258788537454444e-07, -1.50434017560616e-08, -1.25498709}, + { -1.016610251610931e-08, -1.5490373090569122e-07, 0.49967191}, + { 3.536121881520941e-08, 2.0380342501549018e-08, -1.17748929} + },{ + { 8.618449605826386e-08, 1.3005744286105568e-07, -4.776339219999996}, + { 1.1907386502737676e-07, -6.894646223375916e-08, 2.2311702599999985}, + { 5.5049746849940485e-08, -5.4481873383947436e-08, 0.9207512499999986} + },{ + { 1.5572529749804938e-07, -9.609244553868475e-09, -1.29138978}, + { -1.7245528181154292e-10, -1.3759422614296728e-07, 0.38371785999999997}, + { -1.9657812971295542e-08, -7.491541593592457e-08, -0.53911579} + },{ + { 1.0510892074207234e-07, 8.792655576224747e-09, -1.2306127199999985}, + { 1.1349411496086066e-07, 2.8007369418022736e-08, -0.6591226399999993}, + { 2.6608799545244997e-08, -1.5419177904390008e-07, 4.091492979999998} + },{ + { 1.0510891815648413e-07, 8.79265706901476e-09, -1.2306127500000001}, + { 1.1349412013203696e-07, 2.8007366432442717e-08, -0.6591225800000001}, + { 2.6608799545245066e-08, -1.5419177904390005e-07, 4.091492979999997} + },{ + { 4.4939794689710465e-08, 9.54233248079021e-08, -2.9126935899999995}, + { 3.249196924242356e-08, 1.1229246845956814e-07, -2.1653487399999993}, + { 1.4683839747935709e-07, -5.405199315156002e-08, 1.0461139699999995} + } +}; + + +inline double det(const PJ_XYZ *u, const PJ_XYZ *v, const PJ_XYZ *w) { + return ( + u->x * (v->y * w->z - v->z * w->y) - + v->x * (u->y * w->z - u->z * w->y) + + w->x * (u->y * v->z - u->z * v->y) + ); +} + +inline bool is_point_in_face(const PJ_XYZ *p, const pj_face * face) { + return ( + det(p, &face->p2, &face->p3) < 0 && + det(&face->p1, p, &face->p3) < 0 && + det(&face->p1, &face->p2, p) < 0 + ); +} + + +inline unsigned char get_ico_face_index(const PJ_XYZ *p) { + for (unsigned char i=0; i < 23; i++) { + if (is_point_in_face(p, &ico_faces[i])) { + return i; + } + } + + return 23; +} + +inline unsigned char get_dym_face_index(const PJ_XY *p) { + const PJ_XYZ pp{p->x, p->y, 1.0}; + for (unsigned char i=0; i < 23; i++) { + if (is_point_in_face(&pp, &dymaxion_faces[i])) { + return i; + } + } + + return 23; +} + +inline PJ_XY ico_to_dym(const PJ_XYZ * p, unsigned char face_id) { + return PJ_XY{ + ico_dym_trans[face_id][0][0] * p->x + + ico_dym_trans[face_id][0][1] * p->y + + ico_dym_trans[face_id][0][2] * p->z + + ico_dym_trans[face_id][0][3], + ico_dym_trans[face_id][1][0] * p->x + + ico_dym_trans[face_id][1][1] * p->y + + ico_dym_trans[face_id][1][2] * p->z + + ico_dym_trans[face_id][1][3], + }; +} + +inline PJ_XYZ dym_to_ico(const PJ_XY * p, unsigned char face_id) { + return PJ_XYZ{ + dym_ico_trans[face_id][0][0] * p->x + + dym_ico_trans[face_id][0][1] * p->y + + dym_ico_trans[face_id][0][2], + dym_ico_trans[face_id][1][0] * p->x + + dym_ico_trans[face_id][1][1] * p->y + + dym_ico_trans[face_id][1][2], + dym_ico_trans[face_id][2][0] * p->x + + dym_ico_trans[face_id][2][1] * p->y + + dym_ico_trans[face_id][2][2], + }; +} + +inline PJ_XYZ cartesian_to_ico(const PJ_XYZ *p, unsigned char face_id) { + const PJ_XYZ * center = &ico_centers[face_id]; + const PJ_XYZ * normal = &ico_normals[face_id]; + + double a = 1.0 - ( + center->x * normal->x + + center->y * normal->y + + center->z * normal->z + ) / ( + p->x * normal->x + + p->y * normal->y + + p->z * normal->z + ); + + return PJ_XYZ{ + p->x - a * p->x, + p->y - a * p->y, + p->z - a * p->z, + }; +} + + +// ============================================ +// +// The Forward and Inverse Functions +// +// ============================================ +static PJ_XY dymaxion_forward(PJ_LP lp, PJ *P) { + double lat; + + /* Convert the geodetic latitude to a geocentric latitude. + * This corresponds to the shift from the ellipsoid to the sphere + * described in [LK12]. */ + if (P->es != 0.0) { + double one_minus_f = 1.0 - (P->a - P->b) / P->a; + double one_minus_f_squared = one_minus_f * one_minus_f; + lat = atan(one_minus_f_squared * tan(lp.phi)); + } else { + lat = lp.phi; + } + + // Convert the lat/long to x,y,z on the unit sphere + double x, y, z; + double sinlat, coslat; + double sinlon, coslon; + + sinlat = sin(lat); + coslat = cos(lat); + sinlon = sin(lp.lam); + coslon = cos(lp.lam); + x = coslat * coslon; + y = coslat * sinlon; + z = sinlat; + + PJ_XYZ cartesianPoint{x, y, z}; + + // printf("CARTESIAN: %lf, %lf, %lf\n", x, y, z); + + unsigned char face_id = get_ico_face_index(&cartesianPoint); + // printf("FACE ID: %d\n", face_id); + + PJ_XYZ icoPoint = cartesian_to_ico(&cartesianPoint, face_id); + + // printf("ICO: %lf, %lf, %lf\n", icoPoint.x, icoPoint.y, icoPoint.z); + + + PJ_XY dymaxionPoint = ico_to_dym(&icoPoint, face_id); + + // printf("PROJ OUT: %lf, %lf\n", dymaxionPoint.x, dymaxionPoint.y); + + + return dymaxionPoint; +} + + +static PJ_LP dymaxion_inverse(PJ_XY xy, PJ *P) { + PJ_LP lp = {0.0, 0.0}; + + // printf("INVPROJ IN: %lf, %lf\n", xy.x, xy.y); + + + unsigned char face_id = get_dym_face_index(&xy); + // printf("FACE ID: %d\n", face_id); + + if (face_id == 23) { + lp.lam = HUGE_VAL; + lp.phi = HUGE_VAL; + return lp; + } + + + PJ_XYZ sphereCoords = dym_to_ico(&xy, face_id); + + // printf("ICO: %lf, %lf, %lf\n", sphereCoords.x, sphereCoords.y, sphereCoords.z); + // unsigned char other_face_id = get_ico_face_index(&sphereCoords); + // printf("OTHER FACE ID: %d\n", other_face_id); + + double norm = sqrtl((sphereCoords.x * sphereCoords.x) + (sphereCoords.y * sphereCoords.y) + (sphereCoords.z * sphereCoords.z)); + double q = sphereCoords.x / norm; + double r = sphereCoords.y / norm; + double s = sphereCoords.z / norm; + + // printf("CARTESIAN: %lf, %lf, %lf\n", q, r, s); + + // Get the spherical angles from the x y z + lp.phi = acos(-s) - M_HALFPI; + lp.lam = atan2(r, q); + + // printf("SPHERE: %lf, %lf\n", lp.phi, lp.lam); + + + /* Apply the shift from the sphere to the ellipsoid as described + * in [LK12]. */ + if (P->es != 0.0) { + int invert_sign; + volatile double tanphi, xa; + invert_sign = (lp.phi < 0.0 ? 1 : 0); + tanphi = tan(lp.phi); + double one_minus_f = 1.0 - (P->a - P->b) / P->a; + double a_squared = P->a * P->a; + xa = P->b / sqrt(tanphi * tanphi + one_minus_f * one_minus_f); + lp.phi = atan(sqrt(a_squared - xa * xa) / (one_minus_f * xa)); + if (invert_sign) { + lp.phi = -lp.phi; + } + } + + // printf("INVPROJ OUT (phi, lam): %lf, %lf\n", lp.phi, lp.lam); + + + return lp; +} + +PJ *PJ_PROJECTION(dymaxion) { + P->left = PJ_IO_UNITS_RADIANS; + P->right = PJ_IO_UNITS_PROJECTED; + P->from_greenwich = -P->lam0; + + P->inv = dymaxion_inverse; + P->fwd = dymaxion_forward; + + return P; +} From bd72f6bb706418f9f016ea394e56aa40702d53e5 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Thu, 12 Sep 2024 21:36:15 +0200 Subject: [PATCH 02/37] - Fix inadequate normals on split polygons. --- src/projections/dymaxion.cpp | 553 +++++++++++++++++++++++------------ 1 file changed, 370 insertions(+), 183 deletions(-) diff --git a/src/projections/dymaxion.cpp b/src/projections/dymaxion.cpp index c01f2e55fc..d22c2bbb1e 100644 --- a/src/projections/dymaxion.cpp +++ b/src/projections/dymaxion.cpp @@ -145,103 +145,197 @@ constexpr PJ_XYZ ico_centers[23] = { {-0.66606089, 0.42586898, 0.21776448} }; constexpr PJ_XYZ ico_normals[23] = { - { 0.81125347, 0.34489532, 0.47213877}, - { 0.21993078, 0.65836918, 0.71984754}, - {-0.21392348, 0.14781718, 0.96560179}, - { 0.10926253, -0.48119516, 0.86977751}, - { 0.74285673, -0.35939417, 0.56480059}, - { 0.8512304 , 0.47223438, -0.22891374}, - { 0.28461481, 0.8644081 , -0.41447926}, - {-0.10554981, 0.97944573, 0.17188746}, - {-0.80754076, 0.15335525, 0.5695262 }, - {-0.8512304 , -0.47223438, 0.22891374}, - {-0.28461481, -0.8644081 , 0.41447926}, - { 0.10554981, -0.97944573, -0.17188746}, - { 0.74056215, -0.66732996, -0.07898376}, - { 0.80754076, -0.15335525, -0.5695262 }, - {-0.74285673, 0.35939417, -0.56480059}, - {-0.81125347, -0.34489532, -0.47213877}, - {-0.21993078, -0.65836918, -0.71984754}, - { 0.21392348, -0.14781718, -0.96560179}, - {-0.09351474, 0.65868628, -0.7465838 }, - {-0.11988286, 0.28112261, -0.95215449}, - {-0.78831255, 0.5956096 , -0.15431307}, - {-0.55241119, 0.82512383, 0.11837456}, - {-0.81225557, 0.51934358, 0.26556192} + { + 0.8112534716456183, 0.3448953244235397, 0.4721387719026189 + }, { + 0.21993078167242514, 0.6583691769191125, 0.7198475381327677 + }, { + -0.21392348218574597, 0.1478171768398566, 0.9656017947376752 + }, { + 0.10926252593733311, -0.48119515565604315, 0.8697775132750616 + }, { + 0.7428567271237952, -0.3593941714860216, 0.5648005953155497 + }, { + 0.8512303999921011, 0.4722343774266651, -0.22891373682183738 + }, { + 0.28461480749719364, 0.8644080979012073, -0.4144792535654255 + }, { + -0.1055498134715015, 0.9794457311974099, 0.17188745304792394 + }, { + -0.80754076069938, 0.15335524153301364, 0.5695261975567215 + }, { + -0.8512303999921011, -0.4722343774266651, 0.22891373682183735 + }, { + -0.28461480749719364, -0.8644080979012073, 0.4144792535654255 + }, { + 0.10554981347150154, -0.97944573119741, -0.17188745304792397 + }, { + 0.7405621455042509, -0.6673299596621295, -0.07898375518726185 + }, { + 0.80754076069938, -0.15335524153301364, -0.5695261975567215 + }, { + -0.7428567271237952, 0.3593941714860216, -0.5648005953155497 + }, { + -0.8112534716456183, -0.3448953244235397, -0.4721387719026189 + }, { + -0.21993078167242514, -0.6583691769191125, -0.7198475381327677 + }, { + 0.21392348218574597, -0.1478171768398566, -0.9656017947376752 + }, { + -0.1092625236946045, 0.48119515875463253, -0.8697775118425345 + }, { + -0.10926252412771359, 0.4811951525529661, -0.8697775152191327 + }, { + -0.7405621389792739, 0.6673299643797594, 0.07898377650727696 + }, { + -0.7405621607654073, 0.6673299431834946, 0.07898375132383098 + }, { + -0.7405621367680706, 0.6673299714231342, 0.07898373773067752 + } }; constexpr double ico_dym_trans[23][2][4] = { + { { - {3676785.5510927686, -3835017.5258469363, -3516181.100781365, 13536571.967011793}, - {597946.1042109424, 4588467.130704259, -4379277.462052473, 23446030.407177} - }, { - {6186177.998246177, -1393567.906883936, -615475.9397151419, 9668980.022865457}, - {597946.093114201, 4588467.19100263, -4379277.400388917, 23446030.35137834} - }, { - {6193487.4205306955, -412638.4248002627, 1435299.1378493956, 7735184.010119925}, - {610606.3190418222, 6287486.747151732, -827230.8805747802, 20096597.543368153} - }, { - {6320833.944116932, -6999.892727576209, -797903.6645324827, 9668980.01852922}, - {390035.65327668283, 5584900.236424718, 3040789.8291663616, 16747164.616387902} - }, { - {1785817.7590237681, -3817376.0879736473, -4777879.8689040495, 15470367.924944565}, - {3873198.442246702, 4557911.138766957, -2193951.03617877, 20096597.49643075} - }, { - {1653953.7215915888, -4829262.34292155, -3812125.819798014, 15470368.002101175}, - {-2905701.4190057977, 2866384.5748423464, -4891868.701844473, 26795463.40708426} - }, { - {6107473.601907308, -1644266.3344992409, 764719.3344694556, 9668979.981535126}, - {-20484.64090943463, -2749071.518667839, -5747332.184563468, 30144896.19948345} - }, { - {6325351.40269263, 599247.8045318229, 469545.1276272928, 7735184.023318606}, - {356890.77120627166, 1136808.9882550093, -6258588.8944518985, 26795463.32486729} - }, { - {3707748.665652811, 320266.29512553854, 5171041.496392702, 3867592.035741229}, - {610606.2571372315, 6287486.77106971, -827230.7444765394, 20096597.416174263} - }, { - {3343388.1054673023, -4896993.030290109, 2330419.6578763095, 3867592.0439363136}, - {20484.769920770817, 2749071.5830884464, 5747332.153289897, 13397731.73801166} - }, { - {6107473.60190731, -1644266.3344992383, 764719.3344694556, 7735183.976051465}, - {20484.640909436934, 2749071.5186678423, 5747332.184563471, 13397731.622928448} - }, { - {6325351.402692626, 599247.8045318197, 469545.1276272917, 9668979.934267987}, - {-356890.771206269, -1136808.988255014, 6258588.894451901, 10048298.748312276} - }, { - {4266333.312707111, 4606685.514783113, 1080041.5952454251, 13536571.999992047}, - {-356890.7685546608, -1136809.0066234802, 6258588.89126666, 10048298.733154824} - }, { - {3707748.6656528125, 320266.2951255404, 5171041.496392703, 13536571.921845356}, - {-610606.2571372343, -6287486.771069713, 827230.7444765412, 3349432.839619261} - }, { - {2461379.3653720734, 5855954.878351068, 488922.6024620175, 1933795.9726568952}, - {3483162.766967333, -1026989.0986009572, -5234740.860790558, 30144896.267866686} - }, { - {1320556.259205771, -5891237.862543248, 2034474.981967402, 1933795.9952873993}, - {-3483162.743619373, 1026989.0359898619, 5234740.88860963, 10048298.745932998} - }, { - {6186177.998246178, -1393567.906883938, -615475.9397151434, 7735183.934721128}, - {-597946.0931142012, -4588467.191002626, 4379277.400388914, 6698865.774823346} - }, { - {6193487.420530697, -412638.4248002642, 1435299.1378493954, 9668979.94746666}, - {-610606.3190418243, -6287486.747151733, 827230.8805747859, 3349432.9668131615} - }, { - {3631143.294565724, 4247670.019959572, 3292753.7141836006, 4834490.01017019}, - {5202228.852835585, -2460476.189043276, -2822411.933114077, 32936090.315075427} - }, { - {6320833.984249294, -6999.986858507935, -797903.6226051609, 7735183.986468951}, - {-236523.47825744975, -6260972.143136178, -1818765.4625549014, 1116477.6505621031} - }, { - {3665612.680171031, 5148002.543997674, 1144110.7942403506, 3222993.3353615967}, - {1397369.4993098697, 199220.39584036605, -6369559.895786125, 27911940.952937342} - }, { - {5467774.722326167, 3524051.3707974004, 951903.3183405161, 5156789.374365881}, - {356890.8085771865, 1136808.9426368838, -6258588.900606924, 26795463.37416993} - }, { - {2424810.9279973777, 777520.1747496846, 5896048.635731078, 2578394.7320210026}, - {2832719.751595245, 5495499.807718434, -2082980.0653286842, 22329552.792623065} + 3676785.549175448, -3835017.5266620647, -3516181.101897219, 13536571.968889877 + }, { + 597946.080039791, 4588467.120428165, -4379277.476119764, 23446030.430853583 } + }, { + { + 6186178.005526091, -1393567.8850913076, -615475.9158875226, 9668979.99656166 + }, { + 597946.0790283178, 4588467.148836121, -4379277.446492919, 23446030.4022735 + } + }, { + { + 6193487.416382644, -412638.42193403625, 1435299.1565727487, 7735183.994711302 + }, { + 610606.2949588482, 6287486.763792622, -827230.771869741, 20096597.453907937 + } + }, { + { + 6320833.951539666, -6999.925417495968, -797903.6054442794, 9668979.964544488 + }, { + 390035.65785509185, 5584900.2162612835, 3040789.86561249, 16747164.583089648 + } + }, { + { + 1785817.7160921493, -3817376.067203325, -4777879.901545344, 15470367.97086971 + }, { + 3873198.4648612146, 4557911.12782605, -2193951.0189847522, 20096597.472239383 + } + }, { + { + 1653953.7567438218, -4829262.323420258, -3812125.829251187, 15470367.969285296 + }, { + -2905701.3326818133, 2866384.6227320307, -4891868.725058803, 26795463.326497696 + } + }, { + { + 6107473.604777472, -1644266.325782215, 764719.3302896866, 9668979.973521523 + }, { + -20484.65208776388, -2749071.5526177026, -5747332.168284684, 30144896.23069373 + } + }, { + { + 6325351.398413758, 599247.844237452, 469545.1345954169, 7735183.991104206 + }, { + 356890.77665911405, 1136808.9376555325, -6258588.903331836, 26795463.365920186 + } + }, { + { + 3707748.6155441254, 320266.3046413801, 5171041.531732354, 3867591.9864321505 + }, { + 610606.2818745336, 6287486.766371998, -827230.7619227654, 20096597.44051682 + } + }, { + { + 3343388.0482846545, -4896993.062013145, 2330419.6732539237, 3867591.9905542377 + }, { + 20484.69631605078, 2749071.5422549895, 5747332.173083752, 13397731.669298988 + } + }, { + { + 6107473.604777474, -1644266.3257822143, 764719.330289686, 7735183.984065069 + }, { + 20484.65208776346, 2749071.552617706, 5747332.168284684, 13397731.654138729 + } + }, { + { + 6325351.398413757, 599247.8442374519, 469545.1345954159, 9668979.966482382 + }, { + -356890.77665911167, -1136808.9376555379, 6258588.903331836, 10048298.789365184 + } + }, { + { + 4266333.348411551, 4606685.482609389, 1080041.5914374113, 13536571.961679665 + }, { + -356890.81480763154, -1136808.9649443403, 6258588.896199714, 10048298.78278621 + } + }, { + { + 3707748.6155441264, 320266.30464138015, 5171041.531732352, 13536571.97115444 + }, { + -610606.2818745337, -6287486.766372, 827230.7619227694, 3349432.8639618154 + } + }, { + { + 2461379.4064226267, 5855954.858490806, 488922.63367311924, 1933796.0165698116 + }, { + 3483162.7410947136, -1026989.0860837825, -5234740.880461738, 30144896.24019003 + } + }, { + { + 1320556.279179943, -5891237.854051452, 2034474.9935921053, 1933796.0148528814 + }, { + -3483162.72987335, 1026989.0418338334, 5234740.896609632, 10048298.759397767 + } + }, { + { + 6186178.005526091, -1393567.885091309, -615475.9158875229, 7735183.961024929 + }, { + -597946.0790283154, -4588467.148836119, 4379277.446492919, 6698865.825718503 + } + }, { + { + 6193487.416382645, -412638.4219340361, 1435299.156572748, 9668979.962875288 + }, { + -610606.2949588535, -6287486.763792623, 827230.7718697439, 3349432.877352944 + } + }, { + { + 3498197.81693495, 4833165.559061878, 2234449.5231911456, 3867591.983769496 + }, { + 5278984.96116607, -2798512.200701845, -2211399.7153384583, 33494329.158408284 + } + }, { + { + 6320833.983680945, -6999.984355479206, -797903.6271294819, 7735183.9823354 + }, { + -390035.68446349393, -5584900.177255948, -3040789.814780467, 0.044359486997177525 + } + }, { + { + 4266333.41772867, 4606685.445409489, 1080041.6365273518, 3867592.0700864717 + }, { + 356890.72771489987, 1136809.053212709, -6258588.866576485, 26795463.265809294 + } + }, { + { + 4266333.204506115, 4606685.540218764, 1080041.5936954806, 3867591.897018196 + }, { + 356890.8007120557, 1136808.9497242568, -6258588.899768077, 26795463.365730304 + } + }, { + { + 1824090.1118675405, 1318837.3514699321, 5960117.7705610385, 1933795.9110601672 + }, { + 3873198.583330483, 4557911.083457602, -2193951.0468033054, 23446030.547617782 + } + } }; + constexpr pj_face dymaxion_faces[23] = { { {11602775.971724393, 20096597.491866, 1.0}, @@ -339,102 +433,195 @@ constexpr pj_face dymaxion_faces[23] = { }; constexpr double dym_ico_trans[23][3][3] = { + { + { + 9.058433279771384e-08, 1.4731493732699052e-08, -0.9269301899999991 + }, { + -9.44826679987233e-08, 1.1304527499839262e-07, -1.0974189099999994 + }, { + -8.662754779110161e-08, -1.0789150406568015e-07, 4.077454709999999 + } + }, { + { + 1.5240780519329358e-07, 1.473149373269901e-08, -1.6442540899999978 + }, { + -3.4333093302050216e-08, 1.1304527499839258e-07, -1.7953209499999985 + }, { + -1.51633738709386e-08, -1.0789150406568015e-07, 3.248271909999998 + } + }, { + { + 1.525878853745444e-07, 1.504340175606161e-08, -1.6526118100000007 + }, { + -1.0166102516109274e-08, 1.5490373090569122e-07, -2.9169376700000003 + }, { + 3.536121881520939e-08, -2.0380342501548998e-08, 0.9033697899999995 + } + }, { + { + 1.557252983599121e-07, 9.609243061078464e-09, -1.5798064100000002 + }, { + -1.7245441994882394e-10, 1.375942246501773e-07, -2.6850295500000003 + }, { + -1.96578129712955e-08, 7.491541593592458e-08, -0.37337721000000035 + } + }, { + { + 4.399688326690425e-08, 9.54233233151121e-08, -2.0080176699999996 + }, { + -9.404803666461074e-08, 1.122924714451482e-07, -1.0873330499999996 + }, { + -1.1771180391040664e-07, -5.405199315156007e-08, 3.3561273899999997 + } + }, { + { + 4.074817450170371e-08, -7.158726449003567e-08, 1.9642587099999982 + }, { + -1.1897770528054373e-07, 7.061862589298568e-08, 0.3236332400000001 + }, { + -9.391868744648748e-08, -1.2052012839388902e-07, 4.500442009999996 + } + }, { + { + 1.5046877525297362e-07, -5.046779687011883e-10, -1.2134956799999999 + }, { + -4.0509505754953036e-08, -6.772840231043597e-08, 3.120257019999999 + }, { + 1.8840259480379495e-08, -1.4159603341569342e-07, 3.7568638499999985 + } + }, { + { + 1.55836594139745e-07, 8.792657069014762e-09, -1.52490368 + }, { + 1.4763566099823772e-08, 2.800736643244269e-08, -0.08634832999999958 + }, { + 1.1568102351290336e-08, -1.5419177904390005e-07, 4.178749899999998 + } + }, { + { + 9.134716490113195e-08, 1.504340175606163e-08, -1.2973306300000003 + }, { + 7.890345398644546e-09, 1.5490373090569127e-07, -3.021690130000001 + }, { + 1.2739806091251417e-07, -2.0380342501549028e-08, 0.3694283599999999 + } + }, { { - { 9.058433279771384e-08, 1.4731493732699052e-08, -0.9269301899999991}, - { -9.44826679987233e-08, 1.1304527499839262e-07, -1.0974189099999994}, - { -8.662754779110161e-08, -1.0789150406568015e-07, 4.077454709999999} - },{ - { 1.5240780519329358e-07, 1.473149373269901e-08, -1.6442540899999978}, - { -3.4333093302050216e-08, 1.1304527499839258e-07, -1.7953209499999985}, - { -1.51633738709386e-08, -1.0789150406568015e-07, 3.248271909999998} - },{ - { 1.525878853745444e-07, 1.504340175606161e-08, -1.6526118100000007}, - { -1.0166102516109274e-08, 1.5490373090569122e-07, -2.9169376700000003}, - { 3.536121881520939e-08, -2.0380342501548998e-08, 0.9033697899999995} - },{ - { 1.557252983599121e-07, 9.609243061078464e-09, -1.5798064100000002}, - { -1.7245441994882394e-10, 1.375942246501773e-07, -2.6850295500000003}, - { -1.96578129712955e-08, 7.491541593592458e-08, -0.37337721000000035} - },{ - { 4.399688326690425e-08, 9.54233233151121e-08, -2.0080176699999996}, - { -9.404803666461074e-08, 1.122924714451482e-07, -1.0873330499999996}, - { -1.1771180391040664e-07, -5.405199315156007e-08, 3.3561273899999997} - },{ - { 4.074817450170371e-08, -7.158726449003567e-08, 1.9642587099999982}, - { -1.1897770528054373e-07, 7.061862589298568e-08, 0.3236332400000001}, - { -9.391868744648748e-08, -1.2052012839388902e-07, 4.500442009999996} - },{ - { 1.5046877525297362e-07, -5.046779687011883e-10, -1.2134956799999999}, - { -4.0509505754953036e-08, -6.772840231043597e-08, 3.120257019999999}, - { 1.8840259480379495e-08, -1.4159603341569342e-07, 3.7568638499999985} - },{ - { 1.55836594139745e-07, 8.792657069014762e-09, -1.52490368}, - { 1.4763566099823772e-08, 2.800736643244269e-08, -0.08634832999999958}, - { 1.1568102351290336e-08, -1.5419177904390005e-07, 4.178749899999998} - },{ - { 9.134716490113195e-08, 1.504340175606163e-08, -1.2973306300000003}, - { 7.890345398644546e-09, 1.5490373090569127e-07, -3.021690130000001}, - { 1.2739806091251417e-07, -2.0380342501549028e-08, 0.3694283599999999} - },{ - { 8.237047688665845e-08, 5.04677968701152e-10, -1.0017709799999996}, - { -1.2064637664394705e-07, 6.772840231043599e-08, -0.8160591599999997}, - { 5.741414913322641e-08, 1.4159603341569342e-07, -1.937212839999999} - },{ - { 1.504687752529736e-07, 5.046779687011514e-10, -1.3968356299999996}, - { -4.0509505754953036e-08, 6.772840231043597e-08, -1.2809642399999992}, - { 1.8840259480379524e-08, 1.415960334156934e-07, -1.713430739999999} - },{ - { 1.55836594139745e-07, -8.792657069014724e-09, -1.3345540299999996}, - { 1.4763566099823759e-08, -2.8007366432442684e-08, -0.6396431699999997}, - { 1.1568102351290311e-08, 1.5419177904390013e-07, -1.7978079499999997} - },{ - { 1.0510891988020954e-07, -8.792657069014762e-09, -0.7459721899999996}, - { 1.1349411668458604e-07, -2.8007366432442694e-08, -1.7851916299999993}, - { 2.6608799545245027e-08, 1.541917790439001e-07, -1.9723217899999996} - },{ - { 9.134716490113195e-08, -1.5043401756061595e-08, -0.5444247299999998}, - { 7.890345398644617e-09, -1.5490373090569122e-07, 0.29016699000000007}, - { 1.2739806091251412e-07, 2.038034250154901e-08, -2.2453721499999992} - },{ - { 6.064058047097081e-08, 8.58140802540336e-08, -3.294437479999999}, - { 1.4427215125754238e-07, -2.530175320502907e-08, 0.7693199999999997}, - { 1.2045502760769865e-08, -1.2896740908748457e-07, 3.4155942999999986} - },{ - { 3.2534318590648264e-08, -8.581408025403363e-08, 0.15470457999999998}, - { -1.4514141392576755e-07, 2.530175320502908e-08, -0.2476383}, - { 5.01230094778404e-08, 1.289674090874846e-07, -1.7680179200000001} - },{ - { 1.524078051932937e-07, -1.4731493732699067e-08, -1.25498709}, - { -3.433309330205022e-08, -1.1304527499839266e-07, 0.49967191}, - { -1.5163373870938614e-08, 1.0789150406568026e-07, -1.17748929} - },{ - { 1.5258788537454444e-07, -1.50434017560616e-08, -1.25498709}, - { -1.016610251610931e-08, -1.5490373090569122e-07, 0.49967191}, - { 3.536121881520941e-08, 2.0380342501549018e-08, -1.17748929} - },{ - { 8.618449605826386e-08, 1.3005744286105568e-07, -4.776339219999996}, - { 1.1907386502737676e-07, -6.894646223375916e-08, 2.2311702599999985}, - { 5.5049746849940485e-08, -5.4481873383947436e-08, 0.9207512499999986} - },{ - { 1.5572529749804938e-07, -9.609244553868475e-09, -1.29138978}, - { -1.7245528181154292e-10, -1.3759422614296728e-07, 0.38371785999999997}, - { -1.9657812971295542e-08, -7.491541593592457e-08, -0.53911579} - },{ - { 1.0510892074207234e-07, 8.792655576224747e-09, -1.2306127199999985}, - { 1.1349411496086066e-07, 2.8007369418022736e-08, -0.6591226399999993}, - { 2.6608799545244997e-08, -1.5419177904390008e-07, 4.091492979999998} - },{ - { 1.0510891815648413e-07, 8.79265706901476e-09, -1.2306127500000001}, - { 1.1349412013203696e-07, 2.8007366432442717e-08, -0.6591225800000001}, - { 2.6608799545245066e-08, -1.5419177904390005e-07, 4.091492979999997} - },{ - { 4.4939794689710465e-08, 9.54233248079021e-08, -2.9126935899999995}, - { 3.249196924242356e-08, 1.1229246845956814e-07, -2.1653487399999993}, - { 1.4683839747935709e-07, -5.405199315156002e-08, 1.0461139699999995} + 8.237047688665845e-08, 5.04677968701152e-10, -1.0017709799999996 + }, { + -1.2064637664394705e-07, 6.772840231043599e-08, -0.8160591599999997 + }, { + 5.741414913322641e-08, 1.4159603341569342e-07, -1.937212839999999 } + }, { + { + 1.504687752529736e-07, 5.046779687011514e-10, -1.3968356299999996 + }, { + -4.0509505754953036e-08, 6.772840231043597e-08, -1.2809642399999992 + }, { + 1.8840259480379524e-08, 1.415960334156934e-07, -1.713430739999999 + } + }, { + { + 1.55836594139745e-07, -8.792657069014724e-09, -1.3345540299999996 + }, { + 1.4763566099823759e-08, -2.8007366432442684e-08, -0.6396431699999997 + }, { + 1.1568102351290311e-08, 1.5419177904390013e-07, -1.7978079499999997 + } + }, { + { + 1.0510891988020954e-07, -8.792657069014762e-09, -0.7459721899999996 + }, { + 1.1349411668458604e-07, -2.8007366432442694e-08, -1.7851916299999993 + }, { + 2.6608799545245027e-08, 1.541917790439001e-07, -1.9723217899999996 + } + }, { + { + 9.134716490113195e-08, -1.5043401756061595e-08, -0.5444247299999998 + }, { + 7.890345398644617e-09, -1.5490373090569122e-07, 0.29016699000000007 + }, { + 1.2739806091251412e-07, 2.038034250154901e-08, -2.2453721499999992 + } + }, { + { + 6.064058047097081e-08, 8.58140802540336e-08, -3.294437479999999 + }, { + 1.4427215125754238e-07, -2.530175320502907e-08, 0.7693199999999997 + }, { + 1.2045502760769865e-08, -1.2896740908748457e-07, 3.4155942999999986 + } + }, { + { + 3.2534318590648264e-08, -8.581408025403363e-08, 0.15470457999999998 + }, { + -1.4514141392576755e-07, 2.530175320502908e-08, -0.2476383 + }, { + 5.01230094778404e-08, 1.289674090874846e-07, -1.7680179200000001 + } + }, { + { + 1.524078051932937e-07, -1.4731493732699067e-08, -1.25498709 + }, { + -3.433309330205022e-08, -1.1304527499839266e-07, 0.49967191 + }, { + -1.5163373870938614e-08, 1.0789150406568026e-07, -1.17748929 + } + }, { + { + 1.5258788537454444e-07, -1.50434017560616e-08, -1.25498709 + }, { + -1.016610251610931e-08, -1.5490373090569122e-07, 0.49967191 + }, { + 3.536121881520941e-08, 2.0380342501549018e-08, -1.17748929 + } + }, { + { + 8.618449605826386e-08, 1.3005744286105568e-07, -4.776339219999996 + }, { + 1.1907386502737676e-07, -6.894646223375916e-08, 2.2311702599999985 + }, { + 5.5049746849940485e-08, -5.4481873383947436e-08, 0.9207512499999986 + } + }, { + { + 1.5572529749804938e-07, -9.609244553868475e-09, -1.29138978 + }, { + -1.7245528181154292e-10, -1.3759422614296728e-07, 0.38371785999999997 + }, { + -1.9657812971295542e-08, -7.491541593592457e-08, -0.53911579 + } + }, { + { + 1.0510892074207234e-07, 8.792655576224747e-09, -1.2306127199999985 + }, { + 1.1349411496086066e-07, 2.8007369418022736e-08, -0.6591226399999993 + }, { + 2.6608799545244997e-08, -1.5419177904390008e-07, 4.091492979999998 + } + }, { + { + 1.0510891815648413e-07, 8.79265706901476e-09, -1.2306127500000001 + }, { + 1.1349412013203696e-07, 2.8007366432442717e-08, -0.6591225800000001 + }, { + 2.6608799545245066e-08, -1.5419177904390005e-07, 4.091492979999997 + } + }, { + { + 4.4939794689710465e-08, 9.54233248079021e-08, -2.9126935899999995 + }, { + 3.249196924242356e-08, 1.1229246845956814e-07, -2.1653487399999993 + }, { + 1.4683839747935709e-07, -5.405199315156002e-08, 1.0461139699999995 + } + } }; + inline double det(const PJ_XYZ *u, const PJ_XYZ *v, const PJ_XYZ *w) { return ( u->x * (v->y * w->z - v->z * w->y) - @@ -570,6 +757,7 @@ static PJ_XY dymaxion_forward(PJ_LP lp, PJ *P) { // printf("PROJ OUT: %lf, %lf\n", dymaxionPoint.x, dymaxionPoint.y); + return dymaxionPoint; } @@ -629,7 +817,6 @@ static PJ_LP dymaxion_inverse(PJ_XY xy, PJ *P) { // printf("INVPROJ OUT (phi, lam): %lf, %lf\n", lp.phi, lp.lam); - return lp; } From ef2f17d2dc827297f57f10ceb4b9eec919c188db Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 22 Sep 2024 11:42:20 +0200 Subject: [PATCH 03/37] - Fix numerical issue due to improper center position --- src/projections/dymaxion.cpp | 718 ++++++----------------------------- 1 file changed, 114 insertions(+), 604 deletions(-) diff --git a/src/projections/dymaxion.cpp b/src/projections/dymaxion.cpp index d22c2bbb1e..ec0db6ab05 100644 --- a/src/projections/dymaxion.cpp +++ b/src/projections/dymaxion.cpp @@ -23,603 +23,18 @@ namespace { // anonymous namespace }; } // anonymous namespace - -constexpr pj_face ico_faces[23] = { - { - { 0.42015243, 0.07814525, 0.90408255}, - { 0.51883673, 0.83542038, 0.18133184}, - { 0.99500944, -0.0913478 , 0.04014718} - }, { - { 0.42015243, 0.07814525, 0.90408255}, - { -0.41468223, 0.65596241, 0.63067581}, - { 0.51883673, 0.83542038, 0.18133184} - }, { - { 0.42015243, 0.07814525, 0.90408255}, - { -0.51545596, -0.3817169 , 0.76720099}, - { -0.41468223, 0.65596241, 0.63067581} - }, { - { 0.42015243, 0.07814525, 0.90408255}, - { 0.3557814 , -0.84358 , 0.40223423}, - { -0.51545596, -0.3817169 , 0.76720099} - }, { - { 0.42015243, 0.07814525, 0.90408255}, - { 0.99500944, -0.0913478 , 0.04014718}, - { 0.3557814 , -0.84358 , 0.40223423} - }, { - { 0.99500944, -0.0913478 , 0.04014718}, - { 0.51883673, 0.83542038, 0.18133184}, - { 0.51545596, 0.3817169 , -0.76720099} - }, { - { 0.51545596, 0.3817169 , -0.76720099}, - { 0.51883673, 0.83542038, 0.18133184}, - { -0.3557814 , 0.84358 , -0.40223423} - }, { - { -0.3557814 , 0.84358 , -0.40223423}, - { 0.51883673, 0.83542038, 0.18133184}, - { -0.41468223, 0.65596241, 0.63067581} - }, { - { -0.51545596, -0.3817169 , 0.76720099}, - { -0.99500944, 0.0913478 , -0.04014718}, - { -0.41468223, 0.65596241, 0.63067581} - }, { - { -0.51545596, -0.3817169 , 0.76720099}, - { -0.51883673, -0.83542038, -0.18133184}, - { -0.99500944, 0.0913478 , -0.04014718} - }, { - { -0.51545596, -0.3817169 , 0.76720099}, - { 0.3557814 , -0.84358 , 0.40223423}, - { -0.51883673, -0.83542038, -0.18133184} - }, { - { -0.51883673, -0.83542038, -0.18133184}, - { 0.3557814 , -0.84358 , 0.40223423}, - { 0.41468223, -0.65596241, -0.63067581} - }, { - { 0.41468223, -0.65596241, -0.63067581}, - { 0.3557814 , -0.84358 , 0.40223423}, - { 0.99500944, -0.0913478 , 0.04014718} - }, { - { 0.51545596, 0.3817169 , -0.76720099}, - { 0.41468223, -0.65596241, -0.63067581}, - { 0.99500944, -0.0913478 , 0.04014718} - }, { - { -0.42015243, -0.07814525, -0.90408255}, - { -0.3557814 , 0.84358 , -0.40223423}, - { -0.99500944, 0.0913478 , -0.04014718} - }, { - { -0.42015243, -0.07814525, -0.90408255}, - { -0.99500944, 0.0913478 , -0.04014718}, - { -0.51883673, -0.83542038, -0.18133184} - }, { - { -0.42015243, -0.07814525, -0.90408255}, - { -0.51883673, -0.83542038, -0.18133184}, - { 0.41468223, -0.65596241, -0.63067581} - }, { - { -0.42015243, -0.07814525, -0.90408255}, - { 0.41468223, -0.65596241, -0.63067581}, - { 0.51545596, 0.3817169 , -0.76720099} - }, { - { -0.3557814 , 0.84358 , -0.40223423}, - { -0.38796691, 0.38271738, -0.65315839}, - { 0.51545596, 0.3817169 , -0.76720099} - }, { - { -0.42015243, -0.07814525, -0.90408255}, - { 0.51545596, 0.3817169 , -0.76720099}, - { -0.38796691, 0.38271738, -0.65315839} - }, { - { -0.99500944, 0.0913478 , -0.04014718}, - { -0.3557814 , 0.84358 , -0.40223423}, - { -0.58849102, 0.53029673, 0.0627648 } - }, { - { -0.3557814 , 0.84358 , -0.40223423}, - { -0.41468223, 0.65596241, 0.63067581}, - { -0.58849102, 0.53029673, 0.0627648 } - }, { - { -0.99500944, 0.0913478 , -0.04014718}, - { -0.58849102, 0.53029673, 0.0627648 }, - { -0.41468223, 0.65596241, 0.63067581} - } -}; -constexpr PJ_XYZ ico_centers[23] = { - { 0.6446662 , 0.27407261, 0.37518719}, - { 0.17476898, 0.52317601, 0.57203007}, - {-0.16999525, 0.11746359, 0.76731978}, - { 0.08682596, -0.38238388, 0.69117259}, - { 0.59031442, -0.28559418, 0.44882132}, - { 0.67643404, 0.37526316, -0.18190733}, - { 0.22617043, 0.68690576, -0.32936779}, - {-0.08387563, 0.77832093, 0.13659114}, - {-0.64171587, 0.12186443, 0.45257654}, - {-0.67643404, -0.37526316, 0.18190733}, - {-0.22617043, -0.68690576, 0.32936779}, - { 0.08387563, -0.77832093, -0.13659114}, - { 0.58849102, -0.53029673, -0.0627648 }, - { 0.64171587, -0.12186443, -0.45257654}, - {-0.59031442, 0.28559418, -0.44882132}, - {-0.6446662 , -0.27407261, -0.37518719}, - {-0.17476898, -0.52317601, -0.57203007}, - { 0.16999525, -0.11746359, -0.76731978}, - {-0.07609745, 0.53600476, -0.6075312 }, - {-0.09755446, 0.22876301, -0.77481398}, - {-0.64642729, 0.48840818, -0.12653887}, - {-0.45298488, 0.67661305, 0.09706879}, - {-0.66606089, 0.42586898, 0.21776448} -}; -constexpr PJ_XYZ ico_normals[23] = { - { - 0.8112534716456183, 0.3448953244235397, 0.4721387719026189 - }, { - 0.21993078167242514, 0.6583691769191125, 0.7198475381327677 - }, { - -0.21392348218574597, 0.1478171768398566, 0.9656017947376752 - }, { - 0.10926252593733311, -0.48119515565604315, 0.8697775132750616 - }, { - 0.7428567271237952, -0.3593941714860216, 0.5648005953155497 - }, { - 0.8512303999921011, 0.4722343774266651, -0.22891373682183738 - }, { - 0.28461480749719364, 0.8644080979012073, -0.4144792535654255 - }, { - -0.1055498134715015, 0.9794457311974099, 0.17188745304792394 - }, { - -0.80754076069938, 0.15335524153301364, 0.5695261975567215 - }, { - -0.8512303999921011, -0.4722343774266651, 0.22891373682183735 - }, { - -0.28461480749719364, -0.8644080979012073, 0.4144792535654255 - }, { - 0.10554981347150154, -0.97944573119741, -0.17188745304792397 - }, { - 0.7405621455042509, -0.6673299596621295, -0.07898375518726185 - }, { - 0.80754076069938, -0.15335524153301364, -0.5695261975567215 - }, { - -0.7428567271237952, 0.3593941714860216, -0.5648005953155497 - }, { - -0.8112534716456183, -0.3448953244235397, -0.4721387719026189 - }, { - -0.21993078167242514, -0.6583691769191125, -0.7198475381327677 - }, { - 0.21392348218574597, -0.1478171768398566, -0.9656017947376752 - }, { - -0.1092625236946045, 0.48119515875463253, -0.8697775118425345 - }, { - -0.10926252412771359, 0.4811951525529661, -0.8697775152191327 - }, { - -0.7405621389792739, 0.6673299643797594, 0.07898377650727696 - }, { - -0.7405621607654073, 0.6673299431834946, 0.07898375132383098 - }, { - -0.7405621367680706, 0.6673299714231342, 0.07898373773067752 - } -}; -constexpr double ico_dym_trans[23][2][4] = { - { - { - 3676785.549175448, -3835017.5266620647, -3516181.101897219, 13536571.968889877 - }, { - 597946.080039791, 4588467.120428165, -4379277.476119764, 23446030.430853583 - } - }, { - { - 6186178.005526091, -1393567.8850913076, -615475.9158875226, 9668979.99656166 - }, { - 597946.0790283178, 4588467.148836121, -4379277.446492919, 23446030.4022735 - } - }, { - { - 6193487.416382644, -412638.42193403625, 1435299.1565727487, 7735183.994711302 - }, { - 610606.2949588482, 6287486.763792622, -827230.771869741, 20096597.453907937 - } - }, { - { - 6320833.951539666, -6999.925417495968, -797903.6054442794, 9668979.964544488 - }, { - 390035.65785509185, 5584900.2162612835, 3040789.86561249, 16747164.583089648 - } - }, { - { - 1785817.7160921493, -3817376.067203325, -4777879.901545344, 15470367.97086971 - }, { - 3873198.4648612146, 4557911.12782605, -2193951.0189847522, 20096597.472239383 - } - }, { - { - 1653953.7567438218, -4829262.323420258, -3812125.829251187, 15470367.969285296 - }, { - -2905701.3326818133, 2866384.6227320307, -4891868.725058803, 26795463.326497696 - } - }, { - { - 6107473.604777472, -1644266.325782215, 764719.3302896866, 9668979.973521523 - }, { - -20484.65208776388, -2749071.5526177026, -5747332.168284684, 30144896.23069373 - } - }, { - { - 6325351.398413758, 599247.844237452, 469545.1345954169, 7735183.991104206 - }, { - 356890.77665911405, 1136808.9376555325, -6258588.903331836, 26795463.365920186 - } - }, { - { - 3707748.6155441254, 320266.3046413801, 5171041.531732354, 3867591.9864321505 - }, { - 610606.2818745336, 6287486.766371998, -827230.7619227654, 20096597.44051682 - } - }, { - { - 3343388.0482846545, -4896993.062013145, 2330419.6732539237, 3867591.9905542377 - }, { - 20484.69631605078, 2749071.5422549895, 5747332.173083752, 13397731.669298988 - } - }, { - { - 6107473.604777474, -1644266.3257822143, 764719.330289686, 7735183.984065069 - }, { - 20484.65208776346, 2749071.552617706, 5747332.168284684, 13397731.654138729 - } - }, { - { - 6325351.398413757, 599247.8442374519, 469545.1345954159, 9668979.966482382 - }, { - -356890.77665911167, -1136808.9376555379, 6258588.903331836, 10048298.789365184 - } - }, { - { - 4266333.348411551, 4606685.482609389, 1080041.5914374113, 13536571.961679665 - }, { - -356890.81480763154, -1136808.9649443403, 6258588.896199714, 10048298.78278621 - } - }, { - { - 3707748.6155441264, 320266.30464138015, 5171041.531732352, 13536571.97115444 - }, { - -610606.2818745337, -6287486.766372, 827230.7619227694, 3349432.8639618154 - } - }, { - { - 2461379.4064226267, 5855954.858490806, 488922.63367311924, 1933796.0165698116 - }, { - 3483162.7410947136, -1026989.0860837825, -5234740.880461738, 30144896.24019003 - } - }, { - { - 1320556.279179943, -5891237.854051452, 2034474.9935921053, 1933796.0148528814 - }, { - -3483162.72987335, 1026989.0418338334, 5234740.896609632, 10048298.759397767 - } - }, { - { - 6186178.005526091, -1393567.885091309, -615475.9158875229, 7735183.961024929 - }, { - -597946.0790283154, -4588467.148836119, 4379277.446492919, 6698865.825718503 - } - }, { - { - 6193487.416382645, -412638.4219340361, 1435299.156572748, 9668979.962875288 - }, { - -610606.2949588535, -6287486.763792623, 827230.7718697439, 3349432.877352944 - } - }, { - { - 3498197.81693495, 4833165.559061878, 2234449.5231911456, 3867591.983769496 - }, { - 5278984.96116607, -2798512.200701845, -2211399.7153384583, 33494329.158408284 - } - }, { - { - 6320833.983680945, -6999.984355479206, -797903.6271294819, 7735183.9823354 - }, { - -390035.68446349393, -5584900.177255948, -3040789.814780467, 0.044359486997177525 - } - }, { - { - 4266333.41772867, 4606685.445409489, 1080041.6365273518, 3867592.0700864717 - }, { - 356890.72771489987, 1136809.053212709, -6258588.866576485, 26795463.265809294 - } - }, { - { - 4266333.204506115, 4606685.540218764, 1080041.5936954806, 3867591.897018196 - }, { - 356890.8007120557, 1136808.9497242568, -6258588.899768077, 26795463.365730304 - } - }, { - { - 1824090.1118675405, 1318837.3514699321, 5960117.7705610385, 1933795.9110601672 - }, { - 3873198.583330483, 4557911.083457602, -2193951.0468033054, 23446030.547617782 - } - } -}; - - -constexpr pj_face dymaxion_faces[23] = { - { - {11602775.971724393, 20096597.491866, 1.0}, - {11602775.971724393, 26795463.322488002, 1.0}, - {17404163.95758659, 23446030.407177, 1.0} - }, { - {11602775.971724393, 20096597.491866, 1.0}, - {5801387.985862196, 23446030.407177, 1.0}, - {11602775.971724393, 26795463.322488002, 1.0} - }, { - {11602775.971724393, 20096597.491866, 1.0}, - {5801387.985862196, 16747164.576555002, 1.0}, - {5801387.985862196, 23446030.407177, 1.0} - }, { - {11602775.971724393, 20096597.491866, 1.0}, - {11602775.971724393, 13397731.661244001, 1.0}, - {5801387.985862196, 16747164.576555002, 1.0} - }, { - {11602775.971724393, 20096597.491866, 1.0}, - {17404163.95758659, 23446030.407177, 1.0}, - {17404163.95758659, 16747164.576555002, 1.0} - }, { - {17404163.95758659, 23446030.407177, 1.0}, - {11602775.971724393, 26795463.322488002, 1.0}, - {17404163.95758659, 30144896.237799004, 1.0} - }, { - {11602775.971724393, 33494329.153110005, 1.0}, - {11602775.971724393, 26795463.322488002, 1.0}, - {5801387.985862196, 30144896.237799004, 1.0} - }, { - {5801387.985862196, 30144896.237799004, 1.0}, - {11602775.971724393, 26795463.322488002, 1.0}, - {5801387.985862196, 23446030.407177, 1.0} - }, { - {5801387.985862196, 16747164.576555002, 1.0}, - {0.0, 20096597.491866, 1.0}, - {5801387.985862196, 23446030.407177, 1.0} - }, { - {5801387.985862196, 16747164.576555002, 1.0}, - {5801387.985862196, 10048298.745933, 1.0}, - {0.0, 13397731.661244001, 1.0} - }, { - {5801387.985862196, 16747164.576555002, 1.0}, - {11602775.971724393, 13397731.661244001, 1.0}, - {5801387.985862196, 10048298.745933, 1.0} - }, { - {5801387.985862196, 10048298.745933, 1.0}, - {11602775.971724393, 13397731.661244001, 1.0}, - {11602775.971724393, 6698865.830622001, 1.0} - }, { - {11602775.971724393, 6698865.830622001, 1.0}, - {11602775.971724393, 13397731.661244001, 1.0}, - {17404163.95758659, 10048298.745933, 1.0} - }, { - {11602775.971724393, 0.0, 1.0}, - {11602775.971724393, 6698865.830622001, 1.0}, - {17404163.95758659, 3349432.9153110003, 1.0} - }, { - {0.0, 33494329.153110005, 1.0}, - {5801387.985862196, 30144896.237799004, 1.0}, - {0.0, 26795463.322488002, 1.0} - }, { - {0.0, 6698865.830622001, 1.0}, - {0.0, 13397731.661244001, 1.0}, - {5801387.985862196, 10048298.745933, 1.0} - }, { - {5801387.985862196, 3349432.9153110003, 1.0}, - {5801387.985862196, 10048298.745933, 1.0}, - {11602775.971724393, 6698865.830622001, 1.0} - }, { - {5801387.985862196, 3349432.9153110003, 1.0}, - {11602775.971724393, 6698865.830622001, 1.0}, - {11602775.971724393, 0.0, 1.0} - }, { - {5801387.985862196, 30144896.237799004, 1.0}, - {2900693.992931098, 31819612.695454504, 1.0}, - {5801387.985862196, 36843762.068421006, 1.0} - }, { - {5801387.985862196, 3349432.9153110003, 1.0}, - {11602775.971724393, 0.0, 1.0}, - {5801387.985862196, 0.0, 1.0} - }, { - {0.0, 26795463.322488002, 1.0}, - {5801387.985862196, 30144896.237799004, 1.0}, - {3867591.9905747976, 26795463.322488002, 1.0} - }, { - {5801387.985862196, 30144896.237799004, 1.0}, - {5801387.985862196, 23446030.407177, 1.0}, - {3867591.9905747976, 26795463.322488002, 1.0} - }, { - {0.0, 20096597.491866, 1.0}, - {1933795.9952873988, 23446030.407177, 1.0}, - {5801387.985862196, 23446030.407177, 1.0} - } -}; - -constexpr double dym_ico_trans[23][3][3] = { - { - { - 9.058433279771384e-08, 1.4731493732699052e-08, -0.9269301899999991 - }, { - -9.44826679987233e-08, 1.1304527499839262e-07, -1.0974189099999994 - }, { - -8.662754779110161e-08, -1.0789150406568015e-07, 4.077454709999999 - } - }, { - { - 1.5240780519329358e-07, 1.473149373269901e-08, -1.6442540899999978 - }, { - -3.4333093302050216e-08, 1.1304527499839258e-07, -1.7953209499999985 - }, { - -1.51633738709386e-08, -1.0789150406568015e-07, 3.248271909999998 - } - }, { - { - 1.525878853745444e-07, 1.504340175606161e-08, -1.6526118100000007 - }, { - -1.0166102516109274e-08, 1.5490373090569122e-07, -2.9169376700000003 - }, { - 3.536121881520939e-08, -2.0380342501548998e-08, 0.9033697899999995 - } - }, { - { - 1.557252983599121e-07, 9.609243061078464e-09, -1.5798064100000002 - }, { - -1.7245441994882394e-10, 1.375942246501773e-07, -2.6850295500000003 - }, { - -1.96578129712955e-08, 7.491541593592458e-08, -0.37337721000000035 - } - }, { - { - 4.399688326690425e-08, 9.54233233151121e-08, -2.0080176699999996 - }, { - -9.404803666461074e-08, 1.122924714451482e-07, -1.0873330499999996 - }, { - -1.1771180391040664e-07, -5.405199315156007e-08, 3.3561273899999997 - } - }, { - { - 4.074817450170371e-08, -7.158726449003567e-08, 1.9642587099999982 - }, { - -1.1897770528054373e-07, 7.061862589298568e-08, 0.3236332400000001 - }, { - -9.391868744648748e-08, -1.2052012839388902e-07, 4.500442009999996 - } - }, { - { - 1.5046877525297362e-07, -5.046779687011883e-10, -1.2134956799999999 - }, { - -4.0509505754953036e-08, -6.772840231043597e-08, 3.120257019999999 - }, { - 1.8840259480379495e-08, -1.4159603341569342e-07, 3.7568638499999985 - } - }, { - { - 1.55836594139745e-07, 8.792657069014762e-09, -1.52490368 - }, { - 1.4763566099823772e-08, 2.800736643244269e-08, -0.08634832999999958 - }, { - 1.1568102351290336e-08, -1.5419177904390005e-07, 4.178749899999998 - } - }, { - { - 9.134716490113195e-08, 1.504340175606163e-08, -1.2973306300000003 - }, { - 7.890345398644546e-09, 1.5490373090569127e-07, -3.021690130000001 - }, { - 1.2739806091251417e-07, -2.0380342501549028e-08, 0.3694283599999999 - } - }, { - { - 8.237047688665845e-08, 5.04677968701152e-10, -1.0017709799999996 - }, { - -1.2064637664394705e-07, 6.772840231043599e-08, -0.8160591599999997 - }, { - 5.741414913322641e-08, 1.4159603341569342e-07, -1.937212839999999 - } - }, { - { - 1.504687752529736e-07, 5.046779687011514e-10, -1.3968356299999996 - }, { - -4.0509505754953036e-08, 6.772840231043597e-08, -1.2809642399999992 - }, { - 1.8840259480379524e-08, 1.415960334156934e-07, -1.713430739999999 - } - }, { - { - 1.55836594139745e-07, -8.792657069014724e-09, -1.3345540299999996 - }, { - 1.4763566099823759e-08, -2.8007366432442684e-08, -0.6396431699999997 - }, { - 1.1568102351290311e-08, 1.5419177904390013e-07, -1.7978079499999997 - } - }, { - { - 1.0510891988020954e-07, -8.792657069014762e-09, -0.7459721899999996 - }, { - 1.1349411668458604e-07, -2.8007366432442694e-08, -1.7851916299999993 - }, { - 2.6608799545245027e-08, 1.541917790439001e-07, -1.9723217899999996 - } - }, { - { - 9.134716490113195e-08, -1.5043401756061595e-08, -0.5444247299999998 - }, { - 7.890345398644617e-09, -1.5490373090569122e-07, 0.29016699000000007 - }, { - 1.2739806091251412e-07, 2.038034250154901e-08, -2.2453721499999992 - } - }, { - { - 6.064058047097081e-08, 8.58140802540336e-08, -3.294437479999999 - }, { - 1.4427215125754238e-07, -2.530175320502907e-08, 0.7693199999999997 - }, { - 1.2045502760769865e-08, -1.2896740908748457e-07, 3.4155942999999986 - } - }, { - { - 3.2534318590648264e-08, -8.581408025403363e-08, 0.15470457999999998 - }, { - -1.4514141392576755e-07, 2.530175320502908e-08, -0.2476383 - }, { - 5.01230094778404e-08, 1.289674090874846e-07, -1.7680179200000001 - } - }, { - { - 1.524078051932937e-07, -1.4731493732699067e-08, -1.25498709 - }, { - -3.433309330205022e-08, -1.1304527499839266e-07, 0.49967191 - }, { - -1.5163373870938614e-08, 1.0789150406568026e-07, -1.17748929 - } - }, { - { - 1.5258788537454444e-07, -1.50434017560616e-08, -1.25498709 - }, { - -1.016610251610931e-08, -1.5490373090569122e-07, 0.49967191 - }, { - 3.536121881520941e-08, 2.0380342501549018e-08, -1.17748929 - } - }, { - { - 8.618449605826386e-08, 1.3005744286105568e-07, -4.776339219999996 - }, { - 1.1907386502737676e-07, -6.894646223375916e-08, 2.2311702599999985 - }, { - 5.5049746849940485e-08, -5.4481873383947436e-08, 0.9207512499999986 - } - }, { - { - 1.5572529749804938e-07, -9.609244553868475e-09, -1.29138978 - }, { - -1.7245528181154292e-10, -1.3759422614296728e-07, 0.38371785999999997 - }, { - -1.9657812971295542e-08, -7.491541593592457e-08, -0.53911579 - } - }, { - { - 1.0510892074207234e-07, 8.792655576224747e-09, -1.2306127199999985 - }, { - 1.1349411496086066e-07, 2.8007369418022736e-08, -0.6591226399999993 - }, { - 2.6608799545244997e-08, -1.5419177904390008e-07, 4.091492979999998 - } - }, { - { - 1.0510891815648413e-07, 8.79265706901476e-09, -1.2306127500000001 - }, { - 1.1349412013203696e-07, 2.8007366432442717e-08, -0.6591225800000001 - }, { - 2.6608799545245066e-08, -1.5419177904390005e-07, 4.091492979999997 - } - }, { - { - 4.4939794689710465e-08, 9.54233248079021e-08, -2.9126935899999995 - }, { - 3.249196924242356e-08, 1.1229246845956814e-07, -2.1653487399999993 - }, { - 1.4683839747935709e-07, -5.405199315156002e-08, 1.0461139699999995 - } - } -}; - +constexpr pj_face ico_faces[23] = {{{0.42015243, 0.07814525, 0.90408255}, {0.51883673, 0.83542038, 0.18133184}, {0.99500944, -0.0913478, 0.04014718}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.41468223, 0.65596241, 0.63067581}, {0.51883673, 0.83542038, 0.18133184}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.51545596, -0.3817169, 0.76720099}, {-0.41468223, 0.65596241, 0.63067581}}, {{0.42015243, 0.07814525, 0.90408255}, {0.3557814, -0.84358, 0.40223423}, {-0.51545596, -0.3817169, 0.76720099}}, {{0.42015243, 0.07814525, 0.90408255}, {0.99500944, -0.0913478, 0.04014718}, {0.3557814, -0.84358, 0.40223423}}, {{0.99500944, -0.0913478, 0.04014718}, {0.51883673, 0.83542038, 0.18133184}, {0.51545596, 0.3817169, -0.76720099}}, {{0.51545596, 0.3817169, -0.76720099}, {0.51883673, 0.83542038, 0.18133184}, {-0.3557814, 0.84358, -0.40223423}}, {{-0.3557814, 0.84358, -0.40223423}, {0.51883673, 0.83542038, 0.18133184}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.99500944, 0.0913478, -0.04014718}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.51883673, -0.83542038, -0.18133184}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.51545596, -0.3817169, 0.76720099}, {0.3557814, -0.84358, 0.40223423}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.51883673, -0.83542038, -0.18133184}, {0.3557814, -0.84358, 0.40223423}, {0.41468223, -0.65596241, -0.63067581}}, {{0.41468223, -0.65596241, -0.63067581}, {0.3557814, -0.84358, 0.40223423}, {0.99500944, -0.0913478, 0.04014718}}, {{0.51545596, 0.3817169, -0.76720099}, {0.41468223, -0.65596241, -0.63067581}, {0.99500944, -0.0913478, 0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.3557814, 0.84358, -0.40223423}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.99500944, 0.0913478, -0.04014718}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.51883673, -0.83542038, -0.18133184}, {0.41468223, -0.65596241, -0.63067581}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.41468223, -0.65596241, -0.63067581}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.38796691, 0.38271738, -0.65315839}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.51545596, 0.3817169, -0.76720099}, {-0.38796691, 0.38271738, -0.65315839}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.3557814, 0.84358, -0.40223423}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.41468223, 0.65596241, 0.63067581}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.58849102, 0.53029673, 0.0627648}, {-0.41468223, 0.65596241, 0.63067581}}}; +constexpr PJ_XYZ ico_20_centers[20] = {{0.6446662, 0.27407261, 0.37518719}, {0.17476898, 0.52317601, 0.57203007}, {-0.16999525, 0.11746359, 0.76731978}, {0.08682596, -0.38238388, 0.69117259}, {0.59031442, -0.28559418, 0.44882132}, {0.67643404, 0.37526316, -0.18190733}, {0.22617043, 0.68690576, -0.32936779}, {-0.08387563, 0.77832093, 0.13659114}, {-0.64171587, 0.12186443, 0.45257654}, {-0.67643404, -0.37526316, 0.18190733}, {-0.22617043, -0.68690576, 0.32936779}, {0.08387563, -0.77832093, -0.13659114}, {0.58849102, -0.53029673, -0.0627648}, {0.64171587, -0.12186443, -0.45257654}, {-0.59031442, 0.28559418, -0.44882132}, {-0.6446662, -0.27407261, -0.37518719}, {-0.17476898, -0.52317601, -0.57203007}, {0.16999525, -0.11746359, -0.76731978}, {-0.58849102, 0.53029673, 0.0627648}, {-0.08682596, 0.38238388, -0.69117259}}; +constexpr PJ_XYZ ico_2_centers[2] = {{-0.07609745, 0.53600476, -0.6075312}, {-0.09755446, 0.22876301, -0.77481398}}; +constexpr PJ_XYZ ico_3_centers[3] = {{-0.64642729, 0.48840818, -0.12653887}, {-0.45298488, 0.67661305, 0.09706879}, {-0.66606089, 0.42586898, 0.21776448}}; +constexpr PJ_XYZ ico_centers[23] = {{0.6446662, 0.27407261, 0.37518718999999995}, {0.1747689766666667, 0.5231760133333333, 0.5720300666666667}, {-0.16999525333333332, 0.11746358666666666, 0.7673197833333334}, {0.08682595666666666, -0.38238388333333334, 0.69117259}, {0.5903144233333334, -0.28559418333333336, 0.44882131999999997}, {0.6764340433333333, 0.37526316, -0.18190732333333334}, {0.22617043, 0.68690576, -0.3293677933333333}, {-0.08387563333333335, 0.77832093, 0.13659113999999997}, {-0.6417158766666667, 0.12186443666666665, 0.45257653999999997}, {-0.6764340433333333, -0.37526316, 0.18190732333333334}, {-0.22617043, -0.68690576, 0.3293677933333333}, {0.08387563333333335, -0.77832093, -0.13659113999999997}, {0.5884910233333334, -0.5302967366666668, -0.06276479999999997}, {0.6417158766666667, -0.12186443666666665, -0.45257653999999997}, {-0.5903144233333334, 0.28559418333333336, -0.44882131999999997}, {-0.6446662, -0.27407261, -0.37518718999999995}, {-0.1747689766666667, -0.5231760133333333, -0.5720300666666667}, {0.16999525333333332, -0.11746358666666668, -0.7673197833333334}, {-0.07609744999999997, 0.5360047600000001, -0.6075312033333334}, {-0.09755446, 0.22876301, -0.7748139766666666}, {-0.6464272866666667, 0.48840817666666664, -0.12653887}, {-0.45298488333333337, 0.6766130466666667, 0.0970687933333333}, {-0.6660608966666667, 0.42586898, 0.21776447666666665}}; +constexpr PJ_XYZ ico_normals[23] = {{0.8112534716456183, 0.3448953244235397, 0.4721387719026189}, {0.21993078167242514, 0.6583691769191125, 0.7198475381327677}, {-0.21392348218574597, 0.1478171768398566, 0.9656017947376752}, {0.10926252593733311, -0.48119515565604315, 0.8697775132750616}, {0.7428567271237952, -0.3593941714860216, 0.5648005953155497}, {0.8512303999921011, 0.4722343774266651, -0.22891373682183738}, {0.28461480749719364, 0.8644080979012073, -0.4144792535654255}, {-0.1055498134715015, 0.9794457311974099, 0.17188745304792394}, {-0.80754076069938, 0.15335524153301364, 0.5695261975567215}, {-0.8512303999921011, -0.4722343774266651, 0.22891373682183735}, {-0.28461480749719364, -0.8644080979012073, 0.4144792535654255}, {0.10554981347150154, -0.97944573119741, -0.17188745304792397}, {0.7405621455042509, -0.6673299596621295, -0.07898375518726185}, {0.80754076069938, -0.15335524153301364, -0.5695261975567215}, {-0.7428567271237952, 0.3593941714860216, -0.5648005953155497}, {-0.8112534716456183, -0.3448953244235397, -0.4721387719026189}, {-0.21993078167242514, -0.6583691769191125, -0.7198475381327677}, {0.21392348218574597, -0.1478171768398566, -0.9656017947376752}, {-0.1092625236946045, 0.48119515875463253, -0.8697775118425345}, {-0.10926252412771359, 0.4811951525529661, -0.8697775152191327}, {-0.7405621389792739, 0.6673299643797594, 0.07898377650727696}, {-0.7405621607654073, 0.6673299431834946, 0.07898375132383098}, {-0.7405621367680706, 0.6673299714231342, 0.07898373773067752}}; +constexpr double ico_dym_trans[23][2][4] = {{{3676785.549175448, -3835017.5266620647, -3516181.101897219, 13536571.968889877}, {597946.080039791, 4588467.120428165, -4379277.476119764, 23446030.430853583}}, {{6186178.005526091, -1393567.8850913076, -615475.9158875226, 9668979.99656166}, {597946.0790283178, 4588467.148836121, -4379277.446492919, 23446030.4022735}}, {{6193487.416382644, -412638.42193403625, 1435299.1565727487, 7735183.994711302}, {610606.2949588482, 6287486.763792622, -827230.771869741, 20096597.453907937}}, {{6320833.951539666, -6999.925417495968, -797903.6054442794, 9668979.964544488}, {390035.65785509185, 5584900.2162612835, 3040789.86561249, 16747164.583089648}}, {{1785817.7160921493, -3817376.067203325, -4777879.901545344, 15470367.97086971}, {3873198.4648612146, 4557911.12782605, -2193951.0189847522, 20096597.472239383}}, {{1653953.7567438218, -4829262.323420258, -3812125.829251187, 15470367.969285296}, {-2905701.3326818133, 2866384.6227320307, -4891868.725058803, 26795463.326497696}}, {{6107473.604777472, -1644266.325782215, 764719.3302896866, 9668979.973521523}, {-20484.65208776388, -2749071.5526177026, -5747332.168284684, 30144896.23069373}}, {{6325351.398413758, 599247.844237452, 469545.1345954169, 7735183.991104206}, {356890.77665911405, 1136808.9376555325, -6258588.903331836, 26795463.365920186}}, {{3707748.6155441254, 320266.3046413801, 5171041.531732354, 3867591.9864321505}, {610606.2818745336, 6287486.766371998, -827230.7619227654, 20096597.44051682}}, {{3343388.0482846545, -4896993.062013145, 2330419.6732539237, 3867591.9905542377}, {20484.69631605078, 2749071.5422549895, 5747332.173083752, 13397731.669298988}}, {{6107473.604777474, -1644266.3257822143, 764719.330289686, 7735183.984065069}, {20484.65208776346, 2749071.552617706, 5747332.168284684, 13397731.654138729}}, {{6325351.398413757, 599247.8442374519, 469545.1345954159, 9668979.966482382}, {-356890.77665911167, -1136808.9376555379, 6258588.903331836, 10048298.789365184}}, {{4266333.348411551, 4606685.482609389, 1080041.5914374113, 13536571.961679665}, {-356890.81480763154, -1136808.9649443403, 6258588.896199714, 10048298.78278621}}, {{3707748.6155441264, 320266.30464138015, 5171041.531732352, 13536571.97115444}, {-610606.2818745337, -6287486.766372, 827230.7619227694, 3349432.8639618154}}, {{2461379.4064226267, 5855954.858490806, 488922.63367311924, 1933796.0165698116}, {3483162.7410947136, -1026989.0860837825, -5234740.880461738, 30144896.24019003}}, {{1320556.279179943, -5891237.854051452, 2034474.9935921053, 1933796.0148528814}, {-3483162.72987335, 1026989.0418338334, 5234740.896609632, 10048298.759397767}}, {{6186178.005526091, -1393567.885091309, -615475.9158875229, 7735183.961024929}, {-597946.0790283154, -4588467.148836119, 4379277.446492919, 6698865.825718503}}, {{6193487.416382645, -412638.4219340361, 1435299.156572748, 9668979.962875288}, {-610606.2949588535, -6287486.763792623, 827230.7718697439, 3349432.877352944}}, {{3498197.81693495, 4833165.559061878, 2234449.5231911456, 3867591.983769496}, {5278984.96116607, -2798512.200701845, -2211399.7153384583, 33494329.158408284}}, {{6320833.983680945, -6999.984355479206, -797903.6271294819, 7735183.9823354}, {-390035.68446349393, -5584900.177255948, -3040789.814780467, 0.044359486997177525}}, {{4266333.41772867, 4606685.445409489, 1080041.6365273518, 3867592.0700864717}, {356890.72771489987, 1136809.053212709, -6258588.866576485, 26795463.265809294}}, {{4266333.204506115, 4606685.540218764, 1080041.5936954806, 3867591.897018196}, {356890.8007120557, 1136808.9497242568, -6258588.899768077, 26795463.365730304}}, {{1824090.1118675405, 1318837.3514699321, 5960117.7705610385, 1933795.9110601672}, {3873198.583330483, 4557911.083457602, -2193951.0468033054, 23446030.547617782}}}; +constexpr pj_face dymaxion_faces[23] = {{{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {17404163.95758659, 23446030.407177, 1.0}, {17404163.95758659, 16747164.576555002, 1.0}}, {{17404163.95758659, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 30144896.237799004, 1.0}}, {{11602775.971724393, 33494329.153110005, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {0.0, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {0.0, 13397731.661244001, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {17404163.95758659, 10048298.745933, 1.0}}, {{11602775.971724393, 0.0, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {17404163.95758659, 3349432.9153110003, 1.0}}, {{0.0, 33494329.153110005, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {0.0, 26795463.322488002, 1.0}}, {{0.0, 6698865.830622001, 1.0}, {0.0, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 0.0, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {2900693.992931098, 31819612.695454504, 1.0}, {5801387.985862196, 36843762.068421006, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 0.0, 1.0}, {5801387.985862196, 0.0, 1.0}}, {{0.0, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{0.0, 20096597.491866, 1.0}, {1933795.9952873988, 23446030.407177, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}}; +constexpr PJ_XY dymaxion_22_centers[22] = {{13536571.967011793, 23446030.407177}, {9668979.976436995, 23446030.407177}, {7735183.981149595, 20096597.491866004}, {9668979.976436993, 16747164.576555}, {15470367.962299192, 20096597.491866004}, {15470367.962299192, 26795463.322488}, {9668979.976436993, 30144896.237799004}, {7735183.981149595, 26795463.322488}, {3867591.9905747976, 20096597.491866004}, {3867591.9905747976, 13397731.661244}, {7735183.981149595, 13397731.661244}, {9668979.976436995, 10048298.745933002}, {13536571.967011793, 10048298.745933}, {13536571.967011793, 3349432.915311}, {1933795.9952873988, 30144896.237799004}, {1933795.9952873988, 10048298.745933}, {7735183.981149595, 6698865.830622}, {9668979.976436995, 3349432.915311}, {3867591.9905747976, 26795463.322488}, {3867591.9905747976, 33494329.15311}, {7735183.981149595, 0.0}, {1933795.9952873988, 23446030.407177}}; +constexpr PJ_XY dymaxion_2_centers[2] = {{3867591.9905747976, 26795463.322488}, {3867591.9905747976, 33494329.15311}}; +constexpr PJ_XY dymaxion_centers[23] = {{13536571.967011793, 23446030.407177}, {9668979.976436995, 23446030.407177}, {7735183.981149595, 20096597.491866004}, {9668979.976436993, 16747164.576555}, {15470367.962299192, 20096597.491866004}, {15470367.962299192, 26795463.322488}, {9668979.976436993, 30144896.237799004}, {7735183.981149595, 26795463.322488}, {3867591.9905747976, 20096597.491866004}, {3867591.9905747976, 13397731.661244}, {7735183.981149595, 13397731.661244}, {9668979.976436995, 10048298.745933002}, {13536571.967011793, 10048298.745933}, {13536571.967011793, 3349432.915311}, {1933795.9952873988, 30144896.237799004}, {1933795.9952873988, 10048298.745933}, {7735183.981149595, 6698865.830622}, {9668979.976436995, 3349432.915311}, {4834489.9882184975, 32936090.333891507}, {7735183.981149595, 1116477.638437}, {3222993.3254789985, 27911940.960925}, {5156789.320766397, 26795463.322488}, {2578394.6603831984, 22329552.768740002}}; +constexpr double dym_ico_trans[23][3][3] = {{{9.058433279771384e-08, 1.4731493732699052e-08, -0.9269301899999991}, {-9.44826679987233e-08, 1.1304527499839262e-07, -1.0974189099999994}, {-8.662754779110161e-08, -1.0789150406568015e-07, 4.077454709999999}}, {{1.5240780519329358e-07, 1.473149373269901e-08, -1.6442540899999978}, {-3.4333093302050216e-08, 1.1304527499839258e-07, -1.7953209499999985}, {-1.51633738709386e-08, -1.0789150406568015e-07, 3.248271909999998}}, {{1.525878853745444e-07, 1.504340175606161e-08, -1.6526118100000007}, {-1.0166102516109274e-08, 1.5490373090569122e-07, -2.9169376700000003}, {3.536121881520939e-08, -2.0380342501548998e-08, 0.9033697899999995}}, {{1.557252983599121e-07, 9.609243061078464e-09, -1.5798064100000002}, {-1.7245441994882394e-10, 1.375942246501773e-07, -2.6850295500000003}, {-1.96578129712955e-08, 7.491541593592458e-08, -0.37337721000000035}}, {{4.399688326690425e-08, 9.54233233151121e-08, -2.0080176699999996}, {-9.404803666461074e-08, 1.122924714451482e-07, -1.0873330499999996}, {-1.1771180391040664e-07, -5.405199315156007e-08, 3.3561273899999997}}, {{4.074817450170371e-08, -7.158726449003567e-08, 1.9642587099999982}, {-1.1897770528054373e-07, 7.061862589298568e-08, 0.3236332400000001}, {-9.391868744648748e-08, -1.2052012839388902e-07, 4.500442009999996}}, {{1.5046877525297362e-07, -5.046779687011883e-10, -1.2134956799999999}, {-4.0509505754953036e-08, -6.772840231043597e-08, 3.120257019999999}, {1.8840259480379495e-08, -1.4159603341569342e-07, 3.7568638499999985}}, {{1.55836594139745e-07, 8.792657069014762e-09, -1.52490368}, {1.4763566099823772e-08, 2.800736643244269e-08, -0.08634832999999958}, {1.1568102351290336e-08, -1.5419177904390005e-07, 4.178749899999998}}, {{9.134716490113195e-08, 1.504340175606163e-08, -1.2973306300000003}, {7.890345398644546e-09, 1.5490373090569127e-07, -3.021690130000001}, {1.2739806091251417e-07, -2.0380342501549028e-08, 0.3694283599999999}}, {{8.237047688665845e-08, 5.04677968701152e-10, -1.0017709799999996}, {-1.2064637664394705e-07, 6.772840231043599e-08, -0.8160591599999997}, {5.741414913322641e-08, 1.4159603341569342e-07, -1.937212839999999}}, {{1.504687752529736e-07, 5.046779687011514e-10, -1.3968356299999996}, {-4.0509505754953036e-08, 6.772840231043597e-08, -1.2809642399999992}, {1.8840259480379524e-08, 1.415960334156934e-07, -1.713430739999999}}, {{1.55836594139745e-07, -8.792657069014724e-09, -1.3345540299999996}, {1.4763566099823759e-08, -2.8007366432442684e-08, -0.6396431699999997}, {1.1568102351290311e-08, 1.5419177904390013e-07, -1.7978079499999997}}, {{1.0510891988020954e-07, -8.792657069014762e-09, -0.7459721899999996}, {1.1349411668458604e-07, -2.8007366432442694e-08, -1.7851916299999993}, {2.6608799545245027e-08, 1.541917790439001e-07, -1.9723217899999996}}, {{9.134716490113195e-08, -1.5043401756061595e-08, -0.5444247299999998}, {7.890345398644617e-09, -1.5490373090569122e-07, 0.29016699000000007}, {1.2739806091251412e-07, 2.038034250154901e-08, -2.2453721499999992}}, {{6.064058047097081e-08, 8.58140802540336e-08, -3.294437479999999}, {1.4427215125754238e-07, -2.530175320502907e-08, 0.7693199999999997}, {1.2045502760769865e-08, -1.2896740908748457e-07, 3.4155942999999986}}, {{3.2534318590648264e-08, -8.581408025403363e-08, 0.15470457999999998}, {-1.4514141392576755e-07, 2.530175320502908e-08, -0.2476383}, {5.01230094778404e-08, 1.289674090874846e-07, -1.7680179200000001}}, {{1.524078051932937e-07, -1.4731493732699067e-08, -1.25498709}, {-3.433309330205022e-08, -1.1304527499839266e-07, 0.49967191}, {-1.5163373870938614e-08, 1.0789150406568026e-07, -1.17748929}}, {{1.5258788537454444e-07, -1.50434017560616e-08, -1.25498709}, {-1.016610251610931e-08, -1.5490373090569122e-07, 0.49967191}, {3.536121881520941e-08, 2.0380342501549018e-08, -1.17748929}}, {{8.618449605826386e-08, 1.3005744286105568e-07, -4.776339219999996}, {1.1907386502737676e-07, -6.894646223375916e-08, 2.2311702599999985}, {5.5049746849940485e-08, -5.4481873383947436e-08, 0.9207512499999986}}, {{1.5572529749804938e-07, -9.609244553868475e-09, -1.29138978}, {-1.7245528181154292e-10, -1.3759422614296728e-07, 0.38371785999999997}, {-1.9657812971295542e-08, -7.491541593592457e-08, -0.53911579}}, {{1.0510892074207234e-07, 8.792655576224747e-09, -1.2306127199999985}, {1.1349411496086066e-07, 2.8007369418022736e-08, -0.6591226399999993}, {2.6608799545244997e-08, -1.5419177904390008e-07, 4.091492979999998}}, {{1.0510891815648413e-07, 8.79265706901476e-09, -1.2306127500000001}, {1.1349412013203696e-07, 2.8007366432442717e-08, -0.6591225800000001}, {2.6608799545245066e-08, -1.5419177904390005e-07, 4.091492979999997}}, {{4.4939794689710465e-08, 9.54233248079021e-08, -2.9126935899999995}, {3.249196924242356e-08, 1.1229246845956814e-07, -2.1653487399999993}, {1.4683839747935709e-07, -5.405199315156002e-08, 1.0461139699999995}}}; inline double det(const PJ_XYZ *u, const PJ_XYZ *v, const PJ_XYZ *w) { @@ -632,20 +47,70 @@ inline double det(const PJ_XYZ *u, const PJ_XYZ *v, const PJ_XYZ *w) { inline bool is_point_in_face(const PJ_XYZ *p, const pj_face * face) { return ( - det(p, &face->p2, &face->p3) < 0 && - det(&face->p1, p, &face->p3) < 0 && - det(&face->p1, &face->p2, p) < 0 + det(p, &face->p2, &face->p3) <= 0 && + det(&face->p1, p, &face->p3) <= 0 && + det(&face->p1, &face->p2, p) <= 0 ); } +// inline double compute_xyz_dist_sq(const PJ_XYZ * p, const PJ_XYZ * q) { +// double dx = (p->x - q->x); +// double dy = (p->y - q->y); +// double dz = (p->z - q->z); +// return dx * dx + dy * dy + dz * dz; +// } + +// inline double compute_xy_dist_sq(const PJ_XY * p, const PJ_XY * q) { +// double dx = (p->x - q->x); +// double dy = (p->y - q->y); +// return dx * dx + dy * dy; +// } + inline unsigned char get_ico_face_index(const PJ_XYZ *p) { for (unsigned char i=0; i < 23; i++) { if (is_point_in_face(p, &ico_faces[i])) { return i; } } - + // return 0; + + // USING CENTERS + // unsigned char id = 0; + // double min_dist = compute_xyz_dist_sq(p, &ico_20_centers[0]); + // for (unsigned char i=0; i < 20; i++) { + // double dist = compute_xyz_dist_sq(p, &ico_20_centers[i]); + // if (dist < min_dist) { + // min_dist = dist; + // id = i; + // } + // } + // if (id < 18) { + // return id; + // } else if (id == 19) { // Antartica split case + // if ( + // compute_xyz_dist_sq(p, &ico_2_centers[0]) < compute_xyz_dist_sq(p, &ico_2_centers[1]) + // ) { + // return 18; + // } else { + // return 19; + // } + // } else if (id == 18) { // Japan split case + // double d1 = compute_xyz_dist_sq(p, &ico_3_centers[0]); + // double d2 = compute_xyz_dist_sq(p, &ico_3_centers[1]); + // double d3 = compute_xyz_dist_sq(p, &ico_3_centers[2]); + // if (d1 < d2 && d1 < d3) { + // return 20; + // } else if (d2 < d1 && d2 < d3) { + // return 21; + // } else { + // return 22; + // } + // } + // USING CENTERS OVER + + + // Shall not be reached return 23; } @@ -656,7 +121,34 @@ inline unsigned char get_dym_face_index(const PJ_XY *p) { return i; } } - + // unsigned char id = 0; + // double min_dist = compute_xy_dist_sq(p, &dymaxion_22_centers[0]); + // for (unsigned char i=0; i < 20; i++) { + // double dist = compute_xy_dist_sq(p, &dymaxion_22_centers[i]); + // if (dist < min_dist) { + // min_dist = dist; + // id = i; + // } + // } + // if (id < 18) { + // return id; + // } else if (id == 18) { // Japan ocean split case + // if ( + // compute_xy_dist_sq(p, &dymaxion_2_centers[0]) < compute_xy_dist_sq(p, &dymaxion_2_centers[1]) + // ) { + // return 20; + // } else { + // return 21; + // } + // } else if (id == 19) { // 19 from Face 15 -> ocean (18) + // return 18; + // } else if (id == 20) { // 20 from Face 15 NEW -> antartica (19) + // return 19; + // } else if (id == 21) { // 21 from Face 8 NEW -> japan (22) + // return 22; + // } + + // // Shall not be reached return 23; } @@ -715,12 +207,17 @@ inline PJ_XYZ cartesian_to_ico(const PJ_XYZ *p, unsigned char face_id) { // // ============================================ static PJ_XY dymaxion_forward(PJ_LP lp, PJ *P) { + // struct pj_s2 *Q = static_cast(P->opaque); double lat; + // printf("PROJ IN (phi, lam): %lf, %lf\n", lp.phi, lp.lam); + + /* Convert the geodetic latitude to a geocentric latitude. * This corresponds to the shift from the ellipsoid to the sphere * described in [LK12]. */ if (P->es != 0.0) { + // double a_squared = P->a * P->a; double one_minus_f = 1.0 - (P->a - P->b) / P->a; double one_minus_f_squared = one_minus_f * one_minus_f; lat = atan(one_minus_f_squared * tan(lp.phi)); @@ -757,22 +254,33 @@ static PJ_XY dymaxion_forward(PJ_LP lp, PJ *P) { // printf("PROJ OUT: %lf, %lf\n", dymaxionPoint.x, dymaxionPoint.y); - return dymaxionPoint; } +// echo 72.35787652 69.22776711 | bin/proj +proj=dymaxion +// echo 8877734.55 21320168.80 | bin/invproj -f "%.3f" +proj=dymaxion + +// echo 224.71153553 109.61616828 | bin/proj +proj=dymaxion +// echo | bin/invproj -f "%.3f" +proj=dymaxion + +// echo | bin/proj +proj=dymaxion +// echo | bin/invproj -f "%.3f" +proj=dymaxion + static PJ_LP dymaxion_inverse(PJ_XY xy, PJ *P) { + // printf("REVERSE NOT IMPPLEMENTED !!"); PJ_LP lp = {0.0, 0.0}; // printf("INVPROJ IN: %lf, %lf\n", xy.x, xy.y); unsigned char face_id = get_dym_face_index(&xy); - // printf("FACE ID: %d\n", face_id); + // printf("(inv) FACE ID: %d\n", face_id); if (face_id == 23) { + // printf("INVPROJ BAD: %lf, %lf\n", xy.x, xy.y); + lp.lam = HUGE_VAL; lp.phi = HUGE_VAL; return lp; @@ -792,6 +300,7 @@ static PJ_LP dymaxion_inverse(PJ_XY xy, PJ *P) { // printf("CARTESIAN: %lf, %lf, %lf\n", q, r, s); + // printf("p: %lf\n", s); // Get the spherical angles from the x y z lp.phi = acos(-s) - M_HALFPI; lp.lam = atan2(r, q); @@ -817,6 +326,7 @@ static PJ_LP dymaxion_inverse(PJ_XY xy, PJ *P) { // printf("INVPROJ OUT (phi, lam): %lf, %lf\n", lp.phi, lp.lam); + return lp; } From dc922de0e862cfa815168250044930d446efd5bd Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Wed, 30 Oct 2024 23:30:48 +0100 Subject: [PATCH 04/37] - Remove dead code and comments --- src/projections/dymaxion.cpp | 130 ++--------------------------------- 1 file changed, 6 insertions(+), 124 deletions(-) diff --git a/src/projections/dymaxion.cpp b/src/projections/dymaxion.cpp index ec0db6ab05..ecaf09f2d3 100644 --- a/src/projections/dymaxion.cpp +++ b/src/projections/dymaxion.cpp @@ -54,63 +54,13 @@ inline bool is_point_in_face(const PJ_XYZ *p, const pj_face * face) { } -// inline double compute_xyz_dist_sq(const PJ_XYZ * p, const PJ_XYZ * q) { -// double dx = (p->x - q->x); -// double dy = (p->y - q->y); -// double dz = (p->z - q->z); -// return dx * dx + dy * dy + dz * dz; -// } - -// inline double compute_xy_dist_sq(const PJ_XY * p, const PJ_XY * q) { -// double dx = (p->x - q->x); -// double dy = (p->y - q->y); -// return dx * dx + dy * dy; -// } - inline unsigned char get_ico_face_index(const PJ_XYZ *p) { for (unsigned char i=0; i < 23; i++) { if (is_point_in_face(p, &ico_faces[i])) { return i; } } - // return 0; - - // USING CENTERS - // unsigned char id = 0; - // double min_dist = compute_xyz_dist_sq(p, &ico_20_centers[0]); - // for (unsigned char i=0; i < 20; i++) { - // double dist = compute_xyz_dist_sq(p, &ico_20_centers[i]); - // if (dist < min_dist) { - // min_dist = dist; - // id = i; - // } - // } - // if (id < 18) { - // return id; - // } else if (id == 19) { // Antartica split case - // if ( - // compute_xyz_dist_sq(p, &ico_2_centers[0]) < compute_xyz_dist_sq(p, &ico_2_centers[1]) - // ) { - // return 18; - // } else { - // return 19; - // } - // } else if (id == 18) { // Japan split case - // double d1 = compute_xyz_dist_sq(p, &ico_3_centers[0]); - // double d2 = compute_xyz_dist_sq(p, &ico_3_centers[1]); - // double d3 = compute_xyz_dist_sq(p, &ico_3_centers[2]); - // if (d1 < d2 && d1 < d3) { - // return 20; - // } else if (d2 < d1 && d2 < d3) { - // return 21; - // } else { - // return 22; - // } - // } - // USING CENTERS OVER - - - // Shall not be reached + return 23; } @@ -121,34 +71,7 @@ inline unsigned char get_dym_face_index(const PJ_XY *p) { return i; } } - // unsigned char id = 0; - // double min_dist = compute_xy_dist_sq(p, &dymaxion_22_centers[0]); - // for (unsigned char i=0; i < 20; i++) { - // double dist = compute_xy_dist_sq(p, &dymaxion_22_centers[i]); - // if (dist < min_dist) { - // min_dist = dist; - // id = i; - // } - // } - // if (id < 18) { - // return id; - // } else if (id == 18) { // Japan ocean split case - // if ( - // compute_xy_dist_sq(p, &dymaxion_2_centers[0]) < compute_xy_dist_sq(p, &dymaxion_2_centers[1]) - // ) { - // return 20; - // } else { - // return 21; - // } - // } else if (id == 19) { // 19 from Face 15 -> ocean (18) - // return 18; - // } else if (id == 20) { // 20 from Face 15 NEW -> antartica (19) - // return 19; - // } else if (id == 21) { // 21 from Face 8 NEW -> japan (22) - // return 22; - // } - - // // Shall not be reached + return 23; } @@ -207,17 +130,12 @@ inline PJ_XYZ cartesian_to_ico(const PJ_XYZ *p, unsigned char face_id) { // // ============================================ static PJ_XY dymaxion_forward(PJ_LP lp, PJ *P) { - // struct pj_s2 *Q = static_cast(P->opaque); double lat; - // printf("PROJ IN (phi, lam): %lf, %lf\n", lp.phi, lp.lam); - - /* Convert the geodetic latitude to a geocentric latitude. * This corresponds to the shift from the ellipsoid to the sphere * described in [LK12]. */ if (P->es != 0.0) { - // double a_squared = P->a * P->a; double one_minus_f = 1.0 - (P->a - P->b) / P->a; double one_minus_f_squared = one_minus_f * one_minus_f; lat = atan(one_minus_f_squared * tan(lp.phi)); @@ -240,74 +158,41 @@ static PJ_XY dymaxion_forward(PJ_LP lp, PJ *P) { PJ_XYZ cartesianPoint{x, y, z}; - // printf("CARTESIAN: %lf, %lf, %lf\n", x, y, z); - unsigned char face_id = get_ico_face_index(&cartesianPoint); - // printf("FACE ID: %d\n", face_id); PJ_XYZ icoPoint = cartesian_to_ico(&cartesianPoint, face_id); - // printf("ICO: %lf, %lf, %lf\n", icoPoint.x, icoPoint.y, icoPoint.z); - - PJ_XY dymaxionPoint = ico_to_dym(&icoPoint, face_id); - // printf("PROJ OUT: %lf, %lf\n", dymaxionPoint.x, dymaxionPoint.y); - return dymaxionPoint; } -// echo 72.35787652 69.22776711 | bin/proj +proj=dymaxion -// echo 8877734.55 21320168.80 | bin/invproj -f "%.3f" +proj=dymaxion - -// echo 224.71153553 109.61616828 | bin/proj +proj=dymaxion -// echo | bin/invproj -f "%.3f" +proj=dymaxion - -// echo | bin/proj +proj=dymaxion -// echo | bin/invproj -f "%.3f" +proj=dymaxion - static PJ_LP dymaxion_inverse(PJ_XY xy, PJ *P) { - // printf("REVERSE NOT IMPPLEMENTED !!"); PJ_LP lp = {0.0, 0.0}; - // printf("INVPROJ IN: %lf, %lf\n", xy.x, xy.y); - - unsigned char face_id = get_dym_face_index(&xy); - // printf("(inv) FACE ID: %d\n", face_id); if (face_id == 23) { - // printf("INVPROJ BAD: %lf, %lf\n", xy.x, xy.y); - - lp.lam = HUGE_VAL; - lp.phi = HUGE_VAL; - return lp; + // Point lies outside icosahedron net faces + lp.lam = HUGE_VAL; + lp.phi = HUGE_VAL; + return lp; } PJ_XYZ sphereCoords = dym_to_ico(&xy, face_id); - // printf("ICO: %lf, %lf, %lf\n", sphereCoords.x, sphereCoords.y, sphereCoords.z); - // unsigned char other_face_id = get_ico_face_index(&sphereCoords); - // printf("OTHER FACE ID: %d\n", other_face_id); - double norm = sqrtl((sphereCoords.x * sphereCoords.x) + (sphereCoords.y * sphereCoords.y) + (sphereCoords.z * sphereCoords.z)); double q = sphereCoords.x / norm; double r = sphereCoords.y / norm; double s = sphereCoords.z / norm; - // printf("CARTESIAN: %lf, %lf, %lf\n", q, r, s); - - // printf("p: %lf\n", s); // Get the spherical angles from the x y z lp.phi = acos(-s) - M_HALFPI; lp.lam = atan2(r, q); - // printf("SPHERE: %lf, %lf\n", lp.phi, lp.lam); - - /* Apply the shift from the sphere to the ellipsoid as described * in [LK12]. */ if (P->es != 0.0) { @@ -324,9 +209,6 @@ static PJ_LP dymaxion_inverse(PJ_XY xy, PJ *P) { } } - // printf("INVPROJ OUT (phi, lam): %lf, %lf\n", lp.phi, lp.lam); - - return lp; } From 44ef3a9fa2dc3b4feafc875f6fc1d9572ae72707 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Wed, 30 Oct 2024 23:31:33 +0100 Subject: [PATCH 05/37] - Add dymaxion projection entry to he documentation --- docs/plot/plotdefs.json | 12 ++++ .../operations/projections/dymaxion.rst | 52 ++++++++++++++++++ .../projections/images/dymaxion.png | Bin 0 -> 355027 bytes docs/source/operations/projections/index.rst | 1 + docs/source/references.bib | 12 ++++ 5 files changed, 77 insertions(+) create mode 100644 docs/source/operations/projections/dymaxion.rst create mode 100644 docs/source/operations/projections/images/dymaxion.png diff --git a/docs/plot/plotdefs.json b/docs/plot/plotdefs.json index 6471d04c74..7cb5cce4c7 100644 --- a/docs/plot/plotdefs.json +++ b/docs/plot/plotdefs.json @@ -269,6 +269,18 @@ "res": "low", "type": "poly" }, + { + "filename": "dymaxion.png", + "latmax": 90, + "latmin": -90, + "lonmax": 180, + "lonmin": -180, + "name": "dymaxion", + "projstring": "+proj=dymaxion", + "res": "low", + "type": "line", + "delta_cut": 1e6 + }, { "filename": "eck1.png", "latmax": 90, diff --git a/docs/source/operations/projections/dymaxion.rst b/docs/source/operations/projections/dymaxion.rst new file mode 100644 index 0000000000..bfec3e0d30 --- /dev/null +++ b/docs/source/operations/projections/dymaxion.rst @@ -0,0 +1,52 @@ +.. _dymaxion: + +******************************************************************************** +Dymaxion Fuller +******************************************************************************** + +The Dymaxion Fuller map projection is a icosahedron polyhedral projection that intends +to lay out most of continental landmasses unto a flat surface with as few land cuts +as possible while minimizing scale and angular distorsion. +In comparison to the Snyder's Icosahedral Equal Area, this projection relies on a specific way +to orient and cut the icosahedron so that most interruptions lie in the ocean. The projection +was first invented by Buckminster Fuller in 1943 using a cubostahedron as basis. +The idea to use an icosahedron came later in 1954, and it wasn't until 1978 that the projection +was formally mathematically defined :cite:`Gray1995`. + ++---------------------+----------------------------------------------------------+ +| **Classification** | Polyhedral, equal area | ++---------------------+----------------------------------------------------------+ +| **Available forms** | Forward and inverse, spherical | ++---------------------+----------------------------------------------------------+ +| **Defined area** | Global | ++---------------------+----------------------------------------------------------+ +| **Alias** | dymaxion | ++---------------------+----------------------------------------------------------+ +| **Domain** | 2D | ++---------------------+----------------------------------------------------------+ +| **Input type** | Geodetic coordinates | ++---------------------+----------------------------------------------------------+ +| **Output type** | Projected coordinates | ++---------------------+----------------------------------------------------------+ + + +.. figure:: ./images/dymaxion.png + :width: 500 px + :align: center + :alt: Dymaxion Fuller + + proj-string: ``+proj=dymaxion`` + + +Parameters +################################################################################ + +.. note:: All parameters are optional for the projection. + +.. include:: ../options/lon_0.rst + +.. include:: ../options/R.rst + +.. include:: ../options/x_0.rst + +.. include:: ../options/y_0.rst diff --git a/docs/source/operations/projections/images/dymaxion.png b/docs/source/operations/projections/images/dymaxion.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ecb07ecac356d27513a336b01eb8ac7e85bc3a GIT binary patch literal 355027 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%0Aig-y|sQ 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

Hav&uylf26N(!8QMB7LL3@nh|} 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 I)7|#}FF>om7XSbN literal 0 HcmV?d00001 diff --git a/docs/source/operations/projections/index.rst b/docs/source/operations/projections/index.rst index 8b89244e2d..0b249bdd27 100644 --- a/docs/source/operations/projections/index.rst +++ b/docs/source/operations/projections/index.rst @@ -38,6 +38,7 @@ Projections map the spherical 3D space to a flat 2D space. comill crast denoy + dymaxion eck1 eck2 eck3 diff --git a/docs/source/references.bib b/docs/source/references.bib index d8d5f303de..f9670052c2 100644 --- a/docs/source/references.bib +++ b/docs/source/references.bib @@ -73,6 +73,18 @@ @TechReport{Deakin2004 Url = {http://www.mygeodesy.id.au/documents/Molodensky%20V2.pdf} } +@Article{Gray1995, + Title = {Exact Transformation Equations for Fuller's World Map}, + Author = {Robert W. Gray}, + Journal = {Cartographica}, + Year = {1995}, + Number = {3}, + Pages = {17--25}, + Volume = {32}, + + Doi = {10.3138/1677-3273-Q862-1885} +} + @Article{EberHewitt1979, Title = {Conversion algorithms for the {CalCOFI} station grid}, Author = {L. E. Eber and Roger P. Hewitt}, From 2c3beb861dc70464aa9a3ad61eaed960c73d2e3f Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Wed, 30 Oct 2024 23:31:48 +0100 Subject: [PATCH 06/37] - Add test to the dymaxion projection --- test/gie/builtins.gie | 106 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie index d74379d2d6..8471434f66 100644 --- a/test/gie/builtins.gie +++ b/test/gie/builtins.gie @@ -1162,6 +1162,112 @@ accept -2 -1 expect -223377.422876954 -111701.072127637 +=============================================================================== +# Dymaxion +# Sph., Ellps. +# (Each of the 23 faces tested separately around their center, inverse included) +=============================================================================== + +------------------------------------------------------------------------------- +operation +proj=dymaxion +ellps=GRS80 +------------------------------------------------------------------------------- +tolerance 0.1 mm +accept 23 28 +expect 13556926.823490718 23467359.674033195 +accept 72 46 +expect 9643052.686797861 23470487.369125906 +accept 145 75 +expect 7737390.782312192 20104788.054769896 +accept -77 61 +expect 9668545.797051517 16783947.67041814 +accept -26 35 +expect 15441270.037205558 20068684.009483118 +accept 29 -13 +expect 15454500.775444025 26772291.248060163 +accept 72 -25 +expect 9646854.070149897 30174627.37899145 +accept 96 10 +expect 7748510.227719365 26793197.86531571 +accept 169 35 +expect 3879364.926075886 20112884.602338977 +accept -151 13 +expect 3855457.9788894877 13372404.237126907 +accept -108 25 +expect 7757309.887436695 13427462.802436445 +accept -84 -10 +expect 9655653.729867224 10046033.288760712 +accept -42 -5 +expect 13531956.757129436 10009950.782333512 +accept -11 -35 +expect 13524799.031510707 3365720.025783973 +accept 154 -35 +expect 1943420.8175922546 30184052.521318957 +accept -157 -28 +expect 1942090.2539895012 10076591.20216224 +accept -108 -46 +expect 7761111.270788729 6723322.792570909 +accept -35 -75 +expect 9666773.175274398 3357623.4782149 +accept 98 -48 +expect 4871988.820643149 32910398.56714167 +accept 113 -72 +expect 7725850.483813245 1088496.8256700835 +accept 143 -9 +expect 3215425.0474725077 27916795.439275663 +accept 124 7 +expect 5140625.112062726 26778848.513305675 +accept 147 15 +expect 2546085.5873131985 22379298.380909223 + +direction inverse +accept 13500000 23400000 +expect 23.028334260781396 29.00141845366607 +accept 9700000 23400000 +expect 70.91748976033631 46.69938767448572 +accept 7700000 20100000 +expect 145.97790022956485 74.66181692499651 +accept 9700000 16700000 +expect -76.80102747900565 59.99374652248361 +accept 15500000 20100000 +expect -25.944389921688217 34.24636404674132 +accept 15500000 26800000 +expect 28.780505935021033 -13.567140588707066 +accept 9700000 30100000 +expect 71.4679674085186 -24.079311453738754 +accept 7700000 26800000 +expect 96.5497950965985 9.88121445991218 +accept 3900000 20100000 +expect 169.13009208849755 35.254403049754224 +accept 3900000 13400000 +expect -150.64046965868116 13.481494624013168 +accept 7700000 13400000 +expect -108.66196431422468 24.604190039126202 +accept 9700000 10000000 +expect -83.45176986114532 -10.484774451578211 +accept 13500000 10000000 +expect -42.33857403889376 -5.173528026525927 +accept 13500000 3300000 +expect -10.156579309260813 -35.39429168339308 +accept 1900000 30100000 +expect 154.6981118584859 -34.09548216619245 +accept 1900000 10000000 +expect -157.1486568493204 -28.983938091775162 +accept 7700000 6700000 +expect -109.0368655953666 -46.16466623109972 +accept 9700000 3300000 +expect -32.11127170743792 -74.98612150074251 +accept 4800000 32900000 +expect 98.90848938837188 -48.50784207235999 +accept 7700000 1100000 +expect 114.00231130949376 -71.99425265168686 +accept 3200000 27900000 +expect 143.20066829467564 -8.847739058325072 +accept 5200000 26800000 +expect 123.33794956763194 6.861286881197438 +accept 2600000 22300000 +expect 147.63769509437498 15.818879769693432 + + =============================================================================== # Eckert I # PCyl., Sph. From f7ab8097ba452f118a7d964c2f6ca538c7955251 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Fri, 1 Nov 2024 11:41:21 +0100 Subject: [PATCH 07/37] - Improve wording on dymaxion doc page. Add a note on dymaxion extent and orientation. --- docs/source/operations/projections/dymaxion.rst | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/docs/source/operations/projections/dymaxion.rst b/docs/source/operations/projections/dymaxion.rst index bfec3e0d30..32646eb82f 100644 --- a/docs/source/operations/projections/dymaxion.rst +++ b/docs/source/operations/projections/dymaxion.rst @@ -5,10 +5,10 @@ Dymaxion Fuller ******************************************************************************** The Dymaxion Fuller map projection is a icosahedron polyhedral projection that intends -to lay out most of continental landmasses unto a flat surface with as few land cuts -as possible while minimizing scale and angular distorsion. +to lay down continental landmasses into a contiguous map with minimal scale and angular +distorsion while having as few land interruptions as possible. In comparison to the Snyder's Icosahedral Equal Area, this projection relies on a specific way -to orient and cut the icosahedron so that most interruptions lie in the ocean. The projection +to orient and cut the icosahedron so that most interruptions lie within the ocean. The projection was first invented by Buckminster Fuller in 1943 using a cubostahedron as basis. The idea to use an icosahedron came later in 1954, and it wasn't until 1978 that the projection was formally mathematically defined :cite:`Gray1995`. @@ -37,6 +37,11 @@ was formally mathematically defined :cite:`Gray1995`. proj-string: ``+proj=dymaxion`` +.. note:: + The output dymaxion map applied to the whole globe has an extent of roughly + :math:`[0, 0, 17404000, 36844000]` in meters. Although the dymaxion map has no + true up or down, the choice was made to lay it out vertically, from Antartica to Australia. + Parameters ################################################################################ From 61a5cdfedf20ac60d3a8e8f2a3a4cfb90e7beb46 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Fri, 1 Nov 2024 13:51:43 +0100 Subject: [PATCH 08/37] - Drop the name dymaxion in favor of airocean. Adjust the doc accordingly. --- docs/plot/plotdefs.json | 6 ++-- .../{dymaxion.rst => airocean.rst} | 20 +++++++------- .../images/{dymaxion.png => airocean.png} | Bin docs/source/operations/projections/index.rst | 2 +- src/lib_proj.cmake | 2 +- src/pj_list.h | 2 +- .../{dymaxion.cpp => airocean.cpp} | 26 +++++++++--------- test/gie/builtins.gie | 4 +-- 8 files changed, 31 insertions(+), 31 deletions(-) rename docs/source/operations/projections/{dymaxion.rst => airocean.rst} (81%) rename docs/source/operations/projections/images/{dymaxion.png => airocean.png} (100%) rename src/projections/{dymaxion.cpp => airocean.cpp} (97%) diff --git a/docs/plot/plotdefs.json b/docs/plot/plotdefs.json index 7cb5cce4c7..d585cca455 100644 --- a/docs/plot/plotdefs.json +++ b/docs/plot/plotdefs.json @@ -270,13 +270,13 @@ "type": "poly" }, { - "filename": "dymaxion.png", + "filename": "airocean.png", "latmax": 90, "latmin": -90, "lonmax": 180, "lonmin": -180, - "name": "dymaxion", - "projstring": "+proj=dymaxion", + "name": "airocean", + "projstring": "+proj=airocean", "res": "low", "type": "line", "delta_cut": 1e6 diff --git a/docs/source/operations/projections/dymaxion.rst b/docs/source/operations/projections/airocean.rst similarity index 81% rename from docs/source/operations/projections/dymaxion.rst rename to docs/source/operations/projections/airocean.rst index 32646eb82f..20c3e9682d 100644 --- a/docs/source/operations/projections/dymaxion.rst +++ b/docs/source/operations/projections/airocean.rst @@ -1,12 +1,12 @@ -.. _dymaxion: +.. _airocean: ******************************************************************************** -Dymaxion Fuller +Airocean ******************************************************************************** -The Dymaxion Fuller map projection is a icosahedron polyhedral projection that intends +The Airocean map projection is based on the Dymaxion Fuller projection, which is a icosahedron polyhedral projection that intends to lay down continental landmasses into a contiguous map with minimal scale and angular -distorsion while having as few land interruptions as possible. +distorsion while preserving land surfaces from (most) interruptions. In comparison to the Snyder's Icosahedral Equal Area, this projection relies on a specific way to orient and cut the icosahedron so that most interruptions lie within the ocean. The projection was first invented by Buckminster Fuller in 1943 using a cubostahedron as basis. @@ -20,7 +20,7 @@ was formally mathematically defined :cite:`Gray1995`. +---------------------+----------------------------------------------------------+ | **Defined area** | Global | +---------------------+----------------------------------------------------------+ -| **Alias** | dymaxion | +| **Alias** | airocean | +---------------------+----------------------------------------------------------+ | **Domain** | 2D | +---------------------+----------------------------------------------------------+ @@ -30,16 +30,16 @@ was formally mathematically defined :cite:`Gray1995`. +---------------------+----------------------------------------------------------+ -.. figure:: ./images/dymaxion.png +.. figure:: ./images/airocean.png :width: 500 px :align: center - :alt: Dymaxion Fuller + :alt: Airocean - proj-string: ``+proj=dymaxion`` + proj-string: ``+proj=airocean`` .. note:: - The output dymaxion map applied to the whole globe has an extent of roughly - :math:`[0, 0, 17404000, 36844000]` in meters. Although the dymaxion map has no + The airocean map of the whole globe has an extent of approximatelly + :math:`[0, 0, 17404000, 36844000]` in meters. Although the airocean map has no true up or down, the choice was made to lay it out vertically, from Antartica to Australia. diff --git a/docs/source/operations/projections/images/dymaxion.png b/docs/source/operations/projections/images/airocean.png similarity index 100% rename from docs/source/operations/projections/images/dymaxion.png rename to docs/source/operations/projections/images/airocean.png diff --git a/docs/source/operations/projections/index.rst b/docs/source/operations/projections/index.rst index 0b249bdd27..8debb853cf 100644 --- a/docs/source/operations/projections/index.rst +++ b/docs/source/operations/projections/index.rst @@ -17,6 +17,7 @@ Projections map the spherical 3D space to a flat 2D space. adams_ws2 aea aeqd + airocean airy aitoff alsk @@ -38,7 +39,6 @@ Projections map the spherical 3D space to a flat 2D space. comill crast denoy - dymaxion eck1 eck2 eck3 diff --git a/src/lib_proj.cmake b/src/lib_proj.cmake index 2894f129a2..db61c21b43 100644 --- a/src/lib_proj.cmake +++ b/src/lib_proj.cmake @@ -28,7 +28,7 @@ print_variable(ENABLE_IPO) ############################################## set(SRC_LIBPROJ_PROJECTIONS - projections/dymaxion.cpp + projections/airocean.cpp projections/aeqd.cpp projections/adams.cpp projections/gnom.cpp diff --git a/src/pj_list.h b/src/pj_list.h index 80d2b900d5..dbf3ec7ce6 100644 --- a/src/pj_list.h +++ b/src/pj_list.h @@ -37,7 +37,7 @@ PROJ_HEAD(crast, "Craster Parabolic (Putnins P4)") PROJ_HEAD(defmodel, "Deformation model") PROJ_HEAD(deformation, "Kinematic grid shift") PROJ_HEAD(denoy, "Denoyer Semi-Elliptical") -PROJ_HEAD(dymaxion, "Dymaxion Fuller") +PROJ_HEAD(airocean, "Airocean Fuller") PROJ_HEAD(eck1, "Eckert I") PROJ_HEAD(eck2, "Eckert II") PROJ_HEAD(eck3, "Eckert III") diff --git a/src/projections/dymaxion.cpp b/src/projections/airocean.cpp similarity index 97% rename from src/projections/dymaxion.cpp rename to src/projections/airocean.cpp index ecaf09f2d3..4fe1fff2c5 100644 --- a/src/projections/dymaxion.cpp +++ b/src/projections/airocean.cpp @@ -12,7 +12,7 @@ #include "proj.h" #include "proj_internal.h" -PROJ_HEAD(dymaxion, "Dymaxion") "\n\tMisc, Sph&Ell"; +PROJ_HEAD(airocean, "Airocean") "\n\tMisc, Sph&Ell"; namespace { // anonymous namespace @@ -30,10 +30,10 @@ constexpr PJ_XYZ ico_3_centers[3] = {{-0.64642729, 0.48840818, -0.12653887}, {-0 constexpr PJ_XYZ ico_centers[23] = {{0.6446662, 0.27407261, 0.37518718999999995}, {0.1747689766666667, 0.5231760133333333, 0.5720300666666667}, {-0.16999525333333332, 0.11746358666666666, 0.7673197833333334}, {0.08682595666666666, -0.38238388333333334, 0.69117259}, {0.5903144233333334, -0.28559418333333336, 0.44882131999999997}, {0.6764340433333333, 0.37526316, -0.18190732333333334}, {0.22617043, 0.68690576, -0.3293677933333333}, {-0.08387563333333335, 0.77832093, 0.13659113999999997}, {-0.6417158766666667, 0.12186443666666665, 0.45257653999999997}, {-0.6764340433333333, -0.37526316, 0.18190732333333334}, {-0.22617043, -0.68690576, 0.3293677933333333}, {0.08387563333333335, -0.77832093, -0.13659113999999997}, {0.5884910233333334, -0.5302967366666668, -0.06276479999999997}, {0.6417158766666667, -0.12186443666666665, -0.45257653999999997}, {-0.5903144233333334, 0.28559418333333336, -0.44882131999999997}, {-0.6446662, -0.27407261, -0.37518718999999995}, {-0.1747689766666667, -0.5231760133333333, -0.5720300666666667}, {0.16999525333333332, -0.11746358666666668, -0.7673197833333334}, {-0.07609744999999997, 0.5360047600000001, -0.6075312033333334}, {-0.09755446, 0.22876301, -0.7748139766666666}, {-0.6464272866666667, 0.48840817666666664, -0.12653887}, {-0.45298488333333337, 0.6766130466666667, 0.0970687933333333}, {-0.6660608966666667, 0.42586898, 0.21776447666666665}}; constexpr PJ_XYZ ico_normals[23] = {{0.8112534716456183, 0.3448953244235397, 0.4721387719026189}, {0.21993078167242514, 0.6583691769191125, 0.7198475381327677}, {-0.21392348218574597, 0.1478171768398566, 0.9656017947376752}, {0.10926252593733311, -0.48119515565604315, 0.8697775132750616}, {0.7428567271237952, -0.3593941714860216, 0.5648005953155497}, {0.8512303999921011, 0.4722343774266651, -0.22891373682183738}, {0.28461480749719364, 0.8644080979012073, -0.4144792535654255}, {-0.1055498134715015, 0.9794457311974099, 0.17188745304792394}, {-0.80754076069938, 0.15335524153301364, 0.5695261975567215}, {-0.8512303999921011, -0.4722343774266651, 0.22891373682183735}, {-0.28461480749719364, -0.8644080979012073, 0.4144792535654255}, {0.10554981347150154, -0.97944573119741, -0.17188745304792397}, {0.7405621455042509, -0.6673299596621295, -0.07898375518726185}, {0.80754076069938, -0.15335524153301364, -0.5695261975567215}, {-0.7428567271237952, 0.3593941714860216, -0.5648005953155497}, {-0.8112534716456183, -0.3448953244235397, -0.4721387719026189}, {-0.21993078167242514, -0.6583691769191125, -0.7198475381327677}, {0.21392348218574597, -0.1478171768398566, -0.9656017947376752}, {-0.1092625236946045, 0.48119515875463253, -0.8697775118425345}, {-0.10926252412771359, 0.4811951525529661, -0.8697775152191327}, {-0.7405621389792739, 0.6673299643797594, 0.07898377650727696}, {-0.7405621607654073, 0.6673299431834946, 0.07898375132383098}, {-0.7405621367680706, 0.6673299714231342, 0.07898373773067752}}; constexpr double ico_dym_trans[23][2][4] = {{{3676785.549175448, -3835017.5266620647, -3516181.101897219, 13536571.968889877}, {597946.080039791, 4588467.120428165, -4379277.476119764, 23446030.430853583}}, {{6186178.005526091, -1393567.8850913076, -615475.9158875226, 9668979.99656166}, {597946.0790283178, 4588467.148836121, -4379277.446492919, 23446030.4022735}}, {{6193487.416382644, -412638.42193403625, 1435299.1565727487, 7735183.994711302}, {610606.2949588482, 6287486.763792622, -827230.771869741, 20096597.453907937}}, {{6320833.951539666, -6999.925417495968, -797903.6054442794, 9668979.964544488}, {390035.65785509185, 5584900.2162612835, 3040789.86561249, 16747164.583089648}}, {{1785817.7160921493, -3817376.067203325, -4777879.901545344, 15470367.97086971}, {3873198.4648612146, 4557911.12782605, -2193951.0189847522, 20096597.472239383}}, {{1653953.7567438218, -4829262.323420258, -3812125.829251187, 15470367.969285296}, {-2905701.3326818133, 2866384.6227320307, -4891868.725058803, 26795463.326497696}}, {{6107473.604777472, -1644266.325782215, 764719.3302896866, 9668979.973521523}, {-20484.65208776388, -2749071.5526177026, -5747332.168284684, 30144896.23069373}}, {{6325351.398413758, 599247.844237452, 469545.1345954169, 7735183.991104206}, {356890.77665911405, 1136808.9376555325, -6258588.903331836, 26795463.365920186}}, {{3707748.6155441254, 320266.3046413801, 5171041.531732354, 3867591.9864321505}, {610606.2818745336, 6287486.766371998, -827230.7619227654, 20096597.44051682}}, {{3343388.0482846545, -4896993.062013145, 2330419.6732539237, 3867591.9905542377}, {20484.69631605078, 2749071.5422549895, 5747332.173083752, 13397731.669298988}}, {{6107473.604777474, -1644266.3257822143, 764719.330289686, 7735183.984065069}, {20484.65208776346, 2749071.552617706, 5747332.168284684, 13397731.654138729}}, {{6325351.398413757, 599247.8442374519, 469545.1345954159, 9668979.966482382}, {-356890.77665911167, -1136808.9376555379, 6258588.903331836, 10048298.789365184}}, {{4266333.348411551, 4606685.482609389, 1080041.5914374113, 13536571.961679665}, {-356890.81480763154, -1136808.9649443403, 6258588.896199714, 10048298.78278621}}, {{3707748.6155441264, 320266.30464138015, 5171041.531732352, 13536571.97115444}, {-610606.2818745337, -6287486.766372, 827230.7619227694, 3349432.8639618154}}, {{2461379.4064226267, 5855954.858490806, 488922.63367311924, 1933796.0165698116}, {3483162.7410947136, -1026989.0860837825, -5234740.880461738, 30144896.24019003}}, {{1320556.279179943, -5891237.854051452, 2034474.9935921053, 1933796.0148528814}, {-3483162.72987335, 1026989.0418338334, 5234740.896609632, 10048298.759397767}}, {{6186178.005526091, -1393567.885091309, -615475.9158875229, 7735183.961024929}, {-597946.0790283154, -4588467.148836119, 4379277.446492919, 6698865.825718503}}, {{6193487.416382645, -412638.4219340361, 1435299.156572748, 9668979.962875288}, {-610606.2949588535, -6287486.763792623, 827230.7718697439, 3349432.877352944}}, {{3498197.81693495, 4833165.559061878, 2234449.5231911456, 3867591.983769496}, {5278984.96116607, -2798512.200701845, -2211399.7153384583, 33494329.158408284}}, {{6320833.983680945, -6999.984355479206, -797903.6271294819, 7735183.9823354}, {-390035.68446349393, -5584900.177255948, -3040789.814780467, 0.044359486997177525}}, {{4266333.41772867, 4606685.445409489, 1080041.6365273518, 3867592.0700864717}, {356890.72771489987, 1136809.053212709, -6258588.866576485, 26795463.265809294}}, {{4266333.204506115, 4606685.540218764, 1080041.5936954806, 3867591.897018196}, {356890.8007120557, 1136808.9497242568, -6258588.899768077, 26795463.365730304}}, {{1824090.1118675405, 1318837.3514699321, 5960117.7705610385, 1933795.9110601672}, {3873198.583330483, 4557911.083457602, -2193951.0468033054, 23446030.547617782}}}; -constexpr pj_face dymaxion_faces[23] = {{{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {17404163.95758659, 23446030.407177, 1.0}, {17404163.95758659, 16747164.576555002, 1.0}}, {{17404163.95758659, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 30144896.237799004, 1.0}}, {{11602775.971724393, 33494329.153110005, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {0.0, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {0.0, 13397731.661244001, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {17404163.95758659, 10048298.745933, 1.0}}, {{11602775.971724393, 0.0, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {17404163.95758659, 3349432.9153110003, 1.0}}, {{0.0, 33494329.153110005, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {0.0, 26795463.322488002, 1.0}}, {{0.0, 6698865.830622001, 1.0}, {0.0, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 0.0, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {2900693.992931098, 31819612.695454504, 1.0}, {5801387.985862196, 36843762.068421006, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 0.0, 1.0}, {5801387.985862196, 0.0, 1.0}}, {{0.0, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{0.0, 20096597.491866, 1.0}, {1933795.9952873988, 23446030.407177, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}}; -constexpr PJ_XY dymaxion_22_centers[22] = {{13536571.967011793, 23446030.407177}, {9668979.976436995, 23446030.407177}, {7735183.981149595, 20096597.491866004}, {9668979.976436993, 16747164.576555}, {15470367.962299192, 20096597.491866004}, {15470367.962299192, 26795463.322488}, {9668979.976436993, 30144896.237799004}, {7735183.981149595, 26795463.322488}, {3867591.9905747976, 20096597.491866004}, {3867591.9905747976, 13397731.661244}, {7735183.981149595, 13397731.661244}, {9668979.976436995, 10048298.745933002}, {13536571.967011793, 10048298.745933}, {13536571.967011793, 3349432.915311}, {1933795.9952873988, 30144896.237799004}, {1933795.9952873988, 10048298.745933}, {7735183.981149595, 6698865.830622}, {9668979.976436995, 3349432.915311}, {3867591.9905747976, 26795463.322488}, {3867591.9905747976, 33494329.15311}, {7735183.981149595, 0.0}, {1933795.9952873988, 23446030.407177}}; -constexpr PJ_XY dymaxion_2_centers[2] = {{3867591.9905747976, 26795463.322488}, {3867591.9905747976, 33494329.15311}}; -constexpr PJ_XY dymaxion_centers[23] = {{13536571.967011793, 23446030.407177}, {9668979.976436995, 23446030.407177}, {7735183.981149595, 20096597.491866004}, {9668979.976436993, 16747164.576555}, {15470367.962299192, 20096597.491866004}, {15470367.962299192, 26795463.322488}, {9668979.976436993, 30144896.237799004}, {7735183.981149595, 26795463.322488}, {3867591.9905747976, 20096597.491866004}, {3867591.9905747976, 13397731.661244}, {7735183.981149595, 13397731.661244}, {9668979.976436995, 10048298.745933002}, {13536571.967011793, 10048298.745933}, {13536571.967011793, 3349432.915311}, {1933795.9952873988, 30144896.237799004}, {1933795.9952873988, 10048298.745933}, {7735183.981149595, 6698865.830622}, {9668979.976436995, 3349432.915311}, {4834489.9882184975, 32936090.333891507}, {7735183.981149595, 1116477.638437}, {3222993.3254789985, 27911940.960925}, {5156789.320766397, 26795463.322488}, {2578394.6603831984, 22329552.768740002}}; +constexpr pj_face airocean_faces[23] = {{{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {17404163.95758659, 23446030.407177, 1.0}, {17404163.95758659, 16747164.576555002, 1.0}}, {{17404163.95758659, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 30144896.237799004, 1.0}}, {{11602775.971724393, 33494329.153110005, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {0.0, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {0.0, 13397731.661244001, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {17404163.95758659, 10048298.745933, 1.0}}, {{11602775.971724393, 0.0, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {17404163.95758659, 3349432.9153110003, 1.0}}, {{0.0, 33494329.153110005, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {0.0, 26795463.322488002, 1.0}}, {{0.0, 6698865.830622001, 1.0}, {0.0, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 0.0, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {2900693.992931098, 31819612.695454504, 1.0}, {5801387.985862196, 36843762.068421006, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 0.0, 1.0}, {5801387.985862196, 0.0, 1.0}}, {{0.0, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{0.0, 20096597.491866, 1.0}, {1933795.9952873988, 23446030.407177, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}}; +constexpr PJ_XY airocean_22_centers[22] = {{13536571.967011793, 23446030.407177}, {9668979.976436995, 23446030.407177}, {7735183.981149595, 20096597.491866004}, {9668979.976436993, 16747164.576555}, {15470367.962299192, 20096597.491866004}, {15470367.962299192, 26795463.322488}, {9668979.976436993, 30144896.237799004}, {7735183.981149595, 26795463.322488}, {3867591.9905747976, 20096597.491866004}, {3867591.9905747976, 13397731.661244}, {7735183.981149595, 13397731.661244}, {9668979.976436995, 10048298.745933002}, {13536571.967011793, 10048298.745933}, {13536571.967011793, 3349432.915311}, {1933795.9952873988, 30144896.237799004}, {1933795.9952873988, 10048298.745933}, {7735183.981149595, 6698865.830622}, {9668979.976436995, 3349432.915311}, {3867591.9905747976, 26795463.322488}, {3867591.9905747976, 33494329.15311}, {7735183.981149595, 0.0}, {1933795.9952873988, 23446030.407177}}; +constexpr PJ_XY airocean_2_centers[2] = {{3867591.9905747976, 26795463.322488}, {3867591.9905747976, 33494329.15311}}; +constexpr PJ_XY airocean_centers[23] = {{13536571.967011793, 23446030.407177}, {9668979.976436995, 23446030.407177}, {7735183.981149595, 20096597.491866004}, {9668979.976436993, 16747164.576555}, {15470367.962299192, 20096597.491866004}, {15470367.962299192, 26795463.322488}, {9668979.976436993, 30144896.237799004}, {7735183.981149595, 26795463.322488}, {3867591.9905747976, 20096597.491866004}, {3867591.9905747976, 13397731.661244}, {7735183.981149595, 13397731.661244}, {9668979.976436995, 10048298.745933002}, {13536571.967011793, 10048298.745933}, {13536571.967011793, 3349432.915311}, {1933795.9952873988, 30144896.237799004}, {1933795.9952873988, 10048298.745933}, {7735183.981149595, 6698865.830622}, {9668979.976436995, 3349432.915311}, {4834489.9882184975, 32936090.333891507}, {7735183.981149595, 1116477.638437}, {3222993.3254789985, 27911940.960925}, {5156789.320766397, 26795463.322488}, {2578394.6603831984, 22329552.768740002}}; constexpr double dym_ico_trans[23][3][3] = {{{9.058433279771384e-08, 1.4731493732699052e-08, -0.9269301899999991}, {-9.44826679987233e-08, 1.1304527499839262e-07, -1.0974189099999994}, {-8.662754779110161e-08, -1.0789150406568015e-07, 4.077454709999999}}, {{1.5240780519329358e-07, 1.473149373269901e-08, -1.6442540899999978}, {-3.4333093302050216e-08, 1.1304527499839258e-07, -1.7953209499999985}, {-1.51633738709386e-08, -1.0789150406568015e-07, 3.248271909999998}}, {{1.525878853745444e-07, 1.504340175606161e-08, -1.6526118100000007}, {-1.0166102516109274e-08, 1.5490373090569122e-07, -2.9169376700000003}, {3.536121881520939e-08, -2.0380342501548998e-08, 0.9033697899999995}}, {{1.557252983599121e-07, 9.609243061078464e-09, -1.5798064100000002}, {-1.7245441994882394e-10, 1.375942246501773e-07, -2.6850295500000003}, {-1.96578129712955e-08, 7.491541593592458e-08, -0.37337721000000035}}, {{4.399688326690425e-08, 9.54233233151121e-08, -2.0080176699999996}, {-9.404803666461074e-08, 1.122924714451482e-07, -1.0873330499999996}, {-1.1771180391040664e-07, -5.405199315156007e-08, 3.3561273899999997}}, {{4.074817450170371e-08, -7.158726449003567e-08, 1.9642587099999982}, {-1.1897770528054373e-07, 7.061862589298568e-08, 0.3236332400000001}, {-9.391868744648748e-08, -1.2052012839388902e-07, 4.500442009999996}}, {{1.5046877525297362e-07, -5.046779687011883e-10, -1.2134956799999999}, {-4.0509505754953036e-08, -6.772840231043597e-08, 3.120257019999999}, {1.8840259480379495e-08, -1.4159603341569342e-07, 3.7568638499999985}}, {{1.55836594139745e-07, 8.792657069014762e-09, -1.52490368}, {1.4763566099823772e-08, 2.800736643244269e-08, -0.08634832999999958}, {1.1568102351290336e-08, -1.5419177904390005e-07, 4.178749899999998}}, {{9.134716490113195e-08, 1.504340175606163e-08, -1.2973306300000003}, {7.890345398644546e-09, 1.5490373090569127e-07, -3.021690130000001}, {1.2739806091251417e-07, -2.0380342501549028e-08, 0.3694283599999999}}, {{8.237047688665845e-08, 5.04677968701152e-10, -1.0017709799999996}, {-1.2064637664394705e-07, 6.772840231043599e-08, -0.8160591599999997}, {5.741414913322641e-08, 1.4159603341569342e-07, -1.937212839999999}}, {{1.504687752529736e-07, 5.046779687011514e-10, -1.3968356299999996}, {-4.0509505754953036e-08, 6.772840231043597e-08, -1.2809642399999992}, {1.8840259480379524e-08, 1.415960334156934e-07, -1.713430739999999}}, {{1.55836594139745e-07, -8.792657069014724e-09, -1.3345540299999996}, {1.4763566099823759e-08, -2.8007366432442684e-08, -0.6396431699999997}, {1.1568102351290311e-08, 1.5419177904390013e-07, -1.7978079499999997}}, {{1.0510891988020954e-07, -8.792657069014762e-09, -0.7459721899999996}, {1.1349411668458604e-07, -2.8007366432442694e-08, -1.7851916299999993}, {2.6608799545245027e-08, 1.541917790439001e-07, -1.9723217899999996}}, {{9.134716490113195e-08, -1.5043401756061595e-08, -0.5444247299999998}, {7.890345398644617e-09, -1.5490373090569122e-07, 0.29016699000000007}, {1.2739806091251412e-07, 2.038034250154901e-08, -2.2453721499999992}}, {{6.064058047097081e-08, 8.58140802540336e-08, -3.294437479999999}, {1.4427215125754238e-07, -2.530175320502907e-08, 0.7693199999999997}, {1.2045502760769865e-08, -1.2896740908748457e-07, 3.4155942999999986}}, {{3.2534318590648264e-08, -8.581408025403363e-08, 0.15470457999999998}, {-1.4514141392576755e-07, 2.530175320502908e-08, -0.2476383}, {5.01230094778404e-08, 1.289674090874846e-07, -1.7680179200000001}}, {{1.524078051932937e-07, -1.4731493732699067e-08, -1.25498709}, {-3.433309330205022e-08, -1.1304527499839266e-07, 0.49967191}, {-1.5163373870938614e-08, 1.0789150406568026e-07, -1.17748929}}, {{1.5258788537454444e-07, -1.50434017560616e-08, -1.25498709}, {-1.016610251610931e-08, -1.5490373090569122e-07, 0.49967191}, {3.536121881520941e-08, 2.0380342501549018e-08, -1.17748929}}, {{8.618449605826386e-08, 1.3005744286105568e-07, -4.776339219999996}, {1.1907386502737676e-07, -6.894646223375916e-08, 2.2311702599999985}, {5.5049746849940485e-08, -5.4481873383947436e-08, 0.9207512499999986}}, {{1.5572529749804938e-07, -9.609244553868475e-09, -1.29138978}, {-1.7245528181154292e-10, -1.3759422614296728e-07, 0.38371785999999997}, {-1.9657812971295542e-08, -7.491541593592457e-08, -0.53911579}}, {{1.0510892074207234e-07, 8.792655576224747e-09, -1.2306127199999985}, {1.1349411496086066e-07, 2.8007369418022736e-08, -0.6591226399999993}, {2.6608799545244997e-08, -1.5419177904390008e-07, 4.091492979999998}}, {{1.0510891815648413e-07, 8.79265706901476e-09, -1.2306127500000001}, {1.1349412013203696e-07, 2.8007366432442717e-08, -0.6591225800000001}, {2.6608799545245066e-08, -1.5419177904390005e-07, 4.091492979999997}}, {{4.4939794689710465e-08, 9.54233248079021e-08, -2.9126935899999995}, {3.249196924242356e-08, 1.1229246845956814e-07, -2.1653487399999993}, {1.4683839747935709e-07, -5.405199315156002e-08, 1.0461139699999995}}}; @@ -67,7 +67,7 @@ inline unsigned char get_ico_face_index(const PJ_XYZ *p) { inline unsigned char get_dym_face_index(const PJ_XY *p) { const PJ_XYZ pp{p->x, p->y, 1.0}; for (unsigned char i=0; i < 23; i++) { - if (is_point_in_face(&pp, &dymaxion_faces[i])) { + if (is_point_in_face(&pp, &airocean_faces[i])) { return i; } } @@ -129,7 +129,7 @@ inline PJ_XYZ cartesian_to_ico(const PJ_XYZ *p, unsigned char face_id) { // The Forward and Inverse Functions // // ============================================ -static PJ_XY dymaxion_forward(PJ_LP lp, PJ *P) { +static PJ_XY airocean_forward(PJ_LP lp, PJ *P) { double lat; /* Convert the geodetic latitude to a geocentric latitude. @@ -162,14 +162,14 @@ static PJ_XY dymaxion_forward(PJ_LP lp, PJ *P) { PJ_XYZ icoPoint = cartesian_to_ico(&cartesianPoint, face_id); - PJ_XY dymaxionPoint = ico_to_dym(&icoPoint, face_id); + PJ_XY airoceanPoint = ico_to_dym(&icoPoint, face_id); - return dymaxionPoint; + return airoceanPoint; } -static PJ_LP dymaxion_inverse(PJ_XY xy, PJ *P) { +static PJ_LP airocean_inverse(PJ_XY xy, PJ *P) { PJ_LP lp = {0.0, 0.0}; unsigned char face_id = get_dym_face_index(&xy); @@ -212,13 +212,13 @@ static PJ_LP dymaxion_inverse(PJ_XY xy, PJ *P) { return lp; } -PJ *PJ_PROJECTION(dymaxion) { +PJ *PJ_PROJECTION(airocean) { P->left = PJ_IO_UNITS_RADIANS; P->right = PJ_IO_UNITS_PROJECTED; P->from_greenwich = -P->lam0; - P->inv = dymaxion_inverse; - P->fwd = dymaxion_forward; + P->inv = airocean_inverse; + P->fwd = airocean_forward; return P; } diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie index 8471434f66..d69239aee0 100644 --- a/test/gie/builtins.gie +++ b/test/gie/builtins.gie @@ -1163,13 +1163,13 @@ expect -223377.422876954 -111701.072127637 =============================================================================== -# Dymaxion +# Airocean # Sph., Ellps. # (Each of the 23 faces tested separately around their center, inverse included) =============================================================================== ------------------------------------------------------------------------------- -operation +proj=dymaxion +ellps=GRS80 +operation +proj=airocean +ellps=GRS80 ------------------------------------------------------------------------------- tolerance 0.1 mm accept 23 28 From b757564bbfaa816d8e4870fc916da97010133133 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Fri, 1 Nov 2024 15:37:34 +0100 Subject: [PATCH 09/37] - Document constants. Rename variables to remove references to dymaxion (dym). Remove unused constants. Change sqrtl to sqrt. --- src/projections/airocean.cpp | 77 ++++++++++++++++++++++++------------ 1 file changed, 51 insertions(+), 26 deletions(-) diff --git a/src/projections/airocean.cpp b/src/projections/airocean.cpp index 4fe1fff2c5..defddf793d 100644 --- a/src/projections/airocean.cpp +++ b/src/projections/airocean.cpp @@ -23,18 +23,43 @@ namespace { // anonymous namespace }; } // anonymous namespace + +/* + The vertices of the faces of the icosahedron are inspired by those used by Robert W. Gray. + + Original Reference: + Robert W. Gray (1995) Exact Transformation Equations for + Fuller's World Map, Vol. 32. Autumn, 1995, pp. 17-25. + + To accomodate for land parts that would be interrupted by using a mere icosahedron, + some faces are split in two (Australia) and 3 (Japan) subfaces. +*/ +// Define the 23 faces and subfaces constexpr pj_face ico_faces[23] = {{{0.42015243, 0.07814525, 0.90408255}, {0.51883673, 0.83542038, 0.18133184}, {0.99500944, -0.0913478, 0.04014718}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.41468223, 0.65596241, 0.63067581}, {0.51883673, 0.83542038, 0.18133184}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.51545596, -0.3817169, 0.76720099}, {-0.41468223, 0.65596241, 0.63067581}}, {{0.42015243, 0.07814525, 0.90408255}, {0.3557814, -0.84358, 0.40223423}, {-0.51545596, -0.3817169, 0.76720099}}, {{0.42015243, 0.07814525, 0.90408255}, {0.99500944, -0.0913478, 0.04014718}, {0.3557814, -0.84358, 0.40223423}}, {{0.99500944, -0.0913478, 0.04014718}, {0.51883673, 0.83542038, 0.18133184}, {0.51545596, 0.3817169, -0.76720099}}, {{0.51545596, 0.3817169, -0.76720099}, {0.51883673, 0.83542038, 0.18133184}, {-0.3557814, 0.84358, -0.40223423}}, {{-0.3557814, 0.84358, -0.40223423}, {0.51883673, 0.83542038, 0.18133184}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.99500944, 0.0913478, -0.04014718}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.51883673, -0.83542038, -0.18133184}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.51545596, -0.3817169, 0.76720099}, {0.3557814, -0.84358, 0.40223423}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.51883673, -0.83542038, -0.18133184}, {0.3557814, -0.84358, 0.40223423}, {0.41468223, -0.65596241, -0.63067581}}, {{0.41468223, -0.65596241, -0.63067581}, {0.3557814, -0.84358, 0.40223423}, {0.99500944, -0.0913478, 0.04014718}}, {{0.51545596, 0.3817169, -0.76720099}, {0.41468223, -0.65596241, -0.63067581}, {0.99500944, -0.0913478, 0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.3557814, 0.84358, -0.40223423}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.99500944, 0.0913478, -0.04014718}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.51883673, -0.83542038, -0.18133184}, {0.41468223, -0.65596241, -0.63067581}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.41468223, -0.65596241, -0.63067581}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.38796691, 0.38271738, -0.65315839}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.51545596, 0.3817169, -0.76720099}, {-0.38796691, 0.38271738, -0.65315839}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.3557814, 0.84358, -0.40223423}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.41468223, 0.65596241, 0.63067581}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.58849102, 0.53029673, 0.0627648}, {-0.41468223, 0.65596241, 0.63067581}}}; -constexpr PJ_XYZ ico_20_centers[20] = {{0.6446662, 0.27407261, 0.37518719}, {0.17476898, 0.52317601, 0.57203007}, {-0.16999525, 0.11746359, 0.76731978}, {0.08682596, -0.38238388, 0.69117259}, {0.59031442, -0.28559418, 0.44882132}, {0.67643404, 0.37526316, -0.18190733}, {0.22617043, 0.68690576, -0.32936779}, {-0.08387563, 0.77832093, 0.13659114}, {-0.64171587, 0.12186443, 0.45257654}, {-0.67643404, -0.37526316, 0.18190733}, {-0.22617043, -0.68690576, 0.32936779}, {0.08387563, -0.77832093, -0.13659114}, {0.58849102, -0.53029673, -0.0627648}, {0.64171587, -0.12186443, -0.45257654}, {-0.59031442, 0.28559418, -0.44882132}, {-0.6446662, -0.27407261, -0.37518719}, {-0.17476898, -0.52317601, -0.57203007}, {0.16999525, -0.11746359, -0.76731978}, {-0.58849102, 0.53029673, 0.0627648}, {-0.08682596, 0.38238388, -0.69117259}}; -constexpr PJ_XYZ ico_2_centers[2] = {{-0.07609745, 0.53600476, -0.6075312}, {-0.09755446, 0.22876301, -0.77481398}}; -constexpr PJ_XYZ ico_3_centers[3] = {{-0.64642729, 0.48840818, -0.12653887}, {-0.45298488, 0.67661305, 0.09706879}, {-0.66606089, 0.42586898, 0.21776448}}; +// Define the centers for each face or subface constexpr PJ_XYZ ico_centers[23] = {{0.6446662, 0.27407261, 0.37518718999999995}, {0.1747689766666667, 0.5231760133333333, 0.5720300666666667}, {-0.16999525333333332, 0.11746358666666666, 0.7673197833333334}, {0.08682595666666666, -0.38238388333333334, 0.69117259}, {0.5903144233333334, -0.28559418333333336, 0.44882131999999997}, {0.6764340433333333, 0.37526316, -0.18190732333333334}, {0.22617043, 0.68690576, -0.3293677933333333}, {-0.08387563333333335, 0.77832093, 0.13659113999999997}, {-0.6417158766666667, 0.12186443666666665, 0.45257653999999997}, {-0.6764340433333333, -0.37526316, 0.18190732333333334}, {-0.22617043, -0.68690576, 0.3293677933333333}, {0.08387563333333335, -0.77832093, -0.13659113999999997}, {0.5884910233333334, -0.5302967366666668, -0.06276479999999997}, {0.6417158766666667, -0.12186443666666665, -0.45257653999999997}, {-0.5903144233333334, 0.28559418333333336, -0.44882131999999997}, {-0.6446662, -0.27407261, -0.37518718999999995}, {-0.1747689766666667, -0.5231760133333333, -0.5720300666666667}, {0.16999525333333332, -0.11746358666666668, -0.7673197833333334}, {-0.07609744999999997, 0.5360047600000001, -0.6075312033333334}, {-0.09755446, 0.22876301, -0.7748139766666666}, {-0.6464272866666667, 0.48840817666666664, -0.12653887}, {-0.45298488333333337, 0.6766130466666667, 0.0970687933333333}, {-0.6660608966666667, 0.42586898, 0.21776447666666665}}; +// Define the normals for each face and subface constexpr PJ_XYZ ico_normals[23] = {{0.8112534716456183, 0.3448953244235397, 0.4721387719026189}, {0.21993078167242514, 0.6583691769191125, 0.7198475381327677}, {-0.21392348218574597, 0.1478171768398566, 0.9656017947376752}, {0.10926252593733311, -0.48119515565604315, 0.8697775132750616}, {0.7428567271237952, -0.3593941714860216, 0.5648005953155497}, {0.8512303999921011, 0.4722343774266651, -0.22891373682183738}, {0.28461480749719364, 0.8644080979012073, -0.4144792535654255}, {-0.1055498134715015, 0.9794457311974099, 0.17188745304792394}, {-0.80754076069938, 0.15335524153301364, 0.5695261975567215}, {-0.8512303999921011, -0.4722343774266651, 0.22891373682183735}, {-0.28461480749719364, -0.8644080979012073, 0.4144792535654255}, {0.10554981347150154, -0.97944573119741, -0.17188745304792397}, {0.7405621455042509, -0.6673299596621295, -0.07898375518726185}, {0.80754076069938, -0.15335524153301364, -0.5695261975567215}, {-0.7428567271237952, 0.3593941714860216, -0.5648005953155497}, {-0.8112534716456183, -0.3448953244235397, -0.4721387719026189}, {-0.21993078167242514, -0.6583691769191125, -0.7198475381327677}, {0.21392348218574597, -0.1478171768398566, -0.9656017947376752}, {-0.1092625236946045, 0.48119515875463253, -0.8697775118425345}, {-0.10926252412771359, 0.4811951525529661, -0.8697775152191327}, {-0.7405621389792739, 0.6673299643797594, 0.07898377650727696}, {-0.7405621607654073, 0.6673299431834946, 0.07898375132383098}, {-0.7405621367680706, 0.6673299714231342, 0.07898373773067752}}; -constexpr double ico_dym_trans[23][2][4] = {{{3676785.549175448, -3835017.5266620647, -3516181.101897219, 13536571.968889877}, {597946.080039791, 4588467.120428165, -4379277.476119764, 23446030.430853583}}, {{6186178.005526091, -1393567.8850913076, -615475.9158875226, 9668979.99656166}, {597946.0790283178, 4588467.148836121, -4379277.446492919, 23446030.4022735}}, {{6193487.416382644, -412638.42193403625, 1435299.1565727487, 7735183.994711302}, {610606.2949588482, 6287486.763792622, -827230.771869741, 20096597.453907937}}, {{6320833.951539666, -6999.925417495968, -797903.6054442794, 9668979.964544488}, {390035.65785509185, 5584900.2162612835, 3040789.86561249, 16747164.583089648}}, {{1785817.7160921493, -3817376.067203325, -4777879.901545344, 15470367.97086971}, {3873198.4648612146, 4557911.12782605, -2193951.0189847522, 20096597.472239383}}, {{1653953.7567438218, -4829262.323420258, -3812125.829251187, 15470367.969285296}, {-2905701.3326818133, 2866384.6227320307, -4891868.725058803, 26795463.326497696}}, {{6107473.604777472, -1644266.325782215, 764719.3302896866, 9668979.973521523}, {-20484.65208776388, -2749071.5526177026, -5747332.168284684, 30144896.23069373}}, {{6325351.398413758, 599247.844237452, 469545.1345954169, 7735183.991104206}, {356890.77665911405, 1136808.9376555325, -6258588.903331836, 26795463.365920186}}, {{3707748.6155441254, 320266.3046413801, 5171041.531732354, 3867591.9864321505}, {610606.2818745336, 6287486.766371998, -827230.7619227654, 20096597.44051682}}, {{3343388.0482846545, -4896993.062013145, 2330419.6732539237, 3867591.9905542377}, {20484.69631605078, 2749071.5422549895, 5747332.173083752, 13397731.669298988}}, {{6107473.604777474, -1644266.3257822143, 764719.330289686, 7735183.984065069}, {20484.65208776346, 2749071.552617706, 5747332.168284684, 13397731.654138729}}, {{6325351.398413757, 599247.8442374519, 469545.1345954159, 9668979.966482382}, {-356890.77665911167, -1136808.9376555379, 6258588.903331836, 10048298.789365184}}, {{4266333.348411551, 4606685.482609389, 1080041.5914374113, 13536571.961679665}, {-356890.81480763154, -1136808.9649443403, 6258588.896199714, 10048298.78278621}}, {{3707748.6155441264, 320266.30464138015, 5171041.531732352, 13536571.97115444}, {-610606.2818745337, -6287486.766372, 827230.7619227694, 3349432.8639618154}}, {{2461379.4064226267, 5855954.858490806, 488922.63367311924, 1933796.0165698116}, {3483162.7410947136, -1026989.0860837825, -5234740.880461738, 30144896.24019003}}, {{1320556.279179943, -5891237.854051452, 2034474.9935921053, 1933796.0148528814}, {-3483162.72987335, 1026989.0418338334, 5234740.896609632, 10048298.759397767}}, {{6186178.005526091, -1393567.885091309, -615475.9158875229, 7735183.961024929}, {-597946.0790283154, -4588467.148836119, 4379277.446492919, 6698865.825718503}}, {{6193487.416382645, -412638.4219340361, 1435299.156572748, 9668979.962875288}, {-610606.2949588535, -6287486.763792623, 827230.7718697439, 3349432.877352944}}, {{3498197.81693495, 4833165.559061878, 2234449.5231911456, 3867591.983769496}, {5278984.96116607, -2798512.200701845, -2211399.7153384583, 33494329.158408284}}, {{6320833.983680945, -6999.984355479206, -797903.6271294819, 7735183.9823354}, {-390035.68446349393, -5584900.177255948, -3040789.814780467, 0.044359486997177525}}, {{4266333.41772867, 4606685.445409489, 1080041.6365273518, 3867592.0700864717}, {356890.72771489987, 1136809.053212709, -6258588.866576485, 26795463.265809294}}, {{4266333.204506115, 4606685.540218764, 1080041.5936954806, 3867591.897018196}, {356890.8007120557, 1136808.9497242568, -6258588.899768077, 26795463.365730304}}, {{1824090.1118675405, 1318837.3514699321, 5960117.7705610385, 1933795.9110601672}, {3873198.583330483, 4557911.083457602, -2193951.0468033054, 23446030.547617782}}}; + +/* + The points of the Airocean projection map are deduced from the unfolded net + of the altered icosahedron defined above. + The distances in the projected 2d space are expressed in meter. +*/ +// Define the 23 unfolded surfaces used (from icosahedron + split faces) constexpr pj_face airocean_faces[23] = {{{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {17404163.95758659, 23446030.407177, 1.0}, {17404163.95758659, 16747164.576555002, 1.0}}, {{17404163.95758659, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 30144896.237799004, 1.0}}, {{11602775.971724393, 33494329.153110005, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {0.0, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {0.0, 13397731.661244001, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {17404163.95758659, 10048298.745933, 1.0}}, {{11602775.971724393, 0.0, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {17404163.95758659, 3349432.9153110003, 1.0}}, {{0.0, 33494329.153110005, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {0.0, 26795463.322488002, 1.0}}, {{0.0, 6698865.830622001, 1.0}, {0.0, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 0.0, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {2900693.992931098, 31819612.695454504, 1.0}, {5801387.985862196, 36843762.068421006, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 0.0, 1.0}, {5801387.985862196, 0.0, 1.0}}, {{0.0, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{0.0, 20096597.491866, 1.0}, {1933795.9952873988, 23446030.407177, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}}; -constexpr PJ_XY airocean_22_centers[22] = {{13536571.967011793, 23446030.407177}, {9668979.976436995, 23446030.407177}, {7735183.981149595, 20096597.491866004}, {9668979.976436993, 16747164.576555}, {15470367.962299192, 20096597.491866004}, {15470367.962299192, 26795463.322488}, {9668979.976436993, 30144896.237799004}, {7735183.981149595, 26795463.322488}, {3867591.9905747976, 20096597.491866004}, {3867591.9905747976, 13397731.661244}, {7735183.981149595, 13397731.661244}, {9668979.976436995, 10048298.745933002}, {13536571.967011793, 10048298.745933}, {13536571.967011793, 3349432.915311}, {1933795.9952873988, 30144896.237799004}, {1933795.9952873988, 10048298.745933}, {7735183.981149595, 6698865.830622}, {9668979.976436995, 3349432.915311}, {3867591.9905747976, 26795463.322488}, {3867591.9905747976, 33494329.15311}, {7735183.981149595, 0.0}, {1933795.9952873988, 23446030.407177}}; -constexpr PJ_XY airocean_2_centers[2] = {{3867591.9905747976, 26795463.322488}, {3867591.9905747976, 33494329.15311}}; -constexpr PJ_XY airocean_centers[23] = {{13536571.967011793, 23446030.407177}, {9668979.976436995, 23446030.407177}, {7735183.981149595, 20096597.491866004}, {9668979.976436993, 16747164.576555}, {15470367.962299192, 20096597.491866004}, {15470367.962299192, 26795463.322488}, {9668979.976436993, 30144896.237799004}, {7735183.981149595, 26795463.322488}, {3867591.9905747976, 20096597.491866004}, {3867591.9905747976, 13397731.661244}, {7735183.981149595, 13397731.661244}, {9668979.976436995, 10048298.745933002}, {13536571.967011793, 10048298.745933}, {13536571.967011793, 3349432.915311}, {1933795.9952873988, 30144896.237799004}, {1933795.9952873988, 10048298.745933}, {7735183.981149595, 6698865.830622}, {9668979.976436995, 3349432.915311}, {4834489.9882184975, 32936090.333891507}, {7735183.981149595, 1116477.638437}, {3222993.3254789985, 27911940.960925}, {5156789.320766397, 26795463.322488}, {2578394.6603831984, 22329552.768740002}}; -constexpr double dym_ico_trans[23][3][3] = {{{9.058433279771384e-08, 1.4731493732699052e-08, -0.9269301899999991}, {-9.44826679987233e-08, 1.1304527499839262e-07, -1.0974189099999994}, {-8.662754779110161e-08, -1.0789150406568015e-07, 4.077454709999999}}, {{1.5240780519329358e-07, 1.473149373269901e-08, -1.6442540899999978}, {-3.4333093302050216e-08, 1.1304527499839258e-07, -1.7953209499999985}, {-1.51633738709386e-08, -1.0789150406568015e-07, 3.248271909999998}}, {{1.525878853745444e-07, 1.504340175606161e-08, -1.6526118100000007}, {-1.0166102516109274e-08, 1.5490373090569122e-07, -2.9169376700000003}, {3.536121881520939e-08, -2.0380342501548998e-08, 0.9033697899999995}}, {{1.557252983599121e-07, 9.609243061078464e-09, -1.5798064100000002}, {-1.7245441994882394e-10, 1.375942246501773e-07, -2.6850295500000003}, {-1.96578129712955e-08, 7.491541593592458e-08, -0.37337721000000035}}, {{4.399688326690425e-08, 9.54233233151121e-08, -2.0080176699999996}, {-9.404803666461074e-08, 1.122924714451482e-07, -1.0873330499999996}, {-1.1771180391040664e-07, -5.405199315156007e-08, 3.3561273899999997}}, {{4.074817450170371e-08, -7.158726449003567e-08, 1.9642587099999982}, {-1.1897770528054373e-07, 7.061862589298568e-08, 0.3236332400000001}, {-9.391868744648748e-08, -1.2052012839388902e-07, 4.500442009999996}}, {{1.5046877525297362e-07, -5.046779687011883e-10, -1.2134956799999999}, {-4.0509505754953036e-08, -6.772840231043597e-08, 3.120257019999999}, {1.8840259480379495e-08, -1.4159603341569342e-07, 3.7568638499999985}}, {{1.55836594139745e-07, 8.792657069014762e-09, -1.52490368}, {1.4763566099823772e-08, 2.800736643244269e-08, -0.08634832999999958}, {1.1568102351290336e-08, -1.5419177904390005e-07, 4.178749899999998}}, {{9.134716490113195e-08, 1.504340175606163e-08, -1.2973306300000003}, {7.890345398644546e-09, 1.5490373090569127e-07, -3.021690130000001}, {1.2739806091251417e-07, -2.0380342501549028e-08, 0.3694283599999999}}, {{8.237047688665845e-08, 5.04677968701152e-10, -1.0017709799999996}, {-1.2064637664394705e-07, 6.772840231043599e-08, -0.8160591599999997}, {5.741414913322641e-08, 1.4159603341569342e-07, -1.937212839999999}}, {{1.504687752529736e-07, 5.046779687011514e-10, -1.3968356299999996}, {-4.0509505754953036e-08, 6.772840231043597e-08, -1.2809642399999992}, {1.8840259480379524e-08, 1.415960334156934e-07, -1.713430739999999}}, {{1.55836594139745e-07, -8.792657069014724e-09, -1.3345540299999996}, {1.4763566099823759e-08, -2.8007366432442684e-08, -0.6396431699999997}, {1.1568102351290311e-08, 1.5419177904390013e-07, -1.7978079499999997}}, {{1.0510891988020954e-07, -8.792657069014762e-09, -0.7459721899999996}, {1.1349411668458604e-07, -2.8007366432442694e-08, -1.7851916299999993}, {2.6608799545245027e-08, 1.541917790439001e-07, -1.9723217899999996}}, {{9.134716490113195e-08, -1.5043401756061595e-08, -0.5444247299999998}, {7.890345398644617e-09, -1.5490373090569122e-07, 0.29016699000000007}, {1.2739806091251412e-07, 2.038034250154901e-08, -2.2453721499999992}}, {{6.064058047097081e-08, 8.58140802540336e-08, -3.294437479999999}, {1.4427215125754238e-07, -2.530175320502907e-08, 0.7693199999999997}, {1.2045502760769865e-08, -1.2896740908748457e-07, 3.4155942999999986}}, {{3.2534318590648264e-08, -8.581408025403363e-08, 0.15470457999999998}, {-1.4514141392576755e-07, 2.530175320502908e-08, -0.2476383}, {5.01230094778404e-08, 1.289674090874846e-07, -1.7680179200000001}}, {{1.524078051932937e-07, -1.4731493732699067e-08, -1.25498709}, {-3.433309330205022e-08, -1.1304527499839266e-07, 0.49967191}, {-1.5163373870938614e-08, 1.0789150406568026e-07, -1.17748929}}, {{1.5258788537454444e-07, -1.50434017560616e-08, -1.25498709}, {-1.016610251610931e-08, -1.5490373090569122e-07, 0.49967191}, {3.536121881520941e-08, 2.0380342501549018e-08, -1.17748929}}, {{8.618449605826386e-08, 1.3005744286105568e-07, -4.776339219999996}, {1.1907386502737676e-07, -6.894646223375916e-08, 2.2311702599999985}, {5.5049746849940485e-08, -5.4481873383947436e-08, 0.9207512499999986}}, {{1.5572529749804938e-07, -9.609244553868475e-09, -1.29138978}, {-1.7245528181154292e-10, -1.3759422614296728e-07, 0.38371785999999997}, {-1.9657812971295542e-08, -7.491541593592457e-08, -0.53911579}}, {{1.0510892074207234e-07, 8.792655576224747e-09, -1.2306127199999985}, {1.1349411496086066e-07, 2.8007369418022736e-08, -0.6591226399999993}, {2.6608799545244997e-08, -1.5419177904390008e-07, 4.091492979999998}}, {{1.0510891815648413e-07, 8.79265706901476e-09, -1.2306127500000001}, {1.1349412013203696e-07, 2.8007366432442717e-08, -0.6591225800000001}, {2.6608799545245066e-08, -1.5419177904390005e-07, 4.091492979999997}}, {{4.4939794689710465e-08, 9.54233248079021e-08, -2.9126935899999995}, {3.249196924242356e-08, 1.1229246845956814e-07, -2.1653487399999993}, {1.4683839747935709e-07, -5.405199315156002e-08, 1.0461139699999995}}}; + +/* + The parameters here are extracted from the transition matrices + that allow converting a icosahedron face or subface to its + corresponding face in the Airocean projected space. + Since only a few parameters of those matrices are relevant, + the irrelevant ones has been discarded. +*/ +// Icosahedron to Airocean (forward) +constexpr double ico_air_trans[23][2][4] = {{{3676785.549175448, -3835017.5266620647, -3516181.101897219, 13536571.968889877}, {597946.080039791, 4588467.120428165, -4379277.476119764, 23446030.430853583}}, {{6186178.005526091, -1393567.8850913076, -615475.9158875226, 9668979.99656166}, {597946.0790283178, 4588467.148836121, -4379277.446492919, 23446030.4022735}}, {{6193487.416382644, -412638.42193403625, 1435299.1565727487, 7735183.994711302}, {610606.2949588482, 6287486.763792622, -827230.771869741, 20096597.453907937}}, {{6320833.951539666, -6999.925417495968, -797903.6054442794, 9668979.964544488}, {390035.65785509185, 5584900.2162612835, 3040789.86561249, 16747164.583089648}}, {{1785817.7160921493, -3817376.067203325, -4777879.901545344, 15470367.97086971}, {3873198.4648612146, 4557911.12782605, -2193951.0189847522, 20096597.472239383}}, {{1653953.7567438218, -4829262.323420258, -3812125.829251187, 15470367.969285296}, {-2905701.3326818133, 2866384.6227320307, -4891868.725058803, 26795463.326497696}}, {{6107473.604777472, -1644266.325782215, 764719.3302896866, 9668979.973521523}, {-20484.65208776388, -2749071.5526177026, -5747332.168284684, 30144896.23069373}}, {{6325351.398413758, 599247.844237452, 469545.1345954169, 7735183.991104206}, {356890.77665911405, 1136808.9376555325, -6258588.903331836, 26795463.365920186}}, {{3707748.6155441254, 320266.3046413801, 5171041.531732354, 3867591.9864321505}, {610606.2818745336, 6287486.766371998, -827230.7619227654, 20096597.44051682}}, {{3343388.0482846545, -4896993.062013145, 2330419.6732539237, 3867591.9905542377}, {20484.69631605078, 2749071.5422549895, 5747332.173083752, 13397731.669298988}}, {{6107473.604777474, -1644266.3257822143, 764719.330289686, 7735183.984065069}, {20484.65208776346, 2749071.552617706, 5747332.168284684, 13397731.654138729}}, {{6325351.398413757, 599247.8442374519, 469545.1345954159, 9668979.966482382}, {-356890.77665911167, -1136808.9376555379, 6258588.903331836, 10048298.789365184}}, {{4266333.348411551, 4606685.482609389, 1080041.5914374113, 13536571.961679665}, {-356890.81480763154, -1136808.9649443403, 6258588.896199714, 10048298.78278621}}, {{3707748.6155441264, 320266.30464138015, 5171041.531732352, 13536571.97115444}, {-610606.2818745337, -6287486.766372, 827230.7619227694, 3349432.8639618154}}, {{2461379.4064226267, 5855954.858490806, 488922.63367311924, 1933796.0165698116}, {3483162.7410947136, -1026989.0860837825, -5234740.880461738, 30144896.24019003}}, {{1320556.279179943, -5891237.854051452, 2034474.9935921053, 1933796.0148528814}, {-3483162.72987335, 1026989.0418338334, 5234740.896609632, 10048298.759397767}}, {{6186178.005526091, -1393567.885091309, -615475.9158875229, 7735183.961024929}, {-597946.0790283154, -4588467.148836119, 4379277.446492919, 6698865.825718503}}, {{6193487.416382645, -412638.4219340361, 1435299.156572748, 9668979.962875288}, {-610606.2949588535, -6287486.763792623, 827230.7718697439, 3349432.877352944}}, {{3498197.81693495, 4833165.559061878, 2234449.5231911456, 3867591.983769496}, {5278984.96116607, -2798512.200701845, -2211399.7153384583, 33494329.158408284}}, {{6320833.983680945, -6999.984355479206, -797903.6271294819, 7735183.9823354}, {-390035.68446349393, -5584900.177255948, -3040789.814780467, 0.044359486997177525}}, {{4266333.41772867, 4606685.445409489, 1080041.6365273518, 3867592.0700864717}, {356890.72771489987, 1136809.053212709, -6258588.866576485, 26795463.265809294}}, {{4266333.204506115, 4606685.540218764, 1080041.5936954806, 3867591.897018196}, {356890.8007120557, 1136808.9497242568, -6258588.899768077, 26795463.365730304}}, {{1824090.1118675405, 1318837.3514699321, 5960117.7705610385, 1933795.9110601672}, {3873198.583330483, 4557911.083457602, -2193951.0468033054, 23446030.547617782}}}; +// Airocean to Icosahedron (inverse) +constexpr double air_ico_trans[23][3][3] = {{{9.058433279771384e-08, 1.4731493732699052e-08, -0.9269301899999991}, {-9.44826679987233e-08, 1.1304527499839262e-07, -1.0974189099999994}, {-8.662754779110161e-08, -1.0789150406568015e-07, 4.077454709999999}}, {{1.5240780519329358e-07, 1.473149373269901e-08, -1.6442540899999978}, {-3.4333093302050216e-08, 1.1304527499839258e-07, -1.7953209499999985}, {-1.51633738709386e-08, -1.0789150406568015e-07, 3.248271909999998}}, {{1.525878853745444e-07, 1.504340175606161e-08, -1.6526118100000007}, {-1.0166102516109274e-08, 1.5490373090569122e-07, -2.9169376700000003}, {3.536121881520939e-08, -2.0380342501548998e-08, 0.9033697899999995}}, {{1.557252983599121e-07, 9.609243061078464e-09, -1.5798064100000002}, {-1.7245441994882394e-10, 1.375942246501773e-07, -2.6850295500000003}, {-1.96578129712955e-08, 7.491541593592458e-08, -0.37337721000000035}}, {{4.399688326690425e-08, 9.54233233151121e-08, -2.0080176699999996}, {-9.404803666461074e-08, 1.122924714451482e-07, -1.0873330499999996}, {-1.1771180391040664e-07, -5.405199315156007e-08, 3.3561273899999997}}, {{4.074817450170371e-08, -7.158726449003567e-08, 1.9642587099999982}, {-1.1897770528054373e-07, 7.061862589298568e-08, 0.3236332400000001}, {-9.391868744648748e-08, -1.2052012839388902e-07, 4.500442009999996}}, {{1.5046877525297362e-07, -5.046779687011883e-10, -1.2134956799999999}, {-4.0509505754953036e-08, -6.772840231043597e-08, 3.120257019999999}, {1.8840259480379495e-08, -1.4159603341569342e-07, 3.7568638499999985}}, {{1.55836594139745e-07, 8.792657069014762e-09, -1.52490368}, {1.4763566099823772e-08, 2.800736643244269e-08, -0.08634832999999958}, {1.1568102351290336e-08, -1.5419177904390005e-07, 4.178749899999998}}, {{9.134716490113195e-08, 1.504340175606163e-08, -1.2973306300000003}, {7.890345398644546e-09, 1.5490373090569127e-07, -3.021690130000001}, {1.2739806091251417e-07, -2.0380342501549028e-08, 0.3694283599999999}}, {{8.237047688665845e-08, 5.04677968701152e-10, -1.0017709799999996}, {-1.2064637664394705e-07, 6.772840231043599e-08, -0.8160591599999997}, {5.741414913322641e-08, 1.4159603341569342e-07, -1.937212839999999}}, {{1.504687752529736e-07, 5.046779687011514e-10, -1.3968356299999996}, {-4.0509505754953036e-08, 6.772840231043597e-08, -1.2809642399999992}, {1.8840259480379524e-08, 1.415960334156934e-07, -1.713430739999999}}, {{1.55836594139745e-07, -8.792657069014724e-09, -1.3345540299999996}, {1.4763566099823759e-08, -2.8007366432442684e-08, -0.6396431699999997}, {1.1568102351290311e-08, 1.5419177904390013e-07, -1.7978079499999997}}, {{1.0510891988020954e-07, -8.792657069014762e-09, -0.7459721899999996}, {1.1349411668458604e-07, -2.8007366432442694e-08, -1.7851916299999993}, {2.6608799545245027e-08, 1.541917790439001e-07, -1.9723217899999996}}, {{9.134716490113195e-08, -1.5043401756061595e-08, -0.5444247299999998}, {7.890345398644617e-09, -1.5490373090569122e-07, 0.29016699000000007}, {1.2739806091251412e-07, 2.038034250154901e-08, -2.2453721499999992}}, {{6.064058047097081e-08, 8.58140802540336e-08, -3.294437479999999}, {1.4427215125754238e-07, -2.530175320502907e-08, 0.7693199999999997}, {1.2045502760769865e-08, -1.2896740908748457e-07, 3.4155942999999986}}, {{3.2534318590648264e-08, -8.581408025403363e-08, 0.15470457999999998}, {-1.4514141392576755e-07, 2.530175320502908e-08, -0.2476383}, {5.01230094778404e-08, 1.289674090874846e-07, -1.7680179200000001}}, {{1.524078051932937e-07, -1.4731493732699067e-08, -1.25498709}, {-3.433309330205022e-08, -1.1304527499839266e-07, 0.49967191}, {-1.5163373870938614e-08, 1.0789150406568026e-07, -1.17748929}}, {{1.5258788537454444e-07, -1.50434017560616e-08, -1.25498709}, {-1.016610251610931e-08, -1.5490373090569122e-07, 0.49967191}, {3.536121881520941e-08, 2.0380342501549018e-08, -1.17748929}}, {{8.618449605826386e-08, 1.3005744286105568e-07, -4.776339219999996}, {1.1907386502737676e-07, -6.894646223375916e-08, 2.2311702599999985}, {5.5049746849940485e-08, -5.4481873383947436e-08, 0.9207512499999986}}, {{1.5572529749804938e-07, -9.609244553868475e-09, -1.29138978}, {-1.7245528181154292e-10, -1.3759422614296728e-07, 0.38371785999999997}, {-1.9657812971295542e-08, -7.491541593592457e-08, -0.53911579}}, {{1.0510892074207234e-07, 8.792655576224747e-09, -1.2306127199999985}, {1.1349411496086066e-07, 2.8007369418022736e-08, -0.6591226399999993}, {2.6608799545244997e-08, -1.5419177904390008e-07, 4.091492979999998}}, {{1.0510891815648413e-07, 8.79265706901476e-09, -1.2306127500000001}, {1.1349412013203696e-07, 2.8007366432442717e-08, -0.6591225800000001}, {2.6608799545245066e-08, -1.5419177904390005e-07, 4.091492979999997}}, {{4.4939794689710465e-08, 9.54233248079021e-08, -2.9126935899999995}, {3.249196924242356e-08, 1.1229246845956814e-07, -2.1653487399999993}, {1.4683839747935709e-07, -5.405199315156002e-08, 1.0461139699999995}}}; inline double det(const PJ_XYZ *u, const PJ_XYZ *v, const PJ_XYZ *w) { @@ -77,28 +102,28 @@ inline unsigned char get_dym_face_index(const PJ_XY *p) { inline PJ_XY ico_to_dym(const PJ_XYZ * p, unsigned char face_id) { return PJ_XY{ - ico_dym_trans[face_id][0][0] * p->x + - ico_dym_trans[face_id][0][1] * p->y + - ico_dym_trans[face_id][0][2] * p->z + - ico_dym_trans[face_id][0][3], - ico_dym_trans[face_id][1][0] * p->x + - ico_dym_trans[face_id][1][1] * p->y + - ico_dym_trans[face_id][1][2] * p->z + - ico_dym_trans[face_id][1][3], + ico_air_trans[face_id][0][0] * p->x + + ico_air_trans[face_id][0][1] * p->y + + ico_air_trans[face_id][0][2] * p->z + + ico_air_trans[face_id][0][3], + ico_air_trans[face_id][1][0] * p->x + + ico_air_trans[face_id][1][1] * p->y + + ico_air_trans[face_id][1][2] * p->z + + ico_air_trans[face_id][1][3], }; } inline PJ_XYZ dym_to_ico(const PJ_XY * p, unsigned char face_id) { return PJ_XYZ{ - dym_ico_trans[face_id][0][0] * p->x + - dym_ico_trans[face_id][0][1] * p->y + - dym_ico_trans[face_id][0][2], - dym_ico_trans[face_id][1][0] * p->x + - dym_ico_trans[face_id][1][1] * p->y + - dym_ico_trans[face_id][1][2], - dym_ico_trans[face_id][2][0] * p->x + - dym_ico_trans[face_id][2][1] * p->y + - dym_ico_trans[face_id][2][2], + air_ico_trans[face_id][0][0] * p->x + + air_ico_trans[face_id][0][1] * p->y + + air_ico_trans[face_id][0][2], + air_ico_trans[face_id][1][0] * p->x + + air_ico_trans[face_id][1][1] * p->y + + air_ico_trans[face_id][1][2], + air_ico_trans[face_id][2][0] * p->x + + air_ico_trans[face_id][2][1] * p->y + + air_ico_trans[face_id][2][2], }; } @@ -184,7 +209,7 @@ static PJ_LP airocean_inverse(PJ_XY xy, PJ *P) { PJ_XYZ sphereCoords = dym_to_ico(&xy, face_id); - double norm = sqrtl((sphereCoords.x * sphereCoords.x) + (sphereCoords.y * sphereCoords.y) + (sphereCoords.z * sphereCoords.z)); + double norm = sqrt((sphereCoords.x * sphereCoords.x) + (sphereCoords.y * sphereCoords.y) + (sphereCoords.z * sphereCoords.z)); double q = sphereCoords.x / norm; double r = sphereCoords.y / norm; double s = sphereCoords.z / norm; From 2839e8891d739f2dc903f4f2e5326e8b65f04293 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Fri, 1 Nov 2024 15:37:59 +0100 Subject: [PATCH 10/37] - Remove reference to Dymaxion Fuller. Fix typo. --- docs/source/operations/projections/airocean.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/operations/projections/airocean.rst b/docs/source/operations/projections/airocean.rst index 20c3e9682d..5daeb7b8a8 100644 --- a/docs/source/operations/projections/airocean.rst +++ b/docs/source/operations/projections/airocean.rst @@ -4,12 +4,12 @@ Airocean ******************************************************************************** -The Airocean map projection is based on the Dymaxion Fuller projection, which is a icosahedron polyhedral projection that intends +The Airocean map projection is a icosahedron polyhedral projection that intends to lay down continental landmasses into a contiguous map with minimal scale and angular distorsion while preserving land surfaces from (most) interruptions. In comparison to the Snyder's Icosahedral Equal Area, this projection relies on a specific way to orient and cut the icosahedron so that most interruptions lie within the ocean. The projection -was first invented by Buckminster Fuller in 1943 using a cubostahedron as basis. +was first invented by Buckminster Fuller in 1943 using a cuboctahedron as basis. The idea to use an icosahedron came later in 1954, and it wasn't until 1978 that the projection was formally mathematically defined :cite:`Gray1995`. From b0b4e2f9a87b3f9bdda8113cd4dd8c836c1f2658 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 1 Nov 2024 17:06:49 +0100 Subject: [PATCH 11/37] Update src/projections/airocean.cpp --- src/projections/airocean.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/projections/airocean.cpp b/src/projections/airocean.cpp index defddf793d..be825ee70f 100644 --- a/src/projections/airocean.cpp +++ b/src/projections/airocean.cpp @@ -131,6 +131,7 @@ inline PJ_XYZ cartesian_to_ico(const PJ_XYZ *p, unsigned char face_id) { const PJ_XYZ * center = &ico_centers[face_id]; const PJ_XYZ * normal = &ico_normals[face_id]; + // cppcheck-suppress unreadVariable double a = 1.0 - ( center->x * normal->x + center->y * normal->y + From cfc8cded1a0978ee7de0d72be5ee3bf978b16480 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Fri, 1 Nov 2024 21:16:34 +0100 Subject: [PATCH 12/37] - Fix spelling errors. Add legitimate words to spelling wordlist. --- docs/source/operations/projections/airocean.rst | 6 +++--- docs/source/spelling_wordlist.txt | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/docs/source/operations/projections/airocean.rst b/docs/source/operations/projections/airocean.rst index 5daeb7b8a8..1803680c51 100644 --- a/docs/source/operations/projections/airocean.rst +++ b/docs/source/operations/projections/airocean.rst @@ -6,7 +6,7 @@ Airocean The Airocean map projection is a icosahedron polyhedral projection that intends to lay down continental landmasses into a contiguous map with minimal scale and angular -distorsion while preserving land surfaces from (most) interruptions. +distortion while preserving land surfaces from (most) interruptions. In comparison to the Snyder's Icosahedral Equal Area, this projection relies on a specific way to orient and cut the icosahedron so that most interruptions lie within the ocean. The projection was first invented by Buckminster Fuller in 1943 using a cuboctahedron as basis. @@ -38,9 +38,9 @@ was formally mathematically defined :cite:`Gray1995`. proj-string: ``+proj=airocean`` .. note:: - The airocean map of the whole globe has an extent of approximatelly + The airocean map of the whole globe has an extent of approximately :math:`[0, 0, 17404000, 36844000]` in meters. Although the airocean map has no - true up or down, the choice was made to lay it out vertically, from Antartica to Australia. + true up or down, the choice was made to lay it out vertically, from Antarctica to Australia. Parameters diff --git a/docs/source/spelling_wordlist.txt b/docs/source/spelling_wordlist.txt index da7cfb7bf9..d759ed017c 100644 --- a/docs/source/spelling_wordlist.txt +++ b/docs/source/spelling_wordlist.txt @@ -4,6 +4,8 @@ adams advertized aea aeqd +airocean +Airocean affine Affine Agri @@ -105,6 +107,7 @@ Boucher boundcrs boundCRS Bregler +Buckminster brussels cadastral cadastre @@ -210,6 +213,7 @@ ctable CTable CTest ctx +cuboctahedron cURL customizability customizations From 03220f5f7e038a698f9d40e8e70783da188af083 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Fri, 1 Nov 2024 22:16:42 +0100 Subject: [PATCH 13/37] Update src/projections/airocean.cpp --- src/projections/airocean.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/projections/airocean.cpp b/src/projections/airocean.cpp index be825ee70f..da62bb43bc 100644 --- a/src/projections/airocean.cpp +++ b/src/projections/airocean.cpp @@ -202,6 +202,7 @@ static PJ_LP airocean_inverse(PJ_XY xy, PJ *P) { if (face_id == 23) { // Point lies outside icosahedron net faces + proj_errno_set(P, PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN); lp.lam = HUGE_VAL; lp.phi = HUGE_VAL; return lp; From 93d8ccca572f80e9d11b1de8eb69055d84833c62 Mon Sep 17 00:00:00 2001 From: Even Rouault Date: Sat, 2 Nov 2024 01:47:16 +0100 Subject: [PATCH 14/37] Update docs/source/operations/projections/airocean.rst --- docs/source/operations/projections/airocean.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/source/operations/projections/airocean.rst b/docs/source/operations/projections/airocean.rst index 1803680c51..605cafdc8f 100644 --- a/docs/source/operations/projections/airocean.rst +++ b/docs/source/operations/projections/airocean.rst @@ -4,6 +4,8 @@ Airocean ******************************************************************************** +.. versionadded:: 9.6.0 + The Airocean map projection is a icosahedron polyhedral projection that intends to lay down continental landmasses into a contiguous map with minimal scale and angular distortion while preserving land surfaces from (most) interruptions. From dea24179c449bfba58b6eeb052c29f7841a2c962 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Tue, 5 Nov 2024 19:58:21 +0100 Subject: [PATCH 15/37] - Add a test point that triggers an out of bounds error --- test/gie/builtins.gie | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie index d69239aee0..860634122d 100644 --- a/test/gie/builtins.gie +++ b/test/gie/builtins.gie @@ -1266,7 +1266,8 @@ accept 5200000 26800000 expect 123.33794956763194 6.861286881197438 accept 2600000 22300000 expect 147.63769509437498 15.818879769693432 - +accept 0 0 +expect failure =============================================================================== # Eckert I From 55aa072b8ef13f7c8b7bcd997ce779f040f3dabe Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 10 Nov 2024 15:39:18 +0100 Subject: [PATCH 16/37] - Add support for chosing between vertical and horizontal orientation. --- src/projections/airocean.cpp | 161 ++++++++++++++++++++++++++--------- 1 file changed, 122 insertions(+), 39 deletions(-) diff --git a/src/projections/airocean.cpp b/src/projections/airocean.cpp index da62bb43bc..ff749b0e09 100644 --- a/src/projections/airocean.cpp +++ b/src/projections/airocean.cpp @@ -21,7 +21,8 @@ namespace { // anonymous namespace const PJ_XYZ p2; const PJ_XYZ p3; }; -} // anonymous namespace +} + /* @@ -35,11 +36,11 @@ namespace { // anonymous namespace some faces are split in two (Australia) and 3 (Japan) subfaces. */ // Define the 23 faces and subfaces -constexpr pj_face ico_faces[23] = {{{0.42015243, 0.07814525, 0.90408255}, {0.51883673, 0.83542038, 0.18133184}, {0.99500944, -0.0913478, 0.04014718}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.41468223, 0.65596241, 0.63067581}, {0.51883673, 0.83542038, 0.18133184}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.51545596, -0.3817169, 0.76720099}, {-0.41468223, 0.65596241, 0.63067581}}, {{0.42015243, 0.07814525, 0.90408255}, {0.3557814, -0.84358, 0.40223423}, {-0.51545596, -0.3817169, 0.76720099}}, {{0.42015243, 0.07814525, 0.90408255}, {0.99500944, -0.0913478, 0.04014718}, {0.3557814, -0.84358, 0.40223423}}, {{0.99500944, -0.0913478, 0.04014718}, {0.51883673, 0.83542038, 0.18133184}, {0.51545596, 0.3817169, -0.76720099}}, {{0.51545596, 0.3817169, -0.76720099}, {0.51883673, 0.83542038, 0.18133184}, {-0.3557814, 0.84358, -0.40223423}}, {{-0.3557814, 0.84358, -0.40223423}, {0.51883673, 0.83542038, 0.18133184}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.99500944, 0.0913478, -0.04014718}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.51883673, -0.83542038, -0.18133184}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.51545596, -0.3817169, 0.76720099}, {0.3557814, -0.84358, 0.40223423}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.51883673, -0.83542038, -0.18133184}, {0.3557814, -0.84358, 0.40223423}, {0.41468223, -0.65596241, -0.63067581}}, {{0.41468223, -0.65596241, -0.63067581}, {0.3557814, -0.84358, 0.40223423}, {0.99500944, -0.0913478, 0.04014718}}, {{0.51545596, 0.3817169, -0.76720099}, {0.41468223, -0.65596241, -0.63067581}, {0.99500944, -0.0913478, 0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.3557814, 0.84358, -0.40223423}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.99500944, 0.0913478, -0.04014718}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.51883673, -0.83542038, -0.18133184}, {0.41468223, -0.65596241, -0.63067581}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.41468223, -0.65596241, -0.63067581}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.38796691, 0.38271738, -0.65315839}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.51545596, 0.3817169, -0.76720099}, {-0.38796691, 0.38271738, -0.65315839}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.3557814, 0.84358, -0.40223423}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.41468223, 0.65596241, 0.63067581}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.58849102, 0.53029673, 0.0627648}, {-0.41468223, 0.65596241, 0.63067581}}}; +constexpr pj_face base_ico_faces[23] = {{{0.42015243, 0.07814525, 0.90408255}, {0.51883673, 0.83542038, 0.18133184}, {0.99500944, -0.0913478, 0.04014718}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.41468223, 0.65596241, 0.63067581}, {0.51883673, 0.83542038, 0.18133184}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.51545596, -0.3817169, 0.76720099}, {-0.41468223, 0.65596241, 0.63067581}}, {{0.42015243, 0.07814525, 0.90408255}, {0.3557814, -0.84358, 0.40223423}, {-0.51545596, -0.3817169, 0.76720099}}, {{0.42015243, 0.07814525, 0.90408255}, {0.99500944, -0.0913478, 0.04014718}, {0.3557814, -0.84358, 0.40223423}}, {{0.99500944, -0.0913478, 0.04014718}, {0.51883673, 0.83542038, 0.18133184}, {0.51545596, 0.3817169, -0.76720099}}, {{0.51545596, 0.3817169, -0.76720099}, {0.51883673, 0.83542038, 0.18133184}, {-0.3557814, 0.84358, -0.40223423}}, {{-0.3557814, 0.84358, -0.40223423}, {0.51883673, 0.83542038, 0.18133184}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.99500944, 0.0913478, -0.04014718}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.51883673, -0.83542038, -0.18133184}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.51545596, -0.3817169, 0.76720099}, {0.3557814, -0.84358, 0.40223423}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.51883673, -0.83542038, -0.18133184}, {0.3557814, -0.84358, 0.40223423}, {0.41468223, -0.65596241, -0.63067581}}, {{0.41468223, -0.65596241, -0.63067581}, {0.3557814, -0.84358, 0.40223423}, {0.99500944, -0.0913478, 0.04014718}}, {{0.51545596, 0.3817169, -0.76720099}, {0.41468223, -0.65596241, -0.63067581}, {0.99500944, -0.0913478, 0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.3557814, 0.84358, -0.40223423}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.99500944, 0.0913478, -0.04014718}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.51883673, -0.83542038, -0.18133184}, {0.41468223, -0.65596241, -0.63067581}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.41468223, -0.65596241, -0.63067581}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.38796691, 0.38271738, -0.65315839}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.51545596, 0.3817169, -0.76720099}, {-0.38796691, 0.38271738, -0.65315839}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.3557814, 0.84358, -0.40223423}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.41468223, 0.65596241, 0.63067581}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.58849102, 0.53029673, 0.0627648}, {-0.41468223, 0.65596241, 0.63067581}}}; // Define the centers for each face or subface -constexpr PJ_XYZ ico_centers[23] = {{0.6446662, 0.27407261, 0.37518718999999995}, {0.1747689766666667, 0.5231760133333333, 0.5720300666666667}, {-0.16999525333333332, 0.11746358666666666, 0.7673197833333334}, {0.08682595666666666, -0.38238388333333334, 0.69117259}, {0.5903144233333334, -0.28559418333333336, 0.44882131999999997}, {0.6764340433333333, 0.37526316, -0.18190732333333334}, {0.22617043, 0.68690576, -0.3293677933333333}, {-0.08387563333333335, 0.77832093, 0.13659113999999997}, {-0.6417158766666667, 0.12186443666666665, 0.45257653999999997}, {-0.6764340433333333, -0.37526316, 0.18190732333333334}, {-0.22617043, -0.68690576, 0.3293677933333333}, {0.08387563333333335, -0.77832093, -0.13659113999999997}, {0.5884910233333334, -0.5302967366666668, -0.06276479999999997}, {0.6417158766666667, -0.12186443666666665, -0.45257653999999997}, {-0.5903144233333334, 0.28559418333333336, -0.44882131999999997}, {-0.6446662, -0.27407261, -0.37518718999999995}, {-0.1747689766666667, -0.5231760133333333, -0.5720300666666667}, {0.16999525333333332, -0.11746358666666668, -0.7673197833333334}, {-0.07609744999999997, 0.5360047600000001, -0.6075312033333334}, {-0.09755446, 0.22876301, -0.7748139766666666}, {-0.6464272866666667, 0.48840817666666664, -0.12653887}, {-0.45298488333333337, 0.6766130466666667, 0.0970687933333333}, {-0.6660608966666667, 0.42586898, 0.21776447666666665}}; +constexpr PJ_XYZ base_ico_centers[23] = {{0.6446662, 0.27407261, 0.37518718999999995}, {0.1747689766666667, 0.5231760133333333, 0.5720300666666667}, {-0.16999525333333332, 0.11746358666666666, 0.7673197833333334}, {0.08682595666666666, -0.38238388333333334, 0.69117259}, {0.5903144233333334, -0.28559418333333336, 0.44882131999999997}, {0.6764340433333333, 0.37526316, -0.18190732333333334}, {0.22617043, 0.68690576, -0.3293677933333333}, {-0.08387563333333335, 0.77832093, 0.13659113999999997}, {-0.6417158766666667, 0.12186443666666665, 0.45257653999999997}, {-0.6764340433333333, -0.37526316, 0.18190732333333334}, {-0.22617043, -0.68690576, 0.3293677933333333}, {0.08387563333333335, -0.77832093, -0.13659113999999997}, {0.5884910233333334, -0.5302967366666668, -0.06276479999999997}, {0.6417158766666667, -0.12186443666666665, -0.45257653999999997}, {-0.5903144233333334, 0.28559418333333336, -0.44882131999999997}, {-0.6446662, -0.27407261, -0.37518718999999995}, {-0.1747689766666667, -0.5231760133333333, -0.5720300666666667}, {0.16999525333333332, -0.11746358666666668, -0.7673197833333334}, {-0.07609744999999997, 0.5360047600000001, -0.6075312033333334}, {-0.09755446, 0.22876301, -0.7748139766666666}, {-0.6464272866666667, 0.48840817666666664, -0.12653887}, {-0.45298488333333337, 0.6766130466666667, 0.0970687933333333}, {-0.6660608966666667, 0.42586898, 0.21776447666666665}}; // Define the normals for each face and subface -constexpr PJ_XYZ ico_normals[23] = {{0.8112534716456183, 0.3448953244235397, 0.4721387719026189}, {0.21993078167242514, 0.6583691769191125, 0.7198475381327677}, {-0.21392348218574597, 0.1478171768398566, 0.9656017947376752}, {0.10926252593733311, -0.48119515565604315, 0.8697775132750616}, {0.7428567271237952, -0.3593941714860216, 0.5648005953155497}, {0.8512303999921011, 0.4722343774266651, -0.22891373682183738}, {0.28461480749719364, 0.8644080979012073, -0.4144792535654255}, {-0.1055498134715015, 0.9794457311974099, 0.17188745304792394}, {-0.80754076069938, 0.15335524153301364, 0.5695261975567215}, {-0.8512303999921011, -0.4722343774266651, 0.22891373682183735}, {-0.28461480749719364, -0.8644080979012073, 0.4144792535654255}, {0.10554981347150154, -0.97944573119741, -0.17188745304792397}, {0.7405621455042509, -0.6673299596621295, -0.07898375518726185}, {0.80754076069938, -0.15335524153301364, -0.5695261975567215}, {-0.7428567271237952, 0.3593941714860216, -0.5648005953155497}, {-0.8112534716456183, -0.3448953244235397, -0.4721387719026189}, {-0.21993078167242514, -0.6583691769191125, -0.7198475381327677}, {0.21392348218574597, -0.1478171768398566, -0.9656017947376752}, {-0.1092625236946045, 0.48119515875463253, -0.8697775118425345}, {-0.10926252412771359, 0.4811951525529661, -0.8697775152191327}, {-0.7405621389792739, 0.6673299643797594, 0.07898377650727696}, {-0.7405621607654073, 0.6673299431834946, 0.07898375132383098}, {-0.7405621367680706, 0.6673299714231342, 0.07898373773067752}}; +constexpr PJ_XYZ base_ico_normals[23] = {{0.8112534716456183, 0.3448953244235397, 0.4721387719026189}, {0.21993078167242514, 0.6583691769191125, 0.7198475381327677}, {-0.21392348218574597, 0.1478171768398566, 0.9656017947376752}, {0.10926252593733311, -0.48119515565604315, 0.8697775132750616}, {0.7428567271237952, -0.3593941714860216, 0.5648005953155497}, {0.8512303999921011, 0.4722343774266651, -0.22891373682183738}, {0.28461480749719364, 0.8644080979012073, -0.4144792535654255}, {-0.1055498134715015, 0.9794457311974099, 0.17188745304792394}, {-0.80754076069938, 0.15335524153301364, 0.5695261975567215}, {-0.8512303999921011, -0.4722343774266651, 0.22891373682183735}, {-0.28461480749719364, -0.8644080979012073, 0.4144792535654255}, {0.10554981347150154, -0.97944573119741, -0.17188745304792397}, {0.7405621455042509, -0.6673299596621295, -0.07898375518726185}, {0.80754076069938, -0.15335524153301364, -0.5695261975567215}, {-0.7428567271237952, 0.3593941714860216, -0.5648005953155497}, {-0.8112534716456183, -0.3448953244235397, -0.4721387719026189}, {-0.21993078167242514, -0.6583691769191125, -0.7198475381327677}, {0.21392348218574597, -0.1478171768398566, -0.9656017947376752}, {-0.1092625236946045, 0.48119515875463253, -0.8697775118425345}, {-0.10926252412771359, 0.4811951525529661, -0.8697775152191327}, {-0.7405621389792739, 0.6673299643797594, 0.07898377650727696}, {-0.7405621607654073, 0.6673299431834946, 0.07898375132383098}, {-0.7405621367680706, 0.6673299714231342, 0.07898373773067752}}; /* The points of the Airocean projection map are deduced from the unfolded net @@ -47,7 +48,7 @@ constexpr PJ_XYZ ico_normals[23] = {{0.8112534716456183, 0.3448953244235397, 0.4 The distances in the projected 2d space are expressed in meter. */ // Define the 23 unfolded surfaces used (from icosahedron + split faces) -constexpr pj_face airocean_faces[23] = {{{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {17404163.95758659, 23446030.407177, 1.0}, {17404163.95758659, 16747164.576555002, 1.0}}, {{17404163.95758659, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 30144896.237799004, 1.0}}, {{11602775.971724393, 33494329.153110005, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {0.0, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {0.0, 13397731.661244001, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {17404163.95758659, 10048298.745933, 1.0}}, {{11602775.971724393, 0.0, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {17404163.95758659, 3349432.9153110003, 1.0}}, {{0.0, 33494329.153110005, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {0.0, 26795463.322488002, 1.0}}, {{0.0, 6698865.830622001, 1.0}, {0.0, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 0.0, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {2900693.992931098, 31819612.695454504, 1.0}, {5801387.985862196, 36843762.068421006, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 0.0, 1.0}, {5801387.985862196, 0.0, 1.0}}, {{0.0, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{0.0, 20096597.491866, 1.0}, {1933795.9952873988, 23446030.407177, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}}; +constexpr pj_face base_airocean_faces[23] = {{{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {17404163.95758659, 23446030.407177, 1.0}, {17404163.95758659, 16747164.576555002, 1.0}}, {{17404163.95758659, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 30144896.237799004, 1.0}}, {{11602775.971724393, 33494329.153110005, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {0.0, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {0.0, 13397731.661244001, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {17404163.95758659, 10048298.745933, 1.0}}, {{11602775.971724393, 0.0, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {17404163.95758659, 3349432.9153110003, 1.0}}, {{0.0, 33494329.153110005, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {0.0, 26795463.322488002, 1.0}}, {{0.0, 6698865.830622001, 1.0}, {0.0, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 0.0, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {2900693.992931098, 31819612.695454504, 1.0}, {5801387.985862196, 36843762.068421006, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 0.0, 1.0}, {5801387.985862196, 0.0, 1.0}}, {{0.0, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{0.0, 20096597.491866, 1.0}, {1933795.9952873988, 23446030.407177, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}}; /* The parameters here are extracted from the transition matrices @@ -57,9 +58,62 @@ constexpr pj_face airocean_faces[23] = {{{11602775.971724393, 20096597.491866, 1 the irrelevant ones has been discarded. */ // Icosahedron to Airocean (forward) -constexpr double ico_air_trans[23][2][4] = {{{3676785.549175448, -3835017.5266620647, -3516181.101897219, 13536571.968889877}, {597946.080039791, 4588467.120428165, -4379277.476119764, 23446030.430853583}}, {{6186178.005526091, -1393567.8850913076, -615475.9158875226, 9668979.99656166}, {597946.0790283178, 4588467.148836121, -4379277.446492919, 23446030.4022735}}, {{6193487.416382644, -412638.42193403625, 1435299.1565727487, 7735183.994711302}, {610606.2949588482, 6287486.763792622, -827230.771869741, 20096597.453907937}}, {{6320833.951539666, -6999.925417495968, -797903.6054442794, 9668979.964544488}, {390035.65785509185, 5584900.2162612835, 3040789.86561249, 16747164.583089648}}, {{1785817.7160921493, -3817376.067203325, -4777879.901545344, 15470367.97086971}, {3873198.4648612146, 4557911.12782605, -2193951.0189847522, 20096597.472239383}}, {{1653953.7567438218, -4829262.323420258, -3812125.829251187, 15470367.969285296}, {-2905701.3326818133, 2866384.6227320307, -4891868.725058803, 26795463.326497696}}, {{6107473.604777472, -1644266.325782215, 764719.3302896866, 9668979.973521523}, {-20484.65208776388, -2749071.5526177026, -5747332.168284684, 30144896.23069373}}, {{6325351.398413758, 599247.844237452, 469545.1345954169, 7735183.991104206}, {356890.77665911405, 1136808.9376555325, -6258588.903331836, 26795463.365920186}}, {{3707748.6155441254, 320266.3046413801, 5171041.531732354, 3867591.9864321505}, {610606.2818745336, 6287486.766371998, -827230.7619227654, 20096597.44051682}}, {{3343388.0482846545, -4896993.062013145, 2330419.6732539237, 3867591.9905542377}, {20484.69631605078, 2749071.5422549895, 5747332.173083752, 13397731.669298988}}, {{6107473.604777474, -1644266.3257822143, 764719.330289686, 7735183.984065069}, {20484.65208776346, 2749071.552617706, 5747332.168284684, 13397731.654138729}}, {{6325351.398413757, 599247.8442374519, 469545.1345954159, 9668979.966482382}, {-356890.77665911167, -1136808.9376555379, 6258588.903331836, 10048298.789365184}}, {{4266333.348411551, 4606685.482609389, 1080041.5914374113, 13536571.961679665}, {-356890.81480763154, -1136808.9649443403, 6258588.896199714, 10048298.78278621}}, {{3707748.6155441264, 320266.30464138015, 5171041.531732352, 13536571.97115444}, {-610606.2818745337, -6287486.766372, 827230.7619227694, 3349432.8639618154}}, {{2461379.4064226267, 5855954.858490806, 488922.63367311924, 1933796.0165698116}, {3483162.7410947136, -1026989.0860837825, -5234740.880461738, 30144896.24019003}}, {{1320556.279179943, -5891237.854051452, 2034474.9935921053, 1933796.0148528814}, {-3483162.72987335, 1026989.0418338334, 5234740.896609632, 10048298.759397767}}, {{6186178.005526091, -1393567.885091309, -615475.9158875229, 7735183.961024929}, {-597946.0790283154, -4588467.148836119, 4379277.446492919, 6698865.825718503}}, {{6193487.416382645, -412638.4219340361, 1435299.156572748, 9668979.962875288}, {-610606.2949588535, -6287486.763792623, 827230.7718697439, 3349432.877352944}}, {{3498197.81693495, 4833165.559061878, 2234449.5231911456, 3867591.983769496}, {5278984.96116607, -2798512.200701845, -2211399.7153384583, 33494329.158408284}}, {{6320833.983680945, -6999.984355479206, -797903.6271294819, 7735183.9823354}, {-390035.68446349393, -5584900.177255948, -3040789.814780467, 0.044359486997177525}}, {{4266333.41772867, 4606685.445409489, 1080041.6365273518, 3867592.0700864717}, {356890.72771489987, 1136809.053212709, -6258588.866576485, 26795463.265809294}}, {{4266333.204506115, 4606685.540218764, 1080041.5936954806, 3867591.897018196}, {356890.8007120557, 1136808.9497242568, -6258588.899768077, 26795463.365730304}}, {{1824090.1118675405, 1318837.3514699321, 5960117.7705610385, 1933795.9110601672}, {3873198.583330483, 4557911.083457602, -2193951.0468033054, 23446030.547617782}}}; +constexpr double base_ico_air_trans[23][4][4] = {{{3676785.549175448, -3835017.5266620647, -3516181.101897219, 13536571.968889877}, {597946.080039791, 4588467.120428165, -4379277.476119764, 23446030.430853583}, {0.8112534716456183, 0.3448953244235397, 0.4721387719026189, -0.7946544736643394}, {0.0, 0.0, 0.0, 0.9999999999999999}}, {{6186178.005526091, -1393567.8850913076, -615475.9158875226, 9668979.99656166}, {597946.0790283178, 4588467.148836121, -4379277.446492919, 23446030.4022735}, {0.2199307816724251, 0.6583691769191125, 0.7198475381327677, -0.794654474160402}, {2.7755575615628914e-17, 0.0, 0.0, 1.0}}, {{6193487.416382644, -412638.42193403625, 1435299.1565727487, 7735183.994711302}, {610606.2949588482, 6287486.763792622, -827230.771869741, 20096597.453907937}, {-0.213923482185746, 0.14781717683985665, 0.9656017947376753, -0.7946544722350559}, {-1.3877787807814457e-16, 2.7755575615628914e-17, 0.0, 1.0}}, {{6320833.951539666, -6999.925417495968, -797903.6054442794, 9668979.964544488}, {390035.65785509185, 5584900.2162612835, 3040789.86561249, 16747164.583089648}, {0.1092625259373331, -0.48119515565604315, 0.8697775132750618, -0.794654472177355}, {1.1102230246251565e-16, 5.551115123125783e-17, 0.0, 1.0}}, {{1785817.7160921493, -3817376.067203325, -4777879.901545344, 15470367.97086971}, {3873198.4648612146, 4557911.12782605, -2193951.0189847522, 20096597.472239383}, {0.7428567271237952, -0.3593941714860217, 0.5648005953155497, -0.7946544741179917}, {0.0, 0.0, 0.0, 1.0000000000000002}}, {{1653953.7567438218, -4829262.323420258, -3812125.829251187, 15470367.969285296}, {-2905701.3326818133, 2866384.6227320307, -4891868.725058803, 26795463.326497696}, {0.8512303999921013, 0.4722343774266651, -0.22891373682183747, -0.7946544711481622}, {0.0, -5.551115123125783e-17, 1.1102230246251565e-16, 1.0}}, {{6107473.604777472, -1644266.325782215, 764719.3302896866, 9668979.973521523}, {-20484.65208776388, -2749071.5526177026, -5747332.168284684, 30144896.23069373}, {0.2846148074971938, 0.8644080979012073, -0.41447925356542553, -0.7946544719642821}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{6325351.398413758, 599247.844237452, 469545.1345954169, 7735183.991104206}, {356890.77665911405, 1136808.9376555325, -6258588.903331836, 26795463.365920186}, {-0.10554981347150151, 0.97944573119741, 0.17188745304792394, -0.794654473006748}, {-1.3877787807814457e-17, 0.0, 8.326672684688674e-17, 1.0}}, {{3707748.6155441254, 320266.3046413801, 5171041.531732354, 3867591.9864321505}, {610606.2818745336, 6287486.766371998, -827230.7619227654, 20096597.44051682}, {-0.8075407606993799, 0.15335524153301364, 0.5695261975567214, -0.7946544732451482}, {0.0, -8.326672684688674e-17, 0.0, 1.0}}, {{3343388.0482846545, -4896993.062013145, 2330419.6732539237, 3867591.9905542377}, {20484.69631605078, 2749071.5422549895, 5747332.173083752, 13397731.669298988}, {-0.8512303999921013, -0.4722343774266651, 0.22891373682183733, -0.7946544711481622}, {1.1102230246251565e-16, 0.0, -2.7755575615628914e-17, 1.0}}, {{6107473.604777474, -1644266.3257822143, 764719.330289686, 7735183.984065069}, {20484.65208776346, 2749071.552617706, 5747332.168284684, 13397731.654138729}, {-0.28461480749719376, -0.8644080979012073, 0.41447925356542553, -0.7946544719642822}, {-5.551115123125783e-17, 0.0, -5.551115123125783e-17, 1.0}}, {{6325351.398413757, 599247.8442374519, 469545.1345954159, 9668979.966482382}, {-356890.77665911167, -1136808.9376555379, 6258588.903331836, 10048298.789365184}, {0.10554981347150151, -0.97944573119741, -0.17188745304792394, -0.794654473006748}, {1.249000902703301e-16, 0.0, -8.326672684688674e-17, 1.0}}, {{4266333.348411551, 4606685.482609389, 1080041.5914374113, 13536571.961679665}, {-356890.81480763154, -1136808.9649443403, 6258588.896199714, 10048298.78278621}, {0.7405621455042507, -0.6673299596621294, -0.07898375518726183, -0.7946544743360283}, {1.1102230246251565e-16, 0.0, 5.551115123125783e-17, 0.9999999999999999}}, {{3707748.6155441264, 320266.30464138015, 5171041.531732352, 13536571.97115444}, {-610606.2818745337, -6287486.766372, 827230.7619227694, 3349432.8639618154}, {0.8075407606993799, -0.15335524153301364, -0.5695261975567214, -0.7946544732451483}, {-1.1102230246251565e-16, -2.7755575615628914e-17, 0.0, 1.0}}, {{2461379.4064226267, 5855954.858490806, 488922.63367311924, 1933796.0165698116}, {3483162.7410947136, -1026989.0860837825, -5234740.880461738, 30144896.24019003}, {-0.7428567271237954, 0.35939417148602165, -0.5648005953155498, -0.7946544741179918}, {-1.1102230246251565e-16, 5.551115123125783e-17, 0.0, 1.0}}, {{1320556.279179943, -5891237.854051452, 2034474.9935921053, 1933796.0148528814}, {-3483162.72987335, 1026989.0418338334, 5234740.896609632, 10048298.759397767}, {-0.8112534716456183, -0.34489532442353976, -0.4721387719026189, -0.7946544736643393}, {0.0, 1.1102230246251565e-16, 0.0, 1.0}}, {{6186178.005526091, -1393567.885091309, -615475.9158875229, 7735183.961024929}, {-597946.0790283154, -4588467.148836119, 4379277.446492919, 6698865.825718503}, {-0.21993078167242508, -0.6583691769191125, -0.7198475381327677, -0.794654474160402}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{6193487.416382645, -412638.4219340361, 1435299.156572748, 9668979.962875288}, {-610606.2949588535, -6287486.763792623, 827230.7718697439, 3349432.877352944}, {0.21392348218574594, -0.14781717683985665, -0.965601794737675, -0.7946544722350558}, {-1.3877787807814457e-16, -2.7755575615628914e-17, 0.0, 1.0}}, {{3498197.81693495, 4833165.559061878, 2234449.5231911456, 3867591.983769496}, {5278984.96116607, -2798512.200701845, -2211399.7153384583, 33494329.158408284}, {-0.10926252369460446, 0.4811951587546325, -0.8697775118425342, -0.7946544734171301}, {8.326672684688674e-17, 0.0, 0.0, 0.9999999999999998}}, {{6320833.983680945, -6999.984355479206, -797903.6271294819, 7735183.9823354}, {-390035.68446349393, -5584900.177255948, -3040789.814780467, 0.044359486997177525}, {-0.10926252412771358, 0.48119515255296597, -0.8697775152191325, -0.79465447341713}, {-4.163336342344337e-17, -1.1102230246251565e-16, 0.0, 0.9999999999999999}}, {{4266333.41772867, 4606685.445409489, 1080041.6365273518, 3867592.0700864717}, {356890.72771489987, 1136809.053212709, -6258588.866576485, 26795463.265809294}, {-0.7405621389792741, 0.6673299643797597, 0.07898377650727716, -0.7946544674186218}, {1.1102230246251565e-16, 0.0, -1.3877787807814457e-17, 1.0}}, {{4266333.204506115, 4606685.540218764, 1080041.5936954806, 3867591.897018196}, {356890.8007120557, 1136808.9497242568, -6258588.899768077, 26795463.365730304}, {-0.7405621607654075, 0.6673299431834948, 0.07898375132383098, -0.7946544674186217}, {1.1102230246251565e-16, -1.1102230246251565e-16, 2.7755575615628914e-17, 0.9999999999999999}}, {{1824090.1118675405, 1318837.3514699321, 5960117.7705610385, 1933795.9110601672}, {3873198.583330483, 4557911.083457602, -2193951.0468033054, 23446030.547617782}, {-0.7405621367680707, 0.667329971423134, 0.07898373773067754, -0.7946544674186213}, {0.0, 0.0, 8.326672684688674e-17, 1.0}}}; // Airocean to Icosahedron (inverse) -constexpr double air_ico_trans[23][3][3] = {{{9.058433279771384e-08, 1.4731493732699052e-08, -0.9269301899999991}, {-9.44826679987233e-08, 1.1304527499839262e-07, -1.0974189099999994}, {-8.662754779110161e-08, -1.0789150406568015e-07, 4.077454709999999}}, {{1.5240780519329358e-07, 1.473149373269901e-08, -1.6442540899999978}, {-3.4333093302050216e-08, 1.1304527499839258e-07, -1.7953209499999985}, {-1.51633738709386e-08, -1.0789150406568015e-07, 3.248271909999998}}, {{1.525878853745444e-07, 1.504340175606161e-08, -1.6526118100000007}, {-1.0166102516109274e-08, 1.5490373090569122e-07, -2.9169376700000003}, {3.536121881520939e-08, -2.0380342501548998e-08, 0.9033697899999995}}, {{1.557252983599121e-07, 9.609243061078464e-09, -1.5798064100000002}, {-1.7245441994882394e-10, 1.375942246501773e-07, -2.6850295500000003}, {-1.96578129712955e-08, 7.491541593592458e-08, -0.37337721000000035}}, {{4.399688326690425e-08, 9.54233233151121e-08, -2.0080176699999996}, {-9.404803666461074e-08, 1.122924714451482e-07, -1.0873330499999996}, {-1.1771180391040664e-07, -5.405199315156007e-08, 3.3561273899999997}}, {{4.074817450170371e-08, -7.158726449003567e-08, 1.9642587099999982}, {-1.1897770528054373e-07, 7.061862589298568e-08, 0.3236332400000001}, {-9.391868744648748e-08, -1.2052012839388902e-07, 4.500442009999996}}, {{1.5046877525297362e-07, -5.046779687011883e-10, -1.2134956799999999}, {-4.0509505754953036e-08, -6.772840231043597e-08, 3.120257019999999}, {1.8840259480379495e-08, -1.4159603341569342e-07, 3.7568638499999985}}, {{1.55836594139745e-07, 8.792657069014762e-09, -1.52490368}, {1.4763566099823772e-08, 2.800736643244269e-08, -0.08634832999999958}, {1.1568102351290336e-08, -1.5419177904390005e-07, 4.178749899999998}}, {{9.134716490113195e-08, 1.504340175606163e-08, -1.2973306300000003}, {7.890345398644546e-09, 1.5490373090569127e-07, -3.021690130000001}, {1.2739806091251417e-07, -2.0380342501549028e-08, 0.3694283599999999}}, {{8.237047688665845e-08, 5.04677968701152e-10, -1.0017709799999996}, {-1.2064637664394705e-07, 6.772840231043599e-08, -0.8160591599999997}, {5.741414913322641e-08, 1.4159603341569342e-07, -1.937212839999999}}, {{1.504687752529736e-07, 5.046779687011514e-10, -1.3968356299999996}, {-4.0509505754953036e-08, 6.772840231043597e-08, -1.2809642399999992}, {1.8840259480379524e-08, 1.415960334156934e-07, -1.713430739999999}}, {{1.55836594139745e-07, -8.792657069014724e-09, -1.3345540299999996}, {1.4763566099823759e-08, -2.8007366432442684e-08, -0.6396431699999997}, {1.1568102351290311e-08, 1.5419177904390013e-07, -1.7978079499999997}}, {{1.0510891988020954e-07, -8.792657069014762e-09, -0.7459721899999996}, {1.1349411668458604e-07, -2.8007366432442694e-08, -1.7851916299999993}, {2.6608799545245027e-08, 1.541917790439001e-07, -1.9723217899999996}}, {{9.134716490113195e-08, -1.5043401756061595e-08, -0.5444247299999998}, {7.890345398644617e-09, -1.5490373090569122e-07, 0.29016699000000007}, {1.2739806091251412e-07, 2.038034250154901e-08, -2.2453721499999992}}, {{6.064058047097081e-08, 8.58140802540336e-08, -3.294437479999999}, {1.4427215125754238e-07, -2.530175320502907e-08, 0.7693199999999997}, {1.2045502760769865e-08, -1.2896740908748457e-07, 3.4155942999999986}}, {{3.2534318590648264e-08, -8.581408025403363e-08, 0.15470457999999998}, {-1.4514141392576755e-07, 2.530175320502908e-08, -0.2476383}, {5.01230094778404e-08, 1.289674090874846e-07, -1.7680179200000001}}, {{1.524078051932937e-07, -1.4731493732699067e-08, -1.25498709}, {-3.433309330205022e-08, -1.1304527499839266e-07, 0.49967191}, {-1.5163373870938614e-08, 1.0789150406568026e-07, -1.17748929}}, {{1.5258788537454444e-07, -1.50434017560616e-08, -1.25498709}, {-1.016610251610931e-08, -1.5490373090569122e-07, 0.49967191}, {3.536121881520941e-08, 2.0380342501549018e-08, -1.17748929}}, {{8.618449605826386e-08, 1.3005744286105568e-07, -4.776339219999996}, {1.1907386502737676e-07, -6.894646223375916e-08, 2.2311702599999985}, {5.5049746849940485e-08, -5.4481873383947436e-08, 0.9207512499999986}}, {{1.5572529749804938e-07, -9.609244553868475e-09, -1.29138978}, {-1.7245528181154292e-10, -1.3759422614296728e-07, 0.38371785999999997}, {-1.9657812971295542e-08, -7.491541593592457e-08, -0.53911579}}, {{1.0510892074207234e-07, 8.792655576224747e-09, -1.2306127199999985}, {1.1349411496086066e-07, 2.8007369418022736e-08, -0.6591226399999993}, {2.6608799545244997e-08, -1.5419177904390008e-07, 4.091492979999998}}, {{1.0510891815648413e-07, 8.79265706901476e-09, -1.2306127500000001}, {1.1349412013203696e-07, 2.8007366432442717e-08, -0.6591225800000001}, {2.6608799545245066e-08, -1.5419177904390005e-07, 4.091492979999997}}, {{4.4939794689710465e-08, 9.54233248079021e-08, -2.9126935899999995}, {3.249196924242356e-08, 1.1229246845956814e-07, -2.1653487399999993}, {1.4683839747935709e-07, -5.405199315156002e-08, 1.0461139699999995}}}; +constexpr double base_air_ico_trans[23][4][4] = {{{9.058433279771384e-08, 1.4731493732699052e-08, 0.8112534716456185, -0.9269301899999991}, {-9.44826679987233e-08, 1.1304527499839262e-07, 0.34489532442353965, -1.0974189099999994}, {-8.662754779110161e-08, -1.0789150406568015e-07, 0.47213877190261877, 4.077454709999999}, {0.0, 2.646977960169691e-23, 0.0, 1.0}}, {{1.5240780519329358e-07, 1.473149373269901e-08, 0.219930781672425, -1.6442540899999978}, {-3.4333093302050216e-08, 1.1304527499839258e-07, 0.6583691769191122, -1.7953209499999985}, {-1.51633738709386e-08, -1.0789150406568015e-07, 0.719847538132768, 3.248271909999998}, {-1.3234889800848443e-23, 2.6469779601696886e-23, 0.0, 1.0}}, {{1.525878853745444e-07, 1.504340175606161e-08, -0.21392348218574625, -1.6526118100000007}, {-1.0166102516109274e-08, 1.5490373090569122e-07, 0.14781717683985585, -2.9169376700000003}, {3.536121881520939e-08, -2.0380342501548998e-08, 0.9656017947376755, 0.9033697899999995}, {-1.3234889800848443e-23, 2.6469779601696886e-23, 2.220446049250313e-16, 1.0}}, {{1.557252983599121e-07, 9.609243061078464e-09, 0.10926252593733309, -1.5798064100000002}, {-1.7245441994882394e-10, 1.375942246501773e-07, -0.48119515565604315, -2.6850295500000003}, {-1.96578129712955e-08, 7.491541593592458e-08, 0.8697775132750615, -0.37337721000000035}, {2.6469779601696886e-23, 1.3234889800848443e-23, 0.0, 1.0}}, {{4.399688326690425e-08, 9.54233233151121e-08, 0.7428567271237949, -2.0080176699999996}, {-9.404803666461074e-08, 1.122924714451482e-07, -0.35939417148602176, -1.0873330499999996}, {-1.1771180391040664e-07, -5.405199315156007e-08, 0.5648005953155502, 3.3561273899999997}, {0.0, 0.0, 0.0, 1.0}}, {{4.074817450170371e-08, -7.158726449003567e-08, 0.8512303999921009, 1.9642587099999982}, {-1.1897770528054373e-07, 7.061862589298568e-08, 0.4722343774266655, 0.3236332400000001}, {-9.391868744648748e-08, -1.2052012839388902e-07, -0.22891373682183766, 4.500442009999996}, {1.3234889800848443e-23, 2.6469779601696886e-23, 0.0, 0.9999999999999991}}, {{1.5046877525297362e-07, -5.046779687011883e-10, 0.2846148074971936, -1.2134956799999999}, {-4.0509505754953036e-08, -6.772840231043597e-08, 0.8644080979012075, 3.120257019999999}, {1.8840259480379495e-08, -1.4159603341569342e-07, -0.4144792535654251, 3.7568638499999985}, {0.0, -1.1754943508222875e-38, 0.0, 1.0}}, {{1.55836594139745e-07, 8.792657069014762e-09, -0.1055498134715016, -1.52490368}, {1.4763566099823772e-08, 2.800736643244269e-08, 0.97944573119741, -0.08634832999999958}, {1.1568102351290336e-08, -1.5419177904390005e-07, 0.17188745304792347, 4.178749899999998}, {1.3234889800848443e-23, 0.0, 0.0, 1.0}}, {{9.134716490113195e-08, 1.504340175606163e-08, -0.80754076069938, -1.2973306300000003}, {7.890345398644546e-09, 1.5490373090569127e-07, 0.15335524153301333, -3.021690130000001}, {1.2739806091251417e-07, -2.0380342501549028e-08, 0.5695261975567216, 0.3694283599999999}, {1.3234889800848443e-23, -2.6469779601696886e-23, 0.0, 1.0}}, {{8.237047688665845e-08, 5.04677968701152e-10, -0.8512303999921011, -1.0017709799999996}, {-1.2064637664394705e-07, 6.772840231043599e-08, -0.472234377426665, -0.8160591599999997}, {5.741414913322641e-08, 1.4159603341569342e-07, 0.2289137368218376, -1.937212839999999}, {-2.6469779601696886e-23, 1.323488980084844e-23, 0.0, 1.0}}, {{1.504687752529736e-07, 5.046779687011514e-10, -0.2846148074971936, -1.3968356299999996}, {-4.0509505754953036e-08, 6.772840231043597e-08, -0.8644080979012072, -1.2809642399999992}, {1.8840259480379524e-08, 1.415960334156934e-07, 0.41447925356542575, -1.713430739999999}, {1.3234889800848443e-23, 0.0, 0.0, 0.9999999999999998}}, {{1.55836594139745e-07, -8.792657069014724e-09, 0.10554981347150141, -1.3345540299999996}, {1.4763566099823759e-08, -2.8007366432442684e-08, -0.97944573119741, -0.6396431699999997}, {1.1568102351290311e-08, 1.5419177904390013e-07, -0.17188745304792416, -1.7978079499999997}, {0.0, -2.6469779601696886e-23, 0.0, 0.9999999999999998}}, {{1.0510891988020954e-07, -8.792657069014762e-09, 0.740562145504251, -0.7459721899999996}, {1.1349411668458604e-07, -2.8007366432442694e-08, -0.6673299596621296, -1.7851916299999993}, {2.6608799545245027e-08, 1.541917790439001e-07, -0.07898375518726153, -1.9723217899999996}, {0.0, 0.0, 0.0, 1.0}}, {{9.134716490113195e-08, -1.5043401756061595e-08, 0.80754076069938, -0.5444247299999998}, {7.890345398644617e-09, -1.5490373090569122e-07, -0.15335524153301372, 0.29016699000000007}, {1.2739806091251412e-07, 2.038034250154901e-08, -0.5695261975567216, -2.2453721499999992}, {0.0, 0.0, 0.0, 1.0}}, {{6.064058047097081e-08, 8.58140802540336e-08, -0.7428567271237954, -3.294437479999999}, {1.4427215125754238e-07, -2.530175320502907e-08, 0.3593941714860216, 0.7693199999999997}, {1.2045502760769865e-08, -1.2896740908748457e-07, -0.5648005953155495, 3.4155942999999986}, {1.3234889800848443e-23, 0.0, 0.0, 1.0}}, {{3.2534318590648264e-08, -8.581408025403363e-08, -0.8112534716456185, 0.15470457999999998}, {-1.4514141392576755e-07, 2.530175320502908e-08, -0.34489532442353965, -0.2476383}, {5.01230094778404e-08, 1.289674090874846e-07, -0.47213877190261855, -1.7680179200000001}, {0.0, 0.0, 0.0, 1.0}}, {{1.524078051932937e-07, -1.4731493732699067e-08, -0.21993078167242536, -1.25498709}, {-3.433309330205022e-08, -1.1304527499839266e-07, -0.6583691769191123, 0.49967191}, {-1.5163373870938614e-08, 1.0789150406568026e-07, -0.7198475381327679, -1.17748929}, {0.0, 0.0, 2.220446049250313e-16, 1.0}}, {{1.5258788537454444e-07, -1.50434017560616e-08, 0.2139234821857457, -1.25498709}, {-1.016610251610931e-08, -1.5490373090569122e-07, -0.14781717683985668, 0.49967191}, {3.536121881520941e-08, 2.0380342501549018e-08, -0.9656017947376753, -1.17748929}, {0.0, 0.0, 0.0, 1.0}}, {{8.618449605826386e-08, 1.3005744286105568e-07, -0.10926252369460417, -4.776339219999996}, {1.1907386502737676e-07, -6.894646223375916e-08, 0.48119515875463226, 2.2311702599999985}, {5.5049746849940485e-08, -5.4481873383947436e-08, -0.8697775118425347, 0.9207512499999986}, {1.3234889800848443e-23, 2.6469779601696886e-23, 0.0, 1.0}}, {{1.5572529749804938e-07, -9.609244553868475e-09, -0.10926252412771378, -1.29138978}, {-1.7245528181154292e-10, -1.3759422614296728e-07, 0.48119515255296613, 0.38371785999999997}, {-1.9657812971295542e-08, -7.491541593592457e-08, -0.8697775152191327, -0.53911579}, {0.0, 0.0, 1.1102230246251565e-16, 1.0}}, {{1.0510892074207234e-07, 8.792655576224747e-09, -0.7405621389792737, -1.2306127199999985}, {1.1349411496086066e-07, 2.8007369418022736e-08, 0.6673299643797594, -0.6591226399999993}, {2.6608799545244997e-08, -1.5419177904390008e-07, 0.07898377650727657, 4.091492979999998}, {0.0, 0.0, 0.0, 1.0}}, {{1.0510891815648413e-07, 8.79265706901476e-09, -0.7405621607654073, -1.2306127500000001}, {1.1349412013203696e-07, 2.8007366432442717e-08, 0.6673299431834946, -0.6591225800000001}, {2.6608799545245066e-08, -1.5419177904390005e-07, 0.07898375132383044, 4.091492979999997}, {0.0, 1.323488980084842e-23, 0.0, 1.0}}, {{4.4939794689710465e-08, 9.54233248079021e-08, -0.7405621367680707, -2.9126935899999995}, {3.249196924242356e-08, 1.1229246845956814e-07, 0.6673299714231342, -2.1653487399999993}, {1.4683839747935709e-07, -5.405199315156002e-08, 0.07898373773067752, 1.0461139699999995}, {0.0, -2.6469779601696886e-23, 0.0, 0.9999999999999996}}}; + + +// By default the resulting orientation of the projection is vertical +// the following transforms are used to alter the projection data +// so that the resulting orientation is horizontal instead +constexpr double orient_horizontal_trans[4][4] = {{0.0, -1.0, 0.0, 36843762.068421006}, {1.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; +constexpr double orient_horizontal_inv_trans[4][4] = {{0.0, 1.0, 0.0, 0.0}, {-1.0, -0.0, -0.0, 36843762.068421006}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; + +namespace { // anonymous namespace + + struct pj_airocean_data { + pj_face ico_faces[23] = {}; + PJ_XYZ ico_centers[23] = {}; + PJ_XYZ ico_normals[23] = {}; + pj_face airocean_faces[23] = {}; + double ico_air_trans[23][4][4] = {}; + double air_ico_trans[23][4][4] = {}; + + void initialize() { + memcpy((char *) this->ico_faces, (char *) base_ico_faces, sizeof(pj_face[23])); + memcpy((char *) this->airocean_faces, (char *) base_airocean_faces, sizeof(pj_face[23])); + memcpy(this->ico_centers, base_ico_centers, sizeof(PJ_XYZ[23])); + memcpy(this->ico_normals, base_ico_normals, sizeof(PJ_XYZ[23])); + memcpy(this->ico_air_trans, base_ico_air_trans, sizeof(double[23][4][4])); + memcpy(this->air_ico_trans, base_air_ico_trans, sizeof(double[23][4][4])); + } + + void mult4x4(const double m1[4][4], const double m2[4][4], double res[4][4]) { + for (unsigned char i = 0; i < 4; ++i) + for (unsigned char j = 0; j < 4; ++j) + res[i][j] = (m1[i][0] * m2[0][j]) + + (m1[i][1] * m2[1][j]) + + (m1[i][2] * m2[2][j]) + + (m1[i][3] * m2[3][j]); + } + + void transform(const double m[4][4], const double inv_m[4][4]) { + for (unsigned char i=0; i < 23; i++) { + mult4x4(m, base_ico_air_trans[i], this->ico_air_trans[i]); + } + for (unsigned char i=0; i < 23; i++) { + mult4x4(base_air_ico_trans[i], inv_m, this->air_ico_trans[i]); + } + } + + + }; + + + +} // anonymous namespace + + inline double det(const PJ_XYZ *u, const PJ_XYZ *v, const PJ_XYZ *w) { @@ -79,9 +133,9 @@ inline bool is_point_in_face(const PJ_XYZ *p, const pj_face * face) { } -inline unsigned char get_ico_face_index(const PJ_XYZ *p) { +inline unsigned char get_ico_face_index(const pj_airocean_data * pj_data, const PJ_XYZ *p) { for (unsigned char i=0; i < 23; i++) { - if (is_point_in_face(p, &ico_faces[i])) { + if (is_point_in_face(p, &pj_data->ico_faces[i])) { return i; } } @@ -89,10 +143,10 @@ inline unsigned char get_ico_face_index(const PJ_XYZ *p) { return 23; } -inline unsigned char get_dym_face_index(const PJ_XY *p) { +inline unsigned char get_dym_face_index(const pj_airocean_data * pj_data, const PJ_XY *p) { const PJ_XYZ pp{p->x, p->y, 1.0}; for (unsigned char i=0; i < 23; i++) { - if (is_point_in_face(&pp, &airocean_faces[i])) { + if (is_point_in_face(&pp, &pj_data->airocean_faces[i])) { return i; } } @@ -100,36 +154,36 @@ inline unsigned char get_dym_face_index(const PJ_XY *p) { return 23; } -inline PJ_XY ico_to_dym(const PJ_XYZ * p, unsigned char face_id) { +inline PJ_XY ico_to_dym(const pj_airocean_data * pj_data, const PJ_XYZ * p, unsigned char face_id) { return PJ_XY{ - ico_air_trans[face_id][0][0] * p->x + - ico_air_trans[face_id][0][1] * p->y + - ico_air_trans[face_id][0][2] * p->z + - ico_air_trans[face_id][0][3], - ico_air_trans[face_id][1][0] * p->x + - ico_air_trans[face_id][1][1] * p->y + - ico_air_trans[face_id][1][2] * p->z + - ico_air_trans[face_id][1][3], + pj_data->ico_air_trans[face_id][0][0] * p->x + // * -1 + pj_data->ico_air_trans[face_id][0][1] * p->y + // + pj_data->ico_air_trans[face_id][0][2] * p->z + // + pj_data->ico_air_trans[face_id][0][3], // +1000 + pj_data->ico_air_trans[face_id][1][0] * p->x + + pj_data->ico_air_trans[face_id][1][1] * p->y + + pj_data->ico_air_trans[face_id][1][2] * p->z + + pj_data->ico_air_trans[face_id][1][3], }; } -inline PJ_XYZ dym_to_ico(const PJ_XY * p, unsigned char face_id) { +inline PJ_XYZ dym_to_ico(const pj_airocean_data * pj_data, const PJ_XY * p, unsigned char face_id) { return PJ_XYZ{ - air_ico_trans[face_id][0][0] * p->x + - air_ico_trans[face_id][0][1] * p->y + - air_ico_trans[face_id][0][2], - air_ico_trans[face_id][1][0] * p->x + - air_ico_trans[face_id][1][1] * p->y + - air_ico_trans[face_id][1][2], - air_ico_trans[face_id][2][0] * p->x + - air_ico_trans[face_id][2][1] * p->y + - air_ico_trans[face_id][2][2], + pj_data->air_ico_trans[face_id][0][0] * p->x + // * -1 + pj_data->air_ico_trans[face_id][0][1] * p->y + // + pj_data->air_ico_trans[face_id][0][3], // + [face_id][0][0] * 1000 + pj_data->air_ico_trans[face_id][1][0] * p->x + + pj_data->air_ico_trans[face_id][1][1] * p->y + + pj_data->air_ico_trans[face_id][1][3], + pj_data->air_ico_trans[face_id][2][0] * p->x + + pj_data->air_ico_trans[face_id][2][1] * p->y + + pj_data->air_ico_trans[face_id][2][3], }; } -inline PJ_XYZ cartesian_to_ico(const PJ_XYZ *p, unsigned char face_id) { - const PJ_XYZ * center = &ico_centers[face_id]; - const PJ_XYZ * normal = &ico_normals[face_id]; +inline PJ_XYZ cartesian_to_ico(const pj_airocean_data * pj_data, const PJ_XYZ *p, unsigned char face_id) { + const PJ_XYZ * center = &pj_data->ico_centers[face_id]; + const PJ_XYZ * normal = &pj_data->ico_normals[face_id]; // cppcheck-suppress unreadVariable double a = 1.0 - ( @@ -156,6 +210,9 @@ inline PJ_XYZ cartesian_to_ico(const PJ_XYZ *p, unsigned char face_id) { // // ============================================ static PJ_XY airocean_forward(PJ_LP lp, PJ *P) { + const struct pj_airocean_data *Q = + static_cast(P->opaque); + double lat; /* Convert the geodetic latitude to a geocentric latitude. @@ -184,11 +241,11 @@ static PJ_XY airocean_forward(PJ_LP lp, PJ *P) { PJ_XYZ cartesianPoint{x, y, z}; - unsigned char face_id = get_ico_face_index(&cartesianPoint); + unsigned char face_id = get_ico_face_index(Q, &cartesianPoint); - PJ_XYZ icoPoint = cartesian_to_ico(&cartesianPoint, face_id); + PJ_XYZ icoPoint = cartesian_to_ico(Q, &cartesianPoint, face_id); - PJ_XY airoceanPoint = ico_to_dym(&icoPoint, face_id); + PJ_XY airoceanPoint = ico_to_dym(Q, &icoPoint, face_id); return airoceanPoint; @@ -196,9 +253,12 @@ static PJ_XY airocean_forward(PJ_LP lp, PJ *P) { static PJ_LP airocean_inverse(PJ_XY xy, PJ *P) { + const struct pj_airocean_data *Q = + static_cast(P->opaque); + PJ_LP lp = {0.0, 0.0}; - unsigned char face_id = get_dym_face_index(&xy); + unsigned char face_id = get_dym_face_index(Q, &xy); if (face_id == 23) { // Point lies outside icosahedron net faces @@ -208,8 +268,7 @@ static PJ_LP airocean_inverse(PJ_XY xy, PJ *P) { return lp; } - - PJ_XYZ sphereCoords = dym_to_ico(&xy, face_id); + PJ_XYZ sphereCoords = dym_to_ico(Q, &xy, face_id); double norm = sqrt((sphereCoords.x * sphereCoords.x) + (sphereCoords.y * sphereCoords.y) + (sphereCoords.z * sphereCoords.z)); double q = sphereCoords.x / norm; @@ -240,6 +299,30 @@ static PJ_LP airocean_inverse(PJ_XY xy, PJ *P) { } PJ *PJ_PROJECTION(airocean) { + char *opt; + struct pj_airocean_data *Q = static_cast( + calloc(1, sizeof(struct pj_airocean_data))); + if (nullptr == Q) + return pj_default_destructor(P, PROJ_ERR_OTHER /*ENOMEM*/); + Q->initialize(); + P->opaque = Q; + opt = pj_param(P->ctx, P->params, "sorient").s; + if (opt) { + if (!strcmp(opt, "horizontal")) { + Q->transform(orient_horizontal_trans, orient_horizontal_inv_trans); + } else if (!strcmp(opt, "vertical")) { + // the orientation is vertical by default. + } else { + proj_log_error( + P, + _("Invalid value for orient: only vertical or horizontal are supported")); + return pj_default_destructor(P, + PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + } + } + + + P->left = PJ_IO_UNITS_RADIANS; P->right = PJ_IO_UNITS_PROJECTED; P->from_greenwich = -P->lam0; From 8d00367379d2e810244d8b8aed0a66f7b6649aea Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 10 Nov 2024 15:54:09 +0100 Subject: [PATCH 17/37] - Set matrix multiplication function to be static --- src/projections/airocean.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/projections/airocean.cpp b/src/projections/airocean.cpp index ff749b0e09..3ec2952642 100644 --- a/src/projections/airocean.cpp +++ b/src/projections/airocean.cpp @@ -88,7 +88,7 @@ namespace { // anonymous namespace memcpy(this->air_ico_trans, base_air_ico_trans, sizeof(double[23][4][4])); } - void mult4x4(const double m1[4][4], const double m2[4][4], double res[4][4]) { + static void mult4x4(const double m1[4][4], const double m2[4][4], double res[4][4]) { for (unsigned char i = 0; i < 4; ++i) for (unsigned char j = 0; j < 4; ++j) res[i][j] = (m1[i][0] * m2[0][j]) From 4b5e71402fc0412a937c7b24516e34be4ef8bf6f Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 10 Nov 2024 16:52:26 +0100 Subject: [PATCH 18/37] - Add missing airocean space face transform when selection +orient=horizontal --- src/projections/airocean.cpp | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/src/projections/airocean.cpp b/src/projections/airocean.cpp index 3ec2952642..b2ccce962a 100644 --- a/src/projections/airocean.cpp +++ b/src/projections/airocean.cpp @@ -17,9 +17,9 @@ PROJ_HEAD(airocean, "Airocean") "\n\tMisc, Sph&Ell"; namespace { // anonymous namespace struct pj_face { - const PJ_XYZ p1; - const PJ_XYZ p2; - const PJ_XYZ p3; + PJ_XYZ p1; + PJ_XYZ p2; + PJ_XYZ p3; }; } @@ -88,7 +88,7 @@ namespace { // anonymous namespace memcpy(this->air_ico_trans, base_air_ico_trans, sizeof(double[23][4][4])); } - static void mult4x4(const double m1[4][4], const double m2[4][4], double res[4][4]) { + static void mat_mult(const double m1[4][4], const double m2[4][4], double res[4][4]) { for (unsigned char i = 0; i < 4; ++i) for (unsigned char j = 0; j < 4; ++j) res[i][j] = (m1[i][0] * m2[0][j]) @@ -97,13 +97,24 @@ namespace { // anonymous namespace + (m1[i][3] * m2[3][j]); } + static PJ_XYZ vec_mult(const double m[4][4], const PJ_XYZ * v) { + double x = m[0][0] * v->x + m[0][1] * v->y + m[0][2] * v->z + m[0][3]; + double y = m[1][0] * v->x + m[1][1] * v->y + m[1][2] * v->z + m[1][3]; + double z = m[2][0] * v->x + m[2][1] * v->y + m[2][2] * v->z + m[2][3]; + return {x, y, z}; + } + void transform(const double m[4][4], const double inv_m[4][4]) { for (unsigned char i=0; i < 23; i++) { - mult4x4(m, base_ico_air_trans[i], this->ico_air_trans[i]); - } - for (unsigned char i=0; i < 23; i++) { - mult4x4(base_air_ico_trans[i], inv_m, this->air_ico_trans[i]); + mat_mult(m, base_ico_air_trans[i], this->ico_air_trans[i]); + mat_mult(base_air_ico_trans[i], inv_m, this->air_ico_trans[i]); + this->airocean_faces[i] = { + vec_mult(m, &base_airocean_faces[i].p1), + vec_mult(m, &base_airocean_faces[i].p2), + vec_mult(m, &base_airocean_faces[i].p3), + }; } + } From 3f2f7c166db9b202d1d41dbb516805cacb4b318f Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 10 Nov 2024 16:53:30 +0100 Subject: [PATCH 19/37] - Add tests for +orient=horizontal --- test/gie/builtins.gie | 102 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie index 860634122d..55ec747dac 100644 --- a/test/gie/builtins.gie +++ b/test/gie/builtins.gie @@ -1269,6 +1269,108 @@ expect 147.63769509437498 15.818879769693432 accept 0 0 expect failure +------------------------------------------------------------------------------- +operation +proj=airocean +orient=horizontal +ellps=GRS80 +------------------------------------------------------------------------------- +tolerance 0.1 mm +accept 23 29 +expect 13445038.138395257 13501788.272168122 +accept 71 47 +expect 13469321.22856612 9691162.310202885 +accept 146 75 +expect 16758940.408539249 7725947.54927852 +accept -77 60 +expect 20145508.681780424 9691320.12928607 +accept -26 34 +expect 16738437.29206201 15521444.12245347 +accept 29 -14 +expect 10002182.5715067 15508486.660989888 +accept 71 -24 +expect 6745544.686885769 9738408.304902693 +accept 97 10 +expect 10057167.426204873 7661719.142318802 +accept 169 35 +expect 16730877.466082027 3879364.926075886 +accept -151 13 +expect 23471357.831294097 3855457.9788894877 +accept -109 25 +expect 23405563.0692953 7677848.871802735 +accept -83 -10 +expect 26804332.00275987 9742444.815267786 +accept -42 -5 +expect 26833811.28608749 13531956.757129436 +accept -10 -35 +expect 33549702.824863963 13536077.88916722 +accept 155 -34 +expect 6754064.240713957 1878658.9644939895 +accept -157 -29 +expect 26849240.124435734 1910219.231732698 +accept -109 -46 +expect 30129033.055957943 7700118.744271104 +accept -32 -75 +expect 33546604.455268644 9700086.856617931 +accept 99 -49 +expect 3917784.3424766464 4762210.008135711 +accept 114 -72 +expect 35743305.80505435 7700279.4959819885 +accept 143 -9 +expect 8926966.62914534 3215425.0474725077 +accept 123 7 +expect 10051797.28039541 5233302.981464034 +accept 148 16 +expect 14580207.201673953 2606103.035139274 + +direction inverse +accept 13400000 13500000 +except 23.38101068889326 28.613417194415643 +accept 13500000 9700000 +except 70.7802085458946 47.32843064371629 +accept 16800000 7700000 +except 148.10287981014486 74.96215466929766 +accept 20100000 9700000 +except -76.54133367948258 60.47011202998829 +accept 16700000 15500000 +except -25.402102068835045 34.038552037244074 +accept 10000000 15500000 +except 29.093669699644725 -13.960206072298153 +accept 6700000 9700000 +except 71.39502686260073 -24.572248553401327 +accept 10100000 7700000 +except 96.5989815165186 10.519796023191507 +accept 16700000 3900000 +except 168.5332718079372 35.173954828735 +accept 23500000 3900000 +except -150.39605816066683 12.8877109123015 +accept 23400000 7700000 +except -108.73571568748467 25.097014645260366 +accept 26800000 9700000 +except -83.48998116482932 -9.98785063836723 +accept 26800000 13500000 +except -42.42285754320226 -4.68222695695373 +accept 33500000 13500000 +except -10.755116011311662 -35.31735130903507 +accept 6800000 1900000 +except 154.76504012111806 -33.459989505310055 +accept 26800000 1900000 +except -157.35174676612695 -28.520246787409704 +accept 30100000 7700000 +except -108.93360340357648 -45.67479874983113 +accept 33500000 9700000 +except -33.77121014744891 -74.7525617691622 +accept 3900000 4800000 +except 98.35846530162404 -48.821443120344455 +accept 35700000 7700000 +except 114.65803383575242 -72.41879106994266 +accept 8900000 3200000 +except 143.1150335988881 -9.311213341657826 +accept 10100000 5200000 +except 123.42786172727975 7.474238270475286 +accept 14600000 2600000 +except 148.23146560737166 16.00099471760901 +accept 0 0 +expect failure + + =============================================================================== # Eckert I # PCyl., Sph. From 95161187386125b7f54d3a8751b2cf978d7bb561 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 10 Nov 2024 17:14:41 +0100 Subject: [PATCH 20/37] Update docs/source/operations/projections/airocean.rst Add complete information about available forms for airocean projection Co-authored-by: Mike Taves --- docs/source/operations/projections/airocean.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/operations/projections/airocean.rst b/docs/source/operations/projections/airocean.rst index 605cafdc8f..391be9a007 100644 --- a/docs/source/operations/projections/airocean.rst +++ b/docs/source/operations/projections/airocean.rst @@ -18,7 +18,7 @@ was formally mathematically defined :cite:`Gray1995`. +---------------------+----------------------------------------------------------+ | **Classification** | Polyhedral, equal area | +---------------------+----------------------------------------------------------+ -| **Available forms** | Forward and inverse, spherical | +| **Available forms** | Forward and inverse, spherical and ellipsoidal | +---------------------+----------------------------------------------------------+ | **Defined area** | Global | +---------------------+----------------------------------------------------------+ From d76c738f6636958ea57f78ae909c57e80e683290 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 10 Nov 2024 17:15:13 +0100 Subject: [PATCH 21/37] Update docs/source/references.bib Preserve title case for BibTeX Co-authored-by: Mike Taves --- docs/source/references.bib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/references.bib b/docs/source/references.bib index f9670052c2..ece00af2e5 100644 --- a/docs/source/references.bib +++ b/docs/source/references.bib @@ -74,7 +74,7 @@ @TechReport{Deakin2004 } @Article{Gray1995, - Title = {Exact Transformation Equations for Fuller's World Map}, + Title = {Exact Transformation Equations for {Fuller's World Map}}, Author = {Robert W. Gray}, Journal = {Cartographica}, Year = {1995}, From 75885d6fc847ebccad5aea5355444e5412d27020 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 10 Nov 2024 17:20:43 +0100 Subject: [PATCH 22/37] - Correct typo in Builtins test. except becomes expect --- test/gie/builtins.gie | 46 +++++++++++++++++++++---------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie index 55ec747dac..c415a0ab19 100644 --- a/test/gie/builtins.gie +++ b/test/gie/builtins.gie @@ -1322,51 +1322,51 @@ expect 14580207.201673953 2606103.035139274 direction inverse accept 13400000 13500000 -except 23.38101068889326 28.613417194415643 +expect 23.38101068889326 28.613417194415643 accept 13500000 9700000 -except 70.7802085458946 47.32843064371629 +expect 70.7802085458946 47.32843064371629 accept 16800000 7700000 -except 148.10287981014486 74.96215466929766 +expect 148.10287981014486 74.96215466929766 accept 20100000 9700000 -except -76.54133367948258 60.47011202998829 +expect -76.54133367948258 60.47011202998829 accept 16700000 15500000 -except -25.402102068835045 34.038552037244074 +expect -25.402102068835045 34.038552037244074 accept 10000000 15500000 -except 29.093669699644725 -13.960206072298153 +expect 29.093669699644725 -13.960206072298153 accept 6700000 9700000 -except 71.39502686260073 -24.572248553401327 +expect 71.39502686260073 -24.572248553401327 accept 10100000 7700000 -except 96.5989815165186 10.519796023191507 +expect 96.5989815165186 10.519796023191507 accept 16700000 3900000 -except 168.5332718079372 35.173954828735 +expect 168.5332718079372 35.173954828735 accept 23500000 3900000 -except -150.39605816066683 12.8877109123015 +expect -150.39605816066683 12.8877109123015 accept 23400000 7700000 -except -108.73571568748467 25.097014645260366 +expect -108.73571568748467 25.097014645260366 accept 26800000 9700000 -except -83.48998116482932 -9.98785063836723 +expect -83.48998116482932 -9.98785063836723 accept 26800000 13500000 -except -42.42285754320226 -4.68222695695373 +expect -42.42285754320226 -4.68222695695373 accept 33500000 13500000 -except -10.755116011311662 -35.31735130903507 +expect -10.755116011311662 -35.31735130903507 accept 6800000 1900000 -except 154.76504012111806 -33.459989505310055 +expect 154.76504012111806 -33.459989505310055 accept 26800000 1900000 -except -157.35174676612695 -28.520246787409704 +expect -157.35174676612695 -28.520246787409704 accept 30100000 7700000 -except -108.93360340357648 -45.67479874983113 +expect -108.93360340357648 -45.67479874983113 accept 33500000 9700000 -except -33.77121014744891 -74.7525617691622 +expect -33.77121014744891 -74.7525617691622 accept 3900000 4800000 -except 98.35846530162404 -48.821443120344455 +expect 98.35846530162404 -48.821443120344455 accept 35700000 7700000 -except 114.65803383575242 -72.41879106994266 +expect 114.65803383575242 -72.41879106994266 accept 8900000 3200000 -except 143.1150335988881 -9.311213341657826 +expect 143.1150335988881 -9.311213341657826 accept 10100000 5200000 -except 123.42786172727975 7.474238270475286 +expect 123.42786172727975 7.474238270475286 accept 14600000 2600000 -except 148.23146560737166 16.00099471760901 +expect 148.23146560737166 16.00099471760901 accept 0 0 expect failure From 18f9d9eafa6693a32ae0391501b174b79e70345b Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 10 Nov 2024 18:36:57 +0100 Subject: [PATCH 23/37] - Document +orient option --- docs/source/operations/projections/airocean.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/source/operations/projections/airocean.rst b/docs/source/operations/projections/airocean.rst index 391be9a007..e70e538b6f 100644 --- a/docs/source/operations/projections/airocean.rst +++ b/docs/source/operations/projections/airocean.rst @@ -50,6 +50,12 @@ Parameters .. note:: All parameters are optional for the projection. +.. option:: +orient= + + Can be set to either ``vertical`` or ``horizontal``. + + *Defaults to vertical* + .. include:: ../options/lon_0.rst .. include:: ../options/R.rst From 195da3452446b51e7c99be0fe9ae5c6472900409 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 5 Jan 2025 12:33:48 +0100 Subject: [PATCH 24/37] - Remove manual computation with semi-major-axis. Sanitize all matrices from semi-major-axis value. Recompute airocean test values. --- src/projections/airocean.cpp | 58 ++++--- test/gie/builtins.gie | 302 +++++++++++++++++------------------ 2 files changed, 177 insertions(+), 183 deletions(-) diff --git a/src/projections/airocean.cpp b/src/projections/airocean.cpp index b2ccce962a..afb7f8952d 100644 --- a/src/projections/airocean.cpp +++ b/src/projections/airocean.cpp @@ -24,7 +24,6 @@ namespace { // anonymous namespace } - /* The vertices of the faces of the icosahedron are inspired by those used by Robert W. Gray. @@ -37,37 +36,38 @@ namespace { // anonymous namespace */ // Define the 23 faces and subfaces constexpr pj_face base_ico_faces[23] = {{{0.42015243, 0.07814525, 0.90408255}, {0.51883673, 0.83542038, 0.18133184}, {0.99500944, -0.0913478, 0.04014718}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.41468223, 0.65596241, 0.63067581}, {0.51883673, 0.83542038, 0.18133184}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.51545596, -0.3817169, 0.76720099}, {-0.41468223, 0.65596241, 0.63067581}}, {{0.42015243, 0.07814525, 0.90408255}, {0.3557814, -0.84358, 0.40223423}, {-0.51545596, -0.3817169, 0.76720099}}, {{0.42015243, 0.07814525, 0.90408255}, {0.99500944, -0.0913478, 0.04014718}, {0.3557814, -0.84358, 0.40223423}}, {{0.99500944, -0.0913478, 0.04014718}, {0.51883673, 0.83542038, 0.18133184}, {0.51545596, 0.3817169, -0.76720099}}, {{0.51545596, 0.3817169, -0.76720099}, {0.51883673, 0.83542038, 0.18133184}, {-0.3557814, 0.84358, -0.40223423}}, {{-0.3557814, 0.84358, -0.40223423}, {0.51883673, 0.83542038, 0.18133184}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.99500944, 0.0913478, -0.04014718}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.51883673, -0.83542038, -0.18133184}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.51545596, -0.3817169, 0.76720099}, {0.3557814, -0.84358, 0.40223423}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.51883673, -0.83542038, -0.18133184}, {0.3557814, -0.84358, 0.40223423}, {0.41468223, -0.65596241, -0.63067581}}, {{0.41468223, -0.65596241, -0.63067581}, {0.3557814, -0.84358, 0.40223423}, {0.99500944, -0.0913478, 0.04014718}}, {{0.51545596, 0.3817169, -0.76720099}, {0.41468223, -0.65596241, -0.63067581}, {0.99500944, -0.0913478, 0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.3557814, 0.84358, -0.40223423}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.99500944, 0.0913478, -0.04014718}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.51883673, -0.83542038, -0.18133184}, {0.41468223, -0.65596241, -0.63067581}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.41468223, -0.65596241, -0.63067581}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.38796691, 0.38271738, -0.65315839}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.51545596, 0.3817169, -0.76720099}, {-0.38796691, 0.38271738, -0.65315839}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.3557814, 0.84358, -0.40223423}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.41468223, 0.65596241, 0.63067581}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.58849102, 0.53029673, 0.0627648}, {-0.41468223, 0.65596241, 0.63067581}}}; -// Define the centers for each face or subface +// // Define the centers for each face or subface constexpr PJ_XYZ base_ico_centers[23] = {{0.6446662, 0.27407261, 0.37518718999999995}, {0.1747689766666667, 0.5231760133333333, 0.5720300666666667}, {-0.16999525333333332, 0.11746358666666666, 0.7673197833333334}, {0.08682595666666666, -0.38238388333333334, 0.69117259}, {0.5903144233333334, -0.28559418333333336, 0.44882131999999997}, {0.6764340433333333, 0.37526316, -0.18190732333333334}, {0.22617043, 0.68690576, -0.3293677933333333}, {-0.08387563333333335, 0.77832093, 0.13659113999999997}, {-0.6417158766666667, 0.12186443666666665, 0.45257653999999997}, {-0.6764340433333333, -0.37526316, 0.18190732333333334}, {-0.22617043, -0.68690576, 0.3293677933333333}, {0.08387563333333335, -0.77832093, -0.13659113999999997}, {0.5884910233333334, -0.5302967366666668, -0.06276479999999997}, {0.6417158766666667, -0.12186443666666665, -0.45257653999999997}, {-0.5903144233333334, 0.28559418333333336, -0.44882131999999997}, {-0.6446662, -0.27407261, -0.37518718999999995}, {-0.1747689766666667, -0.5231760133333333, -0.5720300666666667}, {0.16999525333333332, -0.11746358666666668, -0.7673197833333334}, {-0.07609744999999997, 0.5360047600000001, -0.6075312033333334}, {-0.09755446, 0.22876301, -0.7748139766666666}, {-0.6464272866666667, 0.48840817666666664, -0.12653887}, {-0.45298488333333337, 0.6766130466666667, 0.0970687933333333}, {-0.6660608966666667, 0.42586898, 0.21776447666666665}}; -// Define the normals for each face and subface +// // Define the normals for each face and subface constexpr PJ_XYZ base_ico_normals[23] = {{0.8112534716456183, 0.3448953244235397, 0.4721387719026189}, {0.21993078167242514, 0.6583691769191125, 0.7198475381327677}, {-0.21392348218574597, 0.1478171768398566, 0.9656017947376752}, {0.10926252593733311, -0.48119515565604315, 0.8697775132750616}, {0.7428567271237952, -0.3593941714860216, 0.5648005953155497}, {0.8512303999921011, 0.4722343774266651, -0.22891373682183738}, {0.28461480749719364, 0.8644080979012073, -0.4144792535654255}, {-0.1055498134715015, 0.9794457311974099, 0.17188745304792394}, {-0.80754076069938, 0.15335524153301364, 0.5695261975567215}, {-0.8512303999921011, -0.4722343774266651, 0.22891373682183735}, {-0.28461480749719364, -0.8644080979012073, 0.4144792535654255}, {0.10554981347150154, -0.97944573119741, -0.17188745304792397}, {0.7405621455042509, -0.6673299596621295, -0.07898375518726185}, {0.80754076069938, -0.15335524153301364, -0.5695261975567215}, {-0.7428567271237952, 0.3593941714860216, -0.5648005953155497}, {-0.8112534716456183, -0.3448953244235397, -0.4721387719026189}, {-0.21993078167242514, -0.6583691769191125, -0.7198475381327677}, {0.21392348218574597, -0.1478171768398566, -0.9656017947376752}, {-0.1092625236946045, 0.48119515875463253, -0.8697775118425345}, {-0.10926252412771359, 0.4811951525529661, -0.8697775152191327}, {-0.7405621389792739, 0.6673299643797594, 0.07898377650727696}, {-0.7405621607654073, 0.6673299431834946, 0.07898375132383098}, {-0.7405621367680706, 0.6673299714231342, 0.07898373773067752}}; -/* - The points of the Airocean projection map are deduced from the unfolded net - of the altered icosahedron defined above. - The distances in the projected 2d space are expressed in meter. -*/ -// Define the 23 unfolded surfaces used (from icosahedron + split faces) -constexpr pj_face base_airocean_faces[23] = {{{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 16747164.576555002, 1.0}}, {{11602775.971724393, 20096597.491866, 1.0}, {17404163.95758659, 23446030.407177, 1.0}, {17404163.95758659, 16747164.576555002, 1.0}}, {{17404163.95758659, 23446030.407177, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {17404163.95758659, 30144896.237799004, 1.0}}, {{11602775.971724393, 33494329.153110005, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {11602775.971724393, 26795463.322488002, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {0.0, 20096597.491866, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {0.0, 13397731.661244001, 1.0}}, {{5801387.985862196, 16747164.576555002, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 13397731.661244001, 1.0}, {17404163.95758659, 10048298.745933, 1.0}}, {{11602775.971724393, 0.0, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {17404163.95758659, 3349432.9153110003, 1.0}}, {{0.0, 33494329.153110005, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {0.0, 26795463.322488002, 1.0}}, {{0.0, 6698865.830622001, 1.0}, {0.0, 13397731.661244001, 1.0}, {5801387.985862196, 10048298.745933, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {5801387.985862196, 10048298.745933, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 6698865.830622001, 1.0}, {11602775.971724393, 0.0, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {2900693.992931098, 31819612.695454504, 1.0}, {5801387.985862196, 36843762.068421006, 1.0}}, {{5801387.985862196, 3349432.9153110003, 1.0}, {11602775.971724393, 0.0, 1.0}, {5801387.985862196, 0.0, 1.0}}, {{0.0, 26795463.322488002, 1.0}, {5801387.985862196, 30144896.237799004, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{5801387.985862196, 30144896.237799004, 1.0}, {5801387.985862196, 23446030.407177, 1.0}, {3867591.9905747976, 26795463.322488002, 1.0}}, {{0.0, 20096597.491866, 1.0}, {1933795.9952873988, 23446030.407177, 1.0}, {5801387.985862196, 23446030.407177, 1.0}}}; - -/* - The parameters here are extracted from the transition matrices - that allow converting a icosahedron face or subface to its - corresponding face in the Airocean projected space. - Since only a few parameters of those matrices are relevant, - the irrelevant ones has been discarded. -*/ -// Icosahedron to Airocean (forward) -constexpr double base_ico_air_trans[23][4][4] = {{{3676785.549175448, -3835017.5266620647, -3516181.101897219, 13536571.968889877}, {597946.080039791, 4588467.120428165, -4379277.476119764, 23446030.430853583}, {0.8112534716456183, 0.3448953244235397, 0.4721387719026189, -0.7946544736643394}, {0.0, 0.0, 0.0, 0.9999999999999999}}, {{6186178.005526091, -1393567.8850913076, -615475.9158875226, 9668979.99656166}, {597946.0790283178, 4588467.148836121, -4379277.446492919, 23446030.4022735}, {0.2199307816724251, 0.6583691769191125, 0.7198475381327677, -0.794654474160402}, {2.7755575615628914e-17, 0.0, 0.0, 1.0}}, {{6193487.416382644, -412638.42193403625, 1435299.1565727487, 7735183.994711302}, {610606.2949588482, 6287486.763792622, -827230.771869741, 20096597.453907937}, {-0.213923482185746, 0.14781717683985665, 0.9656017947376753, -0.7946544722350559}, {-1.3877787807814457e-16, 2.7755575615628914e-17, 0.0, 1.0}}, {{6320833.951539666, -6999.925417495968, -797903.6054442794, 9668979.964544488}, {390035.65785509185, 5584900.2162612835, 3040789.86561249, 16747164.583089648}, {0.1092625259373331, -0.48119515565604315, 0.8697775132750618, -0.794654472177355}, {1.1102230246251565e-16, 5.551115123125783e-17, 0.0, 1.0}}, {{1785817.7160921493, -3817376.067203325, -4777879.901545344, 15470367.97086971}, {3873198.4648612146, 4557911.12782605, -2193951.0189847522, 20096597.472239383}, {0.7428567271237952, -0.3593941714860217, 0.5648005953155497, -0.7946544741179917}, {0.0, 0.0, 0.0, 1.0000000000000002}}, {{1653953.7567438218, -4829262.323420258, -3812125.829251187, 15470367.969285296}, {-2905701.3326818133, 2866384.6227320307, -4891868.725058803, 26795463.326497696}, {0.8512303999921013, 0.4722343774266651, -0.22891373682183747, -0.7946544711481622}, {0.0, -5.551115123125783e-17, 1.1102230246251565e-16, 1.0}}, {{6107473.604777472, -1644266.325782215, 764719.3302896866, 9668979.973521523}, {-20484.65208776388, -2749071.5526177026, -5747332.168284684, 30144896.23069373}, {0.2846148074971938, 0.8644080979012073, -0.41447925356542553, -0.7946544719642821}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{6325351.398413758, 599247.844237452, 469545.1345954169, 7735183.991104206}, {356890.77665911405, 1136808.9376555325, -6258588.903331836, 26795463.365920186}, {-0.10554981347150151, 0.97944573119741, 0.17188745304792394, -0.794654473006748}, {-1.3877787807814457e-17, 0.0, 8.326672684688674e-17, 1.0}}, {{3707748.6155441254, 320266.3046413801, 5171041.531732354, 3867591.9864321505}, {610606.2818745336, 6287486.766371998, -827230.7619227654, 20096597.44051682}, {-0.8075407606993799, 0.15335524153301364, 0.5695261975567214, -0.7946544732451482}, {0.0, -8.326672684688674e-17, 0.0, 1.0}}, {{3343388.0482846545, -4896993.062013145, 2330419.6732539237, 3867591.9905542377}, {20484.69631605078, 2749071.5422549895, 5747332.173083752, 13397731.669298988}, {-0.8512303999921013, -0.4722343774266651, 0.22891373682183733, -0.7946544711481622}, {1.1102230246251565e-16, 0.0, -2.7755575615628914e-17, 1.0}}, {{6107473.604777474, -1644266.3257822143, 764719.330289686, 7735183.984065069}, {20484.65208776346, 2749071.552617706, 5747332.168284684, 13397731.654138729}, {-0.28461480749719376, -0.8644080979012073, 0.41447925356542553, -0.7946544719642822}, {-5.551115123125783e-17, 0.0, -5.551115123125783e-17, 1.0}}, {{6325351.398413757, 599247.8442374519, 469545.1345954159, 9668979.966482382}, {-356890.77665911167, -1136808.9376555379, 6258588.903331836, 10048298.789365184}, {0.10554981347150151, -0.97944573119741, -0.17188745304792394, -0.794654473006748}, {1.249000902703301e-16, 0.0, -8.326672684688674e-17, 1.0}}, {{4266333.348411551, 4606685.482609389, 1080041.5914374113, 13536571.961679665}, {-356890.81480763154, -1136808.9649443403, 6258588.896199714, 10048298.78278621}, {0.7405621455042507, -0.6673299596621294, -0.07898375518726183, -0.7946544743360283}, {1.1102230246251565e-16, 0.0, 5.551115123125783e-17, 0.9999999999999999}}, {{3707748.6155441264, 320266.30464138015, 5171041.531732352, 13536571.97115444}, {-610606.2818745337, -6287486.766372, 827230.7619227694, 3349432.8639618154}, {0.8075407606993799, -0.15335524153301364, -0.5695261975567214, -0.7946544732451483}, {-1.1102230246251565e-16, -2.7755575615628914e-17, 0.0, 1.0}}, {{2461379.4064226267, 5855954.858490806, 488922.63367311924, 1933796.0165698116}, {3483162.7410947136, -1026989.0860837825, -5234740.880461738, 30144896.24019003}, {-0.7428567271237954, 0.35939417148602165, -0.5648005953155498, -0.7946544741179918}, {-1.1102230246251565e-16, 5.551115123125783e-17, 0.0, 1.0}}, {{1320556.279179943, -5891237.854051452, 2034474.9935921053, 1933796.0148528814}, {-3483162.72987335, 1026989.0418338334, 5234740.896609632, 10048298.759397767}, {-0.8112534716456183, -0.34489532442353976, -0.4721387719026189, -0.7946544736643393}, {0.0, 1.1102230246251565e-16, 0.0, 1.0}}, {{6186178.005526091, -1393567.885091309, -615475.9158875229, 7735183.961024929}, {-597946.0790283154, -4588467.148836119, 4379277.446492919, 6698865.825718503}, {-0.21993078167242508, -0.6583691769191125, -0.7198475381327677, -0.794654474160402}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{6193487.416382645, -412638.4219340361, 1435299.156572748, 9668979.962875288}, {-610606.2949588535, -6287486.763792623, 827230.7718697439, 3349432.877352944}, {0.21392348218574594, -0.14781717683985665, -0.965601794737675, -0.7946544722350558}, {-1.3877787807814457e-16, -2.7755575615628914e-17, 0.0, 1.0}}, {{3498197.81693495, 4833165.559061878, 2234449.5231911456, 3867591.983769496}, {5278984.96116607, -2798512.200701845, -2211399.7153384583, 33494329.158408284}, {-0.10926252369460446, 0.4811951587546325, -0.8697775118425342, -0.7946544734171301}, {8.326672684688674e-17, 0.0, 0.0, 0.9999999999999998}}, {{6320833.983680945, -6999.984355479206, -797903.6271294819, 7735183.9823354}, {-390035.68446349393, -5584900.177255948, -3040789.814780467, 0.044359486997177525}, {-0.10926252412771358, 0.48119515255296597, -0.8697775152191325, -0.79465447341713}, {-4.163336342344337e-17, -1.1102230246251565e-16, 0.0, 0.9999999999999999}}, {{4266333.41772867, 4606685.445409489, 1080041.6365273518, 3867592.0700864717}, {356890.72771489987, 1136809.053212709, -6258588.866576485, 26795463.265809294}, {-0.7405621389792741, 0.6673299643797597, 0.07898377650727716, -0.7946544674186218}, {1.1102230246251565e-16, 0.0, -1.3877787807814457e-17, 1.0}}, {{4266333.204506115, 4606685.540218764, 1080041.5936954806, 3867591.897018196}, {356890.8007120557, 1136808.9497242568, -6258588.899768077, 26795463.365730304}, {-0.7405621607654075, 0.6673299431834948, 0.07898375132383098, -0.7946544674186217}, {1.1102230246251565e-16, -1.1102230246251565e-16, 2.7755575615628914e-17, 0.9999999999999999}}, {{1824090.1118675405, 1318837.3514699321, 5960117.7705610385, 1933795.9110601672}, {3873198.583330483, 4557911.083457602, -2193951.0468033054, 23446030.547617782}, {-0.7405621367680707, 0.667329971423134, 0.07898373773067754, -0.7946544674186213}, {0.0, 0.0, 8.326672684688674e-17, 1.0}}}; -// Airocean to Icosahedron (inverse) -constexpr double base_air_ico_trans[23][4][4] = {{{9.058433279771384e-08, 1.4731493732699052e-08, 0.8112534716456185, -0.9269301899999991}, {-9.44826679987233e-08, 1.1304527499839262e-07, 0.34489532442353965, -1.0974189099999994}, {-8.662754779110161e-08, -1.0789150406568015e-07, 0.47213877190261877, 4.077454709999999}, {0.0, 2.646977960169691e-23, 0.0, 1.0}}, {{1.5240780519329358e-07, 1.473149373269901e-08, 0.219930781672425, -1.6442540899999978}, {-3.4333093302050216e-08, 1.1304527499839258e-07, 0.6583691769191122, -1.7953209499999985}, {-1.51633738709386e-08, -1.0789150406568015e-07, 0.719847538132768, 3.248271909999998}, {-1.3234889800848443e-23, 2.6469779601696886e-23, 0.0, 1.0}}, {{1.525878853745444e-07, 1.504340175606161e-08, -0.21392348218574625, -1.6526118100000007}, {-1.0166102516109274e-08, 1.5490373090569122e-07, 0.14781717683985585, -2.9169376700000003}, {3.536121881520939e-08, -2.0380342501548998e-08, 0.9656017947376755, 0.9033697899999995}, {-1.3234889800848443e-23, 2.6469779601696886e-23, 2.220446049250313e-16, 1.0}}, {{1.557252983599121e-07, 9.609243061078464e-09, 0.10926252593733309, -1.5798064100000002}, {-1.7245441994882394e-10, 1.375942246501773e-07, -0.48119515565604315, -2.6850295500000003}, {-1.96578129712955e-08, 7.491541593592458e-08, 0.8697775132750615, -0.37337721000000035}, {2.6469779601696886e-23, 1.3234889800848443e-23, 0.0, 1.0}}, {{4.399688326690425e-08, 9.54233233151121e-08, 0.7428567271237949, -2.0080176699999996}, {-9.404803666461074e-08, 1.122924714451482e-07, -0.35939417148602176, -1.0873330499999996}, {-1.1771180391040664e-07, -5.405199315156007e-08, 0.5648005953155502, 3.3561273899999997}, {0.0, 0.0, 0.0, 1.0}}, {{4.074817450170371e-08, -7.158726449003567e-08, 0.8512303999921009, 1.9642587099999982}, {-1.1897770528054373e-07, 7.061862589298568e-08, 0.4722343774266655, 0.3236332400000001}, {-9.391868744648748e-08, -1.2052012839388902e-07, -0.22891373682183766, 4.500442009999996}, {1.3234889800848443e-23, 2.6469779601696886e-23, 0.0, 0.9999999999999991}}, {{1.5046877525297362e-07, -5.046779687011883e-10, 0.2846148074971936, -1.2134956799999999}, {-4.0509505754953036e-08, -6.772840231043597e-08, 0.8644080979012075, 3.120257019999999}, {1.8840259480379495e-08, -1.4159603341569342e-07, -0.4144792535654251, 3.7568638499999985}, {0.0, -1.1754943508222875e-38, 0.0, 1.0}}, {{1.55836594139745e-07, 8.792657069014762e-09, -0.1055498134715016, -1.52490368}, {1.4763566099823772e-08, 2.800736643244269e-08, 0.97944573119741, -0.08634832999999958}, {1.1568102351290336e-08, -1.5419177904390005e-07, 0.17188745304792347, 4.178749899999998}, {1.3234889800848443e-23, 0.0, 0.0, 1.0}}, {{9.134716490113195e-08, 1.504340175606163e-08, -0.80754076069938, -1.2973306300000003}, {7.890345398644546e-09, 1.5490373090569127e-07, 0.15335524153301333, -3.021690130000001}, {1.2739806091251417e-07, -2.0380342501549028e-08, 0.5695261975567216, 0.3694283599999999}, {1.3234889800848443e-23, -2.6469779601696886e-23, 0.0, 1.0}}, {{8.237047688665845e-08, 5.04677968701152e-10, -0.8512303999921011, -1.0017709799999996}, {-1.2064637664394705e-07, 6.772840231043599e-08, -0.472234377426665, -0.8160591599999997}, {5.741414913322641e-08, 1.4159603341569342e-07, 0.2289137368218376, -1.937212839999999}, {-2.6469779601696886e-23, 1.323488980084844e-23, 0.0, 1.0}}, {{1.504687752529736e-07, 5.046779687011514e-10, -0.2846148074971936, -1.3968356299999996}, {-4.0509505754953036e-08, 6.772840231043597e-08, -0.8644080979012072, -1.2809642399999992}, {1.8840259480379524e-08, 1.415960334156934e-07, 0.41447925356542575, -1.713430739999999}, {1.3234889800848443e-23, 0.0, 0.0, 0.9999999999999998}}, {{1.55836594139745e-07, -8.792657069014724e-09, 0.10554981347150141, -1.3345540299999996}, {1.4763566099823759e-08, -2.8007366432442684e-08, -0.97944573119741, -0.6396431699999997}, {1.1568102351290311e-08, 1.5419177904390013e-07, -0.17188745304792416, -1.7978079499999997}, {0.0, -2.6469779601696886e-23, 0.0, 0.9999999999999998}}, {{1.0510891988020954e-07, -8.792657069014762e-09, 0.740562145504251, -0.7459721899999996}, {1.1349411668458604e-07, -2.8007366432442694e-08, -0.6673299596621296, -1.7851916299999993}, {2.6608799545245027e-08, 1.541917790439001e-07, -0.07898375518726153, -1.9723217899999996}, {0.0, 0.0, 0.0, 1.0}}, {{9.134716490113195e-08, -1.5043401756061595e-08, 0.80754076069938, -0.5444247299999998}, {7.890345398644617e-09, -1.5490373090569122e-07, -0.15335524153301372, 0.29016699000000007}, {1.2739806091251412e-07, 2.038034250154901e-08, -0.5695261975567216, -2.2453721499999992}, {0.0, 0.0, 0.0, 1.0}}, {{6.064058047097081e-08, 8.58140802540336e-08, -0.7428567271237954, -3.294437479999999}, {1.4427215125754238e-07, -2.530175320502907e-08, 0.3593941714860216, 0.7693199999999997}, {1.2045502760769865e-08, -1.2896740908748457e-07, -0.5648005953155495, 3.4155942999999986}, {1.3234889800848443e-23, 0.0, 0.0, 1.0}}, {{3.2534318590648264e-08, -8.581408025403363e-08, -0.8112534716456185, 0.15470457999999998}, {-1.4514141392576755e-07, 2.530175320502908e-08, -0.34489532442353965, -0.2476383}, {5.01230094778404e-08, 1.289674090874846e-07, -0.47213877190261855, -1.7680179200000001}, {0.0, 0.0, 0.0, 1.0}}, {{1.524078051932937e-07, -1.4731493732699067e-08, -0.21993078167242536, -1.25498709}, {-3.433309330205022e-08, -1.1304527499839266e-07, -0.6583691769191123, 0.49967191}, {-1.5163373870938614e-08, 1.0789150406568026e-07, -0.7198475381327679, -1.17748929}, {0.0, 0.0, 2.220446049250313e-16, 1.0}}, {{1.5258788537454444e-07, -1.50434017560616e-08, 0.2139234821857457, -1.25498709}, {-1.016610251610931e-08, -1.5490373090569122e-07, -0.14781717683985668, 0.49967191}, {3.536121881520941e-08, 2.0380342501549018e-08, -0.9656017947376753, -1.17748929}, {0.0, 0.0, 0.0, 1.0}}, {{8.618449605826386e-08, 1.3005744286105568e-07, -0.10926252369460417, -4.776339219999996}, {1.1907386502737676e-07, -6.894646223375916e-08, 0.48119515875463226, 2.2311702599999985}, {5.5049746849940485e-08, -5.4481873383947436e-08, -0.8697775118425347, 0.9207512499999986}, {1.3234889800848443e-23, 2.6469779601696886e-23, 0.0, 1.0}}, {{1.5572529749804938e-07, -9.609244553868475e-09, -0.10926252412771378, -1.29138978}, {-1.7245528181154292e-10, -1.3759422614296728e-07, 0.48119515255296613, 0.38371785999999997}, {-1.9657812971295542e-08, -7.491541593592457e-08, -0.8697775152191327, -0.53911579}, {0.0, 0.0, 1.1102230246251565e-16, 1.0}}, {{1.0510892074207234e-07, 8.792655576224747e-09, -0.7405621389792737, -1.2306127199999985}, {1.1349411496086066e-07, 2.8007369418022736e-08, 0.6673299643797594, -0.6591226399999993}, {2.6608799545244997e-08, -1.5419177904390008e-07, 0.07898377650727657, 4.091492979999998}, {0.0, 0.0, 0.0, 1.0}}, {{1.0510891815648413e-07, 8.79265706901476e-09, -0.7405621607654073, -1.2306127500000001}, {1.1349412013203696e-07, 2.8007366432442717e-08, 0.6673299431834946, -0.6591225800000001}, {2.6608799545245066e-08, -1.5419177904390005e-07, 0.07898375132383044, 4.091492979999997}, {0.0, 1.323488980084842e-23, 0.0, 1.0}}, {{4.4939794689710465e-08, 9.54233248079021e-08, -0.7405621367680707, -2.9126935899999995}, {3.249196924242356e-08, 1.1229246845956814e-07, 0.6673299714231342, -2.1653487399999993}, {1.4683839747935709e-07, -5.405199315156002e-08, 0.07898373773067752, 1.0461139699999995}, {0.0, -2.6469779601696886e-23, 0.0, 0.9999999999999996}}}; +// /* +// The points of the Airocean projection map are deduced from the unfolded net +// of the altered icosahedron defined above. +// The distances in the projected 2d space are expressed in meter. +// */ +// // Define the 23 unfolded surfaces used (from icosahedron + split faces) +constexpr pj_face base_airocean_faces[23] = {{{1.8211859946200586, 3.1543866727148018, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}, {2.7317789919300877, 3.6801177848339353, 1.0}}, {{1.8211859946200586, 3.1543866727148018, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}}, {{1.8211859946200586, 3.1543866727148018, 1.0}, {0.9105929973100293, 2.628655560595668, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}}, {{1.8211859946200586, 3.1543866727148018, 1.0}, {1.8211859946200586, 2.1029244484765344, 1.0}, {0.9105929973100293, 2.628655560595668, 1.0}}, {{1.8211859946200586, 3.1543866727148018, 1.0}, {2.7317789919300877, 3.6801177848339353, 1.0}, {2.7317789919300877, 2.628655560595668, 1.0}}, {{2.7317789919300877, 3.6801177848339353, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}, {2.7317789919300877, 4.731580009072203, 1.0}}, {{1.8211859946200586, 5.257311121191336, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}, {0.9105929973100293, 4.731580009072203, 1.0}}, {{0.9105929973100293, 4.731580009072203, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}}, {{0.9105929973100293, 2.628655560595668, 1.0}, {0.0, 3.1543866727148018, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}}, {{0.9105929973100293, 2.628655560595668, 1.0}, {0.9105929973100293, 1.5771933363574009, 1.0}, {0.0, 2.1029244484765344, 1.0}}, {{0.9105929973100293, 2.628655560595668, 1.0}, {1.8211859946200586, 2.1029244484765344, 1.0}, {0.9105929973100293, 1.5771933363574009, 1.0}}, {{0.9105929973100293, 1.5771933363574009, 1.0}, {1.8211859946200586, 2.1029244484765344, 1.0}, {1.8211859946200586, 1.0514622242382672, 1.0}}, {{1.8211859946200586, 1.0514622242382672, 1.0}, {1.8211859946200586, 2.1029244484765344, 1.0}, {2.7317789919300877, 1.5771933363574009, 1.0}}, {{1.8211859946200586, 0.0, 1.0}, {1.8211859946200586, 1.0514622242382672, 1.0}, {2.7317789919300877, 0.5257311121191336, 1.0}}, {{0.0, 5.257311121191336, 1.0}, {0.9105929973100293, 4.731580009072203, 1.0}, {0.0, 4.205848896953069, 1.0}}, {{0.0, 1.0514622242382672, 1.0}, {0.0, 2.1029244484765344, 1.0}, {0.9105929973100293, 1.5771933363574009, 1.0}}, {{0.9105929973100293, 0.5257311121191336, 1.0}, {0.9105929973100293, 1.5771933363574009, 1.0}, {1.8211859946200586, 1.0514622242382672, 1.0}}, {{0.9105929973100293, 0.5257311121191336, 1.0}, {1.8211859946200586, 1.0514622242382672, 1.0}, {1.8211859946200586, 0.0, 1.0}}, {{0.9105929973100293, 4.731580009072203, 1.0}, {0.45529649865501465, 4.994445565131769, 1.0}, {0.9105929973100293, 5.78304223331047, 1.0}}, {{0.9105929973100293, 0.5257311121191336, 1.0}, {1.8211859946200586, 0.0, 1.0}, {0.9105929973100293, 0.0, 1.0}}, {{0.0, 4.205848896953069, 1.0}, {0.9105929973100293, 4.731580009072203, 1.0}, {0.6070619982066862, 4.205848896953069, 1.0}}, {{0.9105929973100293, 4.731580009072203, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}, {0.6070619982066862, 4.205848896953069, 1.0}}, {{0.0, 3.1543866727148018, 1.0}, {0.3035309991033431, 3.6801177848339353, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}}}; + +// /* +// The parameters here are extracted from the transition matrices +// that allow converting a icosahedron face or subface to its +// corresponding face in the Airocean projected space. +// Since only a few parameters of those matrices are relevant, +// the irrelevant ones has been discarded. +// */ +// // Icosahedron to Airocean (forward) +constexpr double base_ico_air_trans[23][4][4] = {{{0.5771127843628077, -0.601949070265588, -0.551904112682031, 2.1247169940181885}, {0.09385435254116901, 0.7202114456801385, -0.6873767816857262, 3.680117788550241}, {0.8112534716456183, 0.3448953244235397, 0.4721387719026189, -0.7946544736643394}, {0.0, 0.0, 0.0, 0.9999999999999999}}, {{0.9709901123098558, -0.21873613013519208, -0.09660585714762573, 1.5176549986755081}, {0.0938543523824071, 0.7202114501390866, -0.68737677703546, 3.6801177840642754}, {0.2199307816724251, 0.6583691769191125, 0.7198475381327677, -0.794654474160402}, {2.7755575615628914e-17, 0.0, 0.0, 1.0}}, {{0.9721374064326862, -0.06476823448972475, 0.2252863218604219, 1.2141239985420345}, {0.09584151545422234, 0.986891659675502, -0.12984315992304857, 3.1543866667568574}, {-0.213923482185746, 0.14781717683985665, 0.9656017947376753, -0.7946544722350559}, {-1.3877787807814457e-16, 2.7755575615628914e-17, 0.0, 1.0}}, {{0.9921258753005284, -0.0010987169074706963, -0.12523993179159917, 1.5176549936500534}, {0.06122047682547376, 0.8766128105888067, 0.4772861192297111, 2.628655561621354}, {0.1092625259373331, -0.48119515565604315, 0.8697775132750618, -0.794654472177355}, {1.1102230246251565e-16, 5.551115123125783e-17, 0.0, 1.0}}, {{0.2803041463023307, -0.5991800450797868, -0.7499419088911223, 2.428247994171984}, {0.6079419973098752, 0.7154153394798394, -0.3443652517634205, 3.1543866696341833}, {0.7428567271237952, -0.3593941714860217, 0.5648005953155497, -0.7946544741179917}, {0.0, 0.0, 0.0, 1.0000000000000002}}, {{0.25960661697438703, -0.758006957058587, -0.5983559612700025, 2.428247993923292}, {-0.4560824568641986, 0.44991125768827994, -0.7678337349017109, 4.205848897582435}, {0.8512303999921013, 0.4722343774266651, -0.22891373682183747, -0.7946544711481622}, {0.0, -5.551115123125783e-17, 1.1102230246251565e-16, 1.0}}, {{0.9586365727166021, -0.25808606588953303, 0.12003128712756019, 1.5176549950590994}, {-0.003215296199617759, -0.4314976538404806, -0.9021083296632684, 4.731580007956949}, {0.2846148074971938, 0.8644080979012073, -0.41447925356542553, -0.7946544719642821}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.9928349393209477, 0.09405867905155406, 0.07370038213709272, 1.2141239979758605}, {0.0560180154856556, 0.1784349297842625, -0.9823558159365612, 4.205848903770237}, {-0.10554981347150151, 0.97944573119741, 0.17188745304792394, -0.794654473006748}, {-1.3877787807814457e-17, 0.0, 8.326672684688674e-17, 1.0}}, {{0.5819727853624432, 0.05026939328855433, 0.811653042180561, 0.6070619975564514}, {0.09584151340049132, 0.9868916600803643, -0.12984315836175953, 3.1543866646549703}, {-0.8075407606993799, 0.15335524153301364, 0.5695261975567214, -0.7946544732451482}, {0.0, -8.326672684688674e-17, 0.0, 1.0}}, {{0.5247823023520097, -0.7686380571359512, 0.36578553967256694, 0.6070619982034591}, {0.00321530314174359, 0.43149765221393604, 0.9021083304165357, 2.1029244497408546}, {-0.8512303999921013, -0.4722343774266651, 0.22891373682183733, -0.7946544711481622}, {1.1102230246251565e-16, 0.0, -2.7755575615628914e-17, 1.0}}, {{0.9586365727166023, -0.25808606588953276, 0.12003128712756019, 1.2141239968709887}, {0.0032152961996172996, 0.43149765384048056, 0.9021083296632679, 2.1029244473612816}, {-0.28461480749719376, -0.8644080979012073, 0.41447925356542553, -0.7946544719642822}, {-5.551115123125783e-17, 0.0, -5.551115123125783e-17, 1.0}}, {{0.9928349393209476, 0.09405867905155432, 0.0737003821370924, 1.5176549939542279}, {-0.05601801548565587, -0.17843492978426267, 0.982355815936562, 1.5771933431745697}, {0.10554981347150151, -0.97944573119741, -0.17188745304792394, -0.794654473006748}, {1.249000902703301e-16, 0.0, -8.326672684688674e-17, 1.0}}, {{0.6696489324143071, 0.7230710222271839, 0.16952465726532903, 2.124716992886465}, {-0.05601802147349406, -0.17843493406754668, 0.9823558148170956, 1.577193342141926}, {0.7405621455042507, -0.6673299596621294, -0.07898375518726183, -0.7946544743360283}, {1.1102230246251565e-16, 0.0, 5.551115123125783e-17, 0.9999999999999999}}, {{0.581972785362443, 0.05026939328855442, 0.8116530421805607, 2.124716994373637}, {-0.09584151340049174, -0.9868916600803641, 0.1298431583617594, 0.5257311040593022}, {0.8075407606993799, -0.15335524153301364, -0.5695261975567214, -0.7946544732451483}, {-1.1102230246251565e-16, -2.7755575615628914e-17, 0.0, 1.0}}, {{0.3863411405466375, 0.9191578807865023, 0.07674189823781499, 0.3035310024438569}, {0.5467215101388645, -0.16119747073988, -0.8216513703440179, 4.731580009447501}, {-0.7428567271237954, 0.35939417148602165, -0.5648005953155498, -0.7946544741179918}, {-1.1102230246251565e-16, 5.551115123125783e-17, 0.0, 1.0}}, {{0.20727613862501068, -0.9246959431881105, 0.31933369857041366, 0.30353100217436535}, {-0.5467215083775467, 0.16119746379435437, 0.8216513728786113, 1.5771933384708474}, {-0.8112534716456183, -0.34489532442353976, -0.4721387719026189, -0.7946544736643393}, {0.0, 1.1102230246251565e-16, 0.0, 1.0}}, {{0.9709901123098558, -0.21873613013519205, -0.09660585714762565, 1.2141239932545798}, {-0.09385435238240734, -0.7202114501390865, 0.6873767770354606, 1.0514622234686084}, {-0.21993078167242508, -0.6583691769191125, -0.7198475381327677, -0.794654474160402}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.9721374064326864, -0.06476823448972478, 0.2252863218604222, 1.5176549933880534}, {-0.09584151545422273, -0.9868916596755019, 0.1298431599230487, 0.5257311061611902}, {0.21392348218574594, -0.14781717683985665, -0.965601794737675, -0.7946544722350558}, {-1.3877787807814457e-16, -2.7755575615628914e-17, 0.0, 1.0}}, {{0.5490814341445536, 0.7586196137281238, 0.3507219468201455, 0.6070619971385178}, {0.828595975697076, -0.43925791880424425, -0.34710402061504564, 5.257311122022961}, {-0.10926252369460446, 0.4811951587546325, -0.8697775118425342, -0.7946544734171301}, {8.326672684688674e-17, 0.0, 0.0, 0.9999999999999998}}, {{0.9921258803454628, -0.001098726158448999, -0.1252399351953353, 1.2141239965994974}, {-0.061220481001961057, -0.8766128044664807, -0.4772861112510543, 6.962719666473e-09}, {-0.10926252412771358, 0.48119515255296597, -0.8697775152191325, -0.79465447341713}, {-4.163336342344337e-17, -1.1102230246251565e-16, 0.0, 0.9999999999999999}}, {{0.6696489432944074, 0.7230710163882418, 0.16952466434270155, 0.6070620106869362}, {0.05601800780331223, 0.1784349479222583, -0.9823558101673974, 4.205848888056709}, {-0.7405621389792741, 0.6673299643797597, 0.07898377650727716, -0.7946544674186218}, {1.1102230246251565e-16, 0.0, -1.3877787807814457e-17, 1.0}}, {{0.6696489098267326, 0.7230710312696226, 0.16952465761975835, 0.6070619835219269}, {0.056018019261034786, 0.1784349316785832, -0.9823558153771896, 4.205848903740433}, {-0.7405621607654075, 0.6673299431834948, 0.07898375132383098, -0.7946544674186217}, {1.1102230246251565e-16, -1.1102230246251565e-16, 2.7755575615628914e-17, 0.9999999999999999}}, {{0.28631142864032966, 0.20700633361637605, 0.9355074196454307, 0.3035309858829332}, {0.6079420159049573, 0.7154153325157111, -0.34436525612985447, 3.680117806877694}, {-0.7405621367680707, 0.667329971423134, 0.07898373773067754, -0.7946544674186213}, {0.0, 0.0, 8.326672684688674e-17, 1.0}}}; +// // Airocean to Icosahedron (inverse) +constexpr double base_air_ico_trans[23][4][4] = {{{0.5771127842542352, 0.09385434657102582, 0.8112534716456185, -0.9269301900000004}, {-0.6019490778198661, 0.7202114470147596, 0.3448953244235397, -1.0974189100000002}, {-0.5519041069771089, -0.6873767724024487, 0.47213877190261855, 4.077454710000002}, {0.0, 2.2204460492503126e-16, 0.0, 1.0}}, {{0.9709901268864738, 0.09385434657102582, 0.2199307816724253, -1.6442540899999996}, {-0.2187361374273623, 0.7202114470147596, 0.6583691769191118, -1.79532095}, {-0.09660585493174938, -0.687376772402449, 0.7198475381327685, 3.24827191}, {1.1102230246251565e-16, 0.0, 1.1102230246251565e-16, 1.0}}, {{0.9721374177212223, 0.09584151258786845, -0.21392348218574572, -1.6526118100000005}, {-0.06476823913013299, 0.9868916696001585, 0.14781717683985673, -2.9169376699999994}, {0.22528632507169927, -0.12984316207736876, 0.9656017947376752, 0.9033697900000001}, {1.1102230246251565e-16, 0.0, 0.0, 1.0}}, {{0.9921258758509998, 0.061220487542130664, 0.10926252593733322, -1.5798064099999996}, {-0.001098707109494417, 0.8766128052462792, -0.4811951556560428, -2.685029549999999}, {-0.12523992644012408, 0.4772861149277753, 0.8697775132750616, -0.3733772099999991}, {0.0, -2.465190328815662e-32, 0.0, 1.0000000000000002}}, {{0.28030414329344755, 0.6079419928405788, 0.7428567271237952, -2.00801767}, {-0.5991800415902347, 0.7154153355770391, -0.35939417148602165, -1.0873330499999998}, {-0.7499419027132015, -0.3443652483685888, 0.5648005953155497, 3.356127390000001}, {-1.1102230246251565e-16, 1.1102230246251565e-16, 0.0, 1.0}}, {{0.2596066197503542, -0.4560824620660179, 0.8512303999921011, 1.9642587099999997}, {-0.7580069603423448, 0.44991126556421224, 0.47223437742666524, 0.3236332399999994}, {-0.5983559577215728, -0.7678337379974675, -0.22891373682183738, 4.50044201}, {-1.1102230246251565e-16, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.9586365671366947, -0.003215303338595427, 0.2846148074971937, -1.213495679999999}, {-0.25808606116480587, -0.431497651119788, 0.8644080979012073, 3.12025702}, {0.1200312931494973, -0.9021083288913834, -0.4144792535654252, 3.7568638500000016}, {0.0, -1.6653345369377373e-16, 0.0, 1.0}}, {{0.9928349412643155, 0.056018018186692914, -0.10554981347150141, -1.524903679999999}, {0.09405867962197714, 0.17843493154109227, 0.97944573119741, -0.08634833000000003}, {0.07370038008007025, -0.9823558242886872, 0.1718874530479236, 4.178749899999999}, {-1.1102230246251565e-16, 0.0, 0.0, 0.9999999999999996}}, {{0.5819727875851122, 0.0958415125878687, -0.8075407606993801, -1.2973306300000007}, {0.05026939053476542, 0.9868916696001588, 0.1533552415330134, -3.0216901300000005}, {0.8116530460736279, -0.12984316207736876, 0.5695261975567216, 0.36942835999999946}, {-1.1102230246251565e-16, -2.220446049250313e-16, 0.0, 1.0}}, {{0.5247823082449008, 0.0032153033385950414, -0.851230399992101, -1.0017709799999996}, {-0.7686380655985867, 0.43149765111978794, -0.4722343774266652, -0.81605916}, {0.3657855441277853, 0.9021083288913834, 0.2289137368218374, -1.9372128400000004}, {0.0, 6.096153978258407e-17, 0.0, 0.9999999999999998}}, {{0.9586365671366951, 0.0032153033385950484, -0.28461480749719337, -1.39683563}, {-0.2580860611648058, 0.43149765111978794, -0.8644080979012073, -1.28096424}, {0.12003129314949779, 0.9021083288913836, 0.41447925356542553, -1.7134307400000008}, {-1.1102230246251565e-16, 1.1102230246251565e-16, 0.0, 1.0}}, {{0.9928349412643155, -0.05601801818669286, 0.1055498134715019, -1.33455403}, {0.09405867962197711, -0.17843493154109227, -0.9794457311974099, -0.6396431699999997}, {0.07370038008007082, 0.9823558242886878, -0.17188745304792374, -1.7978079500000004}, {1.1102230246251565e-16, -2.220446049250313e-16, 0.0, 0.9999999999999998}}, {{0.6696489285568152, -0.05601801818669308, 0.7405621455042509, -0.74597219}, {0.723071017397498, -0.1784349315410924, -0.6673299596621297, -1.7851916300000001}, {0.16952466190275595, 0.982355824288688, -0.0789837551872621, -1.9723217899999996}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.581972787585112, -0.09584151258786852, 0.80754076069938, -0.54442473}, {0.05026939053476491, -0.9868916696001588, -0.15335524153301358, 0.29016699000000007}, {0.8116530460736278, 0.12984316207736893, -0.5695261975567216, -2.2453721499999997}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.386341138180555, 0.5467215052984484, -0.7428567271237957, -3.2944374800000005}, {0.9191578756618027, -0.16119746966924034, 0.35939417148602165, 0.7693200000000001}, {0.07674189808886517, -0.8216513632963648, -0.5648005953155493, 3.415594300000001}, {-1.1102230246251565e-16, 0.0, 0.0, 1.0}}, {{0.2072761437410203, -0.5467215052984483, -0.8112534716456183, 0.15470457999999998}, {-0.9246959481210651, 0.16119746966924028, -0.34489532442353976, -0.2476383}, {0.31933369338332074, 0.8216513632963647, -0.47213877190261877, -1.7680179200000001}, {0.0, 0.0, 0.0, 1.0}}, {{0.970990126886474, -0.09385434657102576, -0.2199307816724251, -1.25498709}, {-0.21873613742736212, -0.7202114470147594, -0.6583691769191123, 0.49967191}, {-0.09660585493174975, 0.6873767724024488, -0.7198475381327678, -1.17748929}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721374177212225, -0.09584151258786833, 0.21392348218574608, -1.25498709}, {-0.06476823913013245, -0.9868916696001586, -0.14781717683985665, 0.49967190999999994}, {0.225286325071699, 0.12984316207736882, -0.9656017947376753, -1.17748929}, {1.1102230246251565e-16, 0.0, 0.0, 0.9999999999999999}}, {{0.5490814243871979, 0.828595968467787, -0.10926252369460442, -4.7763392200000006}, {0.7586195940894178, -0.4392579108912803, 0.4811951587546326, 2.2311702599999994}, {0.3507219371809713, -0.3471040153291294, -0.8697775118425345, 0.92075125}, {0.0, -1.1102230246251565e-16, 0.0, 0.9999999999999991}}, {{0.9921258703600726, -0.061220497052696075, -0.10926252412771353, -1.29138978}, {-0.0010987126004213489, -0.8766128147568447, 0.4811951525529661, 0.3837178600000002}, {-0.12523992644012394, -0.4772861149277757, -0.8697775152191326, -0.5391157899999999}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696489340477428, 0.05601800867612728, -0.7405621389792739, -1.230612719999998}, {0.7230710064156433, 0.17843495056222272, 0.6673299643797593, -0.659122639999999}, {0.1695246619027561, -0.9823558242886863, 0.07898377650727674, 4.091492979999993}, {-2.220446049250313e-16, 4.440892098500626e-16, 0.0, 1.0}}, {{0.6696489175749601, 0.05601801818669295, -0.7405621607654072, -1.230612749999999}, {0.723071039361207, 0.17843493154109233, 0.6673299431834945, -0.659122579999999}, {0.1695246619027577, -0.9823558242886873, 0.07898375132383063, 4.091492979999996}, {4.440892098500626e-16, 7.186231688523656e-17, 0.0, 0.9999999999999996}}, {{0.28631143196814535, 0.6079420023511448, -0.7405621367680713, -2.9126935900000026}, {0.20700633604348043, 0.7154153165559092, 0.6673299714231338, -2.165348740000002}, {0.9355074303409838, -0.34436524836858934, 0.07898373773067771, 1.0461139700000008}, {0.0, 0.0, 0.0, 1.0000000000000009}}}; // By default the resulting orientation of the projection is vertical // the following transforms are used to alter the projection data // so that the resulting orientation is horizontal instead -constexpr double orient_horizontal_trans[4][4] = {{0.0, -1.0, 0.0, 36843762.068421006}, {1.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; -constexpr double orient_horizontal_inv_trans[4][4] = {{0.0, 1.0, 0.0, 0.0}, {-1.0, -0.0, -0.0, 36843762.068421006}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; +constexpr double orient_horizontal_trans[4][4] = {{0.0, -1.0, 0.0, 5.78304223331047}, {1.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; +constexpr double orient_horizontal_inv_trans[4][4] = {{0.0, 1.0, 0.0, 0.0}, {-1.0, -0.0, -0.0, 5.78304223331047}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; + namespace { // anonymous namespace @@ -236,6 +236,7 @@ static PJ_XY airocean_forward(PJ_LP lp, PJ *P) { } else { lat = lp.phi; } + lat = lp.phi; // Convert the lat/long to x,y,z on the unit sphere double x, y, z; @@ -269,6 +270,7 @@ static PJ_LP airocean_inverse(PJ_XY xy, PJ *P) { PJ_LP lp = {0.0, 0.0}; + unsigned char face_id = get_dym_face_index(Q, &xy); if (face_id == 23) { @@ -327,17 +329,11 @@ PJ *PJ_PROJECTION(airocean) { proj_log_error( P, _("Invalid value for orient: only vertical or horizontal are supported")); - return pj_default_destructor(P, - PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); + return pj_default_destructor(P, PROJ_ERR_INVALID_OP_ILLEGAL_ARG_VALUE); } } - - P->left = PJ_IO_UNITS_RADIANS; - P->right = PJ_IO_UNITS_PROJECTED; - P->from_greenwich = -P->lam0; - P->inv = airocean_inverse; P->fwd = airocean_forward; diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie index c415a0ab19..8e1af31568 100644 --- a/test/gie/builtins.gie +++ b/test/gie/builtins.gie @@ -1173,200 +1173,198 @@ operation +proj=airocean +ellps=GRS80 ------------------------------------------------------------------------------- tolerance 0.1 mm accept 23 28 -expect 13556926.823490718 23467359.674033195 -accept 72 46 -expect 9643052.686797861 23470487.369125906 -accept 145 75 -expect 7737390.782312192 20104788.054769896 +expect 13563292.104339601 23482667.52366777 +accept 71 46 +expect 9712436.387570003 23471344.069491874 +accept 147 75 +expect 7730995.346116073 20083085.872351483 accept -77 61 -expect 9668545.797051517 16783947.67041814 +expect 9675662.250363283 16816726.593429103 accept -26 35 -expect 15441270.037205558 20068684.009483118 +expect 15444035.232702088 20084523.97367342 accept 29 -13 -expect 15454500.775444025 26772291.248060163 -accept 72 -25 -expect 9646854.070149897 30174627.37899145 -accept 96 10 -expect 7748510.227719365 26793197.86531571 +expect 15476385.91184963 26808151.021032616 +accept 71 -25 +expect 9735422.127044765 30232067.866410717 +accept 97 10 +expect 7670751.024555227 26810815.09133769 accept 169 35 -expect 3879364.926075886 20112884.602338977 +expect 3899481.1285664076 20132853.072642263 accept -151 13 -expect 3855457.9788894877 13372404.237126907 -accept -108 25 -expect 7757309.887436695 13427462.802436445 -accept -84 -10 -expect 9655653.729867224 10046033.288760712 -accept -42 -5 -expect 13531956.757129436 10009950.782333512 -accept -11 -35 -expect 13524799.031510707 3365720.025783973 -accept 154 -35 -expect 1943420.8175922546 30184052.521318957 -accept -157 -28 -expect 1942090.2539895012 10076591.20216224 -accept -108 -46 -expect 7761111.270788729 6723322.792570909 -accept -35 -75 -expect 9666773.175274398 3357623.4782149 -accept 98 -48 -expect 4871988.820643149 32910398.56714167 -accept 113 -72 -expect 7725850.483813245 1088496.8256700835 +expect 3862573.080611173 13394278.635916904 +accept -109 24 +expect 7676078.21222692 13378512.802501509 +accept -84 -9 +expect 9672617.425701782 10139722.086610688 +accept -42 -4 +expect 13561660.891162189 10105434.745812869 +accept -11 -34 +expect 13611498.820767328 3381116.836737874 +accept 155 -35 +expect 1871907.165749564 30227262.371780526 +accept -158 -28 +expect 1866236.5572882898 10102727.810050495 +accept -109 -46 +expect 7711224.276681991 6705418.7782009095 +accept -36 -75 +expect 9658514.588242078 3376747.6550830416 +accept 98 -49 +expect 4793576.034721544 33018978.58637787 +accept 114 -72 +expect 7713241.162446838 1111211.0119130726 accept 143 -9 -expect 3215425.0474725077 27916795.439275663 -accept 124 7 -expect 5140625.112062726 26778848.513305675 -accept 147 15 -expect 2546085.5873131985 22379298.380909223 +expect 3218042.2064498146 27953548.53981338 +accept 123 7 +expect 5239800.309588053 26817770.853363615 +accept 147 16 +expect 2644879.1822013017 22370411.86848925 direction inverse -accept 13500000 23400000 -expect 23.028334260781396 29.00141845366607 -accept 9700000 23400000 -expect 70.91748976033631 46.69938767448572 +accept 13600000 23500000 +expect 22.773464572867294 27.745464716163056 +accept 9700000 23500000 +expect 71.26673015453744 45.89205035000612 accept 7700000 20100000 -expect 145.97790022956485 74.66181692499651 -accept 9700000 16700000 -expect -76.80102747900565 59.99374652248361 +expect 146.99339922501423 74.69909786744657 +accept 9700000 16800000 +expect -76.55528558395834 60.90966581108546 accept 15500000 20100000 -expect -25.944389921688217 34.24636404674132 +expect -26.12578972754671 34.53133514828208 accept 15500000 26800000 -expect 28.780505935021033 -13.567140588707066 -accept 9700000 30100000 -expect 71.4679674085186 -24.079311453738754 +expect 28.725667463887856 -13.176397639962207 +accept 9700000 30200000 +expect 71.49135800157006 -24.84162686346212 accept 7700000 26800000 -expect 96.5497950965985 9.88121445991218 +expect 96.67476476615902 10.2142651287627 accept 3900000 20100000 -expect 169.13009208849755 35.254403049754224 +expect 169.44670563079603 35.245717282501886 accept 3900000 13400000 -expect -150.64046965868116 13.481494624013168 +expect -150.62222998696532 13.30459957043187 accept 7700000 13400000 -expect -108.66196431422468 24.604190039126202 -accept 9700000 10000000 -expect -83.45176986114532 -10.484774451578211 -accept 13500000 10000000 -expect -42.33857403889376 -5.173528026525927 -accept 13500000 3300000 -expect -10.156579309260813 -35.39429168339308 -accept 1900000 30100000 -expect 154.6981118584859 -34.09548216619245 -accept 1900000 10000000 -expect -157.1486568493204 -28.983938091775162 +expect -108.74281291121734 24.42206777180953 +accept 9700000 10100000 +expect -83.65325195956459 -9.486900270831473 +accept 13600000 10100000 +expect -41.56143018608222 -4.0134930004162905 +accept 13600000 3400000 +expect -11.279583156676242 -34.272615899757646 +accept 1900000 30200000 +expect 154.64715191651544 -34.84574835325207 +accept 1900000 10100000 +expect -157.5838766673165 -28.052389401329638 accept 7700000 6700000 -expect -109.0368655953666 -46.16466623109972 -accept 9700000 3300000 -expect -32.11127170743792 -74.98612150074251 -accept 4800000 32900000 -expect 98.90848938837188 -48.50784207235999 +expect -109.19369483087058 -46.23421830390136 +accept 9700000 3400000 +expect -35.930097311957454 -74.56175815714317 +accept 4800000 33000000 +expect 98.17201357657596 -49.00298561876853 accept 7700000 1100000 -expect 114.00231130949376 -71.99425265168686 +expect 114.2610931478263 -71.9419539648052 accept 3200000 27900000 -expect 143.20066829467564 -8.847739058325072 +expect 143.30076634375794 -8.522097310935342 accept 5200000 26800000 -expect 123.33794956763194 6.861286881197438 -accept 2600000 22300000 -expect 147.63769509437498 15.818879769693432 -accept 0 0 -expect failure +expect 123.44730424516767 7.179239007940713 +accept 2600000 22400000 +expect 146.85478120098927 15.54230419284032 ------------------------------------------------------------------------------- -operation +proj=airocean +orient=horizontal +ellps=GRS80 +operation +proj=airocean +orient=horizontal +ellps=GRS80 ------------------------------------------------------------------------------- tolerance 0.1 mm -accept 23 29 -expect 13445038.138395257 13501788.272168122 -accept 71 47 -expect 13469321.22856612 9691162.310202885 -accept 146 75 -expect 16758940.408539249 7725947.54927852 -accept -77 60 -expect 20145508.681780424 9691320.12928607 -accept -26 34 -expect 16738437.29206201 15521444.12245347 -accept 29 -14 -expect 10002182.5715067 15508486.660989888 -accept 71 -24 -expect 6745544.686885769 9738408.304902693 +accept 23 28 +expect 13402368.117172362 13563292.104339601 +accept 71 46 +expect 13413691.571348265 9712436.387570003 +accept 147 75 +expect 16801949.768488657 7730995.346116073 +accept -77 61 +expect 20068309.047411036 9675662.250363283 +accept -26 35 +expect 16800511.667166725 15444035.232702088 +accept 29 -13 +expect 10076884.619807519 15476385.91184963 +accept 71 -25 +expect 6652967.774429418 9735422.127044765 accept 97 10 -expect 10057167.426204873 7661719.142318802 +expect 10074220.54950245 7670751.024555227 accept 169 35 -expect 16730877.466082027 3879364.926075886 +expect 16752182.568197876 3899481.1285664076 accept -151 13 -expect 23471357.831294097 3855457.9788894877 -accept -109 25 -expect 23405563.0692953 7677848.871802735 -accept -83 -10 -expect 26804332.00275987 9742444.815267786 -accept -42 -5 -expect 26833811.28608749 13531956.757129436 -accept -10 -35 -expect 33549702.824863963 13536077.88916722 -accept 155 -34 -expect 6754064.240713957 1878658.9644939895 -accept -157 -29 -expect 26849240.124435734 1910219.231732698 +expect 23490757.004923232 3862573.080611173 +accept -109 24 +expect 23506522.83833863 7676078.21222692 +accept -84 -9 +expect 26745313.55422945 9672617.425701782 +accept -42 -4 +expect 26779600.89502727 13561660.891162189 +accept -11 -34 +expect 33503918.804102264 13611498.820767328 +accept 155 -35 +expect 6657773.269059614 1871907.165749564 +accept -158 -28 +expect 26782307.830789648 1866236.5572882898 accept -109 -46 -expect 30129033.055957943 7700118.744271104 -accept -32 -75 -expect 33546604.455268644 9700086.856617931 -accept 99 -49 -expect 3917784.3424766464 4762210.008135711 +expect 30179616.862639237 7711224.276681991 +accept -36 -75 +expect 33508287.985757098 9658514.588242078 +accept 98 -49 +expect 3866057.054462265 4793576.034721544 accept 114 -72 -expect 35743305.80505435 7700279.4959819885 +expect 35773824.62892707 7713241.162446838 accept 143 -9 -expect 8926966.62914534 3215425.0474725077 +expect 8931487.101026757 3218042.2064498146 accept 123 7 -expect 10051797.28039541 5233302.981464034 -accept 148 16 -expect 14580207.201673953 2606103.035139274 +expect 10067264.787476515 5239800.309588053 +accept 147 16 +expect 14514623.772350889 2644879.1822013017 direction inverse -accept 13400000 13500000 -expect 23.38101068889326 28.613417194415643 -accept 13500000 9700000 -expect 70.7802085458946 47.32843064371629 +accept 13400000 13600000 +expect 22.653513769488086 27.87758783216759 +accept 13400000 9700000 +expect 71.2321304889103 46.059446219758996 accept 16800000 7700000 -expect 148.10287981014486 74.96215466929766 +expect 147.55671428761954 74.77832978870643 accept 20100000 9700000 -expect -76.54133367948258 60.47011202998829 -accept 16700000 15500000 -expect -25.402102068835045 34.038552037244074 -accept 10000000 15500000 -expect 29.093669699644725 -13.960206072298153 +expect -76.64598920724659 60.74702065186206 +accept 16800000 15500000 +expect -26.312406534624202 34.601485943337174 +accept 10100000 15500000 +expect 28.619135102825094 -13.042018792349772 accept 6700000 9700000 -expect 71.39502686260073 -24.572248553401327 +expect 71.51626100204493 -24.67325245320244 accept 10100000 7700000 -expect 96.5989815165186 10.519796023191507 -accept 16700000 3900000 -expect 168.5332718079372 35.173954828735 +expect 96.68789664137729 10.383985622857828 +accept 16800000 3900000 +expect 169.65090708283734 35.27199215229812 accept 23500000 3900000 -expect -150.39605816066683 12.8877109123015 -accept 23400000 7700000 -expect -108.73571568748467 25.097014645260366 +expect -150.55720916463775 13.146791299175973 +accept 23500000 7700000 +expect -108.7176824122098 24.2537259740474 accept 26800000 9700000 -expect -83.48998116482932 -9.98785063836723 -accept 26800000 13500000 -expect -42.42285754320226 -4.68222695695373 -accept 33500000 13500000 -expect -10.755116011311662 -35.31735130903507 -accept 6800000 1900000 -expect 154.76504012111806 -33.459989505310055 +expect -83.64031637356378 -9.656648231646493 +accept 26800000 13600000 +expect -41.532483451278324 -4.181271534515257 +accept 33500000 13600000 +expect -11.07799815066552 -34.30009865557726 +accept 6700000 1900000 +expect 154.6653022372498 -34.676851362562076 accept 26800000 1900000 -expect -157.35174676612695 -28.520246787409704 -accept 30100000 7700000 -expect -108.93360340357648 -45.67479874983113 +expect -157.51535351022102 -28.21093854274684 +accept 30200000 7700000 +expect -109.22990596539768 -46.40145478575142 accept 33500000 9700000 -expect -33.77121014744891 -74.7525617691622 +expect -35.38695615427261 -74.64821445477583 accept 3900000 4800000 -expect 98.35846530162404 -48.821443120344455 -accept 35700000 7700000 -expect 114.65803383575242 -72.41879106994266 -accept 8900000 3200000 -expect 143.1150335988881 -9.311213341657826 +expect 98.36200826776671 -48.896293330184925 +accept 35800000 7700000 +expect 114.04214974826021 -71.7963489850827 +accept 9000000 3200000 +expect 143.33006361554604 -8.363015677507919 accept 10100000 5200000 -expect 123.42786172727975 7.474238270475286 -accept 14600000 2600000 -expect 148.23146560737166 16.00099471760901 +expect 123.47123953807082 7.342196463300299 +accept 14500000 2600000 +expect 147.01335050858833 15.591840264443174 accept 0 0 expect failure From 8988e5bbb4faf656551ef2bfd4c1389aa70d77bd Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 5 Jan 2025 13:07:44 +0100 Subject: [PATCH 25/37] - remove overriding lat variable --- src/projections/airocean.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/projections/airocean.cpp b/src/projections/airocean.cpp index afb7f8952d..6c1f3cdc29 100644 --- a/src/projections/airocean.cpp +++ b/src/projections/airocean.cpp @@ -236,7 +236,6 @@ static PJ_XY airocean_forward(PJ_LP lp, PJ *P) { } else { lat = lp.phi; } - lat = lp.phi; // Convert the lat/long to x,y,z on the unit sphere double x, y, z; From 9f739cff6164be31cd157f31d3ea7fb76b674a31 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 5 Jan 2025 13:27:30 +0100 Subject: [PATCH 26/37] - Fix test values following previous lat change --- test/gie/builtins.gie | 96 ++++++++++++++++++++++--------------------- 1 file changed, 49 insertions(+), 47 deletions(-) diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie index 8e1af31568..c572f59f3c 100644 --- a/test/gie/builtins.gie +++ b/test/gie/builtins.gie @@ -1173,51 +1173,51 @@ operation +proj=airocean +ellps=GRS80 ------------------------------------------------------------------------------- tolerance 0.1 mm accept 23 28 -expect 13563292.104339601 23482667.52366777 +expect 13572113.730842669 23493648.568397284 accept 71 46 -expect 9712436.387570003 23471344.069491874 +expect 9714915.99822954 23488176.36009714 accept 147 75 -expect 7730995.346116073 20083085.872351483 +expect 7723484.497553712 20087141.83057885 accept -77 61 -expect 9675662.250363283 16816726.593429103 +expect 9679376.81437275 16802749.590764046 accept -26 35 -expect 15444035.232702088 20084523.97367342 +expect 15458567.846694734 20091165.597581636 accept 29 -13 -expect 15476385.91184963 26808151.021032616 +expect 15471813.406433558 26802282.433531422 accept 71 -25 -expect 9735422.127044765 30232067.866410717 +expect 9737210.818128424 30219178.19502455 accept 97 10 -expect 7670751.024555227 26810815.09133769 +expect 7670302.04759564 26816601.850811563 accept 169 35 -expect 3899481.1285664076 20132853.072642263 +expect 3883710.715979733 20135415.70536941 accept -151 13 -expect 3862573.080611173 13394278.635916904 +expect 3859776.987458839 13387384.436317045 accept -109 24 -expect 7676078.21222692 13378512.802501509 +expect 7674343.079790037 13366009.085606368 accept -84 -9 -expect 9672617.425701782 10139722.086610688 +expect 9673007.43737963 10144952.271326754 accept -42 -4 -expect 13561660.891162189 10105434.745812869 +expect 13562062.525299646 10107761.692799212 accept -11 -34 -expect 13611498.820767328 3381116.836737874 +expect 13627060.513183802 3383645.553222437 accept 155 -35 -expect 1871907.165749564 30227262.371780526 +expect 1873264.8693915098 30211340.7539241 accept -158 -28 -expect 1866236.5572882898 10102727.810050495 +expect 1871227.859810853 10115901.327963104 accept -109 -46 -expect 7711224.276681991 6705418.7782009095 +expect 7708744.666022454 6722251.068806174 accept -36 -75 -expect 9658514.588242078 3376747.6550830416 +expect 9665810.794086894 3381177.974792701 accept 98 -49 -expect 4793576.034721544 33018978.58637787 +expect 4806946.326948598 33007546.442669753 accept 114 -72 -expect 7713241.162446838 1111211.0119130726 +expect 7708905.597812598 1101689.0300204905 accept 143 -9 -expect 3218042.2064498146 27953548.53981338 +expect 3219027.070477343 27948068.735312402 accept 123 7 -expect 5239800.309588053 26817770.853363615 +expect 5239165.496513276 26821978.012431815 accept 147 16 -expect 2644879.1822013017 22370411.86848925 +expect 2635947.7492687562 22373572.96962306 direction inverse accept 13600000 23500000 @@ -1266,57 +1266,60 @@ accept 5200000 26800000 expect 123.44730424516767 7.179239007940713 accept 2600000 22400000 expect 146.85478120098927 15.54230419284032 +accept 0 0 +expect failure + ------------------------------------------------------------------------------- operation +proj=airocean +orient=horizontal +ellps=GRS80 ------------------------------------------------------------------------------- tolerance 0.1 mm accept 23 28 -expect 13402368.117172362 13563292.104339601 +expect 13391387.07244285 13572113.730842669 accept 71 46 -expect 13413691.571348265 9712436.387570003 +expect 13396859.280743 9714915.99822954 accept 147 75 -expect 16801949.768488657 7730995.346116073 +expect 16797893.810261294 7723484.497553712 accept -77 61 -expect 20068309.047411036 9675662.250363283 +expect 20082286.050076094 9679376.81437275 accept -26 35 -expect 16800511.667166725 15444035.232702088 +expect 16793870.04325851 15458567.846694734 accept 29 -13 -expect 10076884.619807519 15476385.91184963 +expect 10082753.207308717 15471813.406433558 accept 71 -25 -expect 6652967.774429418 9735422.127044765 +expect 6665857.445815587 9737210.818128424 accept 97 10 -expect 10074220.54950245 7670751.024555227 +expect 10068433.790028576 7670302.04759564 accept 169 35 -expect 16752182.568197876 3899481.1285664076 +expect 16749619.935470728 3883710.715979733 accept -151 13 -expect 23490757.004923232 3862573.080611173 +expect 23497651.20452309 3859776.987458839 accept -109 24 -expect 23506522.83833863 7676078.21222692 +expect 23519026.55523377 7674343.079790037 accept -84 -9 -expect 26745313.55422945 9672617.425701782 +expect 26740083.369513385 9673007.43737963 accept -42 -4 -expect 26779600.89502727 13561660.891162189 +expect 26777273.94804092 13562062.525299646 accept -11 -34 -expect 33503918.804102264 13611498.820767328 +expect 33501390.0876177 13627060.513183802 accept 155 -35 -expect 6657773.269059614 1871907.165749564 +expect 6673694.886916037 1873264.8693915098 accept -158 -28 -expect 26782307.830789648 1866236.5572882898 +expect 26769134.312877037 1871227.859810853 accept -109 -46 -expect 30179616.862639237 7711224.276681991 +expect 30162784.57203397 7708744.666022454 accept -36 -75 -expect 33508287.985757098 9658514.588242078 +expect 33503857.666047435 9665810.794086894 accept 98 -49 -expect 3866057.054462265 4793576.034721544 +expect 3877489.198170379 4806946.326948598 accept 114 -72 -expect 35773824.62892707 7713241.162446838 +expect 35783346.610819645 7708905.597812598 accept 143 -9 -expect 8931487.101026757 3218042.2064498146 +expect 8936966.905527731 3219027.070477343 accept 123 7 -expect 10067264.787476515 5239800.309588053 +expect 10063057.628408313 5239165.496513276 accept 147 16 -expect 14514623.772350889 2644879.1822013017 +expect 14511462.671217078 2635947.7492687562 direction inverse accept 13400000 13600000 @@ -1368,7 +1371,6 @@ expect 147.01335050858833 15.591840264443174 accept 0 0 expect failure - =============================================================================== # Eckert I # PCyl., Sph. From 4b0e7e38171b928585edf272162c43f24951e75b Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 5 Jan 2025 15:02:23 +0100 Subject: [PATCH 27/37] - Add notebook script used to compute airocean parameters --- scripts/build_airocean_parameters.ipynb | 659 ++++++++++++++++++++++++ 1 file changed, 659 insertions(+) create mode 100644 scripts/build_airocean_parameters.ipynb diff --git a/scripts/build_airocean_parameters.ipynb b/scripts/build_airocean_parameters.ipynb new file mode 100644 index 0000000000..0f63fd88f5 --- /dev/null +++ b/scripts/build_airocean_parameters.ipynb @@ -0,0 +1,659 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Airocean Parameters Builder\n", + "\n", + "This notebook computes the values defining the faces of the Airocean's unfolded net as well as matrices to get to the target Airocean space from coordinates of the unit icosahedron model.\n", + "The matrix for switching from vertical to horizontal layout of the airocean space is also computed here.\n", + "\n", + "C++ code that you can plug directly into the airocean source file is generated at the end of this notebook. \n", + "\n", + "This notebook includes visualizations that requires geopandas and matplotlib extensions to be installed.\n", + "\n", + "\n", + "First we import a few packages:" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import geopandas as gpd\n", + "from shapely.geometry import Polygon\n", + "import json" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we define vertices of the unfolded net:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Icosahedron properties\n", + "circumscribed_radius = 1\n", + "inscribed_radius = 3**0.5 / 12 * (3 + 5**0.5)\n", + "triangle_edge = circumscribed_radius / np.sin(2 * np.pi / 5)\n", + "triangle_height = 3**0.5 / 2 * triangle_edge\n", + "\n", + "# Icosahedron properties scaled to a specifi radius. Left to 1.0\n", + "radius = 1.0\n", + "triangle_earth_edge = triangle_edge * radius\n", + "triangle_earth_height = triangle_height * radius\n", + "circumscribed_earth_radius = circumscribed_radius * radius\n", + "inscribed_earth_radius = inscribed_radius * radius\n", + "\n", + "\n", + "# Vertices of the faces in the airocean referential\n", + "airocean_vertices = np.array(\n", + " [\n", + " [2, 0, 0], # Vertex 0\n", + " [1, 1, 0], # Vertex 1\n", + " [3, 1, 0], # Vertex 2\n", + " [0, 2, 0], # Vertex 3\n", + " [2, 2, 0], # Vertex 4\n", + " [1, 3, 0], # Vertex 5\n", + " [3, 3, 0], # Vertex 6\n", + " [0, 4, 0], # Vertex 7\n", + " [2, 4, 0], # Vertex 8\n", + " [1, 5, 0], # Vertex 9\n", + " [3, 5, 0], # Vertex 10\n", + " [0, 6, 0], # Vertex 11\n", + " [2, 6, 0], # Vertex 12\n", + " [1, 7, 0], # Vertex 13\n", + " [3, 7, 0], # Vertex 14\n", + " [0, 8, 0], # Vertex 15\n", + " [2, 8, 0], # Vertex 16\n", + " [1, 9, 0], # Vertex 17\n", + " [3, 9, 0], # Vertex 18\n", + " [0, 10, 0], # Vertex 19\n", + " [2, 10, 0], # Vertex 20\n", + " [1, 11, 0], # Vertex 21\n", + " [0.5, 9.5, 0], # Vertex 22 : Split from Face 15 (ocean)\n", + " [1, 0, 0], # Vertex 23 : Split from Face 15 (australia)\n", + " [2 / 3, 8, 0], # Vertex 24 : split from face 8 (japan)\n", + " [1 / 3, 7, 0], # Vertex 25 : new from face 8 (japan)\n", + " [1, -1, 0], # Vertex 26 : bottom new for antartica\n", + " ]\n", + ") * [triangle_earth_height, triangle_earth_edge / 2, 1]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We build airocean unsplited faces from the previous vertices:" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "airocean_face_vertices = airocean_vertices[\n", + " [\n", + " [12, 16, 14], # Face 0\n", + " [12, 13, 16], # Face 1\n", + " [12, 9, 13], # Face 2\n", + " [12, 8, 9], # Face 3\n", + " [12, 14, 10], # Face 4\n", + " [14, 16, 18], # Face 5\n", + " [20, 16, 17], # Face 6\n", + " [17, 16, 13], # Face 7\n", + " [9, 11, 13], # Face 9\n", + " [9, 5, 7], # Face 10\n", + " [9, 8, 5], # Face 11\n", + " [5, 8, 4], # Face 12\n", + " [4, 8, 6], # Face 13\n", + " [0, 4, 2], # Face 14\n", + " [19, 17, 15], # Face 16\n", + " [3, 7, 5], # Face 17\n", + " [1, 5, 4], # Face 18\n", + " [1, 4, 0], # Face 19\n", + " [15, 17, 13], # Face 8\n", + " [19, 21, 17], # Face 15\n", + " [26, 1, 0], # Face 8'\n", + " [11, 15, 13], # Face 15'\n", + " ]\n", + "]\n", + "airocean_face_vertices = np.concat(\n", + " [\n", + " airocean_face_vertices,\n", + " np.zeros((*airocean_face_vertices.shape[:-1], 1)),\n", + " ],\n", + " axis=2,\n", + ")\n", + "\n", + "airocean_22_centers = airocean_face_vertices.mean(axis=1)\n", + "airocean_22_centers[:, 2] = 1\n", + "airocean_2_centers = airocean_22_centers[[18, 19]]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Quick visualization of airocean enumerated faces:" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "

" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "gdf = gpd.GeoDataFrame(\n", + " data={\"id\": range(22)},\n", + " geometry=[Polygon(shell=v[:, :2]) for v in airocean_face_vertices],\n", + " crs=None,\n", + ")\n", + "ax = gdf.plot()\n", + "gdf.apply(\n", + " lambda x: ax.annotate(\n", + " text=x[\"id\"], xy=x.geometry.centroid.coords[0], ha=\"center\"\n", + " ),\n", + " axis=1,\n", + ")\n", + "pass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The airocean unfolded net faces are not all base triangles. Some are actually broken into more faaces. We take those extra faces into account by computimg them here: " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "airocean_23_face_vertices = airocean_vertices[\n", + " [\n", + " [12, 16, 14], # Face 0\n", + " [12, 13, 16], # Face 1\n", + " [12, 9, 13], # Face 2\n", + " [12, 8, 9], # Face 3\n", + " [12, 14, 10], # Face 4\n", + " [14, 16, 18], # Face 5\n", + " [20, 16, 17], # Face 6\n", + " [17, 16, 13], # Face 7\n", + " [9, 11, 13], # Face 9\n", + " [9, 5, 7], # Face 10\n", + " [9, 8, 5], # Face 11\n", + " [5, 8, 4], # Face 12\n", + " [4, 8, 6], # Face 13\n", + " [0, 4, 2], # Face 14\n", + " [19, 17, 15], # Face 16\n", + " [3, 7, 5], # Face 17\n", + " [1, 5, 4], # Face 18\n", + " [1, 4, 0], # Face 19\n", + " # [15, 17, 13], # Face 8\n", + " # [19, 21, 17], # Face 15\n", + " [17, 22, 21], # Face 20 - from 15 (Ocean)\n", + " [1, 0, 23], # Face 21 - from 15 (Australia)\n", + " [15, 17, 24], # Face 22 - from 8 (Japan)\n", + " [17, 13, 24], # Face 23 - from 8 (Japan)\n", + " [11, 25, 13], # Face 24 - from 8 (Japan)\n", + " ]\n", + "]\n", + "airocean_23_face_vertices = np.concat(\n", + " [\n", + " airocean_23_face_vertices,\n", + " np.ones((*airocean_23_face_vertices.shape[:-1], 1)),\n", + " ],\n", + " axis=2,\n", + ")\n", + "airocean_23_face_vertices[:, :, 3] = 1.0\n", + "\n", + "\n", + "airocean_23_centers = airocean_23_face_vertices.mean(axis=1)\n", + "airocean_23_centers[:, 2] = 1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now visualize an enumeration of the final unfolded faces of the airocean unfolded net" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "gdf = gpd.GeoDataFrame(\n", + " data={\"id\": range(len(airocean_23_face_vertices))},\n", + " geometry=[Polygon(shell=v[:, :2]) for v in airocean_23_face_vertices],\n", + " crs=None,\n", + ")\n", + "ax = gdf.plot()\n", + "gdf.apply(\n", + " lambda x: ax.annotate(\n", + " text=x[\"id\"], xy=x.geometry.centroid.coords[0], ha=\"center\"\n", + " ),\n", + " axis=1,\n", + ")\n", + "pass" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We compute the transform matrix and its inverse to switch from vertical airocean layoout to the horizontal one. " + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def translation(dx=0, dy=0):\n", + " res = np.eye(4)\n", + " res[[0, 1], 3] = dx, dy\n", + " return res\n", + "\n", + "\n", + "def rotation(angle):\n", + " res = np.eye(4)\n", + " res[:2, :2] = np.round(\n", + " [\n", + " [np.cos(angle), -np.sin(angle)],\n", + " [np.sin(angle), np.cos(angle)],\n", + " ],\n", + " 10,\n", + " )\n", + " return res\n", + "\n", + "\n", + "w, h = airocean_vertices[:, 0].max(), airocean_vertices[:, 1].max()\n", + "lower_left = [0, 0, 0, 1]\n", + "lower_right = [w, 0, 0, 1]\n", + "upper_left = [0, h, 0, 1]\n", + "upper_right = [w, h, 0, 1]\n", + "\n", + "translation(h, 0) @ rotation(np.pi / 2 * 1) @ lower_left\n", + "translation(h, 0) @ rotation(np.pi / 2 * 1) @ lower_right\n", + "translation(h, 0) @ rotation(np.pi / 2 * 1) @ upper_left\n", + "translation(h, 0) @ rotation(np.pi / 2 * 1) @ upper_right\n", + "orient_horizontal = translation(h, 0) @ rotation(np.pi / 2 * 1)\n", + "\n", + "inv_orient_horizontal = np.linalg.inv(orient_horizontal)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we define the icosahedron vertices values.\n", + "\n", + "We also define the 20 centers of those faces.\n", + "\n", + "And we also define centers for the faces corresponding to the broken/split faces in the final airocean unfolded net." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "ico_faces = np.array(\n", + " [\n", + " [\n", + " [0.42015243, 0.07814525, 0.90408255, 1.0],\n", + " [0.51883673, 0.83542038, 0.18133184, 1.0],\n", + " [0.99500944, -0.0913478, 0.04014718, 1.0],\n", + " ],\n", + " [\n", + " [0.42015243, 0.07814525, 0.90408255, 1.0],\n", + " [-0.41468223, 0.65596241, 0.63067581, 1.0],\n", + " [0.51883673, 0.83542038, 0.18133184, 1.0],\n", + " ],\n", + " [\n", + " [0.42015243, 0.07814525, 0.90408255, 1.0],\n", + " [-0.51545596, -0.3817169, 0.76720099, 1.0],\n", + " [-0.41468223, 0.65596241, 0.63067581, 1.0],\n", + " ],\n", + " [\n", + " [0.42015243, 0.07814525, 0.90408255, 1.0],\n", + " [0.3557814, -0.84358, 0.40223423, 1.0],\n", + " [-0.51545596, -0.3817169, 0.76720099, 1.0],\n", + " ],\n", + " [\n", + " [0.42015243, 0.07814525, 0.90408255, 1.0],\n", + " [0.99500944, -0.0913478, 0.04014718, 1.0],\n", + " [0.3557814, -0.84358, 0.40223423, 1.0],\n", + " ],\n", + " [\n", + " [0.99500944, -0.0913478, 0.04014718, 1.0],\n", + " [0.51883673, 0.83542038, 0.18133184, 1.0],\n", + " [0.51545596, 0.3817169, -0.76720099, 1.0],\n", + " ],\n", + " [\n", + " [0.51545596, 0.3817169, -0.76720099, 1.0],\n", + " [0.51883673, 0.83542038, 0.18133184, 1.0],\n", + " [-0.3557814, 0.84358, -0.40223423, 1.0],\n", + " ],\n", + " [\n", + " [-0.3557814, 0.84358, -0.40223423, 1.0],\n", + " [0.51883673, 0.83542038, 0.18133184, 1.0],\n", + " [-0.41468223, 0.65596241, 0.63067581, 1.0],\n", + " ],\n", + " [\n", + " [-0.51545596, -0.3817169, 0.76720099, 1.0],\n", + " [-0.99500944, 0.0913478, -0.04014718, 1.0],\n", + " [-0.41468223, 0.65596241, 0.63067581, 1.0],\n", + " ],\n", + " [\n", + " [-0.51545596, -0.3817169, 0.76720099, 1.0],\n", + " [-0.51883673, -0.83542038, -0.18133184, 1.0],\n", + " [-0.99500944, 0.0913478, -0.04014718, 1.0],\n", + " ],\n", + " [\n", + " [-0.51545596, -0.3817169, 0.76720099, 1.0],\n", + " [0.3557814, -0.84358, 0.40223423, 1.0],\n", + " [-0.51883673, -0.83542038, -0.18133184, 1.0],\n", + " ],\n", + " [\n", + " [-0.51883673, -0.83542038, -0.18133184, 1.0],\n", + " [0.3557814, -0.84358, 0.40223423, 1.0],\n", + " [0.41468223, -0.65596241, -0.63067581, 1.0],\n", + " ],\n", + " [\n", + " [0.41468223, -0.65596241, -0.63067581, 1.0],\n", + " [0.3557814, -0.84358, 0.40223423, 1.0],\n", + " [0.99500944, -0.0913478, 0.04014718, 1.0],\n", + " ],\n", + " [\n", + " [0.51545596, 0.3817169, -0.76720099, 1.0],\n", + " [0.41468223, -0.65596241, -0.63067581, 1.0],\n", + " [0.99500944, -0.0913478, 0.04014718, 1.0],\n", + " ],\n", + " [\n", + " [-0.42015243, -0.07814525, -0.90408255, 1.0],\n", + " [-0.3557814, 0.84358, -0.40223423, 1.0],\n", + " [-0.99500944, 0.0913478, -0.04014718, 1.0],\n", + " ],\n", + " [\n", + " [-0.42015243, -0.07814525, -0.90408255, 1.0],\n", + " [-0.99500944, 0.0913478, -0.04014718, 1.0],\n", + " [-0.51883673, -0.83542038, -0.18133184, 1.0],\n", + " ],\n", + " [\n", + " [-0.42015243, -0.07814525, -0.90408255, 1.0],\n", + " [-0.51883673, -0.83542038, -0.18133184, 1.0],\n", + " [0.41468223, -0.65596241, -0.63067581, 1.0],\n", + " ],\n", + " [\n", + " [-0.42015243, -0.07814525, -0.90408255, 1.0],\n", + " [0.41468223, -0.65596241, -0.63067581, 1.0],\n", + " [0.51545596, 0.3817169, -0.76720099, 1.0],\n", + " ],\n", + " [\n", + " [-0.3557814, 0.84358, -0.40223423, 1.0],\n", + " [-0.38796691, 0.38271738, -0.65315839, 1.0],\n", + " [0.51545596, 0.3817169, -0.76720099, 1.0],\n", + " ],\n", + " [\n", + " [-0.42015243, -0.07814525, -0.90408255, 1.0],\n", + " [0.51545596, 0.3817169, -0.76720099, 1.0],\n", + " [-0.38796691, 0.38271738, -0.65315839, 1.0],\n", + " ],\n", + " [\n", + " [-0.99500944, 0.0913478, -0.04014718, 1.0],\n", + " [-0.3557814, 0.84358, -0.40223423, 1.0],\n", + " [-0.58849102, 0.53029673, 0.0627648, 1.0],\n", + " ],\n", + " [\n", + " [-0.3557814, 0.84358, -0.40223423, 1.0],\n", + " [-0.41468223, 0.65596241, 0.63067581, 1.0],\n", + " [-0.58849102, 0.53029673, 0.0627648, 1.0],\n", + " ],\n", + " [\n", + " [-0.99500944, 0.0913478, -0.04014718, 1.0],\n", + " [-0.58849102, 0.53029673, 0.0627648, 1.0],\n", + " [-0.41468223, 0.65596241, 0.63067581, 1.0],\n", + " ],\n", + " ]\n", + ")\n", + "ico_20_centers = np.array(\n", + " [\n", + " [0.6446662, 0.27407261, 0.37518719],\n", + " [0.17476898, 0.52317601, 0.57203007],\n", + " [-0.16999525, 0.11746359, 0.76731978],\n", + " [0.08682596, -0.38238388, 0.69117259],\n", + " [0.59031442, -0.28559418, 0.44882132],\n", + " [0.67643404, 0.37526316, -0.18190733],\n", + " [0.22617043, 0.68690576, -0.32936779],\n", + " [-0.08387563, 0.77832093, 0.13659114],\n", + " [-0.64171587, 0.12186443, 0.45257654],\n", + " [-0.67643404, -0.37526316, 0.18190733],\n", + " [-0.22617043, -0.68690576, 0.32936779],\n", + " [0.08387563, -0.77832093, -0.13659114],\n", + " [0.58849102, -0.53029673, -0.0627648],\n", + " [0.64171587, -0.12186443, -0.45257654],\n", + " [-0.59031442, 0.28559418, -0.44882132],\n", + " [-0.6446662, -0.27407261, -0.37518719],\n", + " [-0.17476898, -0.52317601, -0.57203007],\n", + " [0.16999525, -0.11746359, -0.76731978],\n", + " [-0.58849102, 0.53029673, 0.0627648],\n", + " [-0.08682596, 0.38238388, -0.69117259],\n", + " ]\n", + ")\n", + "# Centers corresponding to the split faces of Australia\n", + "ico_2_centers = np.array(\n", + " [\n", + " [-0.07609745, 0.53600476, -0.6075312],\n", + " [-0.09755446, 0.22876301, -0.77481398],\n", + " ]\n", + ")\n", + "# Centers corresponding to the split faces around Japan\n", + "ico_3_centers = np.array(\n", + " [\n", + " [-0.64642729, 0.48840818, -0.12653887],\n", + " [-0.45298488, 0.67661305, 0.09706879],\n", + " [-0.66606089, 0.42586898, 0.21776448],\n", + " ]\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we compute the transform matrices from each icosahedron face to their corresponding face in airocean space.\n", + "\n", + "We do so for each face by inverting the matrice that maps the 3 corner of a face and a point elevated from the center of the face to their corresponding target projection.\n", + "\n", + "Assertions are made to check if each matrix and their corresponding inverse work as intended back and forth." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "A = ico_faces[:, 1] - ico_faces[:, 0]\n", + "B = ico_faces[:, 2] - ico_faces[:, 0]\n", + "ico_normals = -np.array(\n", + " [\n", + " A[:, 1] * B[:, 2] - A[:, 2] * B[:, 1],\n", + " A[:, 2] * B[:, 0] - A[:, 0] * B[:, 2],\n", + " A[:, 0] * B[:, 1] - A[:, 1] * B[:, 0],\n", + " ]\n", + ").T\n", + "ico_normals /= ((ico_normals**2).sum(axis=1) ** 0.5).reshape(-1, 1)\n", + "ico_centers = ico_faces.mean(axis=1)\n", + "ico_elevated_centers = ico_centers.copy()\n", + "ico_elevated_centers[:, :3] += ico_normals\n", + "\n", + "airocean_basis = np.zeros((23, 4, 4))\n", + "airocean_basis[:, :3, :] = airocean_23_face_vertices[:, :3, :]\n", + "airocean_basis[:, 3, :] = airocean_23_centers\n", + "\n", + "ico_basis = np.zeros((23, 4, 4))\n", + "ico_basis[:, :3, :] = ico_faces\n", + "ico_basis[:, 3, :] = ico_elevated_centers\n", + "\n", + "\n", + "air_ico_trans = np.array(\n", + " [\n", + " a.T @ np.linalg.inv(b.T)\n", + " for i, (a, b) in enumerate(zip(ico_basis, airocean_basis))\n", + " ]\n", + ")\n", + "ico_air_trans = np.array(\n", + " [\n", + " b.T @ np.linalg.inv(a.T)\n", + " for i, (a, b) in enumerate(zip(ico_basis, airocean_basis))\n", + " ]\n", + ")\n", + "\n", + "for i, (a, b, v1, v2) in enumerate(\n", + " zip(ico_basis, airocean_basis, ico_centers, airocean_22_centers)\n", + "):\n", + " m = b.T @ np.linalg.inv(a.T) # ico to air\n", + " w = a.T @ np.linalg.inv(b.T) # air to ico\n", + " for x, y in zip(a, b):\n", + " v1 = m @ x.T\n", + " v1 /= v1[3]\n", + " v2 = w @ y.T\n", + " v2 /= v2[3]\n", + " assert np.isclose(v1, y, rtol=1e-7).all()\n", + " assert np.isclose(v2, x, rtol=1e-7).all()\n", + " for i in range(100):\n", + " r = np.random.rand(3)\n", + " r /= r.sum()\n", + " v = (a[:3, :] * r.reshape(3, 1)).sum(axis=0)\n", + " v1 = m @ v.T\n", + " v1 /= v1[3]\n", + " v2 = w @ v1.T\n", + " v2 /= v2[3]\n", + " assert np.isclose(v, v2, rtol=1e-7).all()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here we generate C code that can be pasted into the airocean projection source file." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "constexpr pj_face base_ico_faces[23] = {{{0.42015243, 0.07814525, 0.90408255}, {0.51883673, 0.83542038, 0.18133184}, {0.99500944, -0.0913478, 0.04014718}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.41468223, 0.65596241, 0.63067581}, {0.51883673, 0.83542038, 0.18133184}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.51545596, -0.3817169, 0.76720099}, {-0.41468223, 0.65596241, 0.63067581}}, {{0.42015243, 0.07814525, 0.90408255}, {0.3557814, -0.84358, 0.40223423}, {-0.51545596, -0.3817169, 0.76720099}}, {{0.42015243, 0.07814525, 0.90408255}, {0.99500944, -0.0913478, 0.04014718}, {0.3557814, -0.84358, 0.40223423}}, {{0.99500944, -0.0913478, 0.04014718}, {0.51883673, 0.83542038, 0.18133184}, {0.51545596, 0.3817169, -0.76720099}}, {{0.51545596, 0.3817169, -0.76720099}, {0.51883673, 0.83542038, 0.18133184}, {-0.3557814, 0.84358, -0.40223423}}, {{-0.3557814, 0.84358, -0.40223423}, {0.51883673, 0.83542038, 0.18133184}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.99500944, 0.0913478, -0.04014718}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.51883673, -0.83542038, -0.18133184}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.51545596, -0.3817169, 0.76720099}, {0.3557814, -0.84358, 0.40223423}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.51883673, -0.83542038, -0.18133184}, {0.3557814, -0.84358, 0.40223423}, {0.41468223, -0.65596241, -0.63067581}}, {{0.41468223, -0.65596241, -0.63067581}, {0.3557814, -0.84358, 0.40223423}, {0.99500944, -0.0913478, 0.04014718}}, {{0.51545596, 0.3817169, -0.76720099}, {0.41468223, -0.65596241, -0.63067581}, {0.99500944, -0.0913478, 0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.3557814, 0.84358, -0.40223423}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.99500944, 0.0913478, -0.04014718}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.51883673, -0.83542038, -0.18133184}, {0.41468223, -0.65596241, -0.63067581}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.41468223, -0.65596241, -0.63067581}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.38796691, 0.38271738, -0.65315839}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.51545596, 0.3817169, -0.76720099}, {-0.38796691, 0.38271738, -0.65315839}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.3557814, 0.84358, -0.40223423}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.41468223, 0.65596241, 0.63067581}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.58849102, 0.53029673, 0.0627648}, {-0.41468223, 0.65596241, 0.63067581}}};\n", + "constexpr PJ_XYZ base_ico_centers[23] = {{0.6446662, 0.27407261, 0.37518718999999995}, {0.1747689766666667, 0.5231760133333333, 0.5720300666666667}, {-0.16999525333333332, 0.11746358666666666, 0.7673197833333334}, {0.08682595666666666, -0.38238388333333334, 0.69117259}, {0.5903144233333334, -0.28559418333333336, 0.44882131999999997}, {0.6764340433333333, 0.37526316, -0.18190732333333334}, {0.22617043, 0.68690576, -0.3293677933333333}, {-0.08387563333333335, 0.77832093, 0.13659113999999997}, {-0.6417158766666667, 0.12186443666666665, 0.45257653999999997}, {-0.6764340433333333, -0.37526316, 0.18190732333333334}, {-0.22617043, -0.68690576, 0.3293677933333333}, {0.08387563333333335, -0.77832093, -0.13659113999999997}, {0.5884910233333334, -0.5302967366666668, -0.06276479999999997}, {0.6417158766666667, -0.12186443666666665, -0.45257653999999997}, {-0.5903144233333334, 0.28559418333333336, -0.44882131999999997}, {-0.6446662, -0.27407261, -0.37518718999999995}, {-0.1747689766666667, -0.5231760133333333, -0.5720300666666667}, {0.16999525333333332, -0.11746358666666668, -0.7673197833333334}, {-0.07609744999999997, 0.5360047600000001, -0.6075312033333334}, {-0.09755446, 0.22876301, -0.7748139766666666}, {-0.6464272866666667, 0.48840817666666664, -0.12653887}, {-0.45298488333333337, 0.6766130466666667, 0.0970687933333333}, {-0.6660608966666667, 0.42586898, 0.21776447666666665}};\n", + "constexpr PJ_XYZ base_ico_normals[23] = {{0.8112534716456183, 0.3448953244235397, 0.4721387719026189}, {0.21993078167242514, 0.6583691769191125, 0.7198475381327677}, {-0.21392348218574597, 0.1478171768398566, 0.9656017947376752}, {0.10926252593733311, -0.48119515565604315, 0.8697775132750616}, {0.7428567271237952, -0.3593941714860216, 0.5648005953155497}, {0.8512303999921011, 0.4722343774266651, -0.22891373682183738}, {0.28461480749719364, 0.8644080979012073, -0.4144792535654255}, {-0.1055498134715015, 0.9794457311974099, 0.17188745304792394}, {-0.80754076069938, 0.15335524153301364, 0.5695261975567215}, {-0.8512303999921011, -0.4722343774266651, 0.22891373682183735}, {-0.28461480749719364, -0.8644080979012073, 0.4144792535654255}, {0.10554981347150154, -0.97944573119741, -0.17188745304792397}, {0.7405621455042509, -0.6673299596621295, -0.07898375518726185}, {0.80754076069938, -0.15335524153301364, -0.5695261975567215}, {-0.7428567271237952, 0.3593941714860216, -0.5648005953155497}, {-0.8112534716456183, -0.3448953244235397, -0.4721387719026189}, {-0.21993078167242514, -0.6583691769191125, -0.7198475381327677}, {0.21392348218574597, -0.1478171768398566, -0.9656017947376752}, {-0.1092625236946045, 0.48119515875463253, -0.8697775118425345}, {-0.10926252412771359, 0.4811951525529661, -0.8697775152191327}, {-0.7405621389792739, 0.6673299643797594, 0.07898377650727696}, {-0.7405621607654073, 0.6673299431834946, 0.07898375132383098}, {-0.7405621367680706, 0.6673299714231342, 0.07898373773067752}};\n", + "constexpr pj_face base_airocean_faces[23] = {{{1.8211859946200586, 3.1543866727148018, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}, {2.7317789919300877, 3.6801177848339353, 1.0}}, {{1.8211859946200586, 3.1543866727148018, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}}, {{1.8211859946200586, 3.1543866727148018, 1.0}, {0.9105929973100293, 2.628655560595668, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}}, {{1.8211859946200586, 3.1543866727148018, 1.0}, {1.8211859946200586, 2.1029244484765344, 1.0}, {0.9105929973100293, 2.628655560595668, 1.0}}, {{1.8211859946200586, 3.1543866727148018, 1.0}, {2.7317789919300877, 3.6801177848339353, 1.0}, {2.7317789919300877, 2.628655560595668, 1.0}}, {{2.7317789919300877, 3.6801177848339353, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}, {2.7317789919300877, 4.731580009072203, 1.0}}, {{1.8211859946200586, 5.257311121191336, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}, {0.9105929973100293, 4.731580009072203, 1.0}}, {{0.9105929973100293, 4.731580009072203, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}}, {{0.9105929973100293, 2.628655560595668, 1.0}, {0.0, 3.1543866727148018, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}}, {{0.9105929973100293, 2.628655560595668, 1.0}, {0.9105929973100293, 1.5771933363574009, 1.0}, {0.0, 2.1029244484765344, 1.0}}, {{0.9105929973100293, 2.628655560595668, 1.0}, {1.8211859946200586, 2.1029244484765344, 1.0}, {0.9105929973100293, 1.5771933363574009, 1.0}}, {{0.9105929973100293, 1.5771933363574009, 1.0}, {1.8211859946200586, 2.1029244484765344, 1.0}, {1.8211859946200586, 1.0514622242382672, 1.0}}, {{1.8211859946200586, 1.0514622242382672, 1.0}, {1.8211859946200586, 2.1029244484765344, 1.0}, {2.7317789919300877, 1.5771933363574009, 1.0}}, {{1.8211859946200586, 0.0, 1.0}, {1.8211859946200586, 1.0514622242382672, 1.0}, {2.7317789919300877, 0.5257311121191336, 1.0}}, {{0.0, 5.257311121191336, 1.0}, {0.9105929973100293, 4.731580009072203, 1.0}, {0.0, 4.205848896953069, 1.0}}, {{0.0, 1.0514622242382672, 1.0}, {0.0, 2.1029244484765344, 1.0}, {0.9105929973100293, 1.5771933363574009, 1.0}}, {{0.9105929973100293, 0.5257311121191336, 1.0}, {0.9105929973100293, 1.5771933363574009, 1.0}, {1.8211859946200586, 1.0514622242382672, 1.0}}, {{0.9105929973100293, 0.5257311121191336, 1.0}, {1.8211859946200586, 1.0514622242382672, 1.0}, {1.8211859946200586, 0.0, 1.0}}, {{0.9105929973100293, 4.731580009072203, 1.0}, {0.45529649865501465, 4.994445565131769, 1.0}, {0.9105929973100293, 5.78304223331047, 1.0}}, {{0.9105929973100293, 0.5257311121191336, 1.0}, {1.8211859946200586, 0.0, 1.0}, {0.9105929973100293, 0.0, 1.0}}, {{0.0, 4.205848896953069, 1.0}, {0.9105929973100293, 4.731580009072203, 1.0}, {0.6070619982066862, 4.205848896953069, 1.0}}, {{0.9105929973100293, 4.731580009072203, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}, {0.6070619982066862, 4.205848896953069, 1.0}}, {{0.0, 3.1543866727148018, 1.0}, {0.3035309991033431, 3.6801177848339353, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}}};\n", + "constexpr double base_ico_air_trans[23][4][4] = {{{0.5771127843628077, -0.601949070265588, -0.551904112682031, 2.1247169940181885}, {0.09385435254116901, 0.7202114456801385, -0.6873767816857262, 3.680117788550241}, {0.8112534716456183, 0.3448953244235397, 0.4721387719026189, -0.7946544736643394}, {0.0, 0.0, 0.0, 0.9999999999999999}}, {{0.9709901123098558, -0.21873613013519208, -0.09660585714762573, 1.5176549986755081}, {0.0938543523824071, 0.7202114501390866, -0.68737677703546, 3.6801177840642754}, {0.2199307816724251, 0.6583691769191125, 0.7198475381327677, -0.794654474160402}, {2.7755575615628914e-17, 0.0, 0.0, 1.0}}, {{0.9721374064326862, -0.06476823448972475, 0.2252863218604219, 1.2141239985420345}, {0.09584151545422234, 0.986891659675502, -0.12984315992304857, 3.1543866667568574}, {-0.213923482185746, 0.14781717683985665, 0.9656017947376753, -0.7946544722350559}, {-1.3877787807814457e-16, 2.7755575615628914e-17, 0.0, 1.0}}, {{0.9921258753005284, -0.0010987169074706963, -0.12523993179159917, 1.5176549936500534}, {0.06122047682547376, 0.8766128105888067, 0.4772861192297111, 2.628655561621354}, {0.1092625259373331, -0.48119515565604315, 0.8697775132750618, -0.794654472177355}, {1.1102230246251565e-16, 5.551115123125783e-17, 0.0, 1.0}}, {{0.2803041463023307, -0.5991800450797868, -0.7499419088911223, 2.428247994171984}, {0.6079419973098752, 0.7154153394798394, -0.3443652517634205, 3.1543866696341833}, {0.7428567271237952, -0.3593941714860217, 0.5648005953155497, -0.7946544741179917}, {0.0, 0.0, 0.0, 1.0000000000000002}}, {{0.25960661697438703, -0.758006957058587, -0.5983559612700025, 2.428247993923292}, {-0.4560824568641986, 0.44991125768827994, -0.7678337349017109, 4.205848897582435}, {0.8512303999921013, 0.4722343774266651, -0.22891373682183747, -0.7946544711481622}, {0.0, -5.551115123125783e-17, 1.1102230246251565e-16, 1.0}}, {{0.9586365727166021, -0.25808606588953303, 0.12003128712756019, 1.5176549950590994}, {-0.003215296199617759, -0.4314976538404806, -0.9021083296632684, 4.731580007956949}, {0.2846148074971938, 0.8644080979012073, -0.41447925356542553, -0.7946544719642821}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.9928349393209477, 0.09405867905155406, 0.07370038213709272, 1.2141239979758605}, {0.0560180154856556, 0.1784349297842625, -0.9823558159365612, 4.205848903770237}, {-0.10554981347150151, 0.97944573119741, 0.17188745304792394, -0.794654473006748}, {-1.3877787807814457e-17, 0.0, 8.326672684688674e-17, 1.0}}, {{0.5819727853624432, 0.05026939328855433, 0.811653042180561, 0.6070619975564514}, {0.09584151340049132, 0.9868916600803643, -0.12984315836175953, 3.1543866646549703}, {-0.8075407606993799, 0.15335524153301364, 0.5695261975567214, -0.7946544732451482}, {0.0, -8.326672684688674e-17, 0.0, 1.0}}, {{0.5247823023520097, -0.7686380571359512, 0.36578553967256694, 0.6070619982034591}, {0.00321530314174359, 0.43149765221393604, 0.9021083304165357, 2.1029244497408546}, {-0.8512303999921013, -0.4722343774266651, 0.22891373682183733, -0.7946544711481622}, {1.1102230246251565e-16, 0.0, -2.7755575615628914e-17, 1.0}}, {{0.9586365727166023, -0.25808606588953276, 0.12003128712756019, 1.2141239968709887}, {0.0032152961996172996, 0.43149765384048056, 0.9021083296632679, 2.1029244473612816}, {-0.28461480749719376, -0.8644080979012073, 0.41447925356542553, -0.7946544719642822}, {-5.551115123125783e-17, 0.0, -5.551115123125783e-17, 1.0}}, {{0.9928349393209476, 0.09405867905155432, 0.0737003821370924, 1.5176549939542279}, {-0.05601801548565587, -0.17843492978426267, 0.982355815936562, 1.5771933431745697}, {0.10554981347150151, -0.97944573119741, -0.17188745304792394, -0.794654473006748}, {1.249000902703301e-16, 0.0, -8.326672684688674e-17, 1.0}}, {{0.6696489324143071, 0.7230710222271839, 0.16952465726532903, 2.124716992886465}, {-0.05601802147349406, -0.17843493406754668, 0.9823558148170956, 1.577193342141926}, {0.7405621455042507, -0.6673299596621294, -0.07898375518726183, -0.7946544743360283}, {1.1102230246251565e-16, 0.0, 5.551115123125783e-17, 0.9999999999999999}}, {{0.581972785362443, 0.05026939328855442, 0.8116530421805607, 2.124716994373637}, {-0.09584151340049174, -0.9868916600803641, 0.1298431583617594, 0.5257311040593022}, {0.8075407606993799, -0.15335524153301364, -0.5695261975567214, -0.7946544732451483}, {-1.1102230246251565e-16, -2.7755575615628914e-17, 0.0, 1.0}}, {{0.3863411405466375, 0.9191578807865023, 0.07674189823781499, 0.3035310024438569}, {0.5467215101388645, -0.16119747073988, -0.8216513703440179, 4.731580009447501}, {-0.7428567271237954, 0.35939417148602165, -0.5648005953155498, -0.7946544741179918}, {-1.1102230246251565e-16, 5.551115123125783e-17, 0.0, 1.0}}, {{0.20727613862501068, -0.9246959431881105, 0.31933369857041366, 0.30353100217436535}, {-0.5467215083775467, 0.16119746379435437, 0.8216513728786113, 1.5771933384708474}, {-0.8112534716456183, -0.34489532442353976, -0.4721387719026189, -0.7946544736643393}, {0.0, 1.1102230246251565e-16, 0.0, 1.0}}, {{0.9709901123098558, -0.21873613013519205, -0.09660585714762565, 1.2141239932545798}, {-0.09385435238240734, -0.7202114501390865, 0.6873767770354606, 1.0514622234686084}, {-0.21993078167242508, -0.6583691769191125, -0.7198475381327677, -0.794654474160402}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.9721374064326864, -0.06476823448972478, 0.2252863218604222, 1.5176549933880534}, {-0.09584151545422273, -0.9868916596755019, 0.1298431599230487, 0.5257311061611902}, {0.21392348218574594, -0.14781717683985665, -0.965601794737675, -0.7946544722350558}, {-1.3877787807814457e-16, -2.7755575615628914e-17, 0.0, 1.0}}, {{0.5490814341445536, 0.7586196137281238, 0.3507219468201455, 0.6070619971385178}, {0.828595975697076, -0.43925791880424425, -0.34710402061504564, 5.257311122022961}, {-0.10926252369460446, 0.4811951587546325, -0.8697775118425342, -0.7946544734171301}, {8.326672684688674e-17, 0.0, 0.0, 0.9999999999999998}}, {{0.9921258803454628, -0.001098726158448999, -0.1252399351953353, 1.2141239965994974}, {-0.061220481001961057, -0.8766128044664807, -0.4772861112510543, 6.962719666473e-09}, {-0.10926252412771358, 0.48119515255296597, -0.8697775152191325, -0.79465447341713}, {-4.163336342344337e-17, -1.1102230246251565e-16, 0.0, 0.9999999999999999}}, {{0.6696489432944074, 0.7230710163882418, 0.16952466434270155, 0.6070620106869362}, {0.05601800780331223, 0.1784349479222583, -0.9823558101673974, 4.205848888056709}, {-0.7405621389792741, 0.6673299643797597, 0.07898377650727716, -0.7946544674186218}, {1.1102230246251565e-16, 0.0, -1.3877787807814457e-17, 1.0}}, {{0.6696489098267326, 0.7230710312696226, 0.16952465761975835, 0.6070619835219269}, {0.056018019261034786, 0.1784349316785832, -0.9823558153771896, 4.205848903740433}, {-0.7405621607654075, 0.6673299431834948, 0.07898375132383098, -0.7946544674186217}, {1.1102230246251565e-16, -1.1102230246251565e-16, 2.7755575615628914e-17, 0.9999999999999999}}, {{0.28631142864032966, 0.20700633361637605, 0.9355074196454307, 0.3035309858829332}, {0.6079420159049573, 0.7154153325157111, -0.34436525612985447, 3.680117806877694}, {-0.7405621367680707, 0.667329971423134, 0.07898373773067754, -0.7946544674186213}, {0.0, 0.0, 8.326672684688674e-17, 1.0}}};\n", + "constexpr double base_air_ico_trans[23][4][4] = {{{0.5771127842542352, 0.09385434657102582, 0.8112534716456185, -0.9269301900000004}, {-0.6019490778198661, 0.7202114470147596, 0.3448953244235397, -1.0974189100000002}, {-0.5519041069771089, -0.6873767724024487, 0.47213877190261855, 4.077454710000002}, {0.0, 2.2204460492503126e-16, 0.0, 1.0}}, {{0.9709901268864738, 0.09385434657102582, 0.2199307816724253, -1.6442540899999996}, {-0.2187361374273623, 0.7202114470147596, 0.6583691769191118, -1.79532095}, {-0.09660585493174938, -0.687376772402449, 0.7198475381327685, 3.24827191}, {1.1102230246251565e-16, 0.0, 1.1102230246251565e-16, 1.0}}, {{0.9721374177212223, 0.09584151258786845, -0.21392348218574572, -1.6526118100000005}, {-0.06476823913013299, 0.9868916696001585, 0.14781717683985673, -2.9169376699999994}, {0.22528632507169927, -0.12984316207736876, 0.9656017947376752, 0.9033697900000001}, {1.1102230246251565e-16, 0.0, 0.0, 1.0}}, {{0.9921258758509998, 0.061220487542130664, 0.10926252593733322, -1.5798064099999996}, {-0.001098707109494417, 0.8766128052462792, -0.4811951556560428, -2.685029549999999}, {-0.12523992644012408, 0.4772861149277753, 0.8697775132750616, -0.3733772099999991}, {0.0, -2.465190328815662e-32, 0.0, 1.0000000000000002}}, {{0.28030414329344755, 0.6079419928405788, 0.7428567271237952, -2.00801767}, {-0.5991800415902347, 0.7154153355770391, -0.35939417148602165, -1.0873330499999998}, {-0.7499419027132015, -0.3443652483685888, 0.5648005953155497, 3.356127390000001}, {-1.1102230246251565e-16, 1.1102230246251565e-16, 0.0, 1.0}}, {{0.2596066197503542, -0.4560824620660179, 0.8512303999921011, 1.9642587099999997}, {-0.7580069603423448, 0.44991126556421224, 0.47223437742666524, 0.3236332399999994}, {-0.5983559577215728, -0.7678337379974675, -0.22891373682183738, 4.50044201}, {-1.1102230246251565e-16, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.9586365671366947, -0.003215303338595427, 0.2846148074971937, -1.213495679999999}, {-0.25808606116480587, -0.431497651119788, 0.8644080979012073, 3.12025702}, {0.1200312931494973, -0.9021083288913834, -0.4144792535654252, 3.7568638500000016}, {0.0, -1.6653345369377373e-16, 0.0, 1.0}}, {{0.9928349412643155, 0.056018018186692914, -0.10554981347150141, -1.524903679999999}, {0.09405867962197714, 0.17843493154109227, 0.97944573119741, -0.08634833000000003}, {0.07370038008007025, -0.9823558242886872, 0.1718874530479236, 4.178749899999999}, {-1.1102230246251565e-16, 0.0, 0.0, 0.9999999999999996}}, {{0.5819727875851122, 0.0958415125878687, -0.8075407606993801, -1.2973306300000007}, {0.05026939053476542, 0.9868916696001588, 0.1533552415330134, -3.0216901300000005}, {0.8116530460736279, -0.12984316207736876, 0.5695261975567216, 0.36942835999999946}, {-1.1102230246251565e-16, -2.220446049250313e-16, 0.0, 1.0}}, {{0.5247823082449008, 0.0032153033385950414, -0.851230399992101, -1.0017709799999996}, {-0.7686380655985867, 0.43149765111978794, -0.4722343774266652, -0.81605916}, {0.3657855441277853, 0.9021083288913834, 0.2289137368218374, -1.9372128400000004}, {0.0, 6.096153978258407e-17, 0.0, 0.9999999999999998}}, {{0.9586365671366951, 0.0032153033385950484, -0.28461480749719337, -1.39683563}, {-0.2580860611648058, 0.43149765111978794, -0.8644080979012073, -1.28096424}, {0.12003129314949779, 0.9021083288913836, 0.41447925356542553, -1.7134307400000008}, {-1.1102230246251565e-16, 1.1102230246251565e-16, 0.0, 1.0}}, {{0.9928349412643155, -0.05601801818669286, 0.1055498134715019, -1.33455403}, {0.09405867962197711, -0.17843493154109227, -0.9794457311974099, -0.6396431699999997}, {0.07370038008007082, 0.9823558242886878, -0.17188745304792374, -1.7978079500000004}, {1.1102230246251565e-16, -2.220446049250313e-16, 0.0, 0.9999999999999998}}, {{0.6696489285568152, -0.05601801818669308, 0.7405621455042509, -0.74597219}, {0.723071017397498, -0.1784349315410924, -0.6673299596621297, -1.7851916300000001}, {0.16952466190275595, 0.982355824288688, -0.0789837551872621, -1.9723217899999996}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.581972787585112, -0.09584151258786852, 0.80754076069938, -0.54442473}, {0.05026939053476491, -0.9868916696001588, -0.15335524153301358, 0.29016699000000007}, {0.8116530460736278, 0.12984316207736893, -0.5695261975567216, -2.2453721499999997}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.386341138180555, 0.5467215052984484, -0.7428567271237957, -3.2944374800000005}, {0.9191578756618027, -0.16119746966924034, 0.35939417148602165, 0.7693200000000001}, {0.07674189808886517, -0.8216513632963648, -0.5648005953155493, 3.415594300000001}, {-1.1102230246251565e-16, 0.0, 0.0, 1.0}}, {{0.2072761437410203, -0.5467215052984483, -0.8112534716456183, 0.15470457999999998}, {-0.9246959481210651, 0.16119746966924028, -0.34489532442353976, -0.2476383}, {0.31933369338332074, 0.8216513632963647, -0.47213877190261877, -1.7680179200000001}, {0.0, 0.0, 0.0, 1.0}}, {{0.970990126886474, -0.09385434657102576, -0.2199307816724251, -1.25498709}, {-0.21873613742736212, -0.7202114470147594, -0.6583691769191123, 0.49967191}, {-0.09660585493174975, 0.6873767724024488, -0.7198475381327678, -1.17748929}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721374177212225, -0.09584151258786833, 0.21392348218574608, -1.25498709}, {-0.06476823913013245, -0.9868916696001586, -0.14781717683985665, 0.49967190999999994}, {0.225286325071699, 0.12984316207736882, -0.9656017947376753, -1.17748929}, {1.1102230246251565e-16, 0.0, 0.0, 0.9999999999999999}}, {{0.5490814243871979, 0.828595968467787, -0.10926252369460442, -4.7763392200000006}, {0.7586195940894178, -0.4392579108912803, 0.4811951587546326, 2.2311702599999994}, {0.3507219371809713, -0.3471040153291294, -0.8697775118425345, 0.92075125}, {0.0, -1.1102230246251565e-16, 0.0, 0.9999999999999991}}, {{0.9921258703600726, -0.061220497052696075, -0.10926252412771353, -1.29138978}, {-0.0010987126004213489, -0.8766128147568447, 0.4811951525529661, 0.3837178600000002}, {-0.12523992644012394, -0.4772861149277757, -0.8697775152191326, -0.5391157899999999}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696489340477428, 0.05601800867612728, -0.7405621389792739, -1.230612719999998}, {0.7230710064156433, 0.17843495056222272, 0.6673299643797593, -0.659122639999999}, {0.1695246619027561, -0.9823558242886863, 0.07898377650727674, 4.091492979999993}, {-2.220446049250313e-16, 4.440892098500626e-16, 0.0, 1.0}}, {{0.6696489175749601, 0.05601801818669295, -0.7405621607654072, -1.230612749999999}, {0.723071039361207, 0.17843493154109233, 0.6673299431834945, -0.659122579999999}, {0.1695246619027577, -0.9823558242886873, 0.07898375132383063, 4.091492979999996}, {4.440892098500626e-16, 7.186231688523656e-17, 0.0, 0.9999999999999996}}, {{0.28631143196814535, 0.6079420023511448, -0.7405621367680713, -2.9126935900000026}, {0.20700633604348043, 0.7154153165559092, 0.6673299714231338, -2.165348740000002}, {0.9355074303409838, -0.34436524836858934, 0.07898373773067771, 1.0461139700000008}, {0.0, 0.0, 0.0, 1.0000000000000009}}};\n", + "constexpr double orient_horizontal_trans[4][4] = {{0.0, -1.0, 0.0, 5.78304223331047}, {1.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}};\n", + "constexpr double orient_horizontal_inv_trans[4][4] = {{0.0, 1.0, 0.0, 0.0}, {-1.0, -0.0, -0.0, 5.78304223331047}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}};\n" + ] + } + ], + "source": [ + "print(\n", + " \"\\n\".join(\n", + " [\n", + " (\n", + " f\"{name} = \"\n", + " + json.dumps(value.tolist())\n", + " .replace(\"[\", \"{\")\n", + " .replace(\"]\", \"}\")\n", + " + \";\"\n", + " )\n", + " for name, value in {\n", + " \"constexpr pj_face base_ico_faces[23]\": ico_faces[:, :, :3],\n", + " \"constexpr PJ_XYZ base_ico_centers[23]\": ico_centers[:, :3],\n", + " \"constexpr PJ_XYZ base_ico_normals[23]\": ico_normals,\n", + " \"constexpr pj_face base_airocean_faces[23]\": airocean_23_face_vertices[\n", + " :, :, [0, 1, 3]\n", + " ],\n", + " \"constexpr double base_ico_air_trans[23][4][4]\": ico_air_trans[\n", + " :, :, :\n", + " ],\n", + " \"constexpr double base_air_ico_trans[23][4][4]\": air_ico_trans[\n", + " :, :, :\n", + " ],\n", + " \"constexpr double orient_horizontal_trans[4][4]\": orient_horizontal,\n", + " \"constexpr double orient_horizontal_inv_trans[4][4]\": inv_orient_horizontal,\n", + " }.items()\n", + " ]\n", + " )\n", + ")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 5842f83ba1acb78368bfc28434d70da6d9c00eab Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Sun, 5 Jan 2025 15:05:49 +0100 Subject: [PATCH 28/37] - Add mention of the airocean builder script in airocean projection source file. --- src/projections/airocean.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/projections/airocean.cpp b/src/projections/airocean.cpp index 6c1f3cdc29..3538ab7e36 100644 --- a/src/projections/airocean.cpp +++ b/src/projections/airocean.cpp @@ -33,6 +33,10 @@ namespace { // anonymous namespace To accomodate for land parts that would be interrupted by using a mere icosahedron, some faces are split in two (Australia) and 3 (Japan) subfaces. + + The parameters below were computed using the script located at: + scripts/build_airocean_parameters.ipynb + (relative to the root of the project) */ // Define the 23 faces and subfaces constexpr pj_face base_ico_faces[23] = {{{0.42015243, 0.07814525, 0.90408255}, {0.51883673, 0.83542038, 0.18133184}, {0.99500944, -0.0913478, 0.04014718}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.41468223, 0.65596241, 0.63067581}, {0.51883673, 0.83542038, 0.18133184}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.51545596, -0.3817169, 0.76720099}, {-0.41468223, 0.65596241, 0.63067581}}, {{0.42015243, 0.07814525, 0.90408255}, {0.3557814, -0.84358, 0.40223423}, {-0.51545596, -0.3817169, 0.76720099}}, {{0.42015243, 0.07814525, 0.90408255}, {0.99500944, -0.0913478, 0.04014718}, {0.3557814, -0.84358, 0.40223423}}, {{0.99500944, -0.0913478, 0.04014718}, {0.51883673, 0.83542038, 0.18133184}, {0.51545596, 0.3817169, -0.76720099}}, {{0.51545596, 0.3817169, -0.76720099}, {0.51883673, 0.83542038, 0.18133184}, {-0.3557814, 0.84358, -0.40223423}}, {{-0.3557814, 0.84358, -0.40223423}, {0.51883673, 0.83542038, 0.18133184}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.99500944, 0.0913478, -0.04014718}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.51883673, -0.83542038, -0.18133184}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.51545596, -0.3817169, 0.76720099}, {0.3557814, -0.84358, 0.40223423}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.51883673, -0.83542038, -0.18133184}, {0.3557814, -0.84358, 0.40223423}, {0.41468223, -0.65596241, -0.63067581}}, {{0.41468223, -0.65596241, -0.63067581}, {0.3557814, -0.84358, 0.40223423}, {0.99500944, -0.0913478, 0.04014718}}, {{0.51545596, 0.3817169, -0.76720099}, {0.41468223, -0.65596241, -0.63067581}, {0.99500944, -0.0913478, 0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.3557814, 0.84358, -0.40223423}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.99500944, 0.0913478, -0.04014718}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.51883673, -0.83542038, -0.18133184}, {0.41468223, -0.65596241, -0.63067581}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.41468223, -0.65596241, -0.63067581}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.38796691, 0.38271738, -0.65315839}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.51545596, 0.3817169, -0.76720099}, {-0.38796691, 0.38271738, -0.65315839}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.3557814, 0.84358, -0.40223423}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.41468223, 0.65596241, 0.63067581}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.58849102, 0.53029673, 0.0627648}, {-0.41468223, 0.65596241, 0.63067581}}}; From 79a408258a0cc4786bdb38774eedf6e6b8bb4fdb Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Mon, 6 Jan 2025 21:11:33 +0100 Subject: [PATCH 29/37] - Remove notebook. Add python script for printing airocean parameters as C code and generating plots of the airocean unfolded net. --- scripts/build_airocean_parameters.ipynb | 659 ------------------------ scripts/build_airocean_parameters.py | 558 ++++++++++++++++++++ 2 files changed, 558 insertions(+), 659 deletions(-) delete mode 100644 scripts/build_airocean_parameters.ipynb create mode 100755 scripts/build_airocean_parameters.py diff --git a/scripts/build_airocean_parameters.ipynb b/scripts/build_airocean_parameters.ipynb deleted file mode 100644 index 0f63fd88f5..0000000000 --- a/scripts/build_airocean_parameters.ipynb +++ /dev/null @@ -1,659 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Airocean Parameters Builder\n", - "\n", - "This notebook computes the values defining the faces of the Airocean's unfolded net as well as matrices to get to the target Airocean space from coordinates of the unit icosahedron model.\n", - "The matrix for switching from vertical to horizontal layout of the airocean space is also computed here.\n", - "\n", - "C++ code that you can plug directly into the airocean source file is generated at the end of this notebook. \n", - "\n", - "This notebook includes visualizations that requires geopandas and matplotlib extensions to be installed.\n", - "\n", - "\n", - "First we import a few packages:" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "import geopandas as gpd\n", - "from shapely.geometry import Polygon\n", - "import json" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here we define vertices of the unfolded net:" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "# Icosahedron properties\n", - "circumscribed_radius = 1\n", - "inscribed_radius = 3**0.5 / 12 * (3 + 5**0.5)\n", - "triangle_edge = circumscribed_radius / np.sin(2 * np.pi / 5)\n", - "triangle_height = 3**0.5 / 2 * triangle_edge\n", - "\n", - "# Icosahedron properties scaled to a specifi radius. Left to 1.0\n", - "radius = 1.0\n", - "triangle_earth_edge = triangle_edge * radius\n", - "triangle_earth_height = triangle_height * radius\n", - "circumscribed_earth_radius = circumscribed_radius * radius\n", - "inscribed_earth_radius = inscribed_radius * radius\n", - "\n", - "\n", - "# Vertices of the faces in the airocean referential\n", - "airocean_vertices = np.array(\n", - " [\n", - " [2, 0, 0], # Vertex 0\n", - " [1, 1, 0], # Vertex 1\n", - " [3, 1, 0], # Vertex 2\n", - " [0, 2, 0], # Vertex 3\n", - " [2, 2, 0], # Vertex 4\n", - " [1, 3, 0], # Vertex 5\n", - " [3, 3, 0], # Vertex 6\n", - " [0, 4, 0], # Vertex 7\n", - " [2, 4, 0], # Vertex 8\n", - " [1, 5, 0], # Vertex 9\n", - " [3, 5, 0], # Vertex 10\n", - " [0, 6, 0], # Vertex 11\n", - " [2, 6, 0], # Vertex 12\n", - " [1, 7, 0], # Vertex 13\n", - " [3, 7, 0], # Vertex 14\n", - " [0, 8, 0], # Vertex 15\n", - " [2, 8, 0], # Vertex 16\n", - " [1, 9, 0], # Vertex 17\n", - " [3, 9, 0], # Vertex 18\n", - " [0, 10, 0], # Vertex 19\n", - " [2, 10, 0], # Vertex 20\n", - " [1, 11, 0], # Vertex 21\n", - " [0.5, 9.5, 0], # Vertex 22 : Split from Face 15 (ocean)\n", - " [1, 0, 0], # Vertex 23 : Split from Face 15 (australia)\n", - " [2 / 3, 8, 0], # Vertex 24 : split from face 8 (japan)\n", - " [1 / 3, 7, 0], # Vertex 25 : new from face 8 (japan)\n", - " [1, -1, 0], # Vertex 26 : bottom new for antartica\n", - " ]\n", - ") * [triangle_earth_height, triangle_earth_edge / 2, 1]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We build airocean unsplited faces from the previous vertices:" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "airocean_face_vertices = airocean_vertices[\n", - " [\n", - " [12, 16, 14], # Face 0\n", - " [12, 13, 16], # Face 1\n", - " [12, 9, 13], # Face 2\n", - " [12, 8, 9], # Face 3\n", - " [12, 14, 10], # Face 4\n", - " [14, 16, 18], # Face 5\n", - " [20, 16, 17], # Face 6\n", - " [17, 16, 13], # Face 7\n", - " [9, 11, 13], # Face 9\n", - " [9, 5, 7], # Face 10\n", - " [9, 8, 5], # Face 11\n", - " [5, 8, 4], # Face 12\n", - " [4, 8, 6], # Face 13\n", - " [0, 4, 2], # Face 14\n", - " [19, 17, 15], # Face 16\n", - " [3, 7, 5], # Face 17\n", - " [1, 5, 4], # Face 18\n", - " [1, 4, 0], # Face 19\n", - " [15, 17, 13], # Face 8\n", - " [19, 21, 17], # Face 15\n", - " [26, 1, 0], # Face 8'\n", - " [11, 15, 13], # Face 15'\n", - " ]\n", - "]\n", - "airocean_face_vertices = np.concat(\n", - " [\n", - " airocean_face_vertices,\n", - " np.zeros((*airocean_face_vertices.shape[:-1], 1)),\n", - " ],\n", - " axis=2,\n", - ")\n", - "\n", - "airocean_22_centers = airocean_face_vertices.mean(axis=1)\n", - "airocean_22_centers[:, 2] = 1\n", - "airocean_2_centers = airocean_22_centers[[18, 19]]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Quick visualization of airocean enumerated faces:" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "gdf = gpd.GeoDataFrame(\n", - " data={\"id\": range(22)},\n", - " geometry=[Polygon(shell=v[:, :2]) for v in airocean_face_vertices],\n", - " crs=None,\n", - ")\n", - "ax = gdf.plot()\n", - "gdf.apply(\n", - " lambda x: ax.annotate(\n", - " text=x[\"id\"], xy=x.geometry.centroid.coords[0], ha=\"center\"\n", - " ),\n", - " axis=1,\n", - ")\n", - "pass" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The airocean unfolded net faces are not all base triangles. Some are actually broken into more faaces. We take those extra faces into account by computimg them here: " - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "airocean_23_face_vertices = airocean_vertices[\n", - " [\n", - " [12, 16, 14], # Face 0\n", - " [12, 13, 16], # Face 1\n", - " [12, 9, 13], # Face 2\n", - " [12, 8, 9], # Face 3\n", - " [12, 14, 10], # Face 4\n", - " [14, 16, 18], # Face 5\n", - " [20, 16, 17], # Face 6\n", - " [17, 16, 13], # Face 7\n", - " [9, 11, 13], # Face 9\n", - " [9, 5, 7], # Face 10\n", - " [9, 8, 5], # Face 11\n", - " [5, 8, 4], # Face 12\n", - " [4, 8, 6], # Face 13\n", - " [0, 4, 2], # Face 14\n", - " [19, 17, 15], # Face 16\n", - " [3, 7, 5], # Face 17\n", - " [1, 5, 4], # Face 18\n", - " [1, 4, 0], # Face 19\n", - " # [15, 17, 13], # Face 8\n", - " # [19, 21, 17], # Face 15\n", - " [17, 22, 21], # Face 20 - from 15 (Ocean)\n", - " [1, 0, 23], # Face 21 - from 15 (Australia)\n", - " [15, 17, 24], # Face 22 - from 8 (Japan)\n", - " [17, 13, 24], # Face 23 - from 8 (Japan)\n", - " [11, 25, 13], # Face 24 - from 8 (Japan)\n", - " ]\n", - "]\n", - "airocean_23_face_vertices = np.concat(\n", - " [\n", - " airocean_23_face_vertices,\n", - " np.ones((*airocean_23_face_vertices.shape[:-1], 1)),\n", - " ],\n", - " axis=2,\n", - ")\n", - "airocean_23_face_vertices[:, :, 3] = 1.0\n", - "\n", - "\n", - "airocean_23_centers = airocean_23_face_vertices.mean(axis=1)\n", - "airocean_23_centers[:, 2] = 1" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now visualize an enumeration of the final unfolded faces of the airocean unfolded net" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "gdf = gpd.GeoDataFrame(\n", - " data={\"id\": range(len(airocean_23_face_vertices))},\n", - " geometry=[Polygon(shell=v[:, :2]) for v in airocean_23_face_vertices],\n", - " crs=None,\n", - ")\n", - "ax = gdf.plot()\n", - "gdf.apply(\n", - " lambda x: ax.annotate(\n", - " text=x[\"id\"], xy=x.geometry.centroid.coords[0], ha=\"center\"\n", - " ),\n", - " axis=1,\n", - ")\n", - "pass" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We compute the transform matrix and its inverse to switch from vertical airocean layoout to the horizontal one. " - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "def translation(dx=0, dy=0):\n", - " res = np.eye(4)\n", - " res[[0, 1], 3] = dx, dy\n", - " return res\n", - "\n", - "\n", - "def rotation(angle):\n", - " res = np.eye(4)\n", - " res[:2, :2] = np.round(\n", - " [\n", - " [np.cos(angle), -np.sin(angle)],\n", - " [np.sin(angle), np.cos(angle)],\n", - " ],\n", - " 10,\n", - " )\n", - " return res\n", - "\n", - "\n", - "w, h = airocean_vertices[:, 0].max(), airocean_vertices[:, 1].max()\n", - "lower_left = [0, 0, 0, 1]\n", - "lower_right = [w, 0, 0, 1]\n", - "upper_left = [0, h, 0, 1]\n", - "upper_right = [w, h, 0, 1]\n", - "\n", - "translation(h, 0) @ rotation(np.pi / 2 * 1) @ lower_left\n", - "translation(h, 0) @ rotation(np.pi / 2 * 1) @ lower_right\n", - "translation(h, 0) @ rotation(np.pi / 2 * 1) @ upper_left\n", - "translation(h, 0) @ rotation(np.pi / 2 * 1) @ upper_right\n", - "orient_horizontal = translation(h, 0) @ rotation(np.pi / 2 * 1)\n", - "\n", - "inv_orient_horizontal = np.linalg.inv(orient_horizontal)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here we define the icosahedron vertices values.\n", - "\n", - "We also define the 20 centers of those faces.\n", - "\n", - "And we also define centers for the faces corresponding to the broken/split faces in the final airocean unfolded net." - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "ico_faces = np.array(\n", - " [\n", - " [\n", - " [0.42015243, 0.07814525, 0.90408255, 1.0],\n", - " [0.51883673, 0.83542038, 0.18133184, 1.0],\n", - " [0.99500944, -0.0913478, 0.04014718, 1.0],\n", - " ],\n", - " [\n", - " [0.42015243, 0.07814525, 0.90408255, 1.0],\n", - " [-0.41468223, 0.65596241, 0.63067581, 1.0],\n", - " [0.51883673, 0.83542038, 0.18133184, 1.0],\n", - " ],\n", - " [\n", - " [0.42015243, 0.07814525, 0.90408255, 1.0],\n", - " [-0.51545596, -0.3817169, 0.76720099, 1.0],\n", - " [-0.41468223, 0.65596241, 0.63067581, 1.0],\n", - " ],\n", - " [\n", - " [0.42015243, 0.07814525, 0.90408255, 1.0],\n", - " [0.3557814, -0.84358, 0.40223423, 1.0],\n", - " [-0.51545596, -0.3817169, 0.76720099, 1.0],\n", - " ],\n", - " [\n", - " [0.42015243, 0.07814525, 0.90408255, 1.0],\n", - " [0.99500944, -0.0913478, 0.04014718, 1.0],\n", - " [0.3557814, -0.84358, 0.40223423, 1.0],\n", - " ],\n", - " [\n", - " [0.99500944, -0.0913478, 0.04014718, 1.0],\n", - " [0.51883673, 0.83542038, 0.18133184, 1.0],\n", - " [0.51545596, 0.3817169, -0.76720099, 1.0],\n", - " ],\n", - " [\n", - " [0.51545596, 0.3817169, -0.76720099, 1.0],\n", - " [0.51883673, 0.83542038, 0.18133184, 1.0],\n", - " [-0.3557814, 0.84358, -0.40223423, 1.0],\n", - " ],\n", - " [\n", - " [-0.3557814, 0.84358, -0.40223423, 1.0],\n", - " [0.51883673, 0.83542038, 0.18133184, 1.0],\n", - " [-0.41468223, 0.65596241, 0.63067581, 1.0],\n", - " ],\n", - " [\n", - " [-0.51545596, -0.3817169, 0.76720099, 1.0],\n", - " [-0.99500944, 0.0913478, -0.04014718, 1.0],\n", - " [-0.41468223, 0.65596241, 0.63067581, 1.0],\n", - " ],\n", - " [\n", - " [-0.51545596, -0.3817169, 0.76720099, 1.0],\n", - " [-0.51883673, -0.83542038, -0.18133184, 1.0],\n", - " [-0.99500944, 0.0913478, -0.04014718, 1.0],\n", - " ],\n", - " [\n", - " [-0.51545596, -0.3817169, 0.76720099, 1.0],\n", - " [0.3557814, -0.84358, 0.40223423, 1.0],\n", - " [-0.51883673, -0.83542038, -0.18133184, 1.0],\n", - " ],\n", - " [\n", - " [-0.51883673, -0.83542038, -0.18133184, 1.0],\n", - " [0.3557814, -0.84358, 0.40223423, 1.0],\n", - " [0.41468223, -0.65596241, -0.63067581, 1.0],\n", - " ],\n", - " [\n", - " [0.41468223, -0.65596241, -0.63067581, 1.0],\n", - " [0.3557814, -0.84358, 0.40223423, 1.0],\n", - " [0.99500944, -0.0913478, 0.04014718, 1.0],\n", - " ],\n", - " [\n", - " [0.51545596, 0.3817169, -0.76720099, 1.0],\n", - " [0.41468223, -0.65596241, -0.63067581, 1.0],\n", - " [0.99500944, -0.0913478, 0.04014718, 1.0],\n", - " ],\n", - " [\n", - " [-0.42015243, -0.07814525, -0.90408255, 1.0],\n", - " [-0.3557814, 0.84358, -0.40223423, 1.0],\n", - " [-0.99500944, 0.0913478, -0.04014718, 1.0],\n", - " ],\n", - " [\n", - " [-0.42015243, -0.07814525, -0.90408255, 1.0],\n", - " [-0.99500944, 0.0913478, -0.04014718, 1.0],\n", - " [-0.51883673, -0.83542038, -0.18133184, 1.0],\n", - " ],\n", - " [\n", - " [-0.42015243, -0.07814525, -0.90408255, 1.0],\n", - " [-0.51883673, -0.83542038, -0.18133184, 1.0],\n", - " [0.41468223, -0.65596241, -0.63067581, 1.0],\n", - " ],\n", - " [\n", - " [-0.42015243, -0.07814525, -0.90408255, 1.0],\n", - " [0.41468223, -0.65596241, -0.63067581, 1.0],\n", - " [0.51545596, 0.3817169, -0.76720099, 1.0],\n", - " ],\n", - " [\n", - " [-0.3557814, 0.84358, -0.40223423, 1.0],\n", - " [-0.38796691, 0.38271738, -0.65315839, 1.0],\n", - " [0.51545596, 0.3817169, -0.76720099, 1.0],\n", - " ],\n", - " [\n", - " [-0.42015243, -0.07814525, -0.90408255, 1.0],\n", - " [0.51545596, 0.3817169, -0.76720099, 1.0],\n", - " [-0.38796691, 0.38271738, -0.65315839, 1.0],\n", - " ],\n", - " [\n", - " [-0.99500944, 0.0913478, -0.04014718, 1.0],\n", - " [-0.3557814, 0.84358, -0.40223423, 1.0],\n", - " [-0.58849102, 0.53029673, 0.0627648, 1.0],\n", - " ],\n", - " [\n", - " [-0.3557814, 0.84358, -0.40223423, 1.0],\n", - " [-0.41468223, 0.65596241, 0.63067581, 1.0],\n", - " [-0.58849102, 0.53029673, 0.0627648, 1.0],\n", - " ],\n", - " [\n", - " [-0.99500944, 0.0913478, -0.04014718, 1.0],\n", - " [-0.58849102, 0.53029673, 0.0627648, 1.0],\n", - " [-0.41468223, 0.65596241, 0.63067581, 1.0],\n", - " ],\n", - " ]\n", - ")\n", - "ico_20_centers = np.array(\n", - " [\n", - " [0.6446662, 0.27407261, 0.37518719],\n", - " [0.17476898, 0.52317601, 0.57203007],\n", - " [-0.16999525, 0.11746359, 0.76731978],\n", - " [0.08682596, -0.38238388, 0.69117259],\n", - " [0.59031442, -0.28559418, 0.44882132],\n", - " [0.67643404, 0.37526316, -0.18190733],\n", - " [0.22617043, 0.68690576, -0.32936779],\n", - " [-0.08387563, 0.77832093, 0.13659114],\n", - " [-0.64171587, 0.12186443, 0.45257654],\n", - " [-0.67643404, -0.37526316, 0.18190733],\n", - " [-0.22617043, -0.68690576, 0.32936779],\n", - " [0.08387563, -0.77832093, -0.13659114],\n", - " [0.58849102, -0.53029673, -0.0627648],\n", - " [0.64171587, -0.12186443, -0.45257654],\n", - " [-0.59031442, 0.28559418, -0.44882132],\n", - " [-0.6446662, -0.27407261, -0.37518719],\n", - " [-0.17476898, -0.52317601, -0.57203007],\n", - " [0.16999525, -0.11746359, -0.76731978],\n", - " [-0.58849102, 0.53029673, 0.0627648],\n", - " [-0.08682596, 0.38238388, -0.69117259],\n", - " ]\n", - ")\n", - "# Centers corresponding to the split faces of Australia\n", - "ico_2_centers = np.array(\n", - " [\n", - " [-0.07609745, 0.53600476, -0.6075312],\n", - " [-0.09755446, 0.22876301, -0.77481398],\n", - " ]\n", - ")\n", - "# Centers corresponding to the split faces around Japan\n", - "ico_3_centers = np.array(\n", - " [\n", - " [-0.64642729, 0.48840818, -0.12653887],\n", - " [-0.45298488, 0.67661305, 0.09706879],\n", - " [-0.66606089, 0.42586898, 0.21776448],\n", - " ]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here we compute the transform matrices from each icosahedron face to their corresponding face in airocean space.\n", - "\n", - "We do so for each face by inverting the matrice that maps the 3 corner of a face and a point elevated from the center of the face to their corresponding target projection.\n", - "\n", - "Assertions are made to check if each matrix and their corresponding inverse work as intended back and forth." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "A = ico_faces[:, 1] - ico_faces[:, 0]\n", - "B = ico_faces[:, 2] - ico_faces[:, 0]\n", - "ico_normals = -np.array(\n", - " [\n", - " A[:, 1] * B[:, 2] - A[:, 2] * B[:, 1],\n", - " A[:, 2] * B[:, 0] - A[:, 0] * B[:, 2],\n", - " A[:, 0] * B[:, 1] - A[:, 1] * B[:, 0],\n", - " ]\n", - ").T\n", - "ico_normals /= ((ico_normals**2).sum(axis=1) ** 0.5).reshape(-1, 1)\n", - "ico_centers = ico_faces.mean(axis=1)\n", - "ico_elevated_centers = ico_centers.copy()\n", - "ico_elevated_centers[:, :3] += ico_normals\n", - "\n", - "airocean_basis = np.zeros((23, 4, 4))\n", - "airocean_basis[:, :3, :] = airocean_23_face_vertices[:, :3, :]\n", - "airocean_basis[:, 3, :] = airocean_23_centers\n", - "\n", - "ico_basis = np.zeros((23, 4, 4))\n", - "ico_basis[:, :3, :] = ico_faces\n", - "ico_basis[:, 3, :] = ico_elevated_centers\n", - "\n", - "\n", - "air_ico_trans = np.array(\n", - " [\n", - " a.T @ np.linalg.inv(b.T)\n", - " for i, (a, b) in enumerate(zip(ico_basis, airocean_basis))\n", - " ]\n", - ")\n", - "ico_air_trans = np.array(\n", - " [\n", - " b.T @ np.linalg.inv(a.T)\n", - " for i, (a, b) in enumerate(zip(ico_basis, airocean_basis))\n", - " ]\n", - ")\n", - "\n", - "for i, (a, b, v1, v2) in enumerate(\n", - " zip(ico_basis, airocean_basis, ico_centers, airocean_22_centers)\n", - "):\n", - " m = b.T @ np.linalg.inv(a.T) # ico to air\n", - " w = a.T @ np.linalg.inv(b.T) # air to ico\n", - " for x, y in zip(a, b):\n", - " v1 = m @ x.T\n", - " v1 /= v1[3]\n", - " v2 = w @ y.T\n", - " v2 /= v2[3]\n", - " assert np.isclose(v1, y, rtol=1e-7).all()\n", - " assert np.isclose(v2, x, rtol=1e-7).all()\n", - " for i in range(100):\n", - " r = np.random.rand(3)\n", - " r /= r.sum()\n", - " v = (a[:3, :] * r.reshape(3, 1)).sum(axis=0)\n", - " v1 = m @ v.T\n", - " v1 /= v1[3]\n", - " v2 = w @ v1.T\n", - " v2 /= v2[3]\n", - " assert np.isclose(v, v2, rtol=1e-7).all()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here we generate C code that can be pasted into the airocean projection source file." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "constexpr pj_face base_ico_faces[23] = {{{0.42015243, 0.07814525, 0.90408255}, {0.51883673, 0.83542038, 0.18133184}, {0.99500944, -0.0913478, 0.04014718}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.41468223, 0.65596241, 0.63067581}, {0.51883673, 0.83542038, 0.18133184}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.51545596, -0.3817169, 0.76720099}, {-0.41468223, 0.65596241, 0.63067581}}, {{0.42015243, 0.07814525, 0.90408255}, {0.3557814, -0.84358, 0.40223423}, {-0.51545596, -0.3817169, 0.76720099}}, {{0.42015243, 0.07814525, 0.90408255}, {0.99500944, -0.0913478, 0.04014718}, {0.3557814, -0.84358, 0.40223423}}, {{0.99500944, -0.0913478, 0.04014718}, {0.51883673, 0.83542038, 0.18133184}, {0.51545596, 0.3817169, -0.76720099}}, {{0.51545596, 0.3817169, -0.76720099}, {0.51883673, 0.83542038, 0.18133184}, {-0.3557814, 0.84358, -0.40223423}}, {{-0.3557814, 0.84358, -0.40223423}, {0.51883673, 0.83542038, 0.18133184}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.99500944, 0.0913478, -0.04014718}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.51883673, -0.83542038, -0.18133184}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.51545596, -0.3817169, 0.76720099}, {0.3557814, -0.84358, 0.40223423}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.51883673, -0.83542038, -0.18133184}, {0.3557814, -0.84358, 0.40223423}, {0.41468223, -0.65596241, -0.63067581}}, {{0.41468223, -0.65596241, -0.63067581}, {0.3557814, -0.84358, 0.40223423}, {0.99500944, -0.0913478, 0.04014718}}, {{0.51545596, 0.3817169, -0.76720099}, {0.41468223, -0.65596241, -0.63067581}, {0.99500944, -0.0913478, 0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.3557814, 0.84358, -0.40223423}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.99500944, 0.0913478, -0.04014718}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.51883673, -0.83542038, -0.18133184}, {0.41468223, -0.65596241, -0.63067581}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.41468223, -0.65596241, -0.63067581}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.38796691, 0.38271738, -0.65315839}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.51545596, 0.3817169, -0.76720099}, {-0.38796691, 0.38271738, -0.65315839}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.3557814, 0.84358, -0.40223423}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.41468223, 0.65596241, 0.63067581}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.58849102, 0.53029673, 0.0627648}, {-0.41468223, 0.65596241, 0.63067581}}};\n", - "constexpr PJ_XYZ base_ico_centers[23] = {{0.6446662, 0.27407261, 0.37518718999999995}, {0.1747689766666667, 0.5231760133333333, 0.5720300666666667}, {-0.16999525333333332, 0.11746358666666666, 0.7673197833333334}, {0.08682595666666666, -0.38238388333333334, 0.69117259}, {0.5903144233333334, -0.28559418333333336, 0.44882131999999997}, {0.6764340433333333, 0.37526316, -0.18190732333333334}, {0.22617043, 0.68690576, -0.3293677933333333}, {-0.08387563333333335, 0.77832093, 0.13659113999999997}, {-0.6417158766666667, 0.12186443666666665, 0.45257653999999997}, {-0.6764340433333333, -0.37526316, 0.18190732333333334}, {-0.22617043, -0.68690576, 0.3293677933333333}, {0.08387563333333335, -0.77832093, -0.13659113999999997}, {0.5884910233333334, -0.5302967366666668, -0.06276479999999997}, {0.6417158766666667, -0.12186443666666665, -0.45257653999999997}, {-0.5903144233333334, 0.28559418333333336, -0.44882131999999997}, {-0.6446662, -0.27407261, -0.37518718999999995}, {-0.1747689766666667, -0.5231760133333333, -0.5720300666666667}, {0.16999525333333332, -0.11746358666666668, -0.7673197833333334}, {-0.07609744999999997, 0.5360047600000001, -0.6075312033333334}, {-0.09755446, 0.22876301, -0.7748139766666666}, {-0.6464272866666667, 0.48840817666666664, -0.12653887}, {-0.45298488333333337, 0.6766130466666667, 0.0970687933333333}, {-0.6660608966666667, 0.42586898, 0.21776447666666665}};\n", - "constexpr PJ_XYZ base_ico_normals[23] = {{0.8112534716456183, 0.3448953244235397, 0.4721387719026189}, {0.21993078167242514, 0.6583691769191125, 0.7198475381327677}, {-0.21392348218574597, 0.1478171768398566, 0.9656017947376752}, {0.10926252593733311, -0.48119515565604315, 0.8697775132750616}, {0.7428567271237952, -0.3593941714860216, 0.5648005953155497}, {0.8512303999921011, 0.4722343774266651, -0.22891373682183738}, {0.28461480749719364, 0.8644080979012073, -0.4144792535654255}, {-0.1055498134715015, 0.9794457311974099, 0.17188745304792394}, {-0.80754076069938, 0.15335524153301364, 0.5695261975567215}, {-0.8512303999921011, -0.4722343774266651, 0.22891373682183735}, {-0.28461480749719364, -0.8644080979012073, 0.4144792535654255}, {0.10554981347150154, -0.97944573119741, -0.17188745304792397}, {0.7405621455042509, -0.6673299596621295, -0.07898375518726185}, {0.80754076069938, -0.15335524153301364, -0.5695261975567215}, {-0.7428567271237952, 0.3593941714860216, -0.5648005953155497}, {-0.8112534716456183, -0.3448953244235397, -0.4721387719026189}, {-0.21993078167242514, -0.6583691769191125, -0.7198475381327677}, {0.21392348218574597, -0.1478171768398566, -0.9656017947376752}, {-0.1092625236946045, 0.48119515875463253, -0.8697775118425345}, {-0.10926252412771359, 0.4811951525529661, -0.8697775152191327}, {-0.7405621389792739, 0.6673299643797594, 0.07898377650727696}, {-0.7405621607654073, 0.6673299431834946, 0.07898375132383098}, {-0.7405621367680706, 0.6673299714231342, 0.07898373773067752}};\n", - "constexpr pj_face base_airocean_faces[23] = {{{1.8211859946200586, 3.1543866727148018, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}, {2.7317789919300877, 3.6801177848339353, 1.0}}, {{1.8211859946200586, 3.1543866727148018, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}}, {{1.8211859946200586, 3.1543866727148018, 1.0}, {0.9105929973100293, 2.628655560595668, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}}, {{1.8211859946200586, 3.1543866727148018, 1.0}, {1.8211859946200586, 2.1029244484765344, 1.0}, {0.9105929973100293, 2.628655560595668, 1.0}}, {{1.8211859946200586, 3.1543866727148018, 1.0}, {2.7317789919300877, 3.6801177848339353, 1.0}, {2.7317789919300877, 2.628655560595668, 1.0}}, {{2.7317789919300877, 3.6801177848339353, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}, {2.7317789919300877, 4.731580009072203, 1.0}}, {{1.8211859946200586, 5.257311121191336, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}, {0.9105929973100293, 4.731580009072203, 1.0}}, {{0.9105929973100293, 4.731580009072203, 1.0}, {1.8211859946200586, 4.205848896953069, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}}, {{0.9105929973100293, 2.628655560595668, 1.0}, {0.0, 3.1543866727148018, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}}, {{0.9105929973100293, 2.628655560595668, 1.0}, {0.9105929973100293, 1.5771933363574009, 1.0}, {0.0, 2.1029244484765344, 1.0}}, {{0.9105929973100293, 2.628655560595668, 1.0}, {1.8211859946200586, 2.1029244484765344, 1.0}, {0.9105929973100293, 1.5771933363574009, 1.0}}, {{0.9105929973100293, 1.5771933363574009, 1.0}, {1.8211859946200586, 2.1029244484765344, 1.0}, {1.8211859946200586, 1.0514622242382672, 1.0}}, {{1.8211859946200586, 1.0514622242382672, 1.0}, {1.8211859946200586, 2.1029244484765344, 1.0}, {2.7317789919300877, 1.5771933363574009, 1.0}}, {{1.8211859946200586, 0.0, 1.0}, {1.8211859946200586, 1.0514622242382672, 1.0}, {2.7317789919300877, 0.5257311121191336, 1.0}}, {{0.0, 5.257311121191336, 1.0}, {0.9105929973100293, 4.731580009072203, 1.0}, {0.0, 4.205848896953069, 1.0}}, {{0.0, 1.0514622242382672, 1.0}, {0.0, 2.1029244484765344, 1.0}, {0.9105929973100293, 1.5771933363574009, 1.0}}, {{0.9105929973100293, 0.5257311121191336, 1.0}, {0.9105929973100293, 1.5771933363574009, 1.0}, {1.8211859946200586, 1.0514622242382672, 1.0}}, {{0.9105929973100293, 0.5257311121191336, 1.0}, {1.8211859946200586, 1.0514622242382672, 1.0}, {1.8211859946200586, 0.0, 1.0}}, {{0.9105929973100293, 4.731580009072203, 1.0}, {0.45529649865501465, 4.994445565131769, 1.0}, {0.9105929973100293, 5.78304223331047, 1.0}}, {{0.9105929973100293, 0.5257311121191336, 1.0}, {1.8211859946200586, 0.0, 1.0}, {0.9105929973100293, 0.0, 1.0}}, {{0.0, 4.205848896953069, 1.0}, {0.9105929973100293, 4.731580009072203, 1.0}, {0.6070619982066862, 4.205848896953069, 1.0}}, {{0.9105929973100293, 4.731580009072203, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}, {0.6070619982066862, 4.205848896953069, 1.0}}, {{0.0, 3.1543866727148018, 1.0}, {0.3035309991033431, 3.6801177848339353, 1.0}, {0.9105929973100293, 3.6801177848339353, 1.0}}};\n", - "constexpr double base_ico_air_trans[23][4][4] = {{{0.5771127843628077, -0.601949070265588, -0.551904112682031, 2.1247169940181885}, {0.09385435254116901, 0.7202114456801385, -0.6873767816857262, 3.680117788550241}, {0.8112534716456183, 0.3448953244235397, 0.4721387719026189, -0.7946544736643394}, {0.0, 0.0, 0.0, 0.9999999999999999}}, {{0.9709901123098558, -0.21873613013519208, -0.09660585714762573, 1.5176549986755081}, {0.0938543523824071, 0.7202114501390866, -0.68737677703546, 3.6801177840642754}, {0.2199307816724251, 0.6583691769191125, 0.7198475381327677, -0.794654474160402}, {2.7755575615628914e-17, 0.0, 0.0, 1.0}}, {{0.9721374064326862, -0.06476823448972475, 0.2252863218604219, 1.2141239985420345}, {0.09584151545422234, 0.986891659675502, -0.12984315992304857, 3.1543866667568574}, {-0.213923482185746, 0.14781717683985665, 0.9656017947376753, -0.7946544722350559}, {-1.3877787807814457e-16, 2.7755575615628914e-17, 0.0, 1.0}}, {{0.9921258753005284, -0.0010987169074706963, -0.12523993179159917, 1.5176549936500534}, {0.06122047682547376, 0.8766128105888067, 0.4772861192297111, 2.628655561621354}, {0.1092625259373331, -0.48119515565604315, 0.8697775132750618, -0.794654472177355}, {1.1102230246251565e-16, 5.551115123125783e-17, 0.0, 1.0}}, {{0.2803041463023307, -0.5991800450797868, -0.7499419088911223, 2.428247994171984}, {0.6079419973098752, 0.7154153394798394, -0.3443652517634205, 3.1543866696341833}, {0.7428567271237952, -0.3593941714860217, 0.5648005953155497, -0.7946544741179917}, {0.0, 0.0, 0.0, 1.0000000000000002}}, {{0.25960661697438703, -0.758006957058587, -0.5983559612700025, 2.428247993923292}, {-0.4560824568641986, 0.44991125768827994, -0.7678337349017109, 4.205848897582435}, {0.8512303999921013, 0.4722343774266651, -0.22891373682183747, -0.7946544711481622}, {0.0, -5.551115123125783e-17, 1.1102230246251565e-16, 1.0}}, {{0.9586365727166021, -0.25808606588953303, 0.12003128712756019, 1.5176549950590994}, {-0.003215296199617759, -0.4314976538404806, -0.9021083296632684, 4.731580007956949}, {0.2846148074971938, 0.8644080979012073, -0.41447925356542553, -0.7946544719642821}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.9928349393209477, 0.09405867905155406, 0.07370038213709272, 1.2141239979758605}, {0.0560180154856556, 0.1784349297842625, -0.9823558159365612, 4.205848903770237}, {-0.10554981347150151, 0.97944573119741, 0.17188745304792394, -0.794654473006748}, {-1.3877787807814457e-17, 0.0, 8.326672684688674e-17, 1.0}}, {{0.5819727853624432, 0.05026939328855433, 0.811653042180561, 0.6070619975564514}, {0.09584151340049132, 0.9868916600803643, -0.12984315836175953, 3.1543866646549703}, {-0.8075407606993799, 0.15335524153301364, 0.5695261975567214, -0.7946544732451482}, {0.0, -8.326672684688674e-17, 0.0, 1.0}}, {{0.5247823023520097, -0.7686380571359512, 0.36578553967256694, 0.6070619982034591}, {0.00321530314174359, 0.43149765221393604, 0.9021083304165357, 2.1029244497408546}, {-0.8512303999921013, -0.4722343774266651, 0.22891373682183733, -0.7946544711481622}, {1.1102230246251565e-16, 0.0, -2.7755575615628914e-17, 1.0}}, {{0.9586365727166023, -0.25808606588953276, 0.12003128712756019, 1.2141239968709887}, {0.0032152961996172996, 0.43149765384048056, 0.9021083296632679, 2.1029244473612816}, {-0.28461480749719376, -0.8644080979012073, 0.41447925356542553, -0.7946544719642822}, {-5.551115123125783e-17, 0.0, -5.551115123125783e-17, 1.0}}, {{0.9928349393209476, 0.09405867905155432, 0.0737003821370924, 1.5176549939542279}, {-0.05601801548565587, -0.17843492978426267, 0.982355815936562, 1.5771933431745697}, {0.10554981347150151, -0.97944573119741, -0.17188745304792394, -0.794654473006748}, {1.249000902703301e-16, 0.0, -8.326672684688674e-17, 1.0}}, {{0.6696489324143071, 0.7230710222271839, 0.16952465726532903, 2.124716992886465}, {-0.05601802147349406, -0.17843493406754668, 0.9823558148170956, 1.577193342141926}, {0.7405621455042507, -0.6673299596621294, -0.07898375518726183, -0.7946544743360283}, {1.1102230246251565e-16, 0.0, 5.551115123125783e-17, 0.9999999999999999}}, {{0.581972785362443, 0.05026939328855442, 0.8116530421805607, 2.124716994373637}, {-0.09584151340049174, -0.9868916600803641, 0.1298431583617594, 0.5257311040593022}, {0.8075407606993799, -0.15335524153301364, -0.5695261975567214, -0.7946544732451483}, {-1.1102230246251565e-16, -2.7755575615628914e-17, 0.0, 1.0}}, {{0.3863411405466375, 0.9191578807865023, 0.07674189823781499, 0.3035310024438569}, {0.5467215101388645, -0.16119747073988, -0.8216513703440179, 4.731580009447501}, {-0.7428567271237954, 0.35939417148602165, -0.5648005953155498, -0.7946544741179918}, {-1.1102230246251565e-16, 5.551115123125783e-17, 0.0, 1.0}}, {{0.20727613862501068, -0.9246959431881105, 0.31933369857041366, 0.30353100217436535}, {-0.5467215083775467, 0.16119746379435437, 0.8216513728786113, 1.5771933384708474}, {-0.8112534716456183, -0.34489532442353976, -0.4721387719026189, -0.7946544736643393}, {0.0, 1.1102230246251565e-16, 0.0, 1.0}}, {{0.9709901123098558, -0.21873613013519205, -0.09660585714762565, 1.2141239932545798}, {-0.09385435238240734, -0.7202114501390865, 0.6873767770354606, 1.0514622234686084}, {-0.21993078167242508, -0.6583691769191125, -0.7198475381327677, -0.794654474160402}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.9721374064326864, -0.06476823448972478, 0.2252863218604222, 1.5176549933880534}, {-0.09584151545422273, -0.9868916596755019, 0.1298431599230487, 0.5257311061611902}, {0.21392348218574594, -0.14781717683985665, -0.965601794737675, -0.7946544722350558}, {-1.3877787807814457e-16, -2.7755575615628914e-17, 0.0, 1.0}}, {{0.5490814341445536, 0.7586196137281238, 0.3507219468201455, 0.6070619971385178}, {0.828595975697076, -0.43925791880424425, -0.34710402061504564, 5.257311122022961}, {-0.10926252369460446, 0.4811951587546325, -0.8697775118425342, -0.7946544734171301}, {8.326672684688674e-17, 0.0, 0.0, 0.9999999999999998}}, {{0.9921258803454628, -0.001098726158448999, -0.1252399351953353, 1.2141239965994974}, {-0.061220481001961057, -0.8766128044664807, -0.4772861112510543, 6.962719666473e-09}, {-0.10926252412771358, 0.48119515255296597, -0.8697775152191325, -0.79465447341713}, {-4.163336342344337e-17, -1.1102230246251565e-16, 0.0, 0.9999999999999999}}, {{0.6696489432944074, 0.7230710163882418, 0.16952466434270155, 0.6070620106869362}, {0.05601800780331223, 0.1784349479222583, -0.9823558101673974, 4.205848888056709}, {-0.7405621389792741, 0.6673299643797597, 0.07898377650727716, -0.7946544674186218}, {1.1102230246251565e-16, 0.0, -1.3877787807814457e-17, 1.0}}, {{0.6696489098267326, 0.7230710312696226, 0.16952465761975835, 0.6070619835219269}, {0.056018019261034786, 0.1784349316785832, -0.9823558153771896, 4.205848903740433}, {-0.7405621607654075, 0.6673299431834948, 0.07898375132383098, -0.7946544674186217}, {1.1102230246251565e-16, -1.1102230246251565e-16, 2.7755575615628914e-17, 0.9999999999999999}}, {{0.28631142864032966, 0.20700633361637605, 0.9355074196454307, 0.3035309858829332}, {0.6079420159049573, 0.7154153325157111, -0.34436525612985447, 3.680117806877694}, {-0.7405621367680707, 0.667329971423134, 0.07898373773067754, -0.7946544674186213}, {0.0, 0.0, 8.326672684688674e-17, 1.0}}};\n", - "constexpr double base_air_ico_trans[23][4][4] = {{{0.5771127842542352, 0.09385434657102582, 0.8112534716456185, -0.9269301900000004}, {-0.6019490778198661, 0.7202114470147596, 0.3448953244235397, -1.0974189100000002}, {-0.5519041069771089, -0.6873767724024487, 0.47213877190261855, 4.077454710000002}, {0.0, 2.2204460492503126e-16, 0.0, 1.0}}, {{0.9709901268864738, 0.09385434657102582, 0.2199307816724253, -1.6442540899999996}, {-0.2187361374273623, 0.7202114470147596, 0.6583691769191118, -1.79532095}, {-0.09660585493174938, -0.687376772402449, 0.7198475381327685, 3.24827191}, {1.1102230246251565e-16, 0.0, 1.1102230246251565e-16, 1.0}}, {{0.9721374177212223, 0.09584151258786845, -0.21392348218574572, -1.6526118100000005}, {-0.06476823913013299, 0.9868916696001585, 0.14781717683985673, -2.9169376699999994}, {0.22528632507169927, -0.12984316207736876, 0.9656017947376752, 0.9033697900000001}, {1.1102230246251565e-16, 0.0, 0.0, 1.0}}, {{0.9921258758509998, 0.061220487542130664, 0.10926252593733322, -1.5798064099999996}, {-0.001098707109494417, 0.8766128052462792, -0.4811951556560428, -2.685029549999999}, {-0.12523992644012408, 0.4772861149277753, 0.8697775132750616, -0.3733772099999991}, {0.0, -2.465190328815662e-32, 0.0, 1.0000000000000002}}, {{0.28030414329344755, 0.6079419928405788, 0.7428567271237952, -2.00801767}, {-0.5991800415902347, 0.7154153355770391, -0.35939417148602165, -1.0873330499999998}, {-0.7499419027132015, -0.3443652483685888, 0.5648005953155497, 3.356127390000001}, {-1.1102230246251565e-16, 1.1102230246251565e-16, 0.0, 1.0}}, {{0.2596066197503542, -0.4560824620660179, 0.8512303999921011, 1.9642587099999997}, {-0.7580069603423448, 0.44991126556421224, 0.47223437742666524, 0.3236332399999994}, {-0.5983559577215728, -0.7678337379974675, -0.22891373682183738, 4.50044201}, {-1.1102230246251565e-16, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.9586365671366947, -0.003215303338595427, 0.2846148074971937, -1.213495679999999}, {-0.25808606116480587, -0.431497651119788, 0.8644080979012073, 3.12025702}, {0.1200312931494973, -0.9021083288913834, -0.4144792535654252, 3.7568638500000016}, {0.0, -1.6653345369377373e-16, 0.0, 1.0}}, {{0.9928349412643155, 0.056018018186692914, -0.10554981347150141, -1.524903679999999}, {0.09405867962197714, 0.17843493154109227, 0.97944573119741, -0.08634833000000003}, {0.07370038008007025, -0.9823558242886872, 0.1718874530479236, 4.178749899999999}, {-1.1102230246251565e-16, 0.0, 0.0, 0.9999999999999996}}, {{0.5819727875851122, 0.0958415125878687, -0.8075407606993801, -1.2973306300000007}, {0.05026939053476542, 0.9868916696001588, 0.1533552415330134, -3.0216901300000005}, {0.8116530460736279, -0.12984316207736876, 0.5695261975567216, 0.36942835999999946}, {-1.1102230246251565e-16, -2.220446049250313e-16, 0.0, 1.0}}, {{0.5247823082449008, 0.0032153033385950414, -0.851230399992101, -1.0017709799999996}, {-0.7686380655985867, 0.43149765111978794, -0.4722343774266652, -0.81605916}, {0.3657855441277853, 0.9021083288913834, 0.2289137368218374, -1.9372128400000004}, {0.0, 6.096153978258407e-17, 0.0, 0.9999999999999998}}, {{0.9586365671366951, 0.0032153033385950484, -0.28461480749719337, -1.39683563}, {-0.2580860611648058, 0.43149765111978794, -0.8644080979012073, -1.28096424}, {0.12003129314949779, 0.9021083288913836, 0.41447925356542553, -1.7134307400000008}, {-1.1102230246251565e-16, 1.1102230246251565e-16, 0.0, 1.0}}, {{0.9928349412643155, -0.05601801818669286, 0.1055498134715019, -1.33455403}, {0.09405867962197711, -0.17843493154109227, -0.9794457311974099, -0.6396431699999997}, {0.07370038008007082, 0.9823558242886878, -0.17188745304792374, -1.7978079500000004}, {1.1102230246251565e-16, -2.220446049250313e-16, 0.0, 0.9999999999999998}}, {{0.6696489285568152, -0.05601801818669308, 0.7405621455042509, -0.74597219}, {0.723071017397498, -0.1784349315410924, -0.6673299596621297, -1.7851916300000001}, {0.16952466190275595, 0.982355824288688, -0.0789837551872621, -1.9723217899999996}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.581972787585112, -0.09584151258786852, 0.80754076069938, -0.54442473}, {0.05026939053476491, -0.9868916696001588, -0.15335524153301358, 0.29016699000000007}, {0.8116530460736278, 0.12984316207736893, -0.5695261975567216, -2.2453721499999997}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.386341138180555, 0.5467215052984484, -0.7428567271237957, -3.2944374800000005}, {0.9191578756618027, -0.16119746966924034, 0.35939417148602165, 0.7693200000000001}, {0.07674189808886517, -0.8216513632963648, -0.5648005953155493, 3.415594300000001}, {-1.1102230246251565e-16, 0.0, 0.0, 1.0}}, {{0.2072761437410203, -0.5467215052984483, -0.8112534716456183, 0.15470457999999998}, {-0.9246959481210651, 0.16119746966924028, -0.34489532442353976, -0.2476383}, {0.31933369338332074, 0.8216513632963647, -0.47213877190261877, -1.7680179200000001}, {0.0, 0.0, 0.0, 1.0}}, {{0.970990126886474, -0.09385434657102576, -0.2199307816724251, -1.25498709}, {-0.21873613742736212, -0.7202114470147594, -0.6583691769191123, 0.49967191}, {-0.09660585493174975, 0.6873767724024488, -0.7198475381327678, -1.17748929}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721374177212225, -0.09584151258786833, 0.21392348218574608, -1.25498709}, {-0.06476823913013245, -0.9868916696001586, -0.14781717683985665, 0.49967190999999994}, {0.225286325071699, 0.12984316207736882, -0.9656017947376753, -1.17748929}, {1.1102230246251565e-16, 0.0, 0.0, 0.9999999999999999}}, {{0.5490814243871979, 0.828595968467787, -0.10926252369460442, -4.7763392200000006}, {0.7586195940894178, -0.4392579108912803, 0.4811951587546326, 2.2311702599999994}, {0.3507219371809713, -0.3471040153291294, -0.8697775118425345, 0.92075125}, {0.0, -1.1102230246251565e-16, 0.0, 0.9999999999999991}}, {{0.9921258703600726, -0.061220497052696075, -0.10926252412771353, -1.29138978}, {-0.0010987126004213489, -0.8766128147568447, 0.4811951525529661, 0.3837178600000002}, {-0.12523992644012394, -0.4772861149277757, -0.8697775152191326, -0.5391157899999999}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696489340477428, 0.05601800867612728, -0.7405621389792739, -1.230612719999998}, {0.7230710064156433, 0.17843495056222272, 0.6673299643797593, -0.659122639999999}, {0.1695246619027561, -0.9823558242886863, 0.07898377650727674, 4.091492979999993}, {-2.220446049250313e-16, 4.440892098500626e-16, 0.0, 1.0}}, {{0.6696489175749601, 0.05601801818669295, -0.7405621607654072, -1.230612749999999}, {0.723071039361207, 0.17843493154109233, 0.6673299431834945, -0.659122579999999}, {0.1695246619027577, -0.9823558242886873, 0.07898375132383063, 4.091492979999996}, {4.440892098500626e-16, 7.186231688523656e-17, 0.0, 0.9999999999999996}}, {{0.28631143196814535, 0.6079420023511448, -0.7405621367680713, -2.9126935900000026}, {0.20700633604348043, 0.7154153165559092, 0.6673299714231338, -2.165348740000002}, {0.9355074303409838, -0.34436524836858934, 0.07898373773067771, 1.0461139700000008}, {0.0, 0.0, 0.0, 1.0000000000000009}}};\n", - "constexpr double orient_horizontal_trans[4][4] = {{0.0, -1.0, 0.0, 5.78304223331047}, {1.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}};\n", - "constexpr double orient_horizontal_inv_trans[4][4] = {{0.0, 1.0, 0.0, 0.0}, {-1.0, -0.0, -0.0, 5.78304223331047}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}};\n" - ] - } - ], - "source": [ - "print(\n", - " \"\\n\".join(\n", - " [\n", - " (\n", - " f\"{name} = \"\n", - " + json.dumps(value.tolist())\n", - " .replace(\"[\", \"{\")\n", - " .replace(\"]\", \"}\")\n", - " + \";\"\n", - " )\n", - " for name, value in {\n", - " \"constexpr pj_face base_ico_faces[23]\": ico_faces[:, :, :3],\n", - " \"constexpr PJ_XYZ base_ico_centers[23]\": ico_centers[:, :3],\n", - " \"constexpr PJ_XYZ base_ico_normals[23]\": ico_normals,\n", - " \"constexpr pj_face base_airocean_faces[23]\": airocean_23_face_vertices[\n", - " :, :, [0, 1, 3]\n", - " ],\n", - " \"constexpr double base_ico_air_trans[23][4][4]\": ico_air_trans[\n", - " :, :, :\n", - " ],\n", - " \"constexpr double base_air_ico_trans[23][4][4]\": air_ico_trans[\n", - " :, :, :\n", - " ],\n", - " \"constexpr double orient_horizontal_trans[4][4]\": orient_horizontal,\n", - " \"constexpr double orient_horizontal_inv_trans[4][4]\": inv_orient_horizontal,\n", - " }.items()\n", - " ]\n", - " )\n", - ")" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.12" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/scripts/build_airocean_parameters.py b/scripts/build_airocean_parameters.py new file mode 100755 index 0000000000..6e676312fa --- /dev/null +++ b/scripts/build_airocean_parameters.py @@ -0,0 +1,558 @@ +#!/usr/bin/env python +############################################################################### +# $Id$ +# +# Project: PROJ +# Purpose: Build airocean parameters +# Author: Pierre Louvart +# +############################################################################### +# Copyright (c) 2025, Pierre Louvart +# +# Permission is hereby granted, free of charge, to any person obtaining a +# copy of this software and associated documentation files (the "Software"), +# to deal in the Software without restriction, including without limitation +# the rights to use, copy, modify, merge, publish, distribute, sublicense, +# and/or sell copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +############################################################################### + +""" + This python script can be launched "as is" with no additional argument. + It will generate 2 plots (require geopandas and matplotlib): + - one for the 20 faces unfolded net + - one for the complete 23 faces unfolded net that makes up the final airocean map + It will also print on the standard output the C code initializing vertices, faces and + transform matrices (forward and inverse) required to conduct the airocean projection. +""" + + +import numpy as np +from pathlib import Path +import json + + +""" + Definition of the vertices of the unfolded icosahedron net: +""" + + +# Icosahedron properties +circumscribed_radius = 1 +inscribed_radius = 3**0.5 / 12 * (3 + 5**0.5) +triangle_edge = circumscribed_radius / np.sin(2 * np.pi / 5) +triangle_height = 3**0.5 / 2 * triangle_edge + +# Icosahedron properties scaled to a specifi radius. Left to 1.0 +radius = 1.0 +triangle_earth_edge = triangle_edge * radius +triangle_earth_height = triangle_height * radius +circumscribed_earth_radius = circumscribed_radius * radius +inscribed_earth_radius = inscribed_radius * radius + + +# Vertices of the faces in the airocean referential +airocean_vertices = np.array( + [ + [2, 0, 0], # Vertex 0 + [1, 1, 0], # Vertex 1 + [3, 1, 0], # Vertex 2 + [0, 2, 0], # Vertex 3 + [2, 2, 0], # Vertex 4 + [1, 3, 0], # Vertex 5 + [3, 3, 0], # Vertex 6 + [0, 4, 0], # Vertex 7 + [2, 4, 0], # Vertex 8 + [1, 5, 0], # Vertex 9 + [3, 5, 0], # Vertex 10 + [0, 6, 0], # Vertex 11 + [2, 6, 0], # Vertex 12 + [1, 7, 0], # Vertex 13 + [3, 7, 0], # Vertex 14 + [0, 8, 0], # Vertex 15 + [2, 8, 0], # Vertex 16 + [1, 9, 0], # Vertex 17 + [3, 9, 0], # Vertex 18 + [0, 10, 0], # Vertex 19 + [2, 10, 0], # Vertex 20 + [1, 11, 0], # Vertex 21 + [0.5, 9.5, 0], # Vertex 22 : Split from Face 15 (ocean) + [1, 0, 0], # Vertex 23 : Split from Face 15 (australia) + [2 / 3, 8, 0], # Vertex 24 : split from face 8 (japan) + [1 / 3, 7, 0], # Vertex 25 : new from face 8 (japan) + [1, -1, 0], # Vertex 26 : bottom new for antartica + ] +) * [triangle_earth_height, triangle_earth_edge / 2, 1] + + +""" + Definition of the airocean "base" (read non-split) faces and centers +""" + +airocean_face_vertices = airocean_vertices[ + [ + [12, 16, 14], # Face 0 + [12, 13, 16], # Face 1 + [12, 9, 13], # Face 2 + [12, 8, 9], # Face 3 + [12, 14, 10], # Face 4 + [14, 16, 18], # Face 5 + [20, 16, 17], # Face 6 + [17, 16, 13], # Face 7 + [9, 11, 13], # Face 9 + [9, 5, 7], # Face 10 + [9, 8, 5], # Face 11 + [5, 8, 4], # Face 12 + [4, 8, 6], # Face 13 + [0, 4, 2], # Face 14 + [19, 17, 15], # Face 16 + [3, 7, 5], # Face 17 + [1, 5, 4], # Face 18 + [1, 4, 0], # Face 19 + [15, 17, 13], # Face 8 + [19, 21, 17], # Face 15 + [26, 1, 0], # Face 8' + [11, 15, 13], # Face 15' + ] +] +airocean_face_vertices = np.concatenate( + [ + airocean_face_vertices, + np.zeros((*airocean_face_vertices.shape[:-1], 1)), + ], + axis=2, +) + +airocean_22_centers = airocean_face_vertices.mean(axis=1) +airocean_22_centers[:, 2] = 1 +airocean_2_centers = airocean_22_centers[[18, 19]] + + +""" + Definition of the complete faces of the + airocean unfolded net (23 faces total). +""" + +airocean_23_face_vertices = airocean_vertices[ + [ + [12, 16, 14], # Face 0 + [12, 13, 16], # Face 1 + [12, 9, 13], # Face 2 + [12, 8, 9], # Face 3 + [12, 14, 10], # Face 4 + [14, 16, 18], # Face 5 + [20, 16, 17], # Face 6 + [17, 16, 13], # Face 7 + # [15, 17, 13], # Face 8, split + [9, 11, 13], # Face 9 + [9, 5, 7], # Face 10 + [9, 8, 5], # Face 11 + [5, 8, 4], # Face 12 + [4, 8, 6], # Face 13 + [0, 4, 2], # Face 14 + # [19, 21, 17], # Face 15, split + [19, 17, 15], # Face 16 + [3, 7, 5], # Face 17 + [1, 5, 4], # Face 18 + [1, 4, 0], # Face 19 + [17, 22, 21], # Face 20 - from 15 (Ocean) + [1, 0, 23], # Face 21 - from 15 (Australia) + [15, 17, 24], # Face 22 - from 8 (Japan) + [17, 13, 24], # Face 23 - from 8 (Japan) + [11, 25, 13], # Face 24 - from 8 (Japan) + ] +] +airocean_23_face_vertices = np.concatenate( + [ + airocean_23_face_vertices, + np.ones((*airocean_23_face_vertices.shape[:-1], 1)), + ], + axis=2, +) +airocean_23_face_vertices[:, :, 3] = 1.0 + + +airocean_23_centers = airocean_23_face_vertices.mean(axis=1) +airocean_23_centers[:, 2] = 1 + + +""" + Definition of the forward and inverse transform matrices to switch + from vertical to horizontal layout +""" + + +def translation(dx=0, dy=0): + res = np.eye(4) + res[[0, 1], 3] = dx, dy + return res + + +def rotation(angle): + res = np.eye(4) + res[:2, :2] = np.round( + [ + [np.cos(angle), -np.sin(angle)], + [np.sin(angle), np.cos(angle)], + ], + 10, + ) + return res + + +w, h = airocean_vertices[:, 0].max(), airocean_vertices[:, 1].max() +lower_left = [0, 0, 0, 1] +lower_right = [w, 0, 0, 1] +upper_left = [0, h, 0, 1] +upper_right = [w, h, 0, 1] + +translation(h, 0) @ rotation(np.pi / 2 * 1) @ lower_left +translation(h, 0) @ rotation(np.pi / 2 * 1) @ lower_right +translation(h, 0) @ rotation(np.pi / 2 * 1) @ upper_left +translation(h, 0) @ rotation(np.pi / 2 * 1) @ upper_right +orient_horizontal = translation(h, 0) @ rotation(np.pi / 2 * 1) +inv_orient_horizontal = np.linalg.inv(orient_horizontal) + + +""" + Definition of icosahedron vertices, faces and centers. +""" + +ico_faces = np.array( + [ + [ + [0.42015243, 0.07814525, 0.90408255, 1.0], + [0.51883673, 0.83542038, 0.18133184, 1.0], + [0.99500944, -0.0913478, 0.04014718, 1.0], + ], + [ + [0.42015243, 0.07814525, 0.90408255, 1.0], + [-0.41468223, 0.65596241, 0.63067581, 1.0], + [0.51883673, 0.83542038, 0.18133184, 1.0], + ], + [ + [0.42015243, 0.07814525, 0.90408255, 1.0], + [-0.51545596, -0.3817169, 0.76720099, 1.0], + [-0.41468223, 0.65596241, 0.63067581, 1.0], + ], + [ + [0.42015243, 0.07814525, 0.90408255, 1.0], + [0.3557814, -0.84358, 0.40223423, 1.0], + [-0.51545596, -0.3817169, 0.76720099, 1.0], + ], + [ + [0.42015243, 0.07814525, 0.90408255, 1.0], + [0.99500944, -0.0913478, 0.04014718, 1.0], + [0.3557814, -0.84358, 0.40223423, 1.0], + ], + [ + [0.99500944, -0.0913478, 0.04014718, 1.0], + [0.51883673, 0.83542038, 0.18133184, 1.0], + [0.51545596, 0.3817169, -0.76720099, 1.0], + ], + [ + [0.51545596, 0.3817169, -0.76720099, 1.0], + [0.51883673, 0.83542038, 0.18133184, 1.0], + [-0.3557814, 0.84358, -0.40223423, 1.0], + ], + [ + [-0.3557814, 0.84358, -0.40223423, 1.0], + [0.51883673, 0.83542038, 0.18133184, 1.0], + [-0.41468223, 0.65596241, 0.63067581, 1.0], + ], + [ + [-0.51545596, -0.3817169, 0.76720099, 1.0], + [-0.99500944, 0.0913478, -0.04014718, 1.0], + [-0.41468223, 0.65596241, 0.63067581, 1.0], + ], + [ + [-0.51545596, -0.3817169, 0.76720099, 1.0], + [-0.51883673, -0.83542038, -0.18133184, 1.0], + [-0.99500944, 0.0913478, -0.04014718, 1.0], + ], + [ + [-0.51545596, -0.3817169, 0.76720099, 1.0], + [0.3557814, -0.84358, 0.40223423, 1.0], + [-0.51883673, -0.83542038, -0.18133184, 1.0], + ], + [ + [-0.51883673, -0.83542038, -0.18133184, 1.0], + [0.3557814, -0.84358, 0.40223423, 1.0], + [0.41468223, -0.65596241, -0.63067581, 1.0], + ], + [ + [0.41468223, -0.65596241, -0.63067581, 1.0], + [0.3557814, -0.84358, 0.40223423, 1.0], + [0.99500944, -0.0913478, 0.04014718, 1.0], + ], + [ + [0.51545596, 0.3817169, -0.76720099, 1.0], + [0.41468223, -0.65596241, -0.63067581, 1.0], + [0.99500944, -0.0913478, 0.04014718, 1.0], + ], + [ + [-0.42015243, -0.07814525, -0.90408255, 1.0], + [-0.3557814, 0.84358, -0.40223423, 1.0], + [-0.99500944, 0.0913478, -0.04014718, 1.0], + ], + [ + [-0.42015243, -0.07814525, -0.90408255, 1.0], + [-0.99500944, 0.0913478, -0.04014718, 1.0], + [-0.51883673, -0.83542038, -0.18133184, 1.0], + ], + [ + [-0.42015243, -0.07814525, -0.90408255, 1.0], + [-0.51883673, -0.83542038, -0.18133184, 1.0], + [0.41468223, -0.65596241, -0.63067581, 1.0], + ], + [ + [-0.42015243, -0.07814525, -0.90408255, 1.0], + [0.41468223, -0.65596241, -0.63067581, 1.0], + [0.51545596, 0.3817169, -0.76720099, 1.0], + ], + [ + [-0.3557814, 0.84358, -0.40223423, 1.0], + [-0.38796691, 0.38271738, -0.65315839, 1.0], + [0.51545596, 0.3817169, -0.76720099, 1.0], + ], + [ + [-0.42015243, -0.07814525, -0.90408255, 1.0], + [0.51545596, 0.3817169, -0.76720099, 1.0], + [-0.38796691, 0.38271738, -0.65315839, 1.0], + ], + [ + [-0.99500944, 0.0913478, -0.04014718, 1.0], + [-0.3557814, 0.84358, -0.40223423, 1.0], + [-0.58849102, 0.53029673, 0.0627648, 1.0], + ], + [ + [-0.3557814, 0.84358, -0.40223423, 1.0], + [-0.41468223, 0.65596241, 0.63067581, 1.0], + [-0.58849102, 0.53029673, 0.0627648, 1.0], + ], + [ + [-0.99500944, 0.0913478, -0.04014718, 1.0], + [-0.58849102, 0.53029673, 0.0627648, 1.0], + [-0.41468223, 0.65596241, 0.63067581, 1.0], + ], + ] +) +ico_20_centers = np.array( + [ + [0.6446662, 0.27407261, 0.37518719], + [0.17476898, 0.52317601, 0.57203007], + [-0.16999525, 0.11746359, 0.76731978], + [0.08682596, -0.38238388, 0.69117259], + [0.59031442, -0.28559418, 0.44882132], + [0.67643404, 0.37526316, -0.18190733], + [0.22617043, 0.68690576, -0.32936779], + [-0.08387563, 0.77832093, 0.13659114], + [-0.64171587, 0.12186443, 0.45257654], + [-0.67643404, -0.37526316, 0.18190733], + [-0.22617043, -0.68690576, 0.32936779], + [0.08387563, -0.77832093, -0.13659114], + [0.58849102, -0.53029673, -0.0627648], + [0.64171587, -0.12186443, -0.45257654], + [-0.59031442, 0.28559418, -0.44882132], + [-0.6446662, -0.27407261, -0.37518719], + [-0.17476898, -0.52317601, -0.57203007], + [0.16999525, -0.11746359, -0.76731978], + [-0.58849102, 0.53029673, 0.0627648], + [-0.08682596, 0.38238388, -0.69117259], + ] +) +# Centers corresponding to the split faces of Australia +ico_2_centers = np.array( + [ + [-0.07609745, 0.53600476, -0.6075312], + [-0.09755446, 0.22876301, -0.77481398], + ] +) +# Centers corresponding to the split faces around Japan +ico_3_centers = np.array( + [ + [-0.64642729, 0.48840818, -0.12653887], + [-0.45298488, 0.67661305, 0.09706879], + [-0.66606089, 0.42586898, 0.21776448], + ] +) + +""" + Definition of the forward and inverse transform matrices from icosahedral faces to airocean unfolded net space +""" + +A = ico_faces[:, 1] - ico_faces[:, 0] +B = ico_faces[:, 2] - ico_faces[:, 0] +ico_normals = -np.array( + [ + A[:, 1] * B[:, 2] - A[:, 2] * B[:, 1], + A[:, 2] * B[:, 0] - A[:, 0] * B[:, 2], + A[:, 0] * B[:, 1] - A[:, 1] * B[:, 0], + ] +).T +ico_normals /= ((ico_normals**2).sum(axis=1) ** 0.5).reshape(-1, 1) +ico_centers = ico_faces.mean(axis=1) +ico_elevated_centers = ico_centers.copy() +ico_elevated_centers[:, :3] += ico_normals + +airocean_basis = np.zeros((23, 4, 4)) +airocean_basis[:, :3, :] = airocean_23_face_vertices[:, :3, :] +airocean_basis[:, 3, :] = airocean_23_centers + +ico_basis = np.zeros((23, 4, 4)) +ico_basis[:, :3, :] = ico_faces +ico_basis[:, 3, :] = ico_elevated_centers + + +air_ico_trans = np.array( + [ + a.T @ np.linalg.inv(b.T) + for i, (a, b) in enumerate(zip(ico_basis, airocean_basis)) + ] +) +ico_air_trans = np.array( + [ + b.T @ np.linalg.inv(a.T) + for i, (a, b) in enumerate(zip(ico_basis, airocean_basis)) + ] +) + +for i, (a, b, v1, v2) in enumerate( + zip(ico_basis, airocean_basis, ico_centers, airocean_22_centers) +): + m = b.T @ np.linalg.inv(a.T) # ico to air + w = a.T @ np.linalg.inv(b.T) # air to ico + for x, y in zip(a, b): + v1 = m @ x.T + v1 /= v1[3] + v2 = w @ y.T + v2 /= v2[3] + assert np.isclose(v1, y, rtol=1e-7).all() + assert np.isclose(v2, x, rtol=1e-7).all() + + # Assert that the transform matrices work adequately + for i in range(100): + r = np.random.rand(3) + r /= r.sum() + v = (a[:3, :] * r.reshape(3, 1)).sum(axis=0) + v1 = m @ v.T + v1 /= v1[3] + v2 = w @ v1.T + v2 /= v2[3] + assert np.isclose(v, v2, rtol=1e-7).all() + +""" + End of definitions. +""" + + +def generate_20_faces_airocean_net( + outfile: Path = Path("./20_faces_airocean_net.png"), +) -> None: + """ + Save a picture of the "base" (non split) 20 faces of the unfolded icosahedron net + """ + try: + import geopandas as gpd + from shapely.geometry import Polygon + + gdf = gpd.GeoDataFrame( + data={"id": range(22)}, + geometry=[Polygon(shell=v[:, :2]) for v in airocean_face_vertices], + crs=None, + ) + ax = gdf.plot() + gdf.apply( + lambda x: ax.annotate( + text=x["id"], xy=x.geometry.centroid.coords[0], ha="center" + ), + axis=1, + ) + ax.get_figure().savefig(str(outfile)) + except ImportError as e: + print( + f"Geopandas and shapely must be installed to generate airocean plot! ({e})" + ) + + +def generate_23_faces_airocean_net( + outfile: Path = Path("./23_faces_airocean_net.png"), +) -> None: + """ + Save a picture of the complete 23 faces of the unfolded icosahedron net + """ + try: + import geopandas as gpd + from shapely.geometry import Polygon + + gdf = gpd.GeoDataFrame( + data={"id": range(len(airocean_23_face_vertices))}, + geometry=[ + Polygon(shell=v[:, :2]) for v in airocean_23_face_vertices + ], + crs=None, + ) + ax = gdf.plot() + gdf.apply( + lambda x: ax.annotate( + text=x["id"], xy=x.geometry.centroid.coords[0], ha="center" + ), + axis=1, + ) + ax.get_figure().savefig(str(outfile)) + except ImportError as e: + print( + f"Geopandas and shapely must be installed to generate airocean plot! ({e})" + ) + + +def generate_airocean_parameters() -> str: + """ + Create a string of C code that initializes airocean parameters + and that can be included directly into the source file of the airocean projection. + """ + return "\n".join( + [ + ( + f"{name} = " + + json.dumps(value.tolist()) + .replace("[", "{") + .replace("]", "}") + + ";" + ) + for name, value in { + "constexpr pj_face base_ico_faces[23]": ico_faces[:, :, :3], + "constexpr PJ_XYZ base_ico_centers[23]": ico_centers[:, :3], + "constexpr PJ_XYZ base_ico_normals[23]": ico_normals, + "constexpr pj_face base_airocean_faces[23]": airocean_23_face_vertices[ + :, :, [0, 1, 3] + ], + "constexpr double base_ico_air_trans[23][4][4]": ico_air_trans[ + :, :, : + ], + "constexpr double base_air_ico_trans[23][4][4]": air_ico_trans[ + :, :, : + ], + "constexpr double orient_horizontal_trans[4][4]": orient_horizontal, + "constexpr double orient_horizontal_inv_trans[4][4]": inv_orient_horizontal, + }.items() + ] + ) + + +if __name__ == "__main__": + generate_20_faces_airocean_net(Path("./20_faces_airocean_net.png")) + generate_23_faces_airocean_net(Path("./23_faces_airocean_net.png")) + parameters = generate_airocean_parameters() + print(parameters) From d5e106a4de8b6bd2dfb234565cf52ef234ce4bab Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Mon, 6 Jan 2025 21:29:44 +0100 Subject: [PATCH 30/37] - Add credit and link to the original source for the values of the icosahedron vertices used for the airocean projection --- scripts/build_airocean_parameters.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/build_airocean_parameters.py b/scripts/build_airocean_parameters.py index 6e676312fa..4cf6c2ea46 100755 --- a/scripts/build_airocean_parameters.py +++ b/scripts/build_airocean_parameters.py @@ -227,6 +227,8 @@ def rotation(angle): """ Definition of icosahedron vertices, faces and centers. + Credit to Gray Fuller for the original values. + Original source: http://www.rwgrayprojects.com/rbfnotes/maps/docs/graypr.c """ ico_faces = np.array( From fa468c901001f02f812bc2341f3e6d8f486a80ea Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Tue, 7 Jan 2025 08:51:33 +0100 Subject: [PATCH 31/37] - Remove dead code. Add original source double precision. Add 0s and 1s zapping. --- scripts/build_airocean_parameters.py | 643 +++++++++++++++++++++------ 1 file changed, 499 insertions(+), 144 deletions(-) diff --git a/scripts/build_airocean_parameters.py b/scripts/build_airocean_parameters.py index 4cf6c2ea46..b242908128 100755 --- a/scripts/build_airocean_parameters.py +++ b/scripts/build_airocean_parameters.py @@ -42,6 +42,29 @@ from pathlib import Path import json +np.set_printoptions(precision=22) + +""" + Zap values close to 1s and 0s +""" + + +def zap_zero_or_one(vals, eps=1e-12, verbose=False): + """Return copy of array with values very close to zero and one set exactly.""" + vals = vals.copy() + sel = (np.abs(vals) < eps) & (vals != 0.0) + if sel.any(): + vals[sel] = 0.0 + if verbose: + print(f"adjusted {sel.sum()} zeros") + ones = np.abs(np.abs(vals) - 1.0) + sel = (ones < eps) & (ones != 0.0) + if sel.any(): + vals[sel] = np.sign(vals[sel]) + if verbose: + print(f"adjusted {sel.sum()} ones") + return vals + """ Definition of the vertices of the unfolded icosahedron net: @@ -51,10 +74,10 @@ # Icosahedron properties circumscribed_radius = 1 inscribed_radius = 3**0.5 / 12 * (3 + 5**0.5) -triangle_edge = circumscribed_radius / np.sin(2 * np.pi / 5) +triangle_edge = float(circumscribed_radius / np.sin(2 * np.pi / 5)) triangle_height = 3**0.5 / 2 * triangle_edge -# Icosahedron properties scaled to a specifi radius. Left to 1.0 +# Icosahedron properties scaled to a specific radius. Left to 1.0 radius = 1.0 triangle_earth_edge = triangle_edge * radius triangle_earth_height = triangle_height * radius @@ -194,35 +217,30 @@ def translation(dx=0, dy=0): - res = np.eye(4) + res = np.eye(4, dtype=np.float32) res[[0, 1], 3] = dx, dy return res def rotation(angle): res = np.eye(4) - res[:2, :2] = np.round( - [ - [np.cos(angle), -np.sin(angle)], - [np.sin(angle), np.cos(angle)], - ], - 10, + res[:2, :2] = zap_zero_or_one( + np.array( + [ + [np.cos(angle), -np.sin(angle)], + [np.sin(angle), np.cos(angle)], + ], + dtype=np.float32, + ) ) return res w, h = airocean_vertices[:, 0].max(), airocean_vertices[:, 1].max() -lower_left = [0, 0, 0, 1] -lower_right = [w, 0, 0, 1] -upper_left = [0, h, 0, 1] -upper_right = [w, h, 0, 1] - -translation(h, 0) @ rotation(np.pi / 2 * 1) @ lower_left -translation(h, 0) @ rotation(np.pi / 2 * 1) @ lower_right -translation(h, 0) @ rotation(np.pi / 2 * 1) @ upper_left -translation(h, 0) @ rotation(np.pi / 2 * 1) @ upper_right -orient_horizontal = translation(h, 0) @ rotation(np.pi / 2 * 1) -inv_orient_horizontal = np.linalg.inv(orient_horizontal) +orient_horizontal = zap_zero_or_one( + translation(h, 0) @ rotation(np.pi / 2 * 1) +) +inv_orient_horizontal = zap_zero_or_one(np.linalg.inv(orient_horizontal)) """ @@ -234,162 +252,495 @@ def rotation(angle): ico_faces = np.array( [ [ - [0.42015243, 0.07814525, 0.90408255, 1.0], - [0.51883673, 0.83542038, 0.18133184, 1.0], - [0.99500944, -0.0913478, 0.04014718, 1.0], + [ + 0.420152426708710003, + 0.078145249402782959, + 0.904082550615019298, + 1.0, + ], + [ + 0.518836730327364437, + 0.835420380378235850, + 0.181331837557262454, + 1.0, + ], + [ + 0.995009439436241649, + -0.091347795276427931, + 0.040147175877166645, + 1.0, + ], ], [ - [0.42015243, 0.07814525, 0.90408255, 1.0], - [-0.41468223, 0.65596241, 0.63067581, 1.0], - [0.51883673, 0.83542038, 0.18133184, 1.0], + [ + 0.420152426708710003, + 0.078145249402782959, + 0.904082550615019298, + 1.0, + ], + [ + -0.414682225320335218, + 0.655962405434800777, + 0.630675807891475371, + 1.0, + ], + [ + 0.518836730327364437, + 0.835420380378235850, + 0.181331837557262454, + 1.0, + ], ], [ - [0.42015243, 0.07814525, 0.90408255, 1.0], - [-0.51545596, -0.3817169, 0.76720099, 1.0], - [-0.41468223, 0.65596241, 0.63067581, 1.0], + [ + 0.420152426708710003, + 0.078145249402782959, + 0.904082550615019298, + 1.0, + ], + [ + -0.515455959944041808, + -0.381716898287133011, + 0.767200992517747538, + 1.0, + ], + [ + -0.414682225320335218, + 0.655962405434800777, + 0.630675807891475371, + 1.0, + ], ], [ - [0.42015243, 0.07814525, 0.90408255, 1.0], - [0.3557814, -0.84358, 0.40223423, 1.0], - [-0.51545596, -0.3817169, 0.76720099, 1.0], + [ + 0.420152426708710003, + 0.078145249402782959, + 0.904082550615019298, + 1.0, + ], + [ + 0.355781402532944713, + -0.843580002466178147, + 0.402234226602925571, + 1.0, + ], + [ + -0.515455959944041808, + -0.381716898287133011, + 0.767200992517747538, + 1.0, + ], ], [ - [0.42015243, 0.07814525, 0.90408255, 1.0], - [0.99500944, -0.0913478, 0.04014718, 1.0], - [0.3557814, -0.84358, 0.40223423, 1.0], + [ + 0.420152426708710003, + 0.078145249402782959, + 0.904082550615019298, + 1.0, + ], + [ + 0.995009439436241649, + -0.091347795276427931, + 0.040147175877166645, + 1.0, + ], + [ + 0.355781402532944713, + -0.843580002466178147, + 0.402234226602925571, + 1.0, + ], ], [ - [0.99500944, -0.0913478, 0.04014718, 1.0], - [0.51883673, 0.83542038, 0.18133184, 1.0], - [0.51545596, 0.3817169, -0.76720099, 1.0], + [ + 0.995009439436241649, + -0.091347795276427931, + 0.040147175877166645, + 1.0, + ], + [ + 0.518836730327364437, + 0.835420380378235850, + 0.181331837557262454, + 1.0, + ], + [ + 0.515455959944041808, + 0.381716898287133011, + -0.767200992517747538, + 1.0, + ], ], [ - [0.51545596, 0.3817169, -0.76720099, 1.0], - [0.51883673, 0.83542038, 0.18133184, 1.0], - [-0.3557814, 0.84358, -0.40223423, 1.0], + [ + 0.515455959944041808, + 0.381716898287133011, + -0.767200992517747538, + 1.0, + ], + [ + 0.518836730327364437, + 0.835420380378235850, + 0.181331837557262454, + 1.0, + ], + [ + -0.355781402532944713, + 0.843580002466178147, + -0.402234226602925571, + 1.0, + ], ], [ - [-0.3557814, 0.84358, -0.40223423, 1.0], - [0.51883673, 0.83542038, 0.18133184, 1.0], - [-0.41468223, 0.65596241, 0.63067581, 1.0], + [ + -0.355781402532944713, + 0.843580002466178147, + -0.402234226602925571, + 1.0, + ], + [ + 0.518836730327364437, + 0.835420380378235850, + 0.181331837557262454, + 1.0, + ], + [ + -0.414682225320335218, + 0.655962405434800777, + 0.630675807891475371, + 1.0, + ], ], [ - [-0.51545596, -0.3817169, 0.76720099, 1.0], - [-0.99500944, 0.0913478, -0.04014718, 1.0], - [-0.41468223, 0.65596241, 0.63067581, 1.0], + [ + -0.515455959944041808, + -0.381716898287133011, + 0.767200992517747538, + 1.0, + ], + [ + -0.995009439436241649, + 0.091347795276427931, + -0.040147175877166645, + 1.0, + ], + [ + -0.414682225320335218, + 0.655962405434800777, + 0.630675807891475371, + 1.0, + ], ], [ - [-0.51545596, -0.3817169, 0.76720099, 1.0], - [-0.51883673, -0.83542038, -0.18133184, 1.0], - [-0.99500944, 0.0913478, -0.04014718, 1.0], + [ + -0.515455959944041808, + -0.381716898287133011, + 0.767200992517747538, + 1.0, + ], + [ + -0.518836730327364437, + -0.835420380378235850, + -0.181331837557262454, + 1.0, + ], + [ + -0.995009439436241649, + 0.091347795276427931, + -0.040147175877166645, + 1.0, + ], ], [ - [-0.51545596, -0.3817169, 0.76720099, 1.0], - [0.3557814, -0.84358, 0.40223423, 1.0], - [-0.51883673, -0.83542038, -0.18133184, 1.0], + [ + -0.515455959944041808, + -0.381716898287133011, + 0.767200992517747538, + 1.0, + ], + [ + 0.355781402532944713, + -0.843580002466178147, + 0.402234226602925571, + 1.0, + ], + [ + -0.518836730327364437, + -0.835420380378235850, + -0.181331837557262454, + 1.0, + ], ], [ - [-0.51883673, -0.83542038, -0.18133184, 1.0], - [0.3557814, -0.84358, 0.40223423, 1.0], - [0.41468223, -0.65596241, -0.63067581, 1.0], + [ + -0.518836730327364437, + -0.835420380378235850, + -0.181331837557262454, + 1.0, + ], + [ + 0.355781402532944713, + -0.843580002466178147, + 0.402234226602925571, + 1.0, + ], + [ + 0.414682225320335218, + -0.655962405434800777, + -0.630675807891475371, + 1.0, + ], ], [ - [0.41468223, -0.65596241, -0.63067581, 1.0], - [0.3557814, -0.84358, 0.40223423, 1.0], - [0.99500944, -0.0913478, 0.04014718, 1.0], + [ + 0.414682225320335218, + -0.655962405434800777, + -0.630675807891475371, + 1.0, + ], + [ + 0.355781402532944713, + -0.843580002466178147, + 0.402234226602925571, + 1.0, + ], + [ + 0.995009439436241649, + -0.091347795276427931, + 0.040147175877166645, + 1.0, + ], ], [ - [0.51545596, 0.3817169, -0.76720099, 1.0], - [0.41468223, -0.65596241, -0.63067581, 1.0], - [0.99500944, -0.0913478, 0.04014718, 1.0], + [ + 0.515455959944041808, + 0.381716898287133011, + -0.767200992517747538, + 1.0, + ], + [ + 0.414682225320335218, + -0.655962405434800777, + -0.630675807891475371, + 1.0, + ], + [ + 0.995009439436241649, + -0.091347795276427931, + 0.040147175877166645, + 1.0, + ], ], [ - [-0.42015243, -0.07814525, -0.90408255, 1.0], - [-0.3557814, 0.84358, -0.40223423, 1.0], - [-0.99500944, 0.0913478, -0.04014718, 1.0], + [ + -0.420152426708710003, + -0.078145249402782959, + -0.904082550615019298, + 1.0, + ], + [ + -0.355781402532944713, + 0.843580002466178147, + -0.402234226602925571, + 1.0, + ], + [ + -0.995009439436241649, + 0.091347795276427931, + -0.040147175877166645, + 1.0, + ], ], [ - [-0.42015243, -0.07814525, -0.90408255, 1.0], - [-0.99500944, 0.0913478, -0.04014718, 1.0], - [-0.51883673, -0.83542038, -0.18133184, 1.0], + [ + -0.420152426708710003, + -0.078145249402782959, + -0.904082550615019298, + 1.0, + ], + [ + -0.995009439436241649, + 0.091347795276427931, + -0.040147175877166645, + 1.0, + ], + [ + -0.518836730327364437, + -0.835420380378235850, + -0.181331837557262454, + 1.0, + ], ], [ - [-0.42015243, -0.07814525, -0.90408255, 1.0], - [-0.51883673, -0.83542038, -0.18133184, 1.0], - [0.41468223, -0.65596241, -0.63067581, 1.0], + [ + -0.420152426708710003, + -0.078145249402782959, + -0.904082550615019298, + 1.0, + ], + [ + -0.518836730327364437, + -0.835420380378235850, + -0.181331837557262454, + 1.0, + ], + [ + 0.414682225320335218, + -0.655962405434800777, + -0.630675807891475371, + 1.0, + ], ], [ - [-0.42015243, -0.07814525, -0.90408255, 1.0], - [0.41468223, -0.65596241, -0.63067581, 1.0], - [0.51545596, 0.3817169, -0.76720099, 1.0], + [ + -0.420152426708710003, + -0.078145249402782959, + -0.904082550615019298, + 1.0, + ], + [ + 0.414682225320335218, + -0.655962405434800777, + -0.630675807891475371, + 1.0, + ], + [ + 0.515455959944041808, + 0.381716898287133011, + -0.767200992517747538, + 1.0, + ], ], [ - [-0.3557814, 0.84358, -0.40223423, 1.0], - [-0.38796691, 0.38271738, -0.65315839, 1.0], - [0.51545596, 0.3817169, -0.76720099, 1.0], + [ + -0.355781402532944713, + 0.843580002466178147, + -0.402234226602925571, + 1.0, + ], + [ + -0.38796691462082733, + 0.3827173765316976, + -0.6531583886089725, + 1.0, + ], + [ + 0.515455959944041808, + 0.381716898287133011, + -0.767200992517747538, + 1.0, + ], ], [ - [-0.42015243, -0.07814525, -0.90408255, 1.0], - [0.51545596, 0.3817169, -0.76720099, 1.0], - [-0.38796691, 0.38271738, -0.65315839, 1.0], + [ + -0.420152426708710003, + -0.078145249402782959, + -0.904082550615019298, + 1.0, + ], + [ + 0.515455959944041808, + 0.381716898287133011, + -0.767200992517747538, + 1.0, + ], + [ + -0.38796691462082733, + 0.3827173765316976, + -0.6531583886089725, + 1.0, + ], ], [ - [-0.99500944, 0.0913478, -0.04014718, 1.0], - [-0.3557814, 0.84358, -0.40223423, 1.0], - [-0.58849102, 0.53029673, 0.0627648, 1.0], + [ + -0.995009439436241649, + 0.091347795276427931, + -0.040147175877166645, + 1.0, + ], + [ + -0.355781402532944713, + 0.843580002466178147, + -0.402234226602925571, + 1.0, + ], + [ + -0.5884910224298405, + 0.5302967343924689, + 0.06276480180379439, + 1.0, + ], ], [ - [-0.3557814, 0.84358, -0.40223423, 1.0], - [-0.41468223, 0.65596241, 0.63067581, 1.0], - [-0.58849102, 0.53029673, 0.0627648, 1.0], + [ + -0.355781402532944713, + 0.843580002466178147, + -0.402234226602925571, + 1.0, + ], + [ + -0.414682225320335218, + 0.655962405434800777, + 0.630675807891475371, + 1.0, + ], + [ + -0.5884910224298405, + 0.5302967343924689, + 0.06276480180379439, + 1.0, + ], ], [ - [-0.99500944, 0.0913478, -0.04014718, 1.0], - [-0.58849102, 0.53029673, 0.0627648, 1.0], - [-0.41468223, 0.65596241, 0.63067581, 1.0], + [ + -0.995009439436241649, + 0.091347795276427931, + -0.040147175877166645, + 1.0, + ], + [ + -0.5884910224298405, + 0.5302967343924689, + 0.06276480180379439, + 1.0, + ], + [ + -0.414682225320335218, + 0.655962405434800777, + 0.630675807891475371, + 1.0, + ], ], - ] + ], + dtype=np.float32, ) ico_20_centers = np.array( [ - [0.6446662, 0.27407261, 0.37518719], - [0.17476898, 0.52317601, 0.57203007], - [-0.16999525, 0.11746359, 0.76731978], - [0.08682596, -0.38238388, 0.69117259], - [0.59031442, -0.28559418, 0.44882132], - [0.67643404, 0.37526316, -0.18190733], - [0.22617043, 0.68690576, -0.32936779], - [-0.08387563, 0.77832093, 0.13659114], - [-0.64171587, 0.12186443, 0.45257654], - [-0.67643404, -0.37526316, 0.18190733], - [-0.22617043, -0.68690576, 0.32936779], - [0.08387563, -0.77832093, -0.13659114], - [0.58849102, -0.53029673, -0.0627648], - [0.64171587, -0.12186443, -0.45257654], - [-0.59031442, 0.28559418, -0.44882132], - [-0.6446662, -0.27407261, -0.37518719], - [-0.17476898, -0.52317601, -0.57203007], - [0.16999525, -0.11746359, -0.76731978], - [-0.58849102, 0.53029673, 0.0627648], - [-0.08682596, 0.38238388, -0.69117259], - ] -) -# Centers corresponding to the split faces of Australia -ico_2_centers = np.array( - [ - [-0.07609745, 0.53600476, -0.6075312], - [-0.09755446, 0.22876301, -0.77481398], - ] -) -# Centers corresponding to the split faces around Japan -ico_3_centers = np.array( - [ - [-0.64642729, 0.48840818, -0.12653887], - [-0.45298488, 0.67661305, 0.09706879], - [-0.66606089, 0.42586898, 0.21776448], - ] + [0.6446661988241054, 0.27407261150153034, 0.37518718801648276], + [0.17476897723857973, 0.5231760117386065, 0.5720300653545857], + [-0.16999525285188902, 0.1174635855168169, 0.7673197836747474], + [0.08682595643253761, -0.3823838837835094, 0.6911725899118975], + [0.5903144228926321, -0.28559418277994103, 0.44882131769837047], + [0.6764340432358825, 0.375263161129647, -0.18190732636110615], + [0.22617042924615385, 0.6869057603771823, -0.3293677938544702], + [-0.0838756325086385, 0.778320929426405, 0.13659113961527075], + [-0.6417158749002062, 0.12186443414136523, 0.45257654151068544], + [-0.6764340432358825, -0.375263161129647, 0.18190732636110615], + [-0.22617042924615385, -0.6869057603771823, 0.32936779385447024], + [0.0838756325086385, -0.778320929426405, -0.13659113961527075], + [0.5884910224298405, -0.5302967343924689, -0.06276480180379439], + [0.6417158749002062, -0.12186443414136523, -0.4525765415106855], + [-0.5903144228926321, 0.28559418277994103, -0.44882131769837047], + [-0.6446661988241054, -0.2740726115015303, -0.37518718801648276], + [-0.17476897723857973, -0.5231760117386065, -0.5720300653545857], + [0.16999525285188902, -0.11746358551681692, -0.7673197836747474], + [-0.5884910224298405, 0.5302967343924689, 0.06276480180379439], + [-0.08682595643253764, 0.3823838837835094, -0.6911725899118975], + ], + dtype=np.float32, ) + """ Definition of the forward and inverse transform matrices from icosahedral faces to airocean unfolded net space """ @@ -417,19 +768,26 @@ def rotation(angle): ico_basis[:, 3, :] = ico_elevated_centers -air_ico_trans = np.array( - [ - a.T @ np.linalg.inv(b.T) - for i, (a, b) in enumerate(zip(ico_basis, airocean_basis)) - ] +air_ico_trans = zap_zero_or_one( + np.array( + [ + a.T @ np.linalg.inv(b.T) + for i, (a, b) in enumerate(zip(ico_basis, airocean_basis)) + ], + dtype=np.float32, + ) ) -ico_air_trans = np.array( - [ - b.T @ np.linalg.inv(a.T) - for i, (a, b) in enumerate(zip(ico_basis, airocean_basis)) - ] +ico_air_trans = zap_zero_or_one( + np.array( + [ + b.T @ np.linalg.inv(a.T) + for i, (a, b) in enumerate(zip(ico_basis, airocean_basis)) + ], + dtype=np.float32, + ) ) + for i, (a, b, v1, v2) in enumerate( zip(ico_basis, airocean_basis, ico_centers, airocean_22_centers) ): @@ -454,6 +812,7 @@ def rotation(angle): v2 /= v2[3] assert np.isclose(v, v2, rtol=1e-7).all() + """ End of definitions. """ @@ -481,7 +840,7 @@ def generate_20_faces_airocean_net( ), axis=1, ) - ax.get_figure().savefig(str(outfile)) + ax.get_figure().savefig(outfile) except ImportError as e: print( f"Geopandas and shapely must be installed to generate airocean plot! ({e})" @@ -512,7 +871,7 @@ def generate_23_faces_airocean_net( ), axis=1, ) - ax.get_figure().savefig(str(outfile)) + ax.get_figure().savefig(outfile) except ImportError as e: print( f"Geopandas and shapely must be installed to generate airocean plot! ({e})" @@ -540,12 +899,8 @@ def generate_airocean_parameters() -> str: "constexpr pj_face base_airocean_faces[23]": airocean_23_face_vertices[ :, :, [0, 1, 3] ], - "constexpr double base_ico_air_trans[23][4][4]": ico_air_trans[ - :, :, : - ], - "constexpr double base_air_ico_trans[23][4][4]": air_ico_trans[ - :, :, : - ], + "constexpr double base_ico_air_trans[23][4][4]": ico_air_trans, + "constexpr double base_air_ico_trans[23][4][4]": air_ico_trans, "constexpr double orient_horizontal_trans[4][4]": orient_horizontal, "constexpr double orient_horizontal_inv_trans[4][4]": inv_orient_horizontal, }.items() From ed7c20d143e41d5995c23f3147a018d5616913e1 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Tue, 7 Jan 2025 08:51:58 +0100 Subject: [PATCH 32/37] - Reflect the new parameter builder output --- src/projections/airocean.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/projections/airocean.cpp b/src/projections/airocean.cpp index 3538ab7e36..5e7530a627 100644 --- a/src/projections/airocean.cpp +++ b/src/projections/airocean.cpp @@ -35,15 +35,15 @@ namespace { // anonymous namespace some faces are split in two (Australia) and 3 (Japan) subfaces. The parameters below were computed using the script located at: - scripts/build_airocean_parameters.ipynb + scripts/build_airocean_parameters.py (relative to the root of the project) */ // Define the 23 faces and subfaces -constexpr pj_face base_ico_faces[23] = {{{0.42015243, 0.07814525, 0.90408255}, {0.51883673, 0.83542038, 0.18133184}, {0.99500944, -0.0913478, 0.04014718}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.41468223, 0.65596241, 0.63067581}, {0.51883673, 0.83542038, 0.18133184}}, {{0.42015243, 0.07814525, 0.90408255}, {-0.51545596, -0.3817169, 0.76720099}, {-0.41468223, 0.65596241, 0.63067581}}, {{0.42015243, 0.07814525, 0.90408255}, {0.3557814, -0.84358, 0.40223423}, {-0.51545596, -0.3817169, 0.76720099}}, {{0.42015243, 0.07814525, 0.90408255}, {0.99500944, -0.0913478, 0.04014718}, {0.3557814, -0.84358, 0.40223423}}, {{0.99500944, -0.0913478, 0.04014718}, {0.51883673, 0.83542038, 0.18133184}, {0.51545596, 0.3817169, -0.76720099}}, {{0.51545596, 0.3817169, -0.76720099}, {0.51883673, 0.83542038, 0.18133184}, {-0.3557814, 0.84358, -0.40223423}}, {{-0.3557814, 0.84358, -0.40223423}, {0.51883673, 0.83542038, 0.18133184}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.99500944, 0.0913478, -0.04014718}, {-0.41468223, 0.65596241, 0.63067581}}, {{-0.51545596, -0.3817169, 0.76720099}, {-0.51883673, -0.83542038, -0.18133184}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.51545596, -0.3817169, 0.76720099}, {0.3557814, -0.84358, 0.40223423}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.51883673, -0.83542038, -0.18133184}, {0.3557814, -0.84358, 0.40223423}, {0.41468223, -0.65596241, -0.63067581}}, {{0.41468223, -0.65596241, -0.63067581}, {0.3557814, -0.84358, 0.40223423}, {0.99500944, -0.0913478, 0.04014718}}, {{0.51545596, 0.3817169, -0.76720099}, {0.41468223, -0.65596241, -0.63067581}, {0.99500944, -0.0913478, 0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.3557814, 0.84358, -0.40223423}, {-0.99500944, 0.0913478, -0.04014718}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.99500944, 0.0913478, -0.04014718}, {-0.51883673, -0.83542038, -0.18133184}}, {{-0.42015243, -0.07814525, -0.90408255}, {-0.51883673, -0.83542038, -0.18133184}, {0.41468223, -0.65596241, -0.63067581}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.41468223, -0.65596241, -0.63067581}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.38796691, 0.38271738, -0.65315839}, {0.51545596, 0.3817169, -0.76720099}}, {{-0.42015243, -0.07814525, -0.90408255}, {0.51545596, 0.3817169, -0.76720099}, {-0.38796691, 0.38271738, -0.65315839}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.3557814, 0.84358, -0.40223423}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.3557814, 0.84358, -0.40223423}, {-0.41468223, 0.65596241, 0.63067581}, {-0.58849102, 0.53029673, 0.0627648}}, {{-0.99500944, 0.0913478, -0.04014718}, {-0.58849102, 0.53029673, 0.0627648}, {-0.41468223, 0.65596241, 0.63067581}}}; +constexpr pj_face base_ico_faces[23] = {{{0.4201524257659912, 0.07814525067806244, 0.9040825366973877}, {0.5188367366790771, 0.8354203701019287, 0.1813318431377411}, {0.9950094223022461, -0.09134779870510101, 0.04014717414975166}}, {{0.4201524257659912, 0.07814525067806244, 0.9040825366973877}, {-0.4146822392940521, 0.6559624075889587, 0.6306757926940918}, {0.5188367366790771, 0.8354203701019287, 0.1813318431377411}}, {{0.4201524257659912, 0.07814525067806244, 0.9040825366973877}, {-0.515455961227417, -0.38171690702438354, 0.7672010064125061}, {-0.4146822392940521, 0.6559624075889587, 0.6306757926940918}}, {{0.4201524257659912, 0.07814525067806244, 0.9040825366973877}, {0.3557814061641693, -0.8435800075531006, 0.4022342264652252}, {-0.515455961227417, -0.38171690702438354, 0.7672010064125061}}, {{0.4201524257659912, 0.07814525067806244, 0.9040825366973877}, {0.9950094223022461, -0.09134779870510101, 0.04014717414975166}, {0.3557814061641693, -0.8435800075531006, 0.4022342264652252}}, {{0.9950094223022461, -0.09134779870510101, 0.04014717414975166}, {0.5188367366790771, 0.8354203701019287, 0.1813318431377411}, {0.515455961227417, 0.38171690702438354, -0.7672010064125061}}, {{0.515455961227417, 0.38171690702438354, -0.7672010064125061}, {0.5188367366790771, 0.8354203701019287, 0.1813318431377411}, {-0.3557814061641693, 0.8435800075531006, -0.4022342264652252}}, {{-0.3557814061641693, 0.8435800075531006, -0.4022342264652252}, {0.5188367366790771, 0.8354203701019287, 0.1813318431377411}, {-0.4146822392940521, 0.6559624075889587, 0.6306757926940918}}, {{-0.515455961227417, -0.38171690702438354, 0.7672010064125061}, {-0.9950094223022461, 0.09134779870510101, -0.04014717414975166}, {-0.4146822392940521, 0.6559624075889587, 0.6306757926940918}}, {{-0.515455961227417, -0.38171690702438354, 0.7672010064125061}, {-0.5188367366790771, -0.8354203701019287, -0.1813318431377411}, {-0.9950094223022461, 0.09134779870510101, -0.04014717414975166}}, {{-0.515455961227417, -0.38171690702438354, 0.7672010064125061}, {0.3557814061641693, -0.8435800075531006, 0.4022342264652252}, {-0.5188367366790771, -0.8354203701019287, -0.1813318431377411}}, {{-0.5188367366790771, -0.8354203701019287, -0.1813318431377411}, {0.3557814061641693, -0.8435800075531006, 0.4022342264652252}, {0.4146822392940521, -0.6559624075889587, -0.6306757926940918}}, {{0.4146822392940521, -0.6559624075889587, -0.6306757926940918}, {0.3557814061641693, -0.8435800075531006, 0.4022342264652252}, {0.9950094223022461, -0.09134779870510101, 0.04014717414975166}}, {{0.515455961227417, 0.38171690702438354, -0.7672010064125061}, {0.4146822392940521, -0.6559624075889587, -0.6306757926940918}, {0.9950094223022461, -0.09134779870510101, 0.04014717414975166}}, {{-0.4201524257659912, -0.07814525067806244, -0.9040825366973877}, {-0.3557814061641693, 0.8435800075531006, -0.4022342264652252}, {-0.9950094223022461, 0.09134779870510101, -0.04014717414975166}}, {{-0.4201524257659912, -0.07814525067806244, -0.9040825366973877}, {-0.9950094223022461, 0.09134779870510101, -0.04014717414975166}, {-0.5188367366790771, -0.8354203701019287, -0.1813318431377411}}, {{-0.4201524257659912, -0.07814525067806244, -0.9040825366973877}, {-0.5188367366790771, -0.8354203701019287, -0.1813318431377411}, {0.4146822392940521, -0.6559624075889587, -0.6306757926940918}}, {{-0.4201524257659912, -0.07814525067806244, -0.9040825366973877}, {0.4146822392940521, -0.6559624075889587, -0.6306757926940918}, {0.515455961227417, 0.38171690702438354, -0.7672010064125061}}, {{-0.3557814061641693, 0.8435800075531006, -0.4022342264652252}, {-0.38796690106391907, 0.3827173709869385, -0.6531583666801453}, {0.515455961227417, 0.38171690702438354, -0.7672010064125061}}, {{-0.4201524257659912, -0.07814525067806244, -0.9040825366973877}, {0.515455961227417, 0.38171690702438354, -0.7672010064125061}, {-0.38796690106391907, 0.3827173709869385, -0.6531583666801453}}, {{-0.9950094223022461, 0.09134779870510101, -0.04014717414975166}, {-0.3557814061641693, 0.8435800075531006, -0.4022342264652252}, {-0.5884910225868225, 0.5302967429161072, 0.06276480108499527}}, {{-0.3557814061641693, 0.8435800075531006, -0.4022342264652252}, {-0.4146822392940521, 0.6559624075889587, 0.6306757926940918}, {-0.5884910225868225, 0.5302967429161072, 0.06276480108499527}}, {{-0.9950094223022461, 0.09134779870510101, -0.04014717414975166}, {-0.5884910225868225, 0.5302967429161072, 0.06276480108499527}, {-0.4146822392940521, 0.6559624075889587, 0.6306757926940918}}}; // // Define the centers for each face or subface -constexpr PJ_XYZ base_ico_centers[23] = {{0.6446662, 0.27407261, 0.37518718999999995}, {0.1747689766666667, 0.5231760133333333, 0.5720300666666667}, {-0.16999525333333332, 0.11746358666666666, 0.7673197833333334}, {0.08682595666666666, -0.38238388333333334, 0.69117259}, {0.5903144233333334, -0.28559418333333336, 0.44882131999999997}, {0.6764340433333333, 0.37526316, -0.18190732333333334}, {0.22617043, 0.68690576, -0.3293677933333333}, {-0.08387563333333335, 0.77832093, 0.13659113999999997}, {-0.6417158766666667, 0.12186443666666665, 0.45257653999999997}, {-0.6764340433333333, -0.37526316, 0.18190732333333334}, {-0.22617043, -0.68690576, 0.3293677933333333}, {0.08387563333333335, -0.77832093, -0.13659113999999997}, {0.5884910233333334, -0.5302967366666668, -0.06276479999999997}, {0.6417158766666667, -0.12186443666666665, -0.45257653999999997}, {-0.5903144233333334, 0.28559418333333336, -0.44882131999999997}, {-0.6446662, -0.27407261, -0.37518718999999995}, {-0.1747689766666667, -0.5231760133333333, -0.5720300666666667}, {0.16999525333333332, -0.11746358666666668, -0.7673197833333334}, {-0.07609744999999997, 0.5360047600000001, -0.6075312033333334}, {-0.09755446, 0.22876301, -0.7748139766666666}, {-0.6464272866666667, 0.48840817666666664, -0.12653887}, {-0.45298488333333337, 0.6766130466666667, 0.0970687933333333}, {-0.6660608966666667, 0.42586898, 0.21776447666666665}}; +constexpr PJ_XYZ base_ico_centers[23] = {{0.6446661949157715, 0.2740726172924042, 0.3751871883869171}, {0.17476896941661835, 0.5231760144233704, 0.5720300674438477}, {-0.1699952632188797, 0.11746358871459961, 0.7673197388648987}, {0.08682596683502197, -0.38238391280174255, 0.6911725997924805}, {0.5903144478797913, -0.2855941951274872, 0.4488213062286377}, {0.6764340400695801, 0.37526312470436096, -0.18190734088420868}, {0.22617042064666748, 0.6869058012962341, -0.3293677866458893}, {-0.0838756337761879, 0.7783209681510925, 0.1365911364555359}, {-0.6417158842086792, 0.1218644380569458, 0.45257654786109924}, {-0.6764340400695801, -0.37526318430900574, 0.18190734088420868}, {-0.22617042064666748, -0.6869058012962341, 0.3293677866458893}, {0.0838756337761879, -0.7783209681510925, -0.1365911364555359}, {0.5884910225868225, -0.5302967429161072, -0.06276480108499527}, {0.6417158842086792, -0.1218644380569458, -0.45257651805877686}, {-0.5903144478797913, 0.2855941951274872, -0.4488213062286377}, {-0.6446661949157715, -0.2740726172924042, -0.3751871883869171}, {-0.17476896941661835, -0.5231760144233704, -0.5720300674438477}, {0.1699952632188797, -0.11746358871459961, -0.7673197388648987}, {-0.07609745115041733, 0.5360047817230225, -0.6075312495231628}, {-0.09755445271730423, 0.22876299917697906, -0.7748139500617981}, {-0.64642733335495, 0.4884081780910492, -0.12653887271881104}, {-0.45298489928245544, 0.6766130924224854, 0.09706878662109375}, {-0.6660608649253845, 0.4258689880371094, 0.2177644819021225}}; // // Define the normals for each face and subface -constexpr PJ_XYZ base_ico_normals[23] = {{0.8112534716456183, 0.3448953244235397, 0.4721387719026189}, {0.21993078167242514, 0.6583691769191125, 0.7198475381327677}, {-0.21392348218574597, 0.1478171768398566, 0.9656017947376752}, {0.10926252593733311, -0.48119515565604315, 0.8697775132750616}, {0.7428567271237952, -0.3593941714860216, 0.5648005953155497}, {0.8512303999921011, 0.4722343774266651, -0.22891373682183738}, {0.28461480749719364, 0.8644080979012073, -0.4144792535654255}, {-0.1055498134715015, 0.9794457311974099, 0.17188745304792394}, {-0.80754076069938, 0.15335524153301364, 0.5695261975567215}, {-0.8512303999921011, -0.4722343774266651, 0.22891373682183735}, {-0.28461480749719364, -0.8644080979012073, 0.4144792535654255}, {0.10554981347150154, -0.97944573119741, -0.17188745304792397}, {0.7405621455042509, -0.6673299596621295, -0.07898375518726185}, {0.80754076069938, -0.15335524153301364, -0.5695261975567215}, {-0.7428567271237952, 0.3593941714860216, -0.5648005953155497}, {-0.8112534716456183, -0.3448953244235397, -0.4721387719026189}, {-0.21993078167242514, -0.6583691769191125, -0.7198475381327677}, {0.21392348218574597, -0.1478171768398566, -0.9656017947376752}, {-0.1092625236946045, 0.48119515875463253, -0.8697775118425345}, {-0.10926252412771359, 0.4811951525529661, -0.8697775152191327}, {-0.7405621389792739, 0.6673299643797594, 0.07898377650727696}, {-0.7405621607654073, 0.6673299431834946, 0.07898375132383098}, {-0.7405621367680706, 0.6673299714231342, 0.07898373773067752}}; +constexpr PJ_XYZ base_ico_normals[23] = {{0.8112534880638123, 0.3448953330516815, 0.47213879227638245}, {0.2199307233095169, 0.6583691835403442, 0.719847559928894}, {-0.21392348408699036, 0.1478172093629837, 0.9656018614768982}, {0.10926257073879242, -0.4811951518058777, 0.869777500629425}, {0.7428567409515381, -0.35939422249794006, 0.5648006200790405}, {0.8512303829193115, 0.4722343385219574, -0.22891369462013245}, {0.28461483120918274, 0.8644080758094788, -0.41447925567626953}, {-0.10554979741573334, 0.9794456958770752, 0.17188747227191925}, {-0.807540774345398, 0.15335525572299957, 0.569526195526123}, {-0.8512304425239563, -0.4722343385219574, 0.22891372442245483}, {-0.28461483120918274, -0.8644080758094788, 0.41447925567626953}, {0.10554979741573334, -0.9794456958770752, -0.17188745737075806}, {0.7405621409416199, -0.6673299074172974, -0.07898375391960144}, {0.807540774345398, -0.15335525572299957, -0.569526195526123}, {-0.7428567409515381, 0.35939422249794006, -0.5648006200790405}, {-0.8112534880638123, -0.3448953330516815, -0.47213879227638245}, {-0.2199307233095169, -0.6583691835403442, -0.719847559928894}, {0.21392348408699036, -0.1478172093629837, -0.9656018614768982}, {-0.10926257818937302, 0.4811951220035553, -0.8697775602340698}, {-0.10926257073879242, 0.4811951518058777, -0.869777500629425}, {-0.7405622601509094, 0.6673299670219421, 0.07898380607366562}, {-0.7405621409416199, 0.6673299670219421, 0.07898376882076263}, {-0.7405622005462646, 0.6673300266265869, 0.07898370921611786}}; // /* // The points of the Airocean projection map are deduced from the unfolded net @@ -61,17 +61,16 @@ constexpr pj_face base_airocean_faces[23] = {{{1.8211859946200586, 3.15438667271 // the irrelevant ones has been discarded. // */ // // Icosahedron to Airocean (forward) -constexpr double base_ico_air_trans[23][4][4] = {{{0.5771127843628077, -0.601949070265588, -0.551904112682031, 2.1247169940181885}, {0.09385435254116901, 0.7202114456801385, -0.6873767816857262, 3.680117788550241}, {0.8112534716456183, 0.3448953244235397, 0.4721387719026189, -0.7946544736643394}, {0.0, 0.0, 0.0, 0.9999999999999999}}, {{0.9709901123098558, -0.21873613013519208, -0.09660585714762573, 1.5176549986755081}, {0.0938543523824071, 0.7202114501390866, -0.68737677703546, 3.6801177840642754}, {0.2199307816724251, 0.6583691769191125, 0.7198475381327677, -0.794654474160402}, {2.7755575615628914e-17, 0.0, 0.0, 1.0}}, {{0.9721374064326862, -0.06476823448972475, 0.2252863218604219, 1.2141239985420345}, {0.09584151545422234, 0.986891659675502, -0.12984315992304857, 3.1543866667568574}, {-0.213923482185746, 0.14781717683985665, 0.9656017947376753, -0.7946544722350559}, {-1.3877787807814457e-16, 2.7755575615628914e-17, 0.0, 1.0}}, {{0.9921258753005284, -0.0010987169074706963, -0.12523993179159917, 1.5176549936500534}, {0.06122047682547376, 0.8766128105888067, 0.4772861192297111, 2.628655561621354}, {0.1092625259373331, -0.48119515565604315, 0.8697775132750618, -0.794654472177355}, {1.1102230246251565e-16, 5.551115123125783e-17, 0.0, 1.0}}, {{0.2803041463023307, -0.5991800450797868, -0.7499419088911223, 2.428247994171984}, {0.6079419973098752, 0.7154153394798394, -0.3443652517634205, 3.1543866696341833}, {0.7428567271237952, -0.3593941714860217, 0.5648005953155497, -0.7946544741179917}, {0.0, 0.0, 0.0, 1.0000000000000002}}, {{0.25960661697438703, -0.758006957058587, -0.5983559612700025, 2.428247993923292}, {-0.4560824568641986, 0.44991125768827994, -0.7678337349017109, 4.205848897582435}, {0.8512303999921013, 0.4722343774266651, -0.22891373682183747, -0.7946544711481622}, {0.0, -5.551115123125783e-17, 1.1102230246251565e-16, 1.0}}, {{0.9586365727166021, -0.25808606588953303, 0.12003128712756019, 1.5176549950590994}, {-0.003215296199617759, -0.4314976538404806, -0.9021083296632684, 4.731580007956949}, {0.2846148074971938, 0.8644080979012073, -0.41447925356542553, -0.7946544719642821}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.9928349393209477, 0.09405867905155406, 0.07370038213709272, 1.2141239979758605}, {0.0560180154856556, 0.1784349297842625, -0.9823558159365612, 4.205848903770237}, {-0.10554981347150151, 0.97944573119741, 0.17188745304792394, -0.794654473006748}, {-1.3877787807814457e-17, 0.0, 8.326672684688674e-17, 1.0}}, {{0.5819727853624432, 0.05026939328855433, 0.811653042180561, 0.6070619975564514}, {0.09584151340049132, 0.9868916600803643, -0.12984315836175953, 3.1543866646549703}, {-0.8075407606993799, 0.15335524153301364, 0.5695261975567214, -0.7946544732451482}, {0.0, -8.326672684688674e-17, 0.0, 1.0}}, {{0.5247823023520097, -0.7686380571359512, 0.36578553967256694, 0.6070619982034591}, {0.00321530314174359, 0.43149765221393604, 0.9021083304165357, 2.1029244497408546}, {-0.8512303999921013, -0.4722343774266651, 0.22891373682183733, -0.7946544711481622}, {1.1102230246251565e-16, 0.0, -2.7755575615628914e-17, 1.0}}, {{0.9586365727166023, -0.25808606588953276, 0.12003128712756019, 1.2141239968709887}, {0.0032152961996172996, 0.43149765384048056, 0.9021083296632679, 2.1029244473612816}, {-0.28461480749719376, -0.8644080979012073, 0.41447925356542553, -0.7946544719642822}, {-5.551115123125783e-17, 0.0, -5.551115123125783e-17, 1.0}}, {{0.9928349393209476, 0.09405867905155432, 0.0737003821370924, 1.5176549939542279}, {-0.05601801548565587, -0.17843492978426267, 0.982355815936562, 1.5771933431745697}, {0.10554981347150151, -0.97944573119741, -0.17188745304792394, -0.794654473006748}, {1.249000902703301e-16, 0.0, -8.326672684688674e-17, 1.0}}, {{0.6696489324143071, 0.7230710222271839, 0.16952465726532903, 2.124716992886465}, {-0.05601802147349406, -0.17843493406754668, 0.9823558148170956, 1.577193342141926}, {0.7405621455042507, -0.6673299596621294, -0.07898375518726183, -0.7946544743360283}, {1.1102230246251565e-16, 0.0, 5.551115123125783e-17, 0.9999999999999999}}, {{0.581972785362443, 0.05026939328855442, 0.8116530421805607, 2.124716994373637}, {-0.09584151340049174, -0.9868916600803641, 0.1298431583617594, 0.5257311040593022}, {0.8075407606993799, -0.15335524153301364, -0.5695261975567214, -0.7946544732451483}, {-1.1102230246251565e-16, -2.7755575615628914e-17, 0.0, 1.0}}, {{0.3863411405466375, 0.9191578807865023, 0.07674189823781499, 0.3035310024438569}, {0.5467215101388645, -0.16119747073988, -0.8216513703440179, 4.731580009447501}, {-0.7428567271237954, 0.35939417148602165, -0.5648005953155498, -0.7946544741179918}, {-1.1102230246251565e-16, 5.551115123125783e-17, 0.0, 1.0}}, {{0.20727613862501068, -0.9246959431881105, 0.31933369857041366, 0.30353100217436535}, {-0.5467215083775467, 0.16119746379435437, 0.8216513728786113, 1.5771933384708474}, {-0.8112534716456183, -0.34489532442353976, -0.4721387719026189, -0.7946544736643393}, {0.0, 1.1102230246251565e-16, 0.0, 1.0}}, {{0.9709901123098558, -0.21873613013519205, -0.09660585714762565, 1.2141239932545798}, {-0.09385435238240734, -0.7202114501390865, 0.6873767770354606, 1.0514622234686084}, {-0.21993078167242508, -0.6583691769191125, -0.7198475381327677, -0.794654474160402}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.9721374064326864, -0.06476823448972478, 0.2252863218604222, 1.5176549933880534}, {-0.09584151545422273, -0.9868916596755019, 0.1298431599230487, 0.5257311061611902}, {0.21392348218574594, -0.14781717683985665, -0.965601794737675, -0.7946544722350558}, {-1.3877787807814457e-16, -2.7755575615628914e-17, 0.0, 1.0}}, {{0.5490814341445536, 0.7586196137281238, 0.3507219468201455, 0.6070619971385178}, {0.828595975697076, -0.43925791880424425, -0.34710402061504564, 5.257311122022961}, {-0.10926252369460446, 0.4811951587546325, -0.8697775118425342, -0.7946544734171301}, {8.326672684688674e-17, 0.0, 0.0, 0.9999999999999998}}, {{0.9921258803454628, -0.001098726158448999, -0.1252399351953353, 1.2141239965994974}, {-0.061220481001961057, -0.8766128044664807, -0.4772861112510543, 6.962719666473e-09}, {-0.10926252412771358, 0.48119515255296597, -0.8697775152191325, -0.79465447341713}, {-4.163336342344337e-17, -1.1102230246251565e-16, 0.0, 0.9999999999999999}}, {{0.6696489432944074, 0.7230710163882418, 0.16952466434270155, 0.6070620106869362}, {0.05601800780331223, 0.1784349479222583, -0.9823558101673974, 4.205848888056709}, {-0.7405621389792741, 0.6673299643797597, 0.07898377650727716, -0.7946544674186218}, {1.1102230246251565e-16, 0.0, -1.3877787807814457e-17, 1.0}}, {{0.6696489098267326, 0.7230710312696226, 0.16952465761975835, 0.6070619835219269}, {0.056018019261034786, 0.1784349316785832, -0.9823558153771896, 4.205848903740433}, {-0.7405621607654075, 0.6673299431834948, 0.07898375132383098, -0.7946544674186217}, {1.1102230246251565e-16, -1.1102230246251565e-16, 2.7755575615628914e-17, 0.9999999999999999}}, {{0.28631142864032966, 0.20700633361637605, 0.9355074196454307, 0.3035309858829332}, {0.6079420159049573, 0.7154153325157111, -0.34436525612985447, 3.680117806877694}, {-0.7405621367680707, 0.667329971423134, 0.07898373773067754, -0.7946544674186213}, {0.0, 0.0, 8.326672684688674e-17, 1.0}}}; +constexpr double base_ico_air_trans[23][4][4] = {{{0.5771127939224243, -0.6019490957260132, -0.5519041419029236, 2.1247169971466064}, {0.09385434538125992, 0.7202114462852478, -0.6873767971992493, 3.6801178455352783}, {0.8112534284591675, 0.34489527344703674, 0.47213873267173767, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.9709901213645935, -0.21873608231544495, -0.09660579264163971, 1.5176548957824707}, {0.09385436028242111, 0.7202114462852478, -0.6873767971992493, 3.6801178455352783}, {0.2199307531118393, 0.6583691239356995, 0.7198475003242493, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721373915672302, -0.0647682175040245, 0.2252863347530365, 1.2141239643096924}, {0.09584151208400726, 0.9868916273117065, -0.12984317541122437, 3.1543867588043213}, {-0.21392345428466797, 0.1478171944618225, 0.9656017422676086, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.9921258687973022, -0.0010986793786287308, -0.12523998320102692, 1.5176550149917603}, {0.06122048944234848, 0.8766127824783325, 0.47728613018989563, 2.628655433654785}, {0.10926255583763123, -0.4811951816082001, 0.8697775602340698, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.2803041338920593, -0.5991800427436829, -0.7499419450759888, 2.4282479286193848}, {0.6079420447349548, 0.7154152989387512, -0.3443652391433716, 3.154386520385742}, {0.7428567409515381, -0.3593941330909729, 0.5648005604743958, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.25960659980773926, -0.7580069899559021, -0.5983559489250183, 2.4282479286193848}, {-0.45608240365982056, 0.44991129636764526, -0.7678337097167969, 4.205848693847656}, {0.8512304425239563, 0.4722343981266022, -0.22891373932361603, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.9586365818977356, -0.25808605551719666, 0.12003126740455627, 1.5176550149917603}, {-0.003215298056602478, -0.43149760365486145, -0.9021083116531372, 4.731579780578613}, {0.28461480140686035, 0.8644081354141235, -0.41447922587394714, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.9928349256515503, 0.09405866265296936, 0.07370038330554962, 1.2141239643096924}, {0.056018028408288956, 0.17843492329120636, -0.9823558330535889, 4.205848693847656}, {-0.10554979741573334, 0.9794456958770752, 0.17188745737075806, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.5819727778434753, 0.05026942864060402, 0.8116530776023865, 0.6070619821548462}, {0.09584151953458786, 0.9868916273117065, -0.12984316051006317, 3.1543867588043213}, {-0.807540774345398, 0.15335525572299957, 0.569526195526123, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.5247822999954224, -0.7686380743980408, 0.36578553915023804, 0.6070619821548462}, {0.0032153178472071886, 0.4314976632595062, 0.9021083116531372, 2.102924346923828}, {-0.8512304425239563, -0.4722343683242798, 0.22891372442245483, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.9586365818977356, -0.25808605551719666, 0.12003126740455627, 1.2141239643096924}, {0.003215298056602478, 0.43149760365486145, 0.9021083116531372, 2.102924346923828}, {-0.28461480140686035, -0.8644081354141235, 0.41447922587394714, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.9928349256515503, 0.09405866265296936, 0.07370038330554962, 1.5176550149917603}, {-0.056018028408288956, -0.17843492329120636, 0.9823558330535889, 1.5771933794021606}, {0.10554979741573334, -0.9794456958770752, -0.17188745737075806, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696488857269287, 0.7230710983276367, 0.169524684548378, 2.1247169971466064}, {-0.056018002331256866, -0.17843493819236755, 0.9823558330535889, 1.5771933794021606}, {0.7405622005462646, -0.6673299670219421, -0.07898376137018204, -0.7946545481681824}, {0.0, 0.0, 0.0, 1.0}}, {{0.5819727778434753, 0.05026942864060402, 0.8116530776023865, 2.1247169971466064}, {-0.09584151953458786, -0.9868916273117065, 0.12984316051006317, 0.525731086730957}, {0.807540774345398, -0.15335525572299957, -0.569526195526123, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.3863411843776703, 0.919157862663269, 0.07674192637205124, 0.30353105068206787}, {0.5467215180397034, -0.1611974686384201, -0.8216513991355896, 4.7315802574157715}, {-0.7428567409515381, 0.3593941330909729, -0.5648005604743958, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.2072761356830597, -0.9246959686279297, 0.3193337023258209, 0.3035309910774231}, {-0.5467215180397034, 0.1611974686384201, 0.8216513991355896, 1.5771933794021606}, {-0.8112534284591675, -0.34489527344703674, -0.47213873267173767, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.9709901213645935, -0.21873608231544495, -0.09660579264163971, 1.214124083518982}, {-0.09385436028242111, -0.7202114462852478, 0.6873767971992493, 1.0514622926712036}, {-0.2199307531118393, -0.6583691239356995, -0.7198475003242493, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721373915672302, -0.0647682175040245, 0.2252863347530365, 1.5176550149917603}, {-0.09584151208400726, -0.9868916273117065, 0.12984317541122437, 0.5257311463356018}, {0.21392345428466797, -0.1478171944618225, -0.9656017422676086, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.5490814447402954, 0.7586196660995483, 0.3507218658924103, 0.6070619225502014}, {0.8285959959030151, -0.4392578899860382, -0.347104012966156, 5.2573113441467285}, {-0.10926257073879242, 0.4811950922012329, -0.869777500629425, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.9921258687973022, -0.0010987052228301764, -0.12523998320102692, 1.2141239643096924}, {-0.06122048571705818, -0.8766128420829773, -0.47728610038757324, 1.6207629016662395e-08}, {-0.10926257073879242, 0.4811951816082001, -0.869777500629425, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696488261222839, 0.7230710983276367, 0.1695246696472168, 0.6070619225502014}, {0.05601797252893448, 0.17843496799468994, -0.9823558330535889, 4.205848693847656}, {-0.7405620813369751, 0.6673298478126526, 0.07898373901844025, -0.794654369354248}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696490049362183, 0.7230709791183472, 0.1695246696472168, 0.607062041759491}, {0.05601801350712776, 0.17843490839004517, -0.9823558330535889, 4.205848693847656}, {-0.7405621409416199, 0.6673299074172974, 0.07898375391960144, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.28631141781806946, 0.20700636506080627, 0.9355074763298035, 0.3035309612751007}, {0.6079419851303101, 0.715415358543396, -0.3443652391433716, 3.6801178455352783}, {-0.7405620813369751, 0.6673298478126526, 0.07898375391960144, -0.794654369354248}, {0.0, 0.0, 0.0, 1.0}}}; // // Airocean to Icosahedron (inverse) -constexpr double base_air_ico_trans[23][4][4] = {{{0.5771127842542352, 0.09385434657102582, 0.8112534716456185, -0.9269301900000004}, {-0.6019490778198661, 0.7202114470147596, 0.3448953244235397, -1.0974189100000002}, {-0.5519041069771089, -0.6873767724024487, 0.47213877190261855, 4.077454710000002}, {0.0, 2.2204460492503126e-16, 0.0, 1.0}}, {{0.9709901268864738, 0.09385434657102582, 0.2199307816724253, -1.6442540899999996}, {-0.2187361374273623, 0.7202114470147596, 0.6583691769191118, -1.79532095}, {-0.09660585493174938, -0.687376772402449, 0.7198475381327685, 3.24827191}, {1.1102230246251565e-16, 0.0, 1.1102230246251565e-16, 1.0}}, {{0.9721374177212223, 0.09584151258786845, -0.21392348218574572, -1.6526118100000005}, {-0.06476823913013299, 0.9868916696001585, 0.14781717683985673, -2.9169376699999994}, {0.22528632507169927, -0.12984316207736876, 0.9656017947376752, 0.9033697900000001}, {1.1102230246251565e-16, 0.0, 0.0, 1.0}}, {{0.9921258758509998, 0.061220487542130664, 0.10926252593733322, -1.5798064099999996}, {-0.001098707109494417, 0.8766128052462792, -0.4811951556560428, -2.685029549999999}, {-0.12523992644012408, 0.4772861149277753, 0.8697775132750616, -0.3733772099999991}, {0.0, -2.465190328815662e-32, 0.0, 1.0000000000000002}}, {{0.28030414329344755, 0.6079419928405788, 0.7428567271237952, -2.00801767}, {-0.5991800415902347, 0.7154153355770391, -0.35939417148602165, -1.0873330499999998}, {-0.7499419027132015, -0.3443652483685888, 0.5648005953155497, 3.356127390000001}, {-1.1102230246251565e-16, 1.1102230246251565e-16, 0.0, 1.0}}, {{0.2596066197503542, -0.4560824620660179, 0.8512303999921011, 1.9642587099999997}, {-0.7580069603423448, 0.44991126556421224, 0.47223437742666524, 0.3236332399999994}, {-0.5983559577215728, -0.7678337379974675, -0.22891373682183738, 4.50044201}, {-1.1102230246251565e-16, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.9586365671366947, -0.003215303338595427, 0.2846148074971937, -1.213495679999999}, {-0.25808606116480587, -0.431497651119788, 0.8644080979012073, 3.12025702}, {0.1200312931494973, -0.9021083288913834, -0.4144792535654252, 3.7568638500000016}, {0.0, -1.6653345369377373e-16, 0.0, 1.0}}, {{0.9928349412643155, 0.056018018186692914, -0.10554981347150141, -1.524903679999999}, {0.09405867962197714, 0.17843493154109227, 0.97944573119741, -0.08634833000000003}, {0.07370038008007025, -0.9823558242886872, 0.1718874530479236, 4.178749899999999}, {-1.1102230246251565e-16, 0.0, 0.0, 0.9999999999999996}}, {{0.5819727875851122, 0.0958415125878687, -0.8075407606993801, -1.2973306300000007}, {0.05026939053476542, 0.9868916696001588, 0.1533552415330134, -3.0216901300000005}, {0.8116530460736279, -0.12984316207736876, 0.5695261975567216, 0.36942835999999946}, {-1.1102230246251565e-16, -2.220446049250313e-16, 0.0, 1.0}}, {{0.5247823082449008, 0.0032153033385950414, -0.851230399992101, -1.0017709799999996}, {-0.7686380655985867, 0.43149765111978794, -0.4722343774266652, -0.81605916}, {0.3657855441277853, 0.9021083288913834, 0.2289137368218374, -1.9372128400000004}, {0.0, 6.096153978258407e-17, 0.0, 0.9999999999999998}}, {{0.9586365671366951, 0.0032153033385950484, -0.28461480749719337, -1.39683563}, {-0.2580860611648058, 0.43149765111978794, -0.8644080979012073, -1.28096424}, {0.12003129314949779, 0.9021083288913836, 0.41447925356542553, -1.7134307400000008}, {-1.1102230246251565e-16, 1.1102230246251565e-16, 0.0, 1.0}}, {{0.9928349412643155, -0.05601801818669286, 0.1055498134715019, -1.33455403}, {0.09405867962197711, -0.17843493154109227, -0.9794457311974099, -0.6396431699999997}, {0.07370038008007082, 0.9823558242886878, -0.17188745304792374, -1.7978079500000004}, {1.1102230246251565e-16, -2.220446049250313e-16, 0.0, 0.9999999999999998}}, {{0.6696489285568152, -0.05601801818669308, 0.7405621455042509, -0.74597219}, {0.723071017397498, -0.1784349315410924, -0.6673299596621297, -1.7851916300000001}, {0.16952466190275595, 0.982355824288688, -0.0789837551872621, -1.9723217899999996}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.581972787585112, -0.09584151258786852, 0.80754076069938, -0.54442473}, {0.05026939053476491, -0.9868916696001588, -0.15335524153301358, 0.29016699000000007}, {0.8116530460736278, 0.12984316207736893, -0.5695261975567216, -2.2453721499999997}, {0.0, -1.1102230246251565e-16, 0.0, 1.0}}, {{0.386341138180555, 0.5467215052984484, -0.7428567271237957, -3.2944374800000005}, {0.9191578756618027, -0.16119746966924034, 0.35939417148602165, 0.7693200000000001}, {0.07674189808886517, -0.8216513632963648, -0.5648005953155493, 3.415594300000001}, {-1.1102230246251565e-16, 0.0, 0.0, 1.0}}, {{0.2072761437410203, -0.5467215052984483, -0.8112534716456183, 0.15470457999999998}, {-0.9246959481210651, 0.16119746966924028, -0.34489532442353976, -0.2476383}, {0.31933369338332074, 0.8216513632963647, -0.47213877190261877, -1.7680179200000001}, {0.0, 0.0, 0.0, 1.0}}, {{0.970990126886474, -0.09385434657102576, -0.2199307816724251, -1.25498709}, {-0.21873613742736212, -0.7202114470147594, -0.6583691769191123, 0.49967191}, {-0.09660585493174975, 0.6873767724024488, -0.7198475381327678, -1.17748929}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721374177212225, -0.09584151258786833, 0.21392348218574608, -1.25498709}, {-0.06476823913013245, -0.9868916696001586, -0.14781717683985665, 0.49967190999999994}, {0.225286325071699, 0.12984316207736882, -0.9656017947376753, -1.17748929}, {1.1102230246251565e-16, 0.0, 0.0, 0.9999999999999999}}, {{0.5490814243871979, 0.828595968467787, -0.10926252369460442, -4.7763392200000006}, {0.7586195940894178, -0.4392579108912803, 0.4811951587546326, 2.2311702599999994}, {0.3507219371809713, -0.3471040153291294, -0.8697775118425345, 0.92075125}, {0.0, -1.1102230246251565e-16, 0.0, 0.9999999999999991}}, {{0.9921258703600726, -0.061220497052696075, -0.10926252412771353, -1.29138978}, {-0.0010987126004213489, -0.8766128147568447, 0.4811951525529661, 0.3837178600000002}, {-0.12523992644012394, -0.4772861149277757, -0.8697775152191326, -0.5391157899999999}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696489340477428, 0.05601800867612728, -0.7405621389792739, -1.230612719999998}, {0.7230710064156433, 0.17843495056222272, 0.6673299643797593, -0.659122639999999}, {0.1695246619027561, -0.9823558242886863, 0.07898377650727674, 4.091492979999993}, {-2.220446049250313e-16, 4.440892098500626e-16, 0.0, 1.0}}, {{0.6696489175749601, 0.05601801818669295, -0.7405621607654072, -1.230612749999999}, {0.723071039361207, 0.17843493154109233, 0.6673299431834945, -0.659122579999999}, {0.1695246619027577, -0.9823558242886873, 0.07898375132383063, 4.091492979999996}, {4.440892098500626e-16, 7.186231688523656e-17, 0.0, 0.9999999999999996}}, {{0.28631143196814535, 0.6079420023511448, -0.7405621367680713, -2.9126935900000026}, {0.20700633604348043, 0.7154153165559092, 0.6673299714231338, -2.165348740000002}, {0.9355074303409838, -0.34436524836858934, 0.07898373773067771, 1.0461139700000008}, {0.0, 0.0, 0.0, 1.0000000000000009}}}; +constexpr double base_air_ico_trans[23][4][4] = {{{0.5771127343177795, 0.09385436028242111, 0.811253547668457, -0.9269301891326904}, {-0.6019490957260132, 0.7202114462852478, 0.3448953330516815, -1.0974189043045044}, {-0.5519040822982788, -0.6873767375946045, 0.47213879227638245, 4.077454566955566}, {0.0, 0.0, 0.0, 1.0}}, {{0.9709901213645935, 0.09385436028242111, 0.2199307233095169, -1.6442540884017944}, {-0.21873614192008972, 0.7202114462852478, 0.658369243144989, -1.7953208684921265}, {-0.09660584479570389, -0.6873767375946045, 0.719847559928894, 3.248271942138672}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721373915672302, 0.09584150463342667, -0.21392349898815155, -1.6526118516921997}, {-0.0647682324051857, 0.9868916869163513, 0.1478171944618225, -2.9169375896453857}, {0.2252863049507141, -0.12984319031238556, 0.9656018018722534, 0.9033699035644531}, {0.0, 0.0, 0.0, 1.0}}, {{0.9921258687973022, 0.061220478266477585, 0.10926257818937302, -1.5798063278198242}, {-0.0010987031273543835, 0.8766128420829773, -0.4811951518058777, -2.6850295066833496}, {-0.12523995339870453, 0.47728610038757324, 0.8697774410247803, -0.37337714433670044}, {0.0, 0.0, 0.0, 1.0}}, {{0.2803041338920593, 0.6079419851303101, 0.7428567409515381, -2.0080175399780273}, {-0.5991800427436829, 0.715415358543396, -0.35939422249794006, -1.087333083152771}, {-0.749941885471344, -0.3443652391433716, 0.5648006200790405, 3.3561272621154785}, {0.0, 0.0, 0.0, 1.0}}, {{0.25960659980773926, -0.45608243346214294, 0.8512303829193115, 1.9642586708068848}, {-0.7580069303512573, 0.4499112665653229, 0.472234308719635, 0.3236331641674042}, {-0.5983559489250183, -0.7678337693214417, -0.22891369462013245, 4.500442028045654}, {0.0, 0.0, 0.0, 1.0}}, {{0.9586365818977356, -0.0032153085339814425, 0.28461480140686035, -1.2134956121444702}, {-0.25808608531951904, -0.43149763345718384, 0.8644081354141235, 3.1202569007873535}, {0.12003128230571747, -0.902108371257782, -0.41447922587394714, 3.756864070892334}, {0.0, 0.0, 0.0, 1.0}}, {{0.9928349852561951, 0.05601802095770836, -0.10554980486631393, -1.524903655052185}, {0.09405866265296936, 0.17843493819236755, 0.9794458150863647, -0.08634835481643677}, {0.07370039075613022, -0.9823558330535889, 0.17188745737075806, 4.1787495613098145}, {0.0, 0.0, 0.0, 1.0}}, {{0.5819727778434753, 0.09584150463342667, -0.807540774345398, -1.297330617904663}, {0.050269387662410736, 0.9868916869163513, 0.15335524082183838, -3.0216901302337646}, {0.8116530179977417, -0.12984319031238556, 0.569526195526123, 0.36942845582962036}, {0.0, 0.0, 0.0, 1.0}}, {{0.5247822999954224, 0.0032153085339814425, -0.8512303829193115, -1.0017709732055664}, {-0.7686380743980408, 0.43149763345718384, -0.4722343683242798, -0.8160591125488281}, {0.36578553915023804, 0.902108371257782, 0.22891375422477722, -1.9372128248214722}, {0.0, 0.0, 0.0, 1.0}}, {{0.9586365818977356, 0.0032153085339814425, -0.28461480140686035, -1.3968356847763062}, {-0.25808608531951904, 0.43149763345718384, -0.8644081354141235, -1.2809642553329468}, {0.12003128230571747, 0.902108371257782, 0.41447922587394714, -1.7134307622909546}, {0.0, 0.0, 0.0, 1.0}}, {{0.9928349852561951, -0.05601802095770836, 0.10554980486631393, -1.3345540761947632}, {0.09405866265296936, -0.17843493819236755, -0.9794458150863647, -0.639643132686615}, {0.07370039075613022, 0.9823558330535889, -0.17188745737075806, -1.7978079319000244}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696488857269287, -0.05601802095770836, 0.7405621409416199, -0.7459721565246582}, {0.7230710387229919, -0.17843493819236755, -0.6673298478126526, -1.7851916551589966}, {0.1695246547460556, 0.9823558330535889, -0.07898375391960144, -1.9723217487335205}, {0.0, 0.0, 0.0, 1.0}}, {{0.5819727778434753, -0.09584150463342667, 0.807540774345398, -0.5444246530532837}, {0.050269387662410736, -0.9868916869163513, -0.15335524082183838, 0.2901670038700104}, {0.8116530179977417, 0.12984319031238556, -0.569526195526123, -2.2453720569610596}, {0.0, 0.0, 0.0, 1.0}}, {{0.3863411247730255, 0.5467215180397034, -0.7428567409515381, -3.2944374084472656}, {0.919157862663269, -0.1611974686384201, 0.35939422249794006, 0.769320011138916}, {0.07674188911914825, -0.8216513395309448, -0.5648006200790405, 3.4155943393707275}, {0.0, 0.0, 0.0, 1.0}}, {{0.2072761207818985, -0.5467215180397034, -0.811253547668457, 0.15470457077026367}, {-0.9246959090232849, 0.1611974686384201, -0.3448953330516815, -0.2476383000612259}, {0.31933367252349854, 0.8216513395309448, -0.47213879227638245, -1.7680178880691528}, {0.0, 0.0, 0.0, 1.0}}, {{0.9709901213645935, -0.09385436028242111, -0.2199307233095169, -1.254987120628357}, {-0.21873614192008972, -0.7202114462852478, -0.658369243144989, 0.49967190623283386}, {-0.09660584479570389, 0.6873767375946045, -0.719847559928894, -1.1774892807006836}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721373915672302, -0.09584150463342667, 0.21392349898815155, -1.254987120628357}, {-0.0647682324051857, -0.9868916869163513, -0.1478171944618225, 0.49967190623283386}, {0.2252863049507141, 0.12984319031238556, -0.9656018018722534, -1.1774892807006836}, {0.0, 0.0, 0.0, 1.0}}, {{0.5490813851356506, 0.8285959959030151, -0.10926257818937302, -4.776339054107666}, {0.7586196064949036, -0.4392579197883606, 0.4811951220035553, 2.231170177459717}, {0.35072189569473267, -0.3471040427684784, -0.8697775602340698, 0.9207513928413391}, {0.0, 0.0, 0.0, 1.0}}, {{0.9921258687973022, -0.061220504343509674, -0.10926257818937302, -1.2913897037506104}, {-0.0010986949782818556, -0.8766127824783325, 0.4811951220035553, 0.3837178349494934}, {-0.12523996829986572, -0.47728613018989563, -0.869777500629425, -0.5391157269477844}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696488857269287, 0.05601802095770836, -0.7405623197555542, -1.2306127548217773}, {0.7230710387229919, 0.17843492329120636, 0.6673299074172974, -0.6591225266456604}, {0.1695246547460556, -0.9823558330535889, 0.07898379862308502, 4.091493129730225}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696488857269287, 0.05601802095770836, -0.7405621409416199, -1.2306127548217773}, {0.7230709791183472, 0.17843493819236755, 0.6673300862312317, -0.6591225862503052}, {0.1695246398448944, -0.9823558330535889, 0.07898376882076263, 4.091493129730225}, {0.0, 0.0, 0.0, 1.0}}, {{0.28631141781806946, 0.6079419851303101, -0.7405622601509094, -2.912693500518799}, {0.2070063054561615, 0.715415358543396, 0.6673300266265869, -2.165348768234253}, {0.9355074167251587, -0.3443652391433716, 0.07898371666669846, 1.0461139678955078}, {0.0, 0.0, 0.0, 1.0}}}; // By default the resulting orientation of the projection is vertical // the following transforms are used to alter the projection data // so that the resulting orientation is horizontal instead -constexpr double orient_horizontal_trans[4][4] = {{0.0, -1.0, 0.0, 5.78304223331047}, {1.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; -constexpr double orient_horizontal_inv_trans[4][4] = {{0.0, 1.0, 0.0, 0.0}, {-1.0, -0.0, -0.0, 5.78304223331047}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; - +constexpr double orient_horizontal_trans[4][4] = {{0.0, -1.0, 0.0, 5.7830424308776855}, {1.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; +constexpr double orient_horizontal_inv_trans[4][4] = {{0.0, 1.0, 0.0, 0.0}, {-1.0, -0.0, -0.0, 5.7830424308776855}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; namespace { // anonymous namespace From c3ff24ae3131f24336db6876f690d1e0a6b37d04 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Tue, 7 Jan 2025 08:52:17 +0100 Subject: [PATCH 33/37] - Adjust test to new parameter builder output --- test/gie/builtins.gie | 184 +++++++++++++++++++++--------------------- 1 file changed, 92 insertions(+), 92 deletions(-) diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie index c572f59f3c..2e0b0cc612 100644 --- a/test/gie/builtins.gie +++ b/test/gie/builtins.gie @@ -1173,99 +1173,99 @@ operation +proj=airocean +ellps=GRS80 ------------------------------------------------------------------------------- tolerance 0.1 mm accept 23 28 -expect 13572113.730842669 23493648.568397284 +expect 13572113.67642112 23493648.8665927 accept 71 46 -expect 9714915.99822954 23488176.36009714 +expect 9714915.746556642 23488176.67510276 accept 147 75 -expect 7723484.497553712 20087141.83057885 +expect 7723484.372011362 20087142.323963434 accept -77 61 -expect 9679376.81437275 16802749.590764046 +expect 9679376.629009942 16802748.898850363 accept -26 35 -expect 15458567.846694734 20091165.597581636 +expect 15458567.272657597 20091164.932983194 accept 29 -13 -expect 15471813.406433558 26802282.433531422 +expect 15471812.823275734 26802281.428533867 accept 71 -25 -expect 9737210.818128424 30219178.19502455 +expect 9737211.04829846 30219176.923402365 accept 97 10 -expect 7670302.04759564 26816601.850811563 +expect 7670301.757522446 26816600.456473984 accept 169 35 -expect 3883710.715979733 20135415.70536941 +expect 3883710.779197455 20135416.248798802 accept -151 13 -expect 3859776.987458839 13387384.436317045 +expect 3859776.935840323 13387383.66888049 accept -109 24 -expect 7674343.079790037 13366009.085606368 +expect 7674342.7697215555 13366008.623491792 accept -84 -9 -expect 9673007.43737963 10144952.271326754 +expect 9673007.644835116 10144952.453773642 accept -42 -4 -expect 13562062.525299646 10107761.692799212 +expect 13562062.11001925 10107762.010156654 accept -11 -34 -expect 13627060.513183802 3383645.553222437 +expect 13627060.370835315 3383645.3847061065 accept 155 -35 -expect 1873264.8693915098 30211340.7539241 +expect 1873264.8972642338 30211342.39334858 accept -158 -28 -expect 1871227.859810853 10115901.327963104 +expect 1871227.8352742512 10115901.558726894 accept -109 -46 -expect 7708744.666022454 6722251.068806174 +expect 7708744.837148189 6722251.433124948 accept -36 -75 -expect 9665810.794086894 3381177.974792701 +expect 9665810.840448067 3381178.1322935456 accept 98 -49 -expect 4806946.326948598 33007546.442669753 +expect 4806946.397957796 33007547.884080105 accept 114 -72 -expect 7708905.597812598 1101689.0300204905 +expect 7708905.668234003 1101688.9423256349 accept 143 -9 -expect 3219027.070477343 27948068.735312402 +expect 3219027.213591793 27948067.77306861 accept 123 7 -expect 5239165.496513276 26821978.012431815 +expect 5239165.449000159 26821976.576842733 accept 147 16 -expect 2635947.7492687562 22373572.96962306 +expect 2635947.790058463 22373573.465943452 direction inverse accept 13600000 23500000 -expect 22.773464572867294 27.745464716163056 +expect 22.773463669465208 27.74546930135053 accept 9700000 23500000 -expect 71.26673015453744 45.89205035000612 +expect 71.26672826705175 45.892054959435356 accept 7700000 20100000 -expect 146.99339922501423 74.69909786744657 +expect 146.99338119888958 74.69908678892135 accept 9700000 16800000 -expect -76.55528558395834 60.90966581108546 +expect -76.55527381469193 60.909673572344005 accept 15500000 20100000 -expect -26.12578972754671 34.53133514828208 +expect -26.125783684713483 34.53132937179701 accept 15500000 26800000 -expect 28.725667463887856 -13.176397639962207 +expect 28.725666388118636 -13.176403675038557 accept 9700000 30200000 -expect 71.49135800157006 -24.84162686346212 +expect 71.49135123526806 -24.841628057194466 accept 7700000 26800000 -expect 96.67476476615902 10.2142651287627 +expect 96.67475838846086 10.214239583859408 accept 3900000 20100000 -expect 169.44670563079603 35.245717282501886 +expect 169.44670138289803 35.24571549991959 accept 3900000 13400000 -expect -150.62222998696532 13.30459957043187 +expect -150.62222984709288 13.304606935920212 accept 7700000 13400000 -expect -108.74281291121734 24.42206777180953 +expect -108.74281278781015 24.422068761918457 accept 9700000 10100000 -expect -83.65325195956459 -9.486900270831473 +expect -83.65325076618483 -9.486896809661033 accept 13600000 10100000 -expect -41.56143018608222 -4.0134930004162905 +expect -41.56143264126598 -4.0134903803466875 accept 13600000 3400000 -expect -11.279583156676242 -34.272615899757646 +expect -11.279582254726469 -34.27261060135683 accept 1900000 30200000 -expect 154.64715191651544 -34.84574835325207 +expect 154.6471461539285 -34.84574401998715 accept 1900000 10100000 -expect -157.5838766673165 -28.052389401329638 +expect -157.58387854538302 -28.052389157635567 accept 7700000 6700000 -expect -109.19369483087058 -46.23421830390136 +expect -109.19369961450307 -46.23421776110284 accept 9700000 3400000 -expect -35.930097311957454 -74.56175815714317 +expect -35.93010836570934 -74.56176186497939 accept 4800000 33000000 -expect 98.17201357657596 -49.00298561876853 +expect 98.1719858809201 -49.00299538615756 accept 7700000 1100000 -expect 114.2610931478263 -71.9419539648052 +expect 114.26107792392547 -71.94195564012877 accept 3200000 27900000 -expect 143.30076634375794 -8.522097310935342 +expect 143.30076598710878 -8.5220896966875 accept 5200000 26800000 -expect 123.44730424516767 7.179239007940713 +expect 123.4473064301348 7.179245727191776 accept 2600000 22400000 -expect 146.85478120098927 15.54230419284032 +expect 146.85477379046327 15.542305141981524 accept 0 0 expect failure @@ -1275,99 +1275,99 @@ operation +proj=airocean +orient=horizontal +ellps=GRS80 ------------------------------------------------------------------------------- tolerance 0.1 mm accept 23 28 -expect 13391387.07244285 13572113.730842669 +expect 13391388.034358207 13572113.67642112 accept 71 46 -expect 13396859.280743 9714915.99822954 +expect 13396860.22584815 9714915.746556642 accept 147 75 -expect 16797893.810261294 7723484.497553712 +expect 16797894.576987475 7723484.372011362 accept -77 61 -expect 20082286.050076094 9679376.81437275 +expect 20082288.002100546 9679376.629009942 accept -26 35 -expect 16793870.04325851 15458567.846694734 +expect 16793871.967967715 15458567.272657597 accept 29 -13 -expect 10082753.207308717 15471813.406433558 +expect 10082755.472417044 15471812.823275734 accept 71 -25 -expect 6665857.445815587 9737210.818128424 +expect 6665859.977548544 9737211.04829846 accept 97 10 -expect 10068433.790028576 7670302.04759564 +expect 10068436.444476923 7670301.757522446 accept 169 35 -expect 16749619.935470728 3883710.715979733 +expect 16749620.652152108 3883710.779197455 accept -151 13 -expect 23497651.20452309 3859776.987458839 +expect 23497653.23207042 3859776.935840323 accept -109 24 -expect 23519026.55523377 7674343.079790037 +expect 23519028.27745912 7674342.7697215555 accept -84 -9 -expect 26740083.369513385 9673007.43737963 +expect 26740084.447177265 9673007.644835116 accept -42 -4 -expect 26777273.94804092 13562062.525299646 +expect 26777274.89079425 13562062.11001925 accept -11 -34 -expect 33501390.0876177 13627060.513183802 +expect 33501391.5162448 13627060.370835315 accept 155 -35 -expect 6673694.886916037 1873264.8693915098 +expect 6673694.50760233 1873264.8972642338 accept -158 -28 -expect 26769134.312877037 1871227.859810853 +expect 26769135.342224013 1871227.8352742512 accept -109 -46 -expect 30162784.57203397 7708744.666022454 +expect 30162785.46782596 7708744.837148189 accept -36 -75 -expect 33503857.666047435 9665810.794086894 +expect 33503858.768657364 9665810.840448067 accept 98 -49 -expect 3877489.198170379 4806946.326948598 +expect 3877489.0168708 4806946.397957796 accept 114 -72 -expect 35783346.610819645 7708905.597812598 +expect 35783347.95862527 7708905.668234003 accept 143 -9 -expect 8936966.905527731 3219027.070477343 +expect 8936969.127882296 3219027.213591793 accept 123 7 -expect 10063057.628408313 5239165.496513276 +expect 10063060.324108174 5239165.449000159 accept 147 16 -expect 14511462.671217078 2635947.7492687562 +expect 14511463.435007457 2635947.790058463 direction inverse accept 13400000 13600000 -expect 22.653513769488086 27.87758783216759 +expect 22.65352296817436 27.877581297459503 accept 13400000 9700000 -expect 71.2321304889103 46.059446219758996 +expect 71.23213152642391 46.05943669081828 accept 16800000 7700000 -expect 147.55671428761954 74.77832978870643 +expect 147.55664807290296 74.77831214328943 accept 20100000 9700000 -expect -76.64598920724659 60.74702065186206 +expect -76.64596992826016 60.747042100317785 accept 16800000 15500000 -expect -26.312406534624202 34.601485943337174 +expect -26.312384746370956 34.601474276794505 accept 10100000 15500000 -expect 28.619135102825094 -13.042018792349772 +expect 28.6191429996979 -13.042036148434482 accept 6700000 9700000 -expect 71.51626100204493 -24.67325245320244 +expect 71.51625215021024 -24.673267811945436 accept 10100000 7700000 -expect 96.68789664137729 10.383985622857828 +expect 96.68788915511519 10.38394580897131 accept 16800000 3900000 -expect 169.65090708283734 35.27199215229812 +expect 169.6508856275164 35.271988183264405 accept 23500000 3900000 -expect -150.55720916463775 13.146791299175973 +expect -150.55721449851438 13.146811949018621 accept 23500000 7700000 -expect -108.7176824122098 24.2537259740474 +expect -108.71768440726674 24.253741155662894 accept 26800000 9700000 -expect -83.64031637356378 -9.656648231646493 +expect -83.6403162688186 -9.656630479398787 accept 26800000 13600000 -expect -41.532483451278324 -4.181271534515257 +expect -41.53248834200603 -4.181254799415375 accept 33500000 13600000 -expect -11.07799815066552 -34.30009865557726 +expect -11.078014244307818 -34.30009105948259 accept 6700000 1900000 -expect 154.6653022372498 -34.676851362562076 +expect 154.66529496534545 -34.676861217757725 accept 26800000 1900000 -expect -157.51535351022102 -28.21093854274684 +expect -157.51536117194976 -28.21092494143824 accept 30200000 7700000 -expect -109.22990596539768 -46.40145478575142 +expect -109.22990770017597 -46.40144015027171 accept 33500000 9700000 -expect -35.38695615427261 -74.64821445477583 +expect -35.38701311712612 -74.64821096944162 accept 3900000 4800000 -expect 98.36200826776671 -48.896293330184925 +expect 98.36196474153522 -48.89631211978866 accept 35800000 7700000 -expect 114.04214974826021 -71.7963489850827 +expect 114.04215291729936 -71.79636292428299 accept 9000000 3200000 -expect 143.33006361554604 -8.363015677507919 +expect 143.33006078855422 -8.363021459487074 accept 10100000 5200000 -expect 123.47123953807082 7.342196463300299 +expect 123.47123970891344 7.342189461977811 accept 14500000 2600000 -expect 147.01335050858833 15.591840264443174 +expect 147.0133297493229 15.591837051793823 accept 0 0 expect failure From 96006e671aa7eff5c4acb657079cd0fafe23eda5 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Tue, 7 Jan 2025 08:53:56 +0100 Subject: [PATCH 34/37] - Adjust airocean plot for doc --- .../projections/images/airocean.png | Bin 355027 -> 355069 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/source/operations/projections/images/airocean.png b/docs/source/operations/projections/images/airocean.png index b5ecb07ecac356d27513a336b01eb8ac7e85bc3a..e87fb39cf2e875940d9866b29fce39ff54f04159 100644 GIT binary patch literal 355069 zcmeGEhdbA8A3u)2BrBUjW+5#Zkx|K}K~WO231w#$8D(dsC6U=uSxKbq)gUy`An%mO zh_W*3_c*)m-{<)L3E$)Rey+oP-Hxujy~cSypO5uCV~zIevo8}|Mo|>|uAMsjDTr5Jbm4c+OP6Ia@^;rr-y>f78!Zz zRW821UOro8W!?YJUy$)U?kwAF_p=fo!s4~l+=rsnBFO*f-rg(prRXSXmyV{%iS&`4 zfD;$Ky;B-L@H*&+T5;`_%2w;utK%t_b0RLUe6I(;9x%Lc({TQ#;cH)IchfXYDLaNG zbW2!XNSDY@G<|3adUjd*@cevzW`>z^_`eU~|78zB&}8d1j)MmemirFz_-?(H z8?CLQqvJ0bFiFL@xO^WO(Q$Cd^*Va&n3jWsgrZ==_?4O(4g3uiuZ#G%<32Wi9p61$ zw{CT-3!e&{;p*TO6BB!B$;HjhE|358MmA`AMDys;_3uA?@SIh#v9Vdo$SA&Q6?OXb zX=XOIi0W$fi@U$BO1Ow(!N^+Az&#abUC4hXQb+ueM~u88nsm0EaygHiwfhK!6%Ol<6Fi~K0P+|$;DOw^TDrw65_+4=dSQDTKg>k3#z z)FQbfwd4gdIq<4t&o!VE2&*xR3!cKd5=>|suxA(Tk(IiTx36vZ`}e@tsa*T^?b~_d z<4;{39mO|tmRucv=F)t={{GgyTMI&}D=S5U7Y}@<(N0IQ@{6mgo($95hlLiN@FFK> zutJiD<>SYXeFFngeSLkyJ6^geEAbw{8+2n=S=TLcDVRX%8|QQs_(g| zqut(-tDk)7Qsk}+Qg$!XRTD+YJ@!bc_-HCFwR&`%!Kq}WhlfX^=rZ!hdU#+_0{NzK zH*ZQ&8jgIp@Bj#@dgYs)FZ@EG*8l@JiW!EceEqPZZ_BWwEaUVpw~?+&s2z$2?nhcJ@v~ zLtQPcCCgY@>8SPV*K>&W1iX6v+PljtfaM1h0|PB~ZAMK?s)F~oYXMum9C7`MM!2zb z0~8-B>)}H_veZwEuaf3tb=;hK`;LzLyZem;i&0UGPkuh%NQLp+oZ_yY@A)AtFOAC< z)ZmG0wD+D|6?1zAKXL5Xv2zzLgg<$*-PhNbdFD}hx$W#Yja-qAPK375&>AVJobqyk z(awo3N|GpI+6XP<7Cve=Jot^!}-^Cd^YJc8xrxNq>w&rFg3H?N!W5+fuEG#hk zSvEE{?ldr1O6`<9?|Mc@Qs>x@#pHDDk|De4t6N5u_U zd;jt@d3<7G<Cz*gZuje>qV#b5q0fPog#Nz7?01<-||k&dV!)B)eh5 z?(R(5=g;Xx!eOG87$xQQ9-lS=?Ay$~Sa6Lovg}l3W>zTw(QIuJU6FYY1=+7ru?UycHdiwIE9^U6E@ClOKOq?7$>rQx)IdZnXX9QwjRxS)OtNMrLL)c-I#% zUw(h_0y`U9!_#Dm+gQ^s4e`@7Wa_8Eg zji--|fdSk80|$~XUR-)(ziOWYcE7l{1Jr+Hjf)~b7l%RJgs)^1T$T(xbR(4$9> z+FcauMwdk{*|lqzfa-BcdwctG^>9)K8}Vo)kGZ-|(4xhb2s|;58;xexe8O#ZD)6P_ouC`y8ix3SFc`;_^^hD z1eaJ$^--GHM*rcDe|ua9ZJ@uNQ(Y%GxYBCQf{ih*@k~X1+5XkNt$2dTkAZroM?Wx8W@R2CXTrlpw&zsIry8u=xKSIw`Rv)V zwu*w0^HK&^!WdZjRJ?rg)*bg9C;Xu@ej|7L@RZtgtV+m&$^(l{mX?-suAS0M@hw&4Tc;KQ zd>CVXe*QS>@#Hz|+oy?U@flBR3oIXCz{wCGHE4UjS zfT#+VWp7w~451z!J;p?Z3ZHJXt`=O`tRXFcWq??cv9dmX1zNXTDM7W>(@w z$3DHWC#AikgN{PQ3a_=T`Lj4*eB=e+gNF~do*)lcN4e>UF@DW~1L6C2{9cM4dtvRq zrUyq~dkwa)c06)~Zt%OCn)6HHc#&KmFA^0k zH)+RN0N%7_lriBQrvy@Dtd>ygmM_DDXX z6BeF||Hu`uYqfy1E`zq%uUS{G3JR-uQ4}d1@q$~vM4nr*?=bAlCJu?qn_;gZD``h&rMJJk8~H)OI=_A@GkF9+!pA^_o=aw zA&zfT-TP8kT7N%%cx_lX6Q@0H%EiM&G$MH>bMLKsbQn5{+~@aT3G)6oVFfeE2_|%- zXuUbM1#7nG_}AU*E$!Rq|`U^u0$@am0o`2u>bUkxl5_V zx=XvS-?*Xr4`4VtV>N}7=l%E3;_W+k&gh8O-aqo9@7uSo!f*RGTrw;7T0K_%H)M8h zuFggAb9=USce%F&s=>(ipNDfhT)YNaR#G(=*B|J^7U)A!SxHGI-$VN9YYNIS+8P&qX#w_|bgfTEJp`%%BS+=2p*)YMce zY^8$J~cM>|EJ-`}R6q&0c1iw{PFh_JwnLeSfn) zy2aj1nlD@2bmvZHy(Ce!K?j0iYiohEn9)qf8~JT&+>|5~6_>wAk&QOl>Qxq|fcXv2)L!`Zsw8R$q8FGG_riNsyJ@=2SU{CN^AcPeB`@3ZLt}G##D!Wvv?; zU<$HK|U`7!kGBJiizWc$)BTeftUI48BUN~ov^#PQ4O?c5n-mGKD+@%2r^ z+qZ9rWoC+DDRVxu^ho(e9@_*q(S3Q<=a*flfc0*JUd{YER%#)<)t8w%clGLXTTm8XAzBMV z@-?jOege4OxkW`sGl5ytQRKC}y0J&s>dafm%`7DXsF^&mI#(J8hmYT^44M(&xRJG> zpy0&k*tLwMoB7D%ynG_bALv+DmjMsGuCA^qWHGQMO_@{UP-gVv{ET*ss=Ds1TWEr+J~l^mi6f4u4Ha`@3(dHe2N`u5UL z$BEC4%$%G*CMIlxr&d%gP9H|axo1-?x?{(Va8*mZOCGwYI87r<%XmNpwCnEtH)~Zn z@!9ARv=5%u4DF?sEbY4+#1Yui>_>N=+?gGl* zw23`QZCXG}TidSKj1;p|*omlvODM2m0;!i!1dO7?CJJvR?~LoQ1^bdqyBVl)QqMJ> z+Fjqj{<5_B5^PUk*^y7xV!LnffEy)>S`-5K)6lz{Q02T9X1zfhNolCPzUx9(hYR^K z*+96HcP4|etRH?IHg)@u?-j+P=ZOO3$e)f|0i&iWINArN*Iam3bn5qU9esUz%Kt}i zLS3B}Q_`K8dxq1ZK_l`Jk&$%N%M7(R@S}glW@T3FTvk>VMP5Oom^w#p$KW81i~Aiz zeIxbSMG+l=3PTNKN{SLT%r>(9`uq|zD{FY8eeKI@+l)<32L|n?cG=pl5)B+&ZIHUT zabOy+YH%u$DdFtX-;!(BYD-!1^=uV~;se zY~)f6x~qa87lqc6l4fFRx@7QbGF=!ezl?2t6novMj;{lDMNCo>69utkD`C#lwO;Zy z_n0hrVwXZV;SgnyjZ8}u>bz%8udc3+KH=6=v0`d!DpAz5@EUeM3i!F5l4g~GThMD* zA6assMkEL+e@0`cNi!PDn$1|P;OE!A_4*&TFH5A^hXHd_gIljiet%hCPmdxISyra( zyH$j+59kK^oWnOkUd|;a(@|HH+y!%Ta|uZ!%_})MnW}J-?+yJM3=qBT_-&n>lym2( z8~a(Xoz9$DqR$x}Gk96vlC7w-)07G;EG%?j(#rWVI-0P>wX+7l%p#vJP1%z##HnFt zzG?pp+3JW!dsLOBH}_@AeEbG7MYTd#@Fx=;T8ncrLHea)qa5Jbwz*m(8xPr>3jRkq~<8l7v5 zDK1{#{+i@--3(aJRr6!v`|~1p->4gCO^f7dvQN&)ka62?Q{g+rKEnmbP5U$dqxlR2 zD}^)qViUA=v~ z@Lkh<@K}9Foew>FHe98jz;jJk3*w{XdpJ6$R8MFS>em_qjE-c z_ntjW$IEs0>TbA1csNzAcs3?o3~T*<#@9>F9E~Sy5p&I7=%>-_+E#aPVQqx1*>f57CkxV(&8Z0n z1E~wzO|Jm-M?aKl7k1S*H|q-=ve_lc6ECF9L2l_XbIAN?8DaXB(FR{G*45V&U>H`y zuk+=jfQ(1q^Gh35dKINp_eS~+misAS$15a6-;+GGV*HZ~nEFS)S8hXo^O4u`q z#pr9%wWSsbAnQp@JP5eea$$xSrOH{n8=uA%5@K7}B>~;z-Me>n4l9-c z0sRUS8xOGAP#<1<_}k~tq{pJB0&O^;H*tt0;p#*JKGIcMC!xg&s~%qpRUB*PUXOKd zem*6NoIOQ{##=5H`KGWzvvq^i$= zZ9@$Af{lg_N3EAPD}-&3Q`EX}aD*K6PHY0GEc~LcdwUbRY(hn1V`Cu`>bSX$giSu_ zYl#eg2J8sD_MyyE-_C9|dWLW>v+;&YpT{2mh^n>KFgE6%{_%-3Qj5rgy+3^d{Qd2R zJM;0pz`E;$XL^{R7jKKd8Z);6Px4TKCHf^DpNu7Qs)3VFH5vnS(?ns_GZ08AtF`x~ z_GQGcKX7yWI>oKJygu?;IV4cXasq0BivJUbmd*J2`mO>ZghX-fnPW_Ryw0gp+o9QT zlU-J_hmC*QnLQlxu!>h71@IKms{XrH>OWxN_TeG>*RNjz$~j>NZE`PH5?~_~Q&30< zSf5bL+4=bo-fwi?@IQO@jC{b>ZQG3Z@3;RoZ)IggmS*<(G#znGh^kI6(^+I8PqC-Q z>_nrY?zR4+{)rgD!D`TsjnUNcYN4*!`PXA0Fm(k!(CV>23)6-@DKfgy z{jcd8NXnc%d2-#lb;Jf(7jmm`06h@G)^dJ+2}ms1`r7C*i6Yygz~)$!;*ye@vHV9& zrLM+26%~+S)RBU4id1$-dUSiuBdX>>7;qZ|Q#tp+WG zXbTne(a;Fvj3rwdpKbroSLZ+Se!V%IL2FJHg1%tS^; z5?7@1{fMECVmB^3tn_#C-Me>NM|a=Y-yK9pp(hck5F!P3d&m3t%POrs6-w+D%W--C zGXgawA zr=)Y|&ZULi!^JCqIwkSuRi;|dLo4NI-dJ;h8q~NXXeYpZ#u?{WU^VK9pMK`Zb4J(J zHmf~AFWx~)92OX3M5%XjQc@ec*thm4N;NDx&DU%;K@OMnga7N8npyN;0&S4#6jDB$Lm zEv|gnnMqhHb}&4&ayRP#8XvC#+Zi9am5Daa4v^MF&$&IUrlv+Htz4Oo@D z-}g7Q0y4?#Kq)B-s1a=0V{U%)6`%n?#?#PO?er{UQu<$R`+@2rapGr8j7}2Gp291n z2H&pyGWO)jlXL0m($a>AYq+?(>ta`6lXY}=$G|ZJgGFVeAH1XYwzt>g*LKv`vISLx ztBSF-oHRIL{iwdT3k#c}6nbHI#0|7$qsVm@SjC}TEhlyT$w>vE_Uz%P5B<$a5)u;h zlpJI#a9mfp=sjP&{^vzPt3G(}(z-fbC%~CKHKbdci0a4@2TKm8lchj>ykA8xW*+g+5mK+8fxX6=2lf%4?Y)MzI^Gmy-fJR zIx7+D*8>B^m!*}JZgHW80oW4JaL6J8A_ATSDJ##7UW4^lk1H(l?$>is6eI|ibNhJB zmbVVzE{V_|C`vC;I2LvJtdu0Y=;4rZY+ABJKta8`&7jVB%}pL%&d0Z`3=q`r{ez?U zV3pp$;Z2Z4R;jCt;aLQ9tHj0x#?k6tVkbuoPfSeE{}cqt5ET_2A0O91|0E`rDKkH` zfS4kFyaQ%OML}pA5CtN)G~sV>6nFM)9f%~cgV3QQRVzu%88OEn?wA`5H(ys&F^2*FAXfZC3R|ly+=mY}@eX&v(q+{fTyDy6|=_+kCQ0cO9oFB98U zL0C;v$j;8rtn}Clz~-}{F@z?8+cZA%`9|0$Wp&U+Kzh*MxhH^>)R!+`YW@y#mlGhS z8o{o3%jIf--w*|K?d?BrS$h()**RPeBqY4xUSC-;?&Mr~%kI?D!*`;io3pB9_H=M? zzzqREWWbHqKoF1z*n_UREznE}fXKT|ZN?TA4tuyU=tm_JU~1N|##eMlr=qM6)-EpV zupA(Lz}n;D=U28Zd<(vShb69{z+$-BpZqCWcDVQ$?_ktpS#v)%2Cd*C3 zG$q@9N%8wkqITV>Q>$LKwRsxZbZzyqvl>%0E6m%U2Y$`?b*jPs`Nj3*$2wdZX!X$| zYU!eDBqeR1onJ#$&8I?5Rtab5_`5dcMP!Z;eX-(m`{Jx8PlO3lCkQ)ztKTwQ2&xM~ zr=pucNiAN!B;D4F+;P&EnQ;JBX56(KFy7Wc#X|{3%JA56UUjBWbguFuHJ$pw44Ki|#kO-oHN! zXAU;RyL3lyKfgvebMhV^RhBMY`theq{+?W7yr7`9WT>T8SL;YxU?-UzI6$A}`mV(` zv(dld{yNw4B7e#19vFed^Tb1LKy8&jH9M}E&*fhVzY%cAaNUL?FPc`i?^pO9SzW{4 zs4$l0UUcX>ZW;PzYM!1yb|}AoJ>*L;2Ds3M4IA9XNM*Pp?*PQ@IJ5b!gkF3NKDYzx z8rw)ob&Yt3eR+|D>ru^p``R=^-Sws8?nkjE=t22kbti)}{0PLpr!QV;lg^96NBk~F zVc6H*_m8kD3bH$HUJ0$q{`D7vkKh5Lv61zmr^kpA3;px^xe1jqhHIDIHB9^d{p_WUho;M=aanzYF#|7Qk0Kh7 zZL;Crl{gRAo_gJYP7PxtBSK2E&6p^>Q&6SVTehsgLJEJVvmO8#EaPcgTQijMch%^b zv9!9q#J5#?@jm^ioT`0W5DEN-7Th8-j2Q zN>D#^3Is5cp$t7aA-0a#P9I!ho> zy?Oh#=kki&dw5r5nQuD$FzenuHeFp^IC9-#RX1S)q7ZqHeN?5a=GDPgdaXA-yYS4> z?4jGrhwdMu0E>xYufn^>cN+kL)}?h2Mxp#S4}`d8?cBQ;8ru?hKEjHxWYD-`5)yR5 z68^XA;K7YFSX^TY(|*~v&E9-@dnw1PKPSJ&p&=Tqb2JPZ44jy_xNyrIa@E$TY~7`< zDO@fW&Y$-JDAmq0nVwVqAHpWredo?H)T+8W2k$agMr`h|h2^Pz@}w$w4sbAIzNxEE zHC_o1509K%w_HPG~reR?{8WYVGkZCVo&DUdbe)~oLf0iGWZX?>!+j`K zj8F%|Yr}GK#Iu8xxs%Q0EW2Z;S}MyBShD_vd<8|^j%zTU(++3yf!x%cxqvy znF@2xIN3B-5(Gy8dl~97kBr)-=l(uE+9QWZ#-1c2RRVVY24tvKByfLJb;gY z!;c`v(_vR$bOBy6IZVA;d;HHjHxA2NK4?i~RJ{=W45yuzH9v zgm9{2w+*boR~~dV;95lRX-W_R4>*fA+;^Hu)NAKk1;O_y5D~-2O6M-`F1uMv>A5w4e83&1iCoAG_RyHv#r1lfGf?&m;1v~3 zeDlVHsD5f{B1q3v-bpSry;~eK;{gCh4Su&FK$PwK&+B07A5l<9Hw9}eLg0Zok{pE- z`#w7J&i?*g`{|PyxD)-{On#7p+O@rF=Q3wt zpxCWHWNj^a(;)Tp;A(DeI@|K1IG_ir{6=eR*>htBerlthRU0Hx@83Ur5IKxz7uXAxnudr)8yJB|XSDP_hVpJ8<;qK+_>soVZH?)`n z^E%0t7wEdnK$FWKKh{R^!z-nuqa$UD?BuxI-6!d-G_!v-RQyPGhHu zD=ViUt*aAG`^*RQNl2-e%kRBWtP>NHlR6d_f<$maNwz}?R%0}R+=eCJ2hvGZC{@Z> zKk2rc54iWazrWb+-R6;xk9e^LiArReZ?VO;mG0SZHJItZ%i!c-=3d_3kEDb%Reczv zImM#(=QRLEpmDhZ2m^U#-Mrbfz7A%e;&(hCkXmT|xr53%yd9&o=>nl+Oq~NKDJ~(Q z;UaI9I~L2wd*TzIo?Lb|PC-zyrmc+=QHp2|k&1yoU{P+}MVicf;B*KPU8@g|Jb3*0 zW)cOVG|bIcRxSM8Lvv0TJO+luylmMS$b|4Ag3|p;_?U}42KjhhkCXwQF(q9O(9+WC z`|*R5Lf!QvS<4Ej-#M>d?Wa{pC@XBc)5b8~(-P_T>t-&&_RvIU=Y|VKl%nqbPYTpH zbg&o@hYEv}56n;uK8wu^ff)#vg0EUwe|Cvw8}?X{ZS4}O29^w21W`M`E4!9sZz$he z@|C&M%h<|lbh&yz>|>Xll$4Zj%N?Y0vXk(}%-g*1i=t)ty}#VQJ@(aEHt5tdXx$KZ3 z>-XiAl|82=9(BHLolHNy#S&KytNdS*m5slwWsdXdYrwgFFUNAc*SdGph|6e(25%hR zpY!tNUgJv_F7A|swJeHyLUtBz8wCvOnP^id&}JfTu-l_xC>mVbx`HBFim+PXn_3BR z=QoR&}f&v4V z{dJ6sixW{w%z#+Z-Qvc;#MEEhELsl}TbPG=9xcvXK-oi>>VsPI^yyQt@tCLYkfoqe z)^77Ml030;K{RQ||E;gq$+y1e=@@->GVz$sQ-tqa6qn3;Z0#`?R`sEak+7t!_MD?8 zB3L23lWZi2tWrW95XH6o_lZ_s7s)D*KoCU$zW1MnlT1lx)7h2%K6F9!p(q%AP*Y(# zarcbDzR)x`Pxb2QIKsM8royZqqD#1TiY4*3VQl@VnwKFlJ__RU^65>d;QuIHYD$mA z@4&tz`9X@vt;nGYZ{KiS%ASM&kn(FEMsyG@O>UV4adCb4PYgY6T#<-1dPyd3(q-+w zoa=WTX-2zek-1K?Fvp4!<0LtTz)Dg4T=}<*Afo7kx$DlFt9tc?z4kbJdG`&o3g0}V zkl(PqwKO$PJ22_))o!8Hy*J?WdU?Y*Mb_qF>Y6p;f^Jw4B+W~qFMJ;N`;{oI%X&)L z2QiPx8}^B-l6OWV^q_`?&%NJpX&JQfW>{zKZ{94;GdYV4Hx2HQJ~k&-3aSzyGAC7j z{Od9VWtjZpr%~97?HiY&Vb>rE(p6xkm1mVBG-RD<>UOVnlKQrcAN3tlAHkO9e7kkZ z)<(r0w#|=+#X8!T9OG=hyl?hh9KbGR6)elx&z6Az72eMTG>4p`A})OAxVifWrOpqxgud_a zS>5zq50&A-fqs)c{P}A)LBkS$-+nR1!;_7F5#&u~;Xr(RyzjV+u+3Rh@#Gk%17&e> ztN?2iTT2xyI0Ojs6L2CDz{acyvIp`=J#POq+fRszVKrxOZ?9HcjDqvatkTlAWBtMg zxFZs$1yTd~E%qBWMGjac&`ffFrx!s)Z;y#=zv^m^2JG(-_2^w~?ocHjJeVEU_1J0T z&h5$vZ;dhKcjme1AD?VtSe0Se6Xw3lBIw%52WHa1ijB=;q47}dHDOD_w}rxg;^(uq z^6u{+?C?993E>A~ubrZx_w2ac~xro2>#G+^$_LJAQxR zMMzfH?56?@x9vznT~QC+f#xv3@C4Z|G(rZ7Nc}lEpD#D9XM~7B9ti+0udPq$1B405F#O*p}WHGuGcxjL-j>ZE(HQEdH1we48}_xPXT~u z%ukJ?LbxR)$A||Gea`;ZK&#f;AVFd5IRuLv;qE}W6o%gAePE^rSsrdDtMo^LA|$mO z7ji!%q4I6`o*?emExN9*ch@OtTHMu}DwTBC*N<+e3g-vDL_{pzzA#>2j^f0{$LEwH zzgv=r^f0KP;4m0eI&YQH)q!g0{V8}xQzj)Bo&a76jq$*JRM)!Ht3z~Ff9WB9g+sB5 zu~%Qk-4ha6t##(7b=XM5Xj16rNqW+XzloqA*jN=wAh@86HPl)e{|vAS<24VI+k zaQ1YKH#an(dVccu|5z8Y{2}1XhFI=F%@N6jnST9KoJ z7D$MXX|j~@0C+lzA7iY}8Nds-PgOnHhJ2p<_E%J&tSpXZg)s;gMZGLTSm9|h)@t_r z>0_3b>Gb+PMTT1=y+Ozv#I0 z_82jU5*465!z$AUHFIg+sUxX`vSzFH!ae`#YDRlAJ_g@|M>oKX)h&m)Q`gIY#{dbK zWd;|_CZxnhV&w@5kp@yeZ{!$2uSh5pZaA#QLofeJcLKaRSz=V7zasO~*0Uy1Y zIJ+6c6gI^{*T-8MJf!;Vw7;K1W$o2xlH$jmZ~@rml*T&04UG1wkGy;fSxerX0cG9T`D6e*FGAWy5A9#kz~^)=5h@WNSwwZ2IX|()s(ZF*E6(l30mFcWd}tQ4l`B=Wd9s%fvx(R!V%#^IGLI)Fv%8(v1?=KyJF3c zs3@%4buuz~Fb^JBT^CTAcpL< zz0p_+#2mgLWq5z6+hF?ZU^PouKdg4dmny9}OD#5CeIC?hT z3}oXEep4BD|H^LOv+e^qh}}ayqTjp?>=3Oz0#yqYkkHL8#mqR^&S>zMN@{=iE*24F zG?Wz}obY%`=C6!A>+0f1m|PF4<>t+sAxj?fx!m>6JSYelEnZaZYOOt`g7uf>I-Qf3 zw`(%3A|HGu#v_sTnGqroHeNVr7c|ehw{KVAdDJa-PLadS>Q^!OM0wd=%l2?_K~jeI z`C(pe<2InaENmI)m+7_0L{JpehdOo5R0Ad37wje*R%DzUSV^i$ojWKL8ATu@WntLn zFOiQip|&AjQ~E^?^a&)ZIr2?|_RxsO29XPU5c$|aZ%&eSfcQp2%~-s{V}>w4ckbM& z;pBAlbp-3MbwtnO00~SKAv-QKF1JUqJ3U)CUqSh`g!u8LQE@^DFzWgGDk9B-9_t>+ ziLOn4y%q{3vZxVdz=>tPVWAKzNn}dNFbzPU9sV&z*0)ta4+90)z6lbryj|VW4(Yfh z6&!Qav3nSB5L-3XZg)N^o%$rD9HAx88{M^|_Cjvb=V*DC*59IgjOjC`FQY_Mxr zEs<340}yjRLsIcSapD0JHaOy-*$}B=|22SP>Kf;}t{bY7-rb_E@RCaga1f~n*yEUv z(edSF<5&I{&lgtZfqe<(ihxS!VUhFO5K}NUbt*A=j{F@QdJsS!8Cc$xcV-;`E?}av z*4E*Lht7ZaG(Ov(lnc2Q4HvT~565S*QWhqXLK~pW>Xb+?8(hYZU7_ajeQa=01J0?S zpde;_lHR|!05+N|*ZbJmsLRZYkwN^D?=z?OL*E0si`SDNdBXJckA>e>8gy2&hy_n_ zlX_1V9D^1!?c@Ubpn@ z-97adSp6hF06_|29}+;)&ju0n@=P|M zjxJ?l+7`I(-(=)q_}FPXG#?ZeZRE1T3c}~1B4f!hGra;xaq;xzzas=$%j#D;`Z9?) zz(lM1Js^bC6)$oTvx`4Mi5UVRl}3GlI!cV+)}QwvCefx&*QP!qilV1y^nZi5aLf-M z7J|#41$C&c1o|kNS>-@~zTHMBVq{_A8MwF%h6QZfw{s`g1_RZ4x-)MfSR29iKvdUG|m~^*l!2CW|U`wwhq#@9%+w`SFg_G>L-bV%j1$~M@rfdtq4OA-}d0}oRRoI zrjKj+f5KW0`^!$l9(#|Qw>n%9q)dWejC)=Mr4)9r-((Rc#u~gjm^wE<;EDZm_4rM+ z!~aITA3Ui-tCLLKsoM31IJ0*F_A3b8>#|FgZ(hy^a zFumJ2Q~fs>*|QpOWC{!)qAOjb*6Mo>Wulh&fi(6$z1)rg#0+ia1dt$$*nj_!4JOsO zt^^|D$b=ow%)!BTIhJARQkCoSmcV-y2^wIVB2XqYDL)yF+2~iVUU_|a%ALL~fCH}n z&_ViU1Ye-*(4o~3FoK)|koCEglxT!X78bs#>swg74@;`f&ZYzMJdN3CC`=f|i|`x9 zFEpzA5L?jzd=$j#N@P4q!C&{B=;9D zO4eWCAjugFnP}f(S&KQ6KW~S^kw>Hk5By*R>_H6MrsPe%iz0${EOrhE6G6Qp6%`5S z_S8Z!40f-do*lHZ;)DCTF?`-@CdA#?P_X4+c!F4 zP8H4{Od%*jmb@}#>IO4rAiqm6Uxtu0nG}lR6zfeYbovAXkC|oT{59b~QN+GL$OK|6nY|zOBjRAN3|V@~mk%86=UF(MDwY|0$!!PFH=^@#qMr*Vcd!)i=5 zU_|zU_|ZR}{NkvZ{mg1N4U)u8($L_|kxBEvGXIi^5yY7BVwNz5(?Kt-3D_f9QGE&N z?N{rAW=4P*#-XD_cjXGahiyGx{dc~aWF9^4BC~RrJvZ4AQS)Ny+ zeK;tPEFWSgCM1-ur&%DTmUrORzZA*nv$dHGWN42>gGx)m@g$)2L;RFAkm4n-0it5B z$E;qoWva_A6^6Qw=h!sxZAy=*)JdWVa9;ah0;~9aUk;(dYrIdBl!Owe);bcWGWCz~ zy6h$2-8u;$h?ushuISQfE0=*zL4P0-c9LHDs3W;yA@0o{Y?Zp&-}$B`LwWY+(E>yM z{L1XVrM|eH>carxmCZ+%^ZK=`DB7IBk+5k zs8}XSEzypU;G_?17Z4TYz>dOxBOs3q!W4B0GNY(#LvOyCmPQmogN*Iw<(`C?7ZIp5 zTv(lmu}kY;!dOkIT-){I1?*lQTr@?rf{Zmfw`DL;fJk=8y9QhAcDZ4+P7c(8xJhKt z9D`KEwUe!0;KAQ)L{t$joI_bLr|wIxntN-P7aZEPSDG<5HDmV;Erd}aC`w;+eTWf0 z0txr;=YeL=bY%T{ZsSln%gOySyN&UXFkpR1mi;6Kz{lZ|)&n15yQu$uwr?D&_J{3F zDBUxkLe>AwbyXvXUO%uyUa952Xpz6?^)iG;(wfN_JDCua+M6DOmreZJ?lRBJc1f>Q z|D9q0_}RR^UROhdBICQTAE5E@Vz~MG_%HHaY2Jhnq6P(>O2n8tZ4Q}O=d#R|Xg$EL z{g{WLD$cxs22V-ius~$e4 zXXO;1=!rf$s%CBGsm)omC4&~$7tvD@8n|`u=H}oz65d8%_&nH=TRvRy7@2VCi;L`> zocy~bXRgopUMAC;&g%2;HnmwJVG6mx%7s$J5zYoi-7YaJ%E*fM6~WN*RF&YJ%orH@ZlCJ&paCNIaY1j02!NL^svHpw0~NM9Vr76M z{%3y(ad%8%H=Lgmv+0NhHe97rGm31`?c z#+H^NzO*HjUV>mGVpcf-k_7l-aNg^aMAG)-^+^XeT>7UmLHWn@Whe^PiMgR$^IL+z zW1_BY3n26x;v^D~)kg&$GT{MXZUwA&HOL-9RN8>4L{9UpUgX15smJ)=H4oG0*6GlA zkcohDb9;to@@8sAX@ftC6^U~g8zWfn`AYzS3+$%so%L_`SjEPqzZ?CXS(en|R5IR{ zT~^7BCQev^1Z0dh^}pLgCgN;J)Ps_P^5gcg+}KR&fpeSaNN=T(Mpy4yGI2{@%In#C z4V!&BDlH33UCT<}ccMEMnpge&`9jtKGsj5$=tJlG$A(c&=#{EK#IYF2DH9+<{D$j> zH^DeS5~}a@K6SF6f%IW-8Gs|wHc>r5Ro7nJI+hQu109?mViArw zXn;ZoN*%Z{(=-#b1(6OiB!qnf?~0UO646EpA$HEK`9HmTE81L+DP9f9tXav1nMJRF zfN0aZrAKdeK{|jXKz81}d-s~nuRy)Sbf7pmEp#9b*$T~n2c86G&nr&1Dowy%T^I|f zuK)CBS~+`eS72a8dzdVyU5Wg5N3Hb1gFb|f`F8w4U}N+^QBl>+OJ;SEr58Q^V;O`O zWxqP>H+>TnShjMK2Mvm386Z+DOH24W|LN~%+0frF!mf4f*}1a@0|wych<)C4-FkOh zI1;5a*R23HAO_tF(mgG#vQNU2cFYm~=Py_f_lgyfHh<^3lowSHoF}yVpToOk1`3Xd zMdu-z6bIxc1r(gvzy!U}%FxH{+A`F%j;wc1&#n*w=wnrH1~_~}?4d%uD@+_fl^{EQ z%bK#&1?|g)gyL|5K|@1>m;ad<41p9MB%L*4)8}r!8txuxO?LG_ukkB#;eR8*(O@z(Leyvw{MVY|!>;#fLo4DdMmQ z8JQ-ORVGI_*x-OPm_E{i!SgyY4uiD)OzN{Z0z@rj?sX=CLU#`pj=g@@j+OodX918T zBpoGNH7gF-I8lf~U%_+&p@r^8KDXL$IYMD3#TwIW9*Y<5lMy>)I1k;HzJ$^Pv5B0p z0lt4_TYwC#V_~%xI%g}suWSlRor`855IG+MAj1;`4>1JGdRb^0DFNo@>$kszeucuS zl?7tzbGA_Z-{kz{8NUH7nUqiCeZd%-t7|eFPA$KSEzd!bY&p&;FlFXL3gJY5g7Vx{ z+s^nPnXm#ce9CH*ctON5G2}#7BV{(JlWo*pS$sI4)1#ees%Z5|YPt>AQEFg95p0Ur zN)R)x3gnSUxOniDy^hDGo=PMUYY%w|_@~%#jWDq%K4Ikgs_04tQ%NQvvUd$kq6TCl zb*2=Yzhbr#aj3($r4Ql+A%xe+04-iqEkK>y<*{Uk*fo~WcQKYo4$ZlFlM(s}=7dXz zVtRUTwhZk3ILLVr63+e%IE_@Ojh9uK_RNI@EacQJnUJE-jBFjHwLP($l(8sRn2=~M)t$-YhgL~6~xX%ktIzV zIk?qOpFuK-Lk)u9wu}jaBBWk2iG*=}ufC_AvWd3^jv>!4qYpp##_ljDO z65`CGqUyaCxz*JTf-(hTe#K6$f&gg?1IpF4X!#Sb_Q=wdtA8hq&tg=S?fWdq6V^QF zJUJN(keu!N@TZ*!_@W#A?MqPZ)i5+{-7>=j?;TT-jSfj_#O1(-K<>03AP*D0KYp!z z6D<}Z003N1ru5NY2&^UiZ3VOK?sk9*)<7hL7l92)^;Iwl9g;1CS|9Ee#^}4{`TRHazp;m`Pcq;D zDX1k{Q+epAr_grG6r08r#O>Mm0jZ$C6MGg^Br7^*IQhj_62Ao4J{uRO%PT{Uq9A^% zmfxl<*VJy#ka2pl>LBXq+1ux|{yB?)JTXxq?+^q7IW^Np8Rh74z>g+`*}`sR1TF*q zMk@hd!0-u#v`%4Z~0HVNY3bB~CB7zd6JvacEx?g$^X-(LZXjTDN z!+ke8Z$Jt_mP8CdiL>Czkdu@?Kpvz0n0<>iin9)I295aAWuc*eg+kg!I}DOyTyEQA zkQMud7C7@&3YUW6Jff{(ICs3f%Q}c1wbkstW2~3y!c><{G}IQ)(D}m{8tJ={VqJ$S z5r9q47`o6e=K1LP-kDTZd6A`lKhj8J`gc^E>8;l|HOP`T5zH+k^v_AM8`iJiRSvl+ z8)^{3IdyD0q2TAlDFS?j{KmoQjO(bLds`S`yZX{@k_}h@0WPO)CSfj|la`CoNpd)V zAj9+}1SYU0xey0KWS4c%2Sji&u{1hfn4|{56f-m|xq1n8cnc(bi?n`P9V?EGr~_}M zd__(L;yf5YY&3j`P22_Zb92jDSLOYkm_=t##_I`5;#F2BDiBBssZKMmsSx>Y%!~o-}7e_t2w*Ns^1uyJV zUx&U}BT6SLI&k&ES6Pxu^B;X5iK%2!z^f-cP3t<37(*X|!AY{LKwkwyGSJ&etdQ0D z8+p#Gt#|(M*=qs4k7&c#&L}(o_9NELoT8qq?Fe*gKff)2{PU9&)0Zz@TC>n%2(%1~ zc+`*OEuyyB^j^?js#9D+PMB-Wk;4bU#o0^s07Sag6P2<=2s-Od7VU-&JeM~Io;=CI zQ~@;s3knsoV(b?=Naw#p4(kpNH{v^7GlweWcRAd8n1v4`LO@y2F^GMUpKo~L1C|4% zM>10)r$JeLx&W|(Zk9*q6G9S1ElIRMKFV-i&t{`X3 zfrdw6Rv!4lb50N$N8CBl2|@7J;|+ukO%1r=WW)R7mLr}C6> zk|3mLf1FkWSTi}KvAeLVAD}}e^w0LN0*^^@(9nichNxJC1^k(9R$oT*Tt`NW?Cr&| z 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%0Dd^>Ew()$C;&eWA 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�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

mZ@^QJYV}irig{ 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∈4_lQTPvNC{s8^B|)-wOgTq~)78?`Z6|4OrI% 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%0Aa!r%!yC;sm4B`6hzyHn$AeRjX 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 gU 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 T>61eWer8yHZ*g|2-R}Pfe)Kpr literal 355027 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%0Aig-y|sQ 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

Hav&uylf26N(!8QMB7LL3@nh|} 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 I)7|#}FF>om7XSbN From 77f2c2e2f735c05fc92ff7cd306644fb3c5f28bb Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Tue, 7 Jan 2025 09:38:53 +0100 Subject: [PATCH 35/37] - Change float32 to float64 in build parameter script to retain full precision. Adjust airocean source file and tests. --- scripts/build_airocean_parameters.py | 12 +- src/projections/airocean.cpp | 15 ++- test/gie/builtins.gie | 184 +++++++++++++-------------- 3 files changed, 106 insertions(+), 105 deletions(-) diff --git a/scripts/build_airocean_parameters.py b/scripts/build_airocean_parameters.py index b242908128..66b8882f1c 100755 --- a/scripts/build_airocean_parameters.py +++ b/scripts/build_airocean_parameters.py @@ -217,7 +217,7 @@ def zap_zero_or_one(vals, eps=1e-12, verbose=False): def translation(dx=0, dy=0): - res = np.eye(4, dtype=np.float32) + res = np.eye(4, dtype=np.float64) res[[0, 1], 3] = dx, dy return res @@ -230,7 +230,7 @@ def rotation(angle): [np.cos(angle), -np.sin(angle)], [np.sin(angle), np.cos(angle)], ], - dtype=np.float32, + dtype=np.float64, ) ) return res @@ -712,7 +712,7 @@ def rotation(angle): ], ], ], - dtype=np.float32, + dtype=np.float64, ) ico_20_centers = np.array( [ @@ -737,7 +737,7 @@ def rotation(angle): [-0.5884910224298405, 0.5302967343924689, 0.06276480180379439], [-0.08682595643253764, 0.3823838837835094, -0.6911725899118975], ], - dtype=np.float32, + dtype=np.float64, ) @@ -774,7 +774,7 @@ def rotation(angle): a.T @ np.linalg.inv(b.T) for i, (a, b) in enumerate(zip(ico_basis, airocean_basis)) ], - dtype=np.float32, + dtype=np.float64, ) ) ico_air_trans = zap_zero_or_one( @@ -783,7 +783,7 @@ def rotation(angle): b.T @ np.linalg.inv(a.T) for i, (a, b) in enumerate(zip(ico_basis, airocean_basis)) ], - dtype=np.float32, + dtype=np.float64, ) ) diff --git a/src/projections/airocean.cpp b/src/projections/airocean.cpp index 5e7530a627..970e4f777f 100644 --- a/src/projections/airocean.cpp +++ b/src/projections/airocean.cpp @@ -39,11 +39,11 @@ namespace { // anonymous namespace (relative to the root of the project) */ // Define the 23 faces and subfaces -constexpr pj_face base_ico_faces[23] = {{{0.4201524257659912, 0.07814525067806244, 0.9040825366973877}, {0.5188367366790771, 0.8354203701019287, 0.1813318431377411}, {0.9950094223022461, -0.09134779870510101, 0.04014717414975166}}, {{0.4201524257659912, 0.07814525067806244, 0.9040825366973877}, {-0.4146822392940521, 0.6559624075889587, 0.6306757926940918}, {0.5188367366790771, 0.8354203701019287, 0.1813318431377411}}, {{0.4201524257659912, 0.07814525067806244, 0.9040825366973877}, {-0.515455961227417, -0.38171690702438354, 0.7672010064125061}, {-0.4146822392940521, 0.6559624075889587, 0.6306757926940918}}, {{0.4201524257659912, 0.07814525067806244, 0.9040825366973877}, {0.3557814061641693, -0.8435800075531006, 0.4022342264652252}, {-0.515455961227417, -0.38171690702438354, 0.7672010064125061}}, {{0.4201524257659912, 0.07814525067806244, 0.9040825366973877}, {0.9950094223022461, -0.09134779870510101, 0.04014717414975166}, {0.3557814061641693, -0.8435800075531006, 0.4022342264652252}}, {{0.9950094223022461, -0.09134779870510101, 0.04014717414975166}, {0.5188367366790771, 0.8354203701019287, 0.1813318431377411}, {0.515455961227417, 0.38171690702438354, -0.7672010064125061}}, {{0.515455961227417, 0.38171690702438354, -0.7672010064125061}, {0.5188367366790771, 0.8354203701019287, 0.1813318431377411}, {-0.3557814061641693, 0.8435800075531006, -0.4022342264652252}}, {{-0.3557814061641693, 0.8435800075531006, -0.4022342264652252}, {0.5188367366790771, 0.8354203701019287, 0.1813318431377411}, {-0.4146822392940521, 0.6559624075889587, 0.6306757926940918}}, {{-0.515455961227417, -0.38171690702438354, 0.7672010064125061}, {-0.9950094223022461, 0.09134779870510101, -0.04014717414975166}, {-0.4146822392940521, 0.6559624075889587, 0.6306757926940918}}, {{-0.515455961227417, -0.38171690702438354, 0.7672010064125061}, {-0.5188367366790771, -0.8354203701019287, -0.1813318431377411}, {-0.9950094223022461, 0.09134779870510101, -0.04014717414975166}}, {{-0.515455961227417, -0.38171690702438354, 0.7672010064125061}, {0.3557814061641693, -0.8435800075531006, 0.4022342264652252}, {-0.5188367366790771, -0.8354203701019287, -0.1813318431377411}}, {{-0.5188367366790771, -0.8354203701019287, -0.1813318431377411}, {0.3557814061641693, -0.8435800075531006, 0.4022342264652252}, {0.4146822392940521, -0.6559624075889587, -0.6306757926940918}}, {{0.4146822392940521, -0.6559624075889587, -0.6306757926940918}, {0.3557814061641693, -0.8435800075531006, 0.4022342264652252}, {0.9950094223022461, -0.09134779870510101, 0.04014717414975166}}, {{0.515455961227417, 0.38171690702438354, -0.7672010064125061}, {0.4146822392940521, -0.6559624075889587, -0.6306757926940918}, {0.9950094223022461, -0.09134779870510101, 0.04014717414975166}}, {{-0.4201524257659912, -0.07814525067806244, -0.9040825366973877}, {-0.3557814061641693, 0.8435800075531006, -0.4022342264652252}, {-0.9950094223022461, 0.09134779870510101, -0.04014717414975166}}, {{-0.4201524257659912, -0.07814525067806244, -0.9040825366973877}, {-0.9950094223022461, 0.09134779870510101, -0.04014717414975166}, {-0.5188367366790771, -0.8354203701019287, -0.1813318431377411}}, {{-0.4201524257659912, -0.07814525067806244, -0.9040825366973877}, {-0.5188367366790771, -0.8354203701019287, -0.1813318431377411}, {0.4146822392940521, -0.6559624075889587, -0.6306757926940918}}, {{-0.4201524257659912, -0.07814525067806244, -0.9040825366973877}, {0.4146822392940521, -0.6559624075889587, -0.6306757926940918}, {0.515455961227417, 0.38171690702438354, -0.7672010064125061}}, {{-0.3557814061641693, 0.8435800075531006, -0.4022342264652252}, {-0.38796690106391907, 0.3827173709869385, -0.6531583666801453}, {0.515455961227417, 0.38171690702438354, -0.7672010064125061}}, {{-0.4201524257659912, -0.07814525067806244, -0.9040825366973877}, {0.515455961227417, 0.38171690702438354, -0.7672010064125061}, {-0.38796690106391907, 0.3827173709869385, -0.6531583666801453}}, {{-0.9950094223022461, 0.09134779870510101, -0.04014717414975166}, {-0.3557814061641693, 0.8435800075531006, -0.4022342264652252}, {-0.5884910225868225, 0.5302967429161072, 0.06276480108499527}}, {{-0.3557814061641693, 0.8435800075531006, -0.4022342264652252}, {-0.4146822392940521, 0.6559624075889587, 0.6306757926940918}, {-0.5884910225868225, 0.5302967429161072, 0.06276480108499527}}, {{-0.9950094223022461, 0.09134779870510101, -0.04014717414975166}, {-0.5884910225868225, 0.5302967429161072, 0.06276480108499527}, {-0.4146822392940521, 0.6559624075889587, 0.6306757926940918}}}; +constexpr pj_face base_ico_faces[23] = {{{0.42015242670871, 0.07814524940278296, 0.9040825506150193}, {0.5188367303273644, 0.8354203803782358, 0.18133183755726245}, {0.9950094394362416, -0.09134779527642793, 0.040147175877166645}}, {{0.42015242670871, 0.07814524940278296, 0.9040825506150193}, {-0.4146822253203352, 0.6559624054348008, 0.6306758078914754}, {0.5188367303273644, 0.8354203803782358, 0.18133183755726245}}, {{0.42015242670871, 0.07814524940278296, 0.9040825506150193}, {-0.5154559599440418, -0.381716898287133, 0.7672009925177475}, {-0.4146822253203352, 0.6559624054348008, 0.6306758078914754}}, {{0.42015242670871, 0.07814524940278296, 0.9040825506150193}, {0.3557814025329447, -0.8435800024661781, 0.40223422660292557}, {-0.5154559599440418, -0.381716898287133, 0.7672009925177475}}, {{0.42015242670871, 0.07814524940278296, 0.9040825506150193}, {0.9950094394362416, -0.09134779527642793, 0.040147175877166645}, {0.3557814025329447, -0.8435800024661781, 0.40223422660292557}}, {{0.9950094394362416, -0.09134779527642793, 0.040147175877166645}, {0.5188367303273644, 0.8354203803782358, 0.18133183755726245}, {0.5154559599440418, 0.381716898287133, -0.7672009925177475}}, {{0.5154559599440418, 0.381716898287133, -0.7672009925177475}, {0.5188367303273644, 0.8354203803782358, 0.18133183755726245}, {-0.3557814025329447, 0.8435800024661781, -0.40223422660292557}}, {{-0.3557814025329447, 0.8435800024661781, -0.40223422660292557}, {0.5188367303273644, 0.8354203803782358, 0.18133183755726245}, {-0.4146822253203352, 0.6559624054348008, 0.6306758078914754}}, {{-0.5154559599440418, -0.381716898287133, 0.7672009925177475}, {-0.9950094394362416, 0.09134779527642793, -0.040147175877166645}, {-0.4146822253203352, 0.6559624054348008, 0.6306758078914754}}, {{-0.5154559599440418, -0.381716898287133, 0.7672009925177475}, {-0.5188367303273644, -0.8354203803782358, -0.18133183755726245}, {-0.9950094394362416, 0.09134779527642793, -0.040147175877166645}}, {{-0.5154559599440418, -0.381716898287133, 0.7672009925177475}, {0.3557814025329447, -0.8435800024661781, 0.40223422660292557}, {-0.5188367303273644, -0.8354203803782358, -0.18133183755726245}}, {{-0.5188367303273644, -0.8354203803782358, -0.18133183755726245}, {0.3557814025329447, -0.8435800024661781, 0.40223422660292557}, {0.4146822253203352, -0.6559624054348008, -0.6306758078914754}}, {{0.4146822253203352, -0.6559624054348008, -0.6306758078914754}, {0.3557814025329447, -0.8435800024661781, 0.40223422660292557}, {0.9950094394362416, -0.09134779527642793, 0.040147175877166645}}, {{0.5154559599440418, 0.381716898287133, -0.7672009925177475}, {0.4146822253203352, -0.6559624054348008, -0.6306758078914754}, {0.9950094394362416, -0.09134779527642793, 0.040147175877166645}}, {{-0.42015242670871, -0.07814524940278296, -0.9040825506150193}, {-0.3557814025329447, 0.8435800024661781, -0.40223422660292557}, {-0.9950094394362416, 0.09134779527642793, -0.040147175877166645}}, {{-0.42015242670871, -0.07814524940278296, -0.9040825506150193}, {-0.9950094394362416, 0.09134779527642793, -0.040147175877166645}, {-0.5188367303273644, -0.8354203803782358, -0.18133183755726245}}, {{-0.42015242670871, -0.07814524940278296, -0.9040825506150193}, {-0.5188367303273644, -0.8354203803782358, -0.18133183755726245}, {0.4146822253203352, -0.6559624054348008, -0.6306758078914754}}, {{-0.42015242670871, -0.07814524940278296, -0.9040825506150193}, {0.4146822253203352, -0.6559624054348008, -0.6306758078914754}, {0.5154559599440418, 0.381716898287133, -0.7672009925177475}}, {{-0.3557814025329447, 0.8435800024661781, -0.40223422660292557}, {-0.38796691462082733, 0.3827173765316976, -0.6531583886089725}, {0.5154559599440418, 0.381716898287133, -0.7672009925177475}}, {{-0.42015242670871, -0.07814524940278296, -0.9040825506150193}, {0.5154559599440418, 0.381716898287133, -0.7672009925177475}, {-0.38796691462082733, 0.3827173765316976, -0.6531583886089725}}, {{-0.9950094394362416, 0.09134779527642793, -0.040147175877166645}, {-0.3557814025329447, 0.8435800024661781, -0.40223422660292557}, {-0.5884910224298405, 0.5302967343924689, 0.06276480180379439}}, {{-0.3557814025329447, 0.8435800024661781, -0.40223422660292557}, {-0.4146822253203352, 0.6559624054348008, 0.6306758078914754}, {-0.5884910224298405, 0.5302967343924689, 0.06276480180379439}}, {{-0.9950094394362416, 0.09134779527642793, -0.040147175877166645}, {-0.5884910224298405, 0.5302967343924689, 0.06276480180379439}, {-0.4146822253203352, 0.6559624054348008, 0.6306758078914754}}}; // // Define the centers for each face or subface -constexpr PJ_XYZ base_ico_centers[23] = {{0.6446661949157715, 0.2740726172924042, 0.3751871883869171}, {0.17476896941661835, 0.5231760144233704, 0.5720300674438477}, {-0.1699952632188797, 0.11746358871459961, 0.7673197388648987}, {0.08682596683502197, -0.38238391280174255, 0.6911725997924805}, {0.5903144478797913, -0.2855941951274872, 0.4488213062286377}, {0.6764340400695801, 0.37526312470436096, -0.18190734088420868}, {0.22617042064666748, 0.6869058012962341, -0.3293677866458893}, {-0.0838756337761879, 0.7783209681510925, 0.1365911364555359}, {-0.6417158842086792, 0.1218644380569458, 0.45257654786109924}, {-0.6764340400695801, -0.37526318430900574, 0.18190734088420868}, {-0.22617042064666748, -0.6869058012962341, 0.3293677866458893}, {0.0838756337761879, -0.7783209681510925, -0.1365911364555359}, {0.5884910225868225, -0.5302967429161072, -0.06276480108499527}, {0.6417158842086792, -0.1218644380569458, -0.45257651805877686}, {-0.5903144478797913, 0.2855941951274872, -0.4488213062286377}, {-0.6446661949157715, -0.2740726172924042, -0.3751871883869171}, {-0.17476896941661835, -0.5231760144233704, -0.5720300674438477}, {0.1699952632188797, -0.11746358871459961, -0.7673197388648987}, {-0.07609745115041733, 0.5360047817230225, -0.6075312495231628}, {-0.09755445271730423, 0.22876299917697906, -0.7748139500617981}, {-0.64642733335495, 0.4884081780910492, -0.12653887271881104}, {-0.45298489928245544, 0.6766130924224854, 0.09706878662109375}, {-0.6660608649253845, 0.4258689880371094, 0.2177644819021225}}; +constexpr PJ_XYZ base_ico_centers[23] = {{0.6446661988241054, 0.27407261150153034, 0.37518718801648276}, {0.17476897723857973, 0.5231760117386065, 0.5720300653545857}, {-0.16999525285188902, 0.1174635855168169, 0.7673197836747474}, {0.08682595643253761, -0.3823838837835094, 0.6911725899118975}, {0.5903144228926321, -0.28559418277994103, 0.44882131769837047}, {0.6764340432358825, 0.375263161129647, -0.18190732636110615}, {0.22617042924615385, 0.6869057603771823, -0.3293677938544702}, {-0.0838756325086385, 0.778320929426405, 0.13659113961527075}, {-0.6417158749002062, 0.12186443414136523, 0.45257654151068544}, {-0.6764340432358825, -0.375263161129647, 0.18190732636110615}, {-0.22617042924615385, -0.6869057603771823, 0.32936779385447024}, {0.0838756325086385, -0.778320929426405, -0.13659113961527075}, {0.5884910224298405, -0.5302967343924689, -0.06276480180379439}, {0.6417158749002062, -0.12186443414136523, -0.4525765415106855}, {-0.5903144228926321, 0.28559418277994103, -0.44882131769837047}, {-0.6446661988241054, -0.2740726115015303, -0.37518718801648276}, {-0.17476897723857973, -0.5231760117386065, -0.5720300653545857}, {0.16999525285188902, -0.11746358551681692, -0.7673197836747474}, {-0.07609745240324339, 0.5360047590950029, -0.6075312025765486}, {-0.09755446046183185, 0.2287630084720159, -0.7748139772472463}, {-0.646427288133009, 0.48840817737835834, -0.12653886689209928}, {-0.4529848834277068, 0.6766130474311494, 0.09706879436411474}, {-0.6660608957288058, 0.4258689783678992, 0.2177644779393677}}; // // Define the normals for each face and subface -constexpr PJ_XYZ base_ico_normals[23] = {{0.8112534880638123, 0.3448953330516815, 0.47213879227638245}, {0.2199307233095169, 0.6583691835403442, 0.719847559928894}, {-0.21392348408699036, 0.1478172093629837, 0.9656018614768982}, {0.10926257073879242, -0.4811951518058777, 0.869777500629425}, {0.7428567409515381, -0.35939422249794006, 0.5648006200790405}, {0.8512303829193115, 0.4722343385219574, -0.22891369462013245}, {0.28461483120918274, 0.8644080758094788, -0.41447925567626953}, {-0.10554979741573334, 0.9794456958770752, 0.17188747227191925}, {-0.807540774345398, 0.15335525572299957, 0.569526195526123}, {-0.8512304425239563, -0.4722343385219574, 0.22891372442245483}, {-0.28461483120918274, -0.8644080758094788, 0.41447925567626953}, {0.10554979741573334, -0.9794456958770752, -0.17188745737075806}, {0.7405621409416199, -0.6673299074172974, -0.07898375391960144}, {0.807540774345398, -0.15335525572299957, -0.569526195526123}, {-0.7428567409515381, 0.35939422249794006, -0.5648006200790405}, {-0.8112534880638123, -0.3448953330516815, -0.47213879227638245}, {-0.2199307233095169, -0.6583691835403442, -0.719847559928894}, {0.21392348408699036, -0.1478172093629837, -0.9656018614768982}, {-0.10926257818937302, 0.4811951220035553, -0.8697775602340698}, {-0.10926257073879242, 0.4811951518058777, -0.869777500629425}, {-0.7405622601509094, 0.6673299670219421, 0.07898380607366562}, {-0.7405621409416199, 0.6673299670219421, 0.07898376882076263}, {-0.7405622005462646, 0.6673300266265869, 0.07898370921611786}}; +constexpr PJ_XYZ base_ico_normals[23] = {{0.8112534709140969, 0.34489532376393844, 0.47213877364139306}, {0.21993077914046083, 0.6583691780274996, 0.7198475378926182}, {-0.21392348345014195, 0.1478171829550702, 0.9656017935214206}, {0.10926252787847963, -0.4811951572873208, 0.8697775121287253}, {0.7428567301586793, -0.35939416782780276, 0.5648005936517034}, {0.8512303986474292, 0.4722343788582682, -0.2289137388687808}, {0.2846148069787909, 0.8644080972654203, -0.4144792552473538}, {-0.10554981496139187, 0.9794457296411412, 0.17188746100093646}, {-0.8075407579970092, 0.15335524858988167, 0.5695261994882688}, {-0.8512303986474292, -0.4722343788582682, 0.22891373886878083}, {-0.2846148069787909, -0.8644080972654203, 0.4144792552473538}, {0.10554981496139185, -0.9794457296411412, -0.17188746100093638}, {0.7405621473854482, -0.6673299564565524, -0.07898376463267347}, {0.8075407579970092, -0.15335524858988167, -0.5695261994882688}, {-0.7428567301586793, 0.35939416782780276, -0.5648005936517034}, {-0.8112534709140969, -0.34489532376393844, -0.47213877364139306}, {-0.21993077914046083, -0.6583691780274996, -0.7198475378926182}, {0.21392348345014195, -0.1478171829550702, -0.9656017935214206}, {-0.10926252787847963, 0.4811951572873209, -0.8697775121287253}, {-0.10926252787847968, 0.4811951572873209, -0.8697775121287253}, {-0.740562147385448, 0.6673299564565524, 0.07898376463267354}, {-0.7405621473854481, 0.6673299564565524, 0.07898376463267347}, {-0.7405621473854481, 0.6673299564565525, 0.07898376463267329}}; // /* // The points of the Airocean projection map are deduced from the unfolded net @@ -61,16 +61,17 @@ constexpr pj_face base_airocean_faces[23] = {{{1.8211859946200586, 3.15438667271 // the irrelevant ones has been discarded. // */ // // Icosahedron to Airocean (forward) -constexpr double base_ico_air_trans[23][4][4] = {{{0.5771127939224243, -0.6019490957260132, -0.5519041419029236, 2.1247169971466064}, {0.09385434538125992, 0.7202114462852478, -0.6873767971992493, 3.6801178455352783}, {0.8112534284591675, 0.34489527344703674, 0.47213873267173767, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.9709901213645935, -0.21873608231544495, -0.09660579264163971, 1.5176548957824707}, {0.09385436028242111, 0.7202114462852478, -0.6873767971992493, 3.6801178455352783}, {0.2199307531118393, 0.6583691239356995, 0.7198475003242493, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721373915672302, -0.0647682175040245, 0.2252863347530365, 1.2141239643096924}, {0.09584151208400726, 0.9868916273117065, -0.12984317541122437, 3.1543867588043213}, {-0.21392345428466797, 0.1478171944618225, 0.9656017422676086, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.9921258687973022, -0.0010986793786287308, -0.12523998320102692, 1.5176550149917603}, {0.06122048944234848, 0.8766127824783325, 0.47728613018989563, 2.628655433654785}, {0.10926255583763123, -0.4811951816082001, 0.8697775602340698, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.2803041338920593, -0.5991800427436829, -0.7499419450759888, 2.4282479286193848}, {0.6079420447349548, 0.7154152989387512, -0.3443652391433716, 3.154386520385742}, {0.7428567409515381, -0.3593941330909729, 0.5648005604743958, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.25960659980773926, -0.7580069899559021, -0.5983559489250183, 2.4282479286193848}, {-0.45608240365982056, 0.44991129636764526, -0.7678337097167969, 4.205848693847656}, {0.8512304425239563, 0.4722343981266022, -0.22891373932361603, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.9586365818977356, -0.25808605551719666, 0.12003126740455627, 1.5176550149917603}, {-0.003215298056602478, -0.43149760365486145, -0.9021083116531372, 4.731579780578613}, {0.28461480140686035, 0.8644081354141235, -0.41447922587394714, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.9928349256515503, 0.09405866265296936, 0.07370038330554962, 1.2141239643096924}, {0.056018028408288956, 0.17843492329120636, -0.9823558330535889, 4.205848693847656}, {-0.10554979741573334, 0.9794456958770752, 0.17188745737075806, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.5819727778434753, 0.05026942864060402, 0.8116530776023865, 0.6070619821548462}, {0.09584151953458786, 0.9868916273117065, -0.12984316051006317, 3.1543867588043213}, {-0.807540774345398, 0.15335525572299957, 0.569526195526123, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.5247822999954224, -0.7686380743980408, 0.36578553915023804, 0.6070619821548462}, {0.0032153178472071886, 0.4314976632595062, 0.9021083116531372, 2.102924346923828}, {-0.8512304425239563, -0.4722343683242798, 0.22891372442245483, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.9586365818977356, -0.25808605551719666, 0.12003126740455627, 1.2141239643096924}, {0.003215298056602478, 0.43149760365486145, 0.9021083116531372, 2.102924346923828}, {-0.28461480140686035, -0.8644081354141235, 0.41447922587394714, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.9928349256515503, 0.09405866265296936, 0.07370038330554962, 1.5176550149917603}, {-0.056018028408288956, -0.17843492329120636, 0.9823558330535889, 1.5771933794021606}, {0.10554979741573334, -0.9794456958770752, -0.17188745737075806, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696488857269287, 0.7230710983276367, 0.169524684548378, 2.1247169971466064}, {-0.056018002331256866, -0.17843493819236755, 0.9823558330535889, 1.5771933794021606}, {0.7405622005462646, -0.6673299670219421, -0.07898376137018204, -0.7946545481681824}, {0.0, 0.0, 0.0, 1.0}}, {{0.5819727778434753, 0.05026942864060402, 0.8116530776023865, 2.1247169971466064}, {-0.09584151953458786, -0.9868916273117065, 0.12984316051006317, 0.525731086730957}, {0.807540774345398, -0.15335525572299957, -0.569526195526123, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.3863411843776703, 0.919157862663269, 0.07674192637205124, 0.30353105068206787}, {0.5467215180397034, -0.1611974686384201, -0.8216513991355896, 4.7315802574157715}, {-0.7428567409515381, 0.3593941330909729, -0.5648005604743958, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.2072761356830597, -0.9246959686279297, 0.3193337023258209, 0.3035309910774231}, {-0.5467215180397034, 0.1611974686384201, 0.8216513991355896, 1.5771933794021606}, {-0.8112534284591675, -0.34489527344703674, -0.47213873267173767, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.9709901213645935, -0.21873608231544495, -0.09660579264163971, 1.214124083518982}, {-0.09385436028242111, -0.7202114462852478, 0.6873767971992493, 1.0514622926712036}, {-0.2199307531118393, -0.6583691239356995, -0.7198475003242493, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721373915672302, -0.0647682175040245, 0.2252863347530365, 1.5176550149917603}, {-0.09584151208400726, -0.9868916273117065, 0.12984317541122437, 0.5257311463356018}, {0.21392345428466797, -0.1478171944618225, -0.9656017422676086, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.5490814447402954, 0.7586196660995483, 0.3507218658924103, 0.6070619225502014}, {0.8285959959030151, -0.4392578899860382, -0.347104012966156, 5.2573113441467285}, {-0.10926257073879242, 0.4811950922012329, -0.869777500629425, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.9921258687973022, -0.0010987052228301764, -0.12523998320102692, 1.2141239643096924}, {-0.06122048571705818, -0.8766128420829773, -0.47728610038757324, 1.6207629016662395e-08}, {-0.10926257073879242, 0.4811951816082001, -0.869777500629425, -0.7946544885635376}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696488261222839, 0.7230710983276367, 0.1695246696472168, 0.6070619225502014}, {0.05601797252893448, 0.17843496799468994, -0.9823558330535889, 4.205848693847656}, {-0.7405620813369751, 0.6673298478126526, 0.07898373901844025, -0.794654369354248}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696490049362183, 0.7230709791183472, 0.1695246696472168, 0.607062041759491}, {0.05601801350712776, 0.17843490839004517, -0.9823558330535889, 4.205848693847656}, {-0.7405621409416199, 0.6673299074172974, 0.07898375391960144, -0.7946544289588928}, {0.0, 0.0, 0.0, 1.0}}, {{0.28631141781806946, 0.20700636506080627, 0.9355074763298035, 0.3035309612751007}, {0.6079419851303101, 0.715415358543396, -0.3443652391433716, 3.6801178455352783}, {-0.7405620813369751, 0.6673298478126526, 0.07898375391960144, -0.794654369354248}, {0.0, 0.0, 0.0, 1.0}}}; +constexpr double base_ico_air_trans[23][4][4] = {{{0.5771127852625935, -0.6019490725122667, -0.5519041105011566, 2.1247169937234016}, {0.09385435001257117, 0.7202114479424703, -0.6873767753105484, 3.6801177848339357}, {0.8112534709140967, 0.3448953237639384, 0.4721387736413929, -0.7946544722917659}, {0.0, 0.0, 0.0, 1.0}}, {{0.9709901201198636, -0.2187361325341673, -0.09660585361978567, 1.5176549955167156}, {0.09385435001257089, 0.7202114479424708, -0.687376775310548, 3.6801177848339353}, {0.21993077914046077, 0.6583691780274995, 0.7198475378926181, -0.7946544722917659}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721374115064793, -0.06476823821979226, 0.2252863255224028, 1.2141239964133725}, {0.09584151698527507, 0.9868916636293633, -0.12984316647721492, 3.1543866727148013}, {-0.21392348345014195, 0.1478171829550702, 0.9656017935214207, -0.7946544722917663}, {0.0, 0.0, 0.0, 1.0}}, {{0.9921258753731454, -0.0010987106726278763, -0.1252399307326839, 1.5176549955167151}, {0.06122048200295415, 0.8766128070237673, 0.47728611874350335, 2.6286555605956674}, {0.10926252787847969, -0.4811951572873209, 0.8697775121287256, -0.7946544722917663}, {0.0, 0.0, 0.0, 1.0}}, {{0.28030414798915965, -0.5991800396948614, -0.7499419075177327, 2.428247992826745}, {0.6079419898954396, 0.7154153424148981, -0.34436524905882676, 3.1543866727148013}, {0.742856730158679, -0.3593941678278027, 0.5648005936517032, -0.794654472291766}, {0.0, 0.0, 0.0, 1.0}}, {{0.25960661905056537, -0.7580069591045613, -0.5983559586852888, 2.428247992826744}, {-0.4560824615830708, 0.4499112594427941, -0.7678337364709403, 4.205848896953069}, {0.8512303986474292, 0.47223437885826813, -0.22891373886878083, -0.7946544722917661}, {0.0, 0.0, 0.0, 1.0}}, {{0.958636570067365, -0.258086064605963, 0.12003128669511368, 1.5176549955167158}, {-0.003215303703157293, -0.43149765310854393, -0.9021083289627215, 4.731580009072202}, {0.2846148069787908, 0.8644080972654206, -0.41447925524735385, -0.7946544722917662}, {0.0, 0.0, 0.0, 1.0}}, {{0.992834940445074, 0.09405868118990741, 0.07370037668995856, 1.2141239964133723}, {0.056018011327093935, 0.17843493822832973, -0.982355819052552, 4.205848896953068}, {-0.10554981496139189, 0.9794457296411413, 0.17188746100093644, -0.7946544722917662}, {0.0, 0.0, 0.0, 1.0}}, {{0.5819727895662967, 0.05026939415592827, 0.8116530417706931, 0.6070619982066865}, {0.09584151698527442, 0.9868916636293634, -0.1298431664772149, 3.1543866727148013}, {-0.8075407579970093, 0.1533552485898817, 0.5695261994882689, -0.7946544722917663}, {0.0, 0.0, 0.0, 1.0}}, {{0.5247823074767625, -0.7686380596783918, 0.36578554232391575, 0.6070619982066867}, {0.0032153037031566203, 0.4314976531085445, 0.9021083289627214, 2.102924448476535}, {-0.8512303986474292, -0.47223437885826813, 0.22891373886878078, -0.7946544722917661}, {0.0, 0.0, 0.0, 1.0}}, {{0.9586365700673652, -0.2580860646059632, 0.12003128669511379, 1.2141239964133719}, {0.003215303703156878, 0.43149765310854465, 0.9021083289627218, 2.1029244484765344}, {-0.2846148069787909, -0.8644080972654204, 0.4144792552473538, -0.7946544722917662}, {0.0, 0.0, 0.0, 1.0}}, {{0.9928349404450738, 0.0940586811899076, 0.07370037668995869, 1.5176549955167153}, {-0.05601801132709388, -0.17843493822832968, 0.9823558190525513, 1.5771933363574009}, {0.10554981496139189, -0.9794457296411413, -0.17188746100093644, -0.7946544722917662}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696489291164518, 0.7230710214322986, 0.1695246580826539, 2.1247169937234016}, {-0.05601801132709365, -0.17843493822832943, 0.9823558190525516, 1.5771933363574009}, {0.7405621473854482, -0.6673299564565524, -0.07898376463267347, -0.7946544722917662}, {0.0, 0.0, 0.0, 1.0}}, {{0.5819727895662965, 0.050269394155928314, 0.811653041770693, 2.1247169937234016}, {-0.09584151698527484, -0.9868916636293626, 0.129843166477215, 0.5257311121191333}, {0.8075407579970093, -0.1533552485898817, -0.5695261994882689, -0.7946544722917663}, {0.0, 0.0, 0.0, 1.0}}, {{0.3863411332821331, 0.9191578806358752, 0.07674189989336716, 0.30353099910334314}, {0.5467215078924839, -0.16119746460886833, -0.8216513678023304, 4.731580009072203}, {-0.742856730158679, 0.35939416782780265, -0.5648005936517032, -0.794654472291766}, {0.0, 0.0, 0.0, 1.0}}, {{0.20727614126473407, -0.9246959462706865, 0.31933369413978446, 0.303530999103343}, {-0.5467215078924849, 0.1611974646088691, 0.8216513678023303, 1.5771933363574007}, {-0.8112534709140967, -0.34489532376393833, -0.47213877364139295, -0.794654472291766}, {0.0, 0.0, 0.0, 1.0}}, {{0.9709901201198639, -0.21873613253416718, -0.09660585361978535, 1.2141239964133725}, {-0.09385435001257073, -0.7202114479424704, 0.6873767753105484, 1.0514622242382674}, {-0.21993077914046086, -0.6583691780274995, -0.719847537892618, -0.794654472291766}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721374115064794, -0.0647682382197923, 0.2252863255224031, 1.5176549955167156}, {-0.09584151698527477, -0.9868916636293626, 0.12984316647721514, 0.5257311121191336}, {0.21392348345014198, -0.1478171829550702, -0.9656017935214205, -0.7946544722917661}, {0.0, 0.0, 0.0, 1.0}}, {{0.5490814303330593, 0.7586196048290541, 0.350721938339208, 0.6070619982066862}, {0.8285959708235409, -0.43925791486578636, -0.3471040209544599, 5.257311121191335}, {-0.10926252787847968, 0.48119515728732093, -0.8697775121287254, -0.7946544722917663}, {0.0, 0.0, 0.0, 1.0}}, {{0.9921258753731453, -0.0010987106726278503, -0.125239930732684, 1.2141239964133725}, {-0.061220482002954366, -0.8766128070237673, -0.4772861187435034, 0.0}, {-0.10926252787847965, 0.48119515728732093, -0.8697775121287254, -0.7946544722917663}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696489291164521, 0.7230710214322988, 0.169524658082654, 0.607061998206686}, {0.05601801132709396, 0.17843493822832968, -0.9823558190525518, 4.205848896953069}, {-0.7405621473854482, 0.6673299564565525, 0.07898376463267334, -0.7946544722917662}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696489291164525, 0.7230710214322987, 0.1695246580826538, 0.6070619982066863}, {0.05601801132709517, 0.1784349382283307, -0.9823558190525518, 4.205848896953069}, {-0.7405621473854483, 0.6673299564565526, 0.07898376463267348, -0.7946544722917663}, {0.0, 0.0, 0.0, 1.0}}, {{0.28631144367947836, 0.20700632128770896, 0.9355074238963061, 0.3035309991033428}, {0.6079419898954391, 0.7154153424148978, -0.3443652490588263, 3.6801177848339357}, {-0.7405621473854481, 0.6673299564565525, 0.07898376463267341, -0.7946544722917661}, {0.0, 0.0, 0.0, 1.0}}}; // // Airocean to Icosahedron (inverse) -constexpr double base_air_ico_trans[23][4][4] = {{{0.5771127343177795, 0.09385436028242111, 0.811253547668457, -0.9269301891326904}, {-0.6019490957260132, 0.7202114462852478, 0.3448953330516815, -1.0974189043045044}, {-0.5519040822982788, -0.6873767375946045, 0.47213879227638245, 4.077454566955566}, {0.0, 0.0, 0.0, 1.0}}, {{0.9709901213645935, 0.09385436028242111, 0.2199307233095169, -1.6442540884017944}, {-0.21873614192008972, 0.7202114462852478, 0.658369243144989, -1.7953208684921265}, {-0.09660584479570389, -0.6873767375946045, 0.719847559928894, 3.248271942138672}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721373915672302, 0.09584150463342667, -0.21392349898815155, -1.6526118516921997}, {-0.0647682324051857, 0.9868916869163513, 0.1478171944618225, -2.9169375896453857}, {0.2252863049507141, -0.12984319031238556, 0.9656018018722534, 0.9033699035644531}, {0.0, 0.0, 0.0, 1.0}}, {{0.9921258687973022, 0.061220478266477585, 0.10926257818937302, -1.5798063278198242}, {-0.0010987031273543835, 0.8766128420829773, -0.4811951518058777, -2.6850295066833496}, {-0.12523995339870453, 0.47728610038757324, 0.8697774410247803, -0.37337714433670044}, {0.0, 0.0, 0.0, 1.0}}, {{0.2803041338920593, 0.6079419851303101, 0.7428567409515381, -2.0080175399780273}, {-0.5991800427436829, 0.715415358543396, -0.35939422249794006, -1.087333083152771}, {-0.749941885471344, -0.3443652391433716, 0.5648006200790405, 3.3561272621154785}, {0.0, 0.0, 0.0, 1.0}}, {{0.25960659980773926, -0.45608243346214294, 0.8512303829193115, 1.9642586708068848}, {-0.7580069303512573, 0.4499112665653229, 0.472234308719635, 0.3236331641674042}, {-0.5983559489250183, -0.7678337693214417, -0.22891369462013245, 4.500442028045654}, {0.0, 0.0, 0.0, 1.0}}, {{0.9586365818977356, -0.0032153085339814425, 0.28461480140686035, -1.2134956121444702}, {-0.25808608531951904, -0.43149763345718384, 0.8644081354141235, 3.1202569007873535}, {0.12003128230571747, -0.902108371257782, -0.41447922587394714, 3.756864070892334}, {0.0, 0.0, 0.0, 1.0}}, {{0.9928349852561951, 0.05601802095770836, -0.10554980486631393, -1.524903655052185}, {0.09405866265296936, 0.17843493819236755, 0.9794458150863647, -0.08634835481643677}, {0.07370039075613022, -0.9823558330535889, 0.17188745737075806, 4.1787495613098145}, {0.0, 0.0, 0.0, 1.0}}, {{0.5819727778434753, 0.09584150463342667, -0.807540774345398, -1.297330617904663}, {0.050269387662410736, 0.9868916869163513, 0.15335524082183838, -3.0216901302337646}, {0.8116530179977417, -0.12984319031238556, 0.569526195526123, 0.36942845582962036}, {0.0, 0.0, 0.0, 1.0}}, {{0.5247822999954224, 0.0032153085339814425, -0.8512303829193115, -1.0017709732055664}, {-0.7686380743980408, 0.43149763345718384, -0.4722343683242798, -0.8160591125488281}, {0.36578553915023804, 0.902108371257782, 0.22891375422477722, -1.9372128248214722}, {0.0, 0.0, 0.0, 1.0}}, {{0.9586365818977356, 0.0032153085339814425, -0.28461480140686035, -1.3968356847763062}, {-0.25808608531951904, 0.43149763345718384, -0.8644081354141235, -1.2809642553329468}, {0.12003128230571747, 0.902108371257782, 0.41447922587394714, -1.7134307622909546}, {0.0, 0.0, 0.0, 1.0}}, {{0.9928349852561951, -0.05601802095770836, 0.10554980486631393, -1.3345540761947632}, {0.09405866265296936, -0.17843493819236755, -0.9794458150863647, -0.639643132686615}, {0.07370039075613022, 0.9823558330535889, -0.17188745737075806, -1.7978079319000244}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696488857269287, -0.05601802095770836, 0.7405621409416199, -0.7459721565246582}, {0.7230710387229919, -0.17843493819236755, -0.6673298478126526, -1.7851916551589966}, {0.1695246547460556, 0.9823558330535889, -0.07898375391960144, -1.9723217487335205}, {0.0, 0.0, 0.0, 1.0}}, {{0.5819727778434753, -0.09584150463342667, 0.807540774345398, -0.5444246530532837}, {0.050269387662410736, -0.9868916869163513, -0.15335524082183838, 0.2901670038700104}, {0.8116530179977417, 0.12984319031238556, -0.569526195526123, -2.2453720569610596}, {0.0, 0.0, 0.0, 1.0}}, {{0.3863411247730255, 0.5467215180397034, -0.7428567409515381, -3.2944374084472656}, {0.919157862663269, -0.1611974686384201, 0.35939422249794006, 0.769320011138916}, {0.07674188911914825, -0.8216513395309448, -0.5648006200790405, 3.4155943393707275}, {0.0, 0.0, 0.0, 1.0}}, {{0.2072761207818985, -0.5467215180397034, -0.811253547668457, 0.15470457077026367}, {-0.9246959090232849, 0.1611974686384201, -0.3448953330516815, -0.2476383000612259}, {0.31933367252349854, 0.8216513395309448, -0.47213879227638245, -1.7680178880691528}, {0.0, 0.0, 0.0, 1.0}}, {{0.9709901213645935, -0.09385436028242111, -0.2199307233095169, -1.254987120628357}, {-0.21873614192008972, -0.7202114462852478, -0.658369243144989, 0.49967190623283386}, {-0.09660584479570389, 0.6873767375946045, -0.719847559928894, -1.1774892807006836}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721373915672302, -0.09584150463342667, 0.21392349898815155, -1.254987120628357}, {-0.0647682324051857, -0.9868916869163513, -0.1478171944618225, 0.49967190623283386}, {0.2252863049507141, 0.12984319031238556, -0.9656018018722534, -1.1774892807006836}, {0.0, 0.0, 0.0, 1.0}}, {{0.5490813851356506, 0.8285959959030151, -0.10926257818937302, -4.776339054107666}, {0.7586196064949036, -0.4392579197883606, 0.4811951220035553, 2.231170177459717}, {0.35072189569473267, -0.3471040427684784, -0.8697775602340698, 0.9207513928413391}, {0.0, 0.0, 0.0, 1.0}}, {{0.9921258687973022, -0.061220504343509674, -0.10926257818937302, -1.2913897037506104}, {-0.0010986949782818556, -0.8766127824783325, 0.4811951220035553, 0.3837178349494934}, {-0.12523996829986572, -0.47728613018989563, -0.869777500629425, -0.5391157269477844}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696488857269287, 0.05601802095770836, -0.7405623197555542, -1.2306127548217773}, {0.7230710387229919, 0.17843492329120636, 0.6673299074172974, -0.6591225266456604}, {0.1695246547460556, -0.9823558330535889, 0.07898379862308502, 4.091493129730225}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696488857269287, 0.05601802095770836, -0.7405621409416199, -1.2306127548217773}, {0.7230709791183472, 0.17843493819236755, 0.6673300862312317, -0.6591225862503052}, {0.1695246398448944, -0.9823558330535889, 0.07898376882076263, 4.091493129730225}, {0.0, 0.0, 0.0, 1.0}}, {{0.28631141781806946, 0.6079419851303101, -0.7405622601509094, -2.912693500518799}, {0.2070063054561615, 0.715415358543396, 0.6673300266265869, -2.165348768234253}, {0.9355074167251587, -0.3443652391433716, 0.07898371666669846, 1.0461139678955078}, {0.0, 0.0, 0.0, 1.0}}}; +constexpr double base_air_ico_trans[23][4][4] = {{{0.577112785262594, 0.09385435001257074, 0.8112534709140972, -0.9269302059836626}, {-0.6019490725122669, 0.7202114479424705, 0.3448953237639385, -1.0974189231897016}, {-0.5519041105011576, -0.6873767753105482, 0.47213877364139284, 4.0774547262062395}, {0.0, 0.0, 0.0, 1.0}}, {{0.970990120119864, 0.09385435001257075, 0.21993077914046097, -1.6442540918239978}, {-0.21873613253416777, 0.7202114479424705, 0.6583691780274992, -1.7953209624349933}, {-0.09660585361978517, -0.6873767753105485, 0.7198475378926187, 3.248271917398959}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721374115064793, 0.09584151698527468, -0.21392348345014173, -1.6526118158442071}, {-0.06476823821979319, 0.9868916636293628, 0.14781718295507035, -2.916937653420916}, {0.22528632552240307, -0.12984316647721503, 0.9656017935214205, 0.9033698036730199}, {0.0, 0.0, 0.0, 1.0}}, {{0.9921258753731454, 0.061220482002954296, 0.10926252787847969, -1.5798063949483236}, {-0.0010987106726281115, 0.8766128070237668, -0.48119515728732043, -2.68502954971497}, {-0.12523993073268413, 0.4772861187435032, 0.8697775121287253, -0.3733772136037109}, {0.0, 0.0, 0.0, 1.0}}, {{0.2803041479891603, 0.6079419898954391, 0.7428567301586791, -2.0080176725529477}, {-0.5991800396948611, 0.7154153424148979, -0.35939416782780287, -1.0873330756182955}, {-0.7499419075177335, -0.3443652490588265, 0.5648005936517035, 3.3561274015422433}, {0.0, 0.0, 0.0, 1.0}}, {{0.2596066190505654, -0.4560824615830712, 0.8512303986474292, 1.9642587095706099}, {-0.7580069591045617, 0.4499112594427949, 0.47223437885826836, 0.3236332638697585}, {-0.5983559586852887, -0.7678337364709401, -0.22891373886878078, 4.500442002892026}, {0.0, 0.0, 0.0, 1.0}}, {{0.958636570067365, -0.003215303703156967, 0.28461480697879094, -1.2134956834766393}, {-0.2580860646059631, -0.43149765310854504, 0.8644080972654203, 3.1202570350096352}, {0.12003128669511316, -0.9021083289627222, -0.4144792552473535, 3.756863859611938}, {0.0, 0.0, 0.0, 1.0}}, {{0.992834940445074, 0.05601801132709367, -0.10554981496139178, -1.5249036493302057}, {0.09405868118990754, 0.17843493822832954, 0.9794457296411412, -0.08634836060276646}, {0.07370037668995799, -0.9823558190525513, 0.1718874610009362, 4.17874988170889}, {0.0, 0.0, 0.0, 1.0}}, {{0.581972789566297, 0.09584151698527493, -0.8075407579970092, -1.297330643307362}, {0.05026939415592872, 0.986891663629363, 0.15335524858988142, -3.0216901158893736}, {0.8116530417706934, -0.12984316647721506, 0.5695261994882689, 0.3694283780016493}, {0.0, 0.0, 0.0, 1.0}}, {{0.5247823074767624, 0.0032153037031565812, -0.8512303986474291, -1.0017709802028867}, {-0.7686380596783923, 0.431497653108545, -0.47223437885826824, -0.8160591689057779}, {0.36578554232391597, 0.9021083289627221, 0.22891373886878089, -1.937212836027187}, {0.0, 0.0, 0.0, 1.0}}, {{0.9586365700673654, 0.0032153037031565886, -0.2846148069787907, -1.3968356335709964}, {-0.258086064605963, 0.43149765310854504, -0.8644080972654202, -1.2809642403813966}, {0.12003128669511362, 0.9021083289627224, 0.41447925524735396, -1.7134307317924613}, {0.0, 0.0, 0.0, 1.0}}, {{0.9928349404450739, -0.05601801132709361, 0.10554981496139221, -1.3345540404002831}, {0.09405868118990741, -0.17843493822832956, -0.9794457296411411, -0.639643161258916}, {0.07370037668995856, 0.982355819052552, -0.17188746100093616, -1.7978079362118518}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696489291164524, -0.056018011327093886, 0.7405621473854481, -0.7459722029114777}, {0.723071021432299, -0.1784349382283297, -0.6673299564565522, -1.7851916257515466}, {0.16952465808265363, 0.9823558190525522, -0.07898376463267373, -1.9723217754287594}, {0.0, 0.0, 0.0, 1.0}}, {{0.5819727895662968, -0.09584151698527477, 0.8075407579970091, -0.5444247336640644}, {0.05026939415592821, -0.9868916636293631, -0.15335524858988164, 0.29016698169232114}, {0.8116530417706935, 0.1298431664772151, -0.569526199488269, -2.2453721446813035}, {0.0, 0.0, 0.0, 1.0}}, {{0.3863411332821329, 0.5467215078924852, -0.7428567301586795, -3.2944374903463687}, {0.9191578806358753, -0.16119746460886916, 0.3593941678278029, 0.7693199739932717}, {0.07674189989336772, -0.8216513678023304, -0.564800593651703, 3.4155943230742447}, {0.0, 0.0, 0.0, 1.0}}, {{0.20727614126473443, -0.546721507892485, -0.8112534709140969, 0.15470458601882164}, {-0.9246959462706867, 0.16119746460886913, -0.3448953237639384, -0.24763829408199384}, {0.31933369413978435, 0.8216513678023302, -0.4721387736413931, -1.768017925352872}, {0.0, 0.0, 0.0, 1.0}}, {{0.9709901201198642, -0.09385435001257068, -0.21993077914046077, -1.2549870787377553}, {-0.2187361325341676, -0.7202114479424703, -0.6583691780274997, 0.4996719066292349}, {-0.09660585361978546, 0.6873767753105482, -0.7198475378926181, -1.1774892933385632}, {0.0, 0.0, 0.0, 1.0}}, {{0.9721374115064794, -0.09584151698527459, 0.21392348345014212, -1.2549870787377553}, {-0.06476823821979266, -0.9868916636293628, -0.14781718295507024, 0.49967190662923483}, {0.2252863255224028, 0.12984316647721506, -0.9656017935214204, -1.1774892933385632}, {0.0, 0.0, 0.0, 1.0}}, {{0.5490814303330579, 0.8285959708235412, -0.10926252787847955, -4.776339239093644}, {0.7586196048290552, -0.4392579148657884, 0.4811951572873209, 2.231170271492442}, {0.3507219383392087, -0.3471040209544594, -0.8697775121287253, 0.9207512789590909}, {0.0, 0.0, 0.0, 1.0}}, {{0.9921258753731456, -0.061220482002954546, -0.10926252787847962, -1.2913897891856965}, {-0.00109871067262767, -0.8766128070237672, 0.48119515728732093, 0.38371785477626236}, {-0.12523993073268386, -0.47728611874350324, -0.8697775121287252, -0.5391157847001973}, {0.0, 0.0, 0.0, 1.0}}, {{0.6696489291164526, 0.0560180113270932, -0.7405621473854482, -1.2306127305858023}, {0.723071021432299, 0.17843493822832968, 0.6673299564565522, -0.6591225928490807}, {0.16952465808265377, -0.9823558190525503, 0.07898376463267326, 4.09149296210043}, {0.0, 0.0, 0.0, 1.0}}, {{0.669648929116452, 0.056018011327093706, -0.740562147385448, -1.230612730585803}, {0.7230710214322988, 0.1784349382283296, 0.6673299564565524, -0.6591225928490807}, {0.1695246580826554, -0.9823558190525514, 0.0789837646326731, 4.091492962100434}, {0.0, 0.0, 0.0, 1.0}}, {{0.2863114436794785, 0.6079419898954399, -0.7405621473854486, -2.9126935501461353}, {0.2070063212877089, 0.7154153424148983, 0.6673299564565521, -2.165348826292825}, {0.935507423896306, -0.3443652490588271, 0.07898376463267351, 1.046113976300111}, {0.0, 0.0, 0.0, 1.0}}}; // By default the resulting orientation of the projection is vertical // the following transforms are used to alter the projection data // so that the resulting orientation is horizontal instead -constexpr double orient_horizontal_trans[4][4] = {{0.0, -1.0, 0.0, 5.7830424308776855}, {1.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; -constexpr double orient_horizontal_inv_trans[4][4] = {{0.0, 1.0, 0.0, 0.0}, {-1.0, -0.0, -0.0, 5.7830424308776855}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; +constexpr double orient_horizontal_trans[4][4] = {{0.0, -1.0, 0.0, 5.78304223331047}, {1.0, 0.0, 0.0, 0.0}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; +constexpr double orient_horizontal_inv_trans[4][4] = {{0.0, 1.0, 0.0, 0.0}, {-1.0, -0.0, -0.0, 5.78304223331047}, {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0}}; + namespace { // anonymous namespace diff --git a/test/gie/builtins.gie b/test/gie/builtins.gie index 2e0b0cc612..2091af5502 100644 --- a/test/gie/builtins.gie +++ b/test/gie/builtins.gie @@ -1173,99 +1173,99 @@ operation +proj=airocean +ellps=GRS80 ------------------------------------------------------------------------------- tolerance 0.1 mm accept 23 28 -expect 13572113.67642112 23493648.8665927 +expect 13572113.73386754 23493648.55327798 accept 71 46 -expect 9714915.746556642 23488176.67510276 +expect 9714915.991790695 23488176.361173604 accept 147 75 -expect 7723484.372011362 20087142.323963434 +expect 7723484.49359606 20087141.837650128 accept -77 61 -expect 9679376.629009942 16802748.898850363 +expect 9679376.816000767 16802749.593532257 accept -26 35 -expect 15458567.272657597 20091164.932983194 +expect 15458567.83864155 20091165.592037637 accept 29 -13 -expect 15471812.823275734 26802281.428533867 +expect 15471813.400558881 26802282.415074058 accept 71 -25 -expect 9737211.04829846 30219176.923402365 +expect 9737210.823606653 30219178.19260869 accept 97 10 -expect 7670301.757522446 26816600.456473984 +expect 7670302.042847798 26816601.848991044 accept 169 35 -expect 3883710.779197455 20135416.248798802 +expect 3883710.702444233 20135415.72144515 accept -151 13 -expect 3859776.935840323 13387383.66888049 +expect 3859776.9744116343 13387384.422000753 accept -109 24 -expect 7674342.7697215555 13366008.623491792 +expect 7674343.074326526 13366009.083146008 accept -84 -9 -expect 9673007.644835116 10144952.453773642 +expect 9673007.441581018 10144952.26955531 accept -42 -4 -expect 13562062.11001925 10107762.010156654 +expect 13562062.520622183 10107761.706502315 accept -11 -34 -expect 13627060.370835315 3383645.3847061065 +expect 13627060.52678455 3383645.5697278716 accept 155 -35 -expect 1873264.8972642338 30211342.39334858 +expect 1873264.8705730252 30211340.763352156 accept -158 -28 -expect 1871227.8352742512 10115901.558726894 +expect 1871227.8450291778 10115901.323020123 accept -109 -46 -expect 7708744.837148189 6722251.433124948 +expect 7708744.672461299 6722251.06988263 accept -36 -75 -expect 9665810.840448067 3381178.1322935456 +expect 9665810.798055789 3381177.9821538515 accept 98 -49 -expect 4806946.397957796 33007547.884080105 +expect 4806946.337586326 33007546.454859577 accept 114 -72 -expect 7708905.668234003 1101688.9423256349 +expect 7708905.600709579 1101689.019137724 accept 143 -9 -expect 3219027.213591793 27948067.77306861 +expect 3219027.0687154396 27948068.75709961 accept 123 7 -expect 5239165.449000159 26821976.576842733 +expect 5239165.493429321 26821978.017945066 accept 147 16 -expect 2635947.790058463 22373573.465943452 +expect 2635947.740851659 22373572.978527334 direction inverse accept 13600000 23500000 -expect 22.773463669465208 27.74546930135053 +expect 22.77346472511832 27.745464601997153 accept 9700000 23500000 -expect 71.26672826705175 45.892054959435356 +expect 71.26673004703193 45.89205035111361 accept 7700000 20100000 -expect 146.99338119888958 74.69908678892135 +expect 146.99339940860168 74.69909794660227 accept 9700000 16800000 -expect -76.55527381469193 60.909673572344005 +expect -76.55528563752168 60.90966578454296 accept 15500000 20100000 -expect -26.125783684713483 34.53132937179701 +expect -26.125789701735282 34.531335035632864 accept 15500000 26800000 -expect 28.725666388118636 -13.176403675038557 +expect 28.72566754254401 -13.176397846758185 accept 9700000 30200000 -expect 71.49135123526806 -24.841628057194466 +expect 71.49135806675328 -24.84162689595362 accept 7700000 26800000 -expect 96.67475838846086 10.214239583859408 +expect 96.67476470896398 10.214265110489109 accept 3900000 20100000 -expect 169.44670138289803 35.24571549991959 +expect 169.4467058181239 35.245717462371594 accept 3900000 13400000 -expect -150.62222984709288 13.304606935920212 +expect -150.6222299120939 13.304599775998279 accept 7700000 13400000 -expect -108.74281278781015 24.422068761918457 +expect -108.74281284723317 24.422067806064522 accept 9700000 10100000 -expect -83.65325076618483 -9.486896809661033 +expect -83.65325201216521 -9.486900253798344 accept 13600000 10100000 -expect -41.56143264126598 -4.0134903803466875 +expect -41.56143010477453 -4.013493146314863 accept 13600000 3400000 -expect -11.279582254726469 -34.27261060135683 +expect -11.279582965366556 -34.27261608163502 accept 1900000 30200000 -expect 154.6471461539285 -34.84574401998715 +expect 154.64715194333021 -34.84574824559832 accept 1900000 10100000 -expect -157.58387854538302 -28.052389157635567 +expect -157.58387651437764 -28.052389289696965 accept 7700000 6700000 -expect -109.19369961450307 -46.23421776110284 +expect -109.19369493541197 -46.23421830648926 accept 9700000 3400000 -expect -35.93010836570934 -74.56176186497939 +expect -35.93009713541779 -74.56175824137314 accept 4800000 33000000 -expect 98.1719858809201 -49.00299538615756 +expect 98.172013849367 -49.00298561868703 accept 7700000 1100000 -expect 114.26107792392547 -71.94195564012877 +expect 114.26109340373671 -71.94195405675616 accept 3200000 27900000 -expect 143.30076598710878 -8.5220896966875 +expect 143.30076636407907 -8.522097079186306 accept 5200000 26800000 -expect 123.4473064301348 7.179245727191776 +expect 123.44730422061694 7.179239072128023 accept 2600000 22400000 -expect 146.85477379046327 15.542305141981524 +expect 146.8547812565557 15.542304306692937 accept 0 0 expect failure @@ -1275,99 +1275,99 @@ operation +proj=airocean +orient=horizontal +ellps=GRS80 ------------------------------------------------------------------------------- tolerance 0.1 mm accept 23 28 -expect 13391388.034358207 13572113.67642112 +expect 13391387.087562159 13572113.73386754 accept 71 46 -expect 13396860.22584815 9714915.746556642 +expect 13396859.279666536 9714915.991790695 accept 147 75 -expect 16797894.576987475 7723484.372011362 +expect 16797893.80319001 7723484.49359606 accept -77 61 -expect 20082288.002100546 9679376.629009942 +expect 20082286.04730788 9679376.816000767 accept -26 35 -expect 16793871.967967715 15458567.272657597 +expect 16793870.048802502 15458567.83864155 accept 29 -13 -expect 10082755.472417044 15471812.823275734 +expect 10082753.22576608 15471813.400558881 accept 71 -25 -expect 6665859.977548544 9737211.04829846 +expect 6665857.448231446 9737210.823606653 accept 97 10 -expect 10068436.444476923 7670301.757522446 +expect 10068433.791849095 7670302.042847798 accept 169 35 -expect 16749620.652152108 3883710.779197455 +expect 16749619.919394989 3883710.702444233 accept -151 13 -expect 23497653.23207042 3859776.935840323 +expect 23497651.218839385 3859776.9744116343 accept -109 24 -expect 23519028.27745912 7674342.7697215555 +expect 23519026.557694133 7674343.074326526 accept -84 -9 -expect 26740084.447177265 9673007.644835116 +expect 26740083.371284828 9673007.441581018 accept -42 -4 -expect 26777274.89079425 13562062.11001925 +expect 26777273.934337825 13562062.520622183 accept -11 -34 -expect 33501391.5162448 13627060.370835315 +expect 33501390.07111227 13627060.52678455 accept 155 -35 -expect 6673694.50760233 1873264.8972642338 +expect 6673694.877487984 1873264.8705730252 accept -158 -28 -expect 26769135.342224013 1871227.8352742512 +expect 26769134.317820016 1871227.8450291778 accept -109 -46 -expect 30162785.46782596 7708744.837148189 +expect 30162784.570957504 7708744.672461299 accept -36 -75 -expect 33503858.768657364 9665810.840448067 +expect 33503857.658686288 9665810.798055789 accept 98 -49 -expect 3877489.0168708 4806946.397957796 +expect 3877489.1859805635 4806946.337586326 accept 114 -72 -expect 35783347.95862527 7708905.668234003 +expect 35783346.62170241 7708905.600709579 accept 143 -9 -expect 8936969.127882296 3219027.213591793 +expect 8936966.883740531 3219027.0687154396 accept 123 7 -expect 10063060.324108174 5239165.449000159 +expect 10063057.622895071 5239165.493429321 accept 147 16 -expect 14511463.435007457 2635947.790058463 +expect 14511462.662312808 2635947.740851659 direction inverse accept 13400000 13600000 -expect 22.65352296817436 27.877581297459503 +expect 22.653513921934305 27.877587719075937 accept 13400000 9700000 -expect 71.23213152642391 46.05943669081828 +expect 71.23213038171733 46.05944622180928 accept 16800000 7700000 -expect 147.55664807290296 74.77831214328943 +expect 147.55671447322464 74.77832986646499 accept 20100000 9700000 -expect -76.64596992826016 60.747042100317785 +expect -76.64598925873727 60.747020624548 accept 16800000 15500000 -expect -26.312384746370956 34.601474276794505 +expect -26.3124065099563 34.601485830443536 accept 10100000 15500000 -expect 28.6191429996979 -13.042036148434482 +expect 28.619135182474427 -13.042018999526977 accept 6700000 9700000 -expect 71.51625215021024 -24.673267811945436 +expect 71.5162610671907 -24.673252485600123 accept 10100000 7700000 -expect 96.68788915511519 10.38394580897131 +expect 96.68789658312737 10.383985604100156 accept 16800000 3900000 -expect 169.6508856275164 35.271988183264405 +expect 169.65090726985764 35.27199233196341 accept 23500000 3900000 -expect -150.55721449851438 13.146811949018621 +expect -150.55720908958426 13.14679150488858 accept 23500000 7700000 -expect -108.71768440726674 24.253741155662894 +expect -108.71768234825969 24.253726008211544 accept 26800000 9700000 -expect -83.6403162688186 -9.656630479398787 +expect -83.64031642722364 -9.65664821408901 accept 26800000 13600000 -expect -41.53248834200603 -4.181254799415375 +expect -41.53248336979641 -4.181271680064457 accept 33500000 13600000 -expect -11.078014244307818 -34.30009105948259 +expect -11.077997959623605 -34.30009883727707 accept 6700000 1900000 -expect 154.66529496534545 -34.676861217757725 +expect 154.6653022651957 -34.676851253860285 accept 26800000 1900000 -expect -157.51536117194976 -28.21092494143824 +expect -157.5153533577128 -28.210938432335496 accept 30200000 7700000 -expect -109.22990770017597 -46.40144015027171 +expect -109.22990606962236 -46.40145478927908 accept 33500000 9700000 -expect -35.38701311712612 -74.64821096944162 +expect -35.386955975332214 -74.64821453762985 accept 3900000 4800000 -expect 98.36196474153522 -48.89631211978866 +expect 98.362008540559 -48.89629332838504 accept 35800000 7700000 -expect 114.04215291729936 -71.79636292428299 +expect 114.04215001020711 -71.79634907735154 accept 9000000 3200000 -expect 143.33006078855422 -8.363021459487074 +expect 143.33006363443351 -8.36301544647104 accept 10100000 5200000 -expect 123.47123970891344 7.342189461977811 +expect 123.47123951316074 7.342196526699235 accept 14500000 2600000 -expect 147.0133297493229 15.591837051793823 +expect 147.01335056698537 15.59184037944909 accept 0 0 expect failure From ac09b447cfd3f8e45028126f2d7e206353672c6b Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Tue, 7 Jan 2025 14:01:39 +0100 Subject: [PATCH 36/37] - Remove default parameter for plot generation --- scripts/build_airocean_parameters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_airocean_parameters.py b/scripts/build_airocean_parameters.py index 66b8882f1c..1e62516607 100755 --- a/scripts/build_airocean_parameters.py +++ b/scripts/build_airocean_parameters.py @@ -848,7 +848,7 @@ def generate_20_faces_airocean_net( def generate_23_faces_airocean_net( - outfile: Path = Path("./23_faces_airocean_net.png"), + outfile: Path, ) -> None: """ Save a picture of the complete 23 faces of the unfolded icosahedron net From 2a116e9875604459c706a8f1df3f550be2d15311 Mon Sep 17 00:00:00 2001 From: Pierre Louvart Date: Tue, 7 Jan 2025 14:02:14 +0100 Subject: [PATCH 37/37] - Remove plot parameter for 20 faces plot --- scripts/build_airocean_parameters.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/build_airocean_parameters.py b/scripts/build_airocean_parameters.py index 1e62516607..de827a7dd2 100755 --- a/scripts/build_airocean_parameters.py +++ b/scripts/build_airocean_parameters.py @@ -819,7 +819,7 @@ def rotation(angle): def generate_20_faces_airocean_net( - outfile: Path = Path("./20_faces_airocean_net.png"), + outfile: Path, ) -> None: """ Save a picture of the "base" (non split) 20 faces of the unfolded icosahedron net