#ifndef __JCOMPASS__JNOAA__ #define __JCOMPASS__JNOAA__ #include #include #include "JTools/JConstants.hh" #include "JTools/JFunction1D_t.hh" #include "JLang/JTitle.hh" #include "JLang/JManip.hh" namespace JCOMPASS {} namespace JPP { using namespace JCOMPASS; } namespace JCOMPASS { using JLANG::JTitle; /** * Auxiliary base class for interpolation of magnetic declination data obtained * from website of NOAA.\n */ struct JNOAAFunction1D_t : public JTOOLS::JGridPolint1Function1D_t, public JTitle { /** * Write function to output stream. * * \param out output stream * \param object function * \return output stream */ friend inline std::ostream& operator<<(std::ostream& out, const JNOAAFunction1D_t& object) { return out << object.getTitle() << ' ' << "[" << FIXED(12,0) << object.getXmin() << "," << FIXED(12,0) << object.getXmax() << "]"; } protected: /** * Constructor. * * \param title title */ JNOAAFunction1D_t(const std::string& title) : JTitle(title) {} /** * Function compilation. * * Convert degrees to radians. */ virtual void do_compile() override { using namespace JPP; for (iterator i = this->begin(); i != this->end(); ++i) { i->getY() *= PI / 180.0; } JTOOLS::JGridPolint1Function1D_t::do_compile(); } }; /** * Interpolation of magnetic declination data at ARCA site. * * The data have been converted using the scripts by Vladimir Kulikovski, * see GIT repository. */ struct JARCAMagneticDeclination : public JNOAAFunction1D_t { /** * Default constructor. */ JARCAMagneticDeclination() : JNOAAFunction1D_t("ARCA") { (*this)[ 946684800] = 1.695480; (*this)[ 949363200] = 1.701550; (*this)[ 951868800] = 1.707230; (*this)[ 954547200] = 1.713300; (*this)[ 957139200] = 1.719180; (*this)[ 959817600] = 1.725250; (*this)[ 962409600] = 1.731120; (*this)[ 965088000] = 1.737190; (*this)[ 967766400] = 1.743260; (*this)[ 970358400] = 1.749130; (*this)[ 973036800] = 1.755200; (*this)[ 975628800] = 1.761070; (*this)[ 978307200] = 1.767140; (*this)[ 980985600] = 1.773220; (*this)[ 983404800] = 1.778720; (*this)[ 986083200] = 1.784800; (*this)[ 988675200] = 1.790680; (*this)[ 991353600] = 1.796770; (*this)[ 993945600] = 1.802650; (*this)[ 996624000] = 1.808730; (*this)[ 999302400] = 1.814810; (*this)[1001894400] = 1.820700; (*this)[1004572800] = 1.826780; (*this)[1007164800] = 1.832660; (*this)[1009843200] = 1.838740; (*this)[1012521600] = 1.844820; (*this)[1014940800] = 1.850310; (*this)[1017619200] = 1.856380; (*this)[1020211200] = 1.862270; (*this)[1022889600] = 1.868340; (*this)[1025481600] = 1.874220; (*this)[1028160000] = 1.880300; (*this)[1030838400] = 1.886370; (*this)[1033430400] = 1.892250; (*this)[1036108800] = 1.898330; (*this)[1038700800] = 1.904210; (*this)[1041379200] = 1.910280; (*this)[1044057600] = 1.916350; (*this)[1046476800] = 1.921840; (*this)[1049155200] = 1.927910; (*this)[1051747200] = 1.933790; (*this)[1054425600] = 1.939860; (*this)[1057017600] = 1.945740; (*this)[1059696000] = 1.951810; (*this)[1062374400] = 1.957880; (*this)[1064966400] = 1.963750; (*this)[1067644800] = 1.969820; (*this)[1070236800] = 1.975700; (*this)[1072915200] = 1.981770; (*this)[1075593600] = 1.987820; (*this)[1078099200] = 1.993480; (*this)[1080777600] = 1.999530; (*this)[1083369600] = 2.005390; (*this)[1086048000] = 2.011440; (*this)[1088640000] = 2.017290; (*this)[1091318400] = 2.023340; (*this)[1093996800] = 2.029390; (*this)[1096588800] = 2.035250; (*this)[1099267200] = 2.041300; (*this)[1101859200] = 2.047150; (*this)[1104537600] = 2.053200; (*this)[1107216000] = 2.060830; (*this)[1109635200] = 2.067720; (*this)[1112313600] = 2.075350; (*this)[1114905600] = 2.082730; (*this)[1117584000] = 2.090350; (*this)[1120176000] = 2.097730; (*this)[1122854400] = 2.105360; (*this)[1125532800] = 2.112980; (*this)[1128124800] = 2.120360; (*this)[1130803200] = 2.127980; (*this)[1133395200] = 2.135360; (*this)[1136073600] = 2.142980; (*this)[1138752000] = 2.150600; (*this)[1141171200] = 2.157480; (*this)[1143849600] = 2.165100; (*this)[1146441600] = 2.172470; (*this)[1149120000] = 2.180090; (*this)[1151712000] = 2.187460; (*this)[1154390400] = 2.195070; (*this)[1157068800] = 2.202690; (*this)[1159660800] = 2.210060; (*this)[1162339200] = 2.217670; (*this)[1164931200] = 2.225030; (*this)[1167609600] = 2.232650; (*this)[1170288000] = 2.240260; (*this)[1172707200] = 2.247130; (*this)[1175385600] = 2.254740; (*this)[1177977600] = 2.262100; (*this)[1180656000] = 2.269710; (*this)[1183248000] = 2.277070; (*this)[1185926400] = 2.284670; (*this)[1188604800] = 2.292280; (*this)[1191196800] = 2.299630; (*this)[1193875200] = 2.307240; (*this)[1196467200] = 2.314590; (*this)[1199145600] = 2.322190; (*this)[1201824000] = 2.329770; (*this)[1204329600] = 2.336860; (*this)[1207008000] = 2.344440; (*this)[1209600000] = 2.351770; (*this)[1212278400] = 2.359350; (*this)[1214870400] = 2.366680; (*this)[1217548800] = 2.374250; (*this)[1220227200] = 2.381830; (*this)[1222819200] = 2.389160; (*this)[1225497600] = 2.396730; (*this)[1228089600] = 2.404050; (*this)[1230768000] = 2.411630; (*this)[1233446400] = 2.419220; (*this)[1235865600] = 2.426070; (*this)[1238544000] = 2.433660; (*this)[1241136000] = 2.441000; (*this)[1243814400] = 2.448590; (*this)[1246406400] = 2.455930; (*this)[1249084800] = 2.463510; (*this)[1251763200] = 2.471100; (*this)[1254355200] = 2.478440; (*this)[1257033600] = 2.486020; (*this)[1259625600] = 2.493360; (*this)[1262304000] = 2.500940; (*this)[1264982400] = 2.509630; (*this)[1267401600] = 2.517480; (*this)[1270080000] = 2.526170; (*this)[1272672000] = 2.534580; (*this)[1275350400] = 2.543270; (*this)[1277942400] = 2.551670; (*this)[1280620800] = 2.560360; (*this)[1283299200] = 2.569050; (*this)[1285891200] = 2.577450; (*this)[1288569600] = 2.586130; (*this)[1291161600] = 2.594540; (*this)[1293840000] = 2.603220; (*this)[1296518400] = 2.611900; (*this)[1298937600] = 2.619740; (*this)[1301616000] = 2.628420; (*this)[1304208000] = 2.636820; (*this)[1306886400] = 2.645500; (*this)[1309478400] = 2.653890; (*this)[1312156800] = 2.662570; (*this)[1314835200] = 2.671240; (*this)[1317427200] = 2.679640; (*this)[1320105600] = 2.688310; (*this)[1322697600] = 2.696710; (*this)[1325376000] = 2.705380; (*this)[1328054400] = 2.714020; (*this)[1330560000] = 2.722110; (*this)[1333238400] = 2.730760; (*this)[1335830400] = 2.739120; (*this)[1338508800] = 2.747770; (*this)[1341100800] = 2.756130; (*this)[1343779200] = 2.764770; (*this)[1346457600] = 2.773410; (*this)[1349049600] = 2.781770; (*this)[1351728000] = 2.790410; (*this)[1354320000] = 2.798770; (*this)[1356998400] = 2.807410; (*this)[1359676800] = 2.816070; (*this)[1362096000] = 2.823890; (*this)[1364774400] = 2.832550; (*this)[1367366400] = 2.840930; (*this)[1370044800] = 2.849580; (*this)[1372636800] = 2.857960; (*this)[1375315200] = 2.866610; (*this)[1377993600] = 2.875270; (*this)[1380585600] = 2.883640; (*this)[1383264000] = 2.892290; (*this)[1385856000] = 2.900670; (*this)[1388534400] = 2.909320; (*this)[1391212800] = 2.917970; (*this)[1393632000] = 2.925780; (*this)[1396310400] = 2.934420; (*this)[1398902400] = 2.942790; (*this)[1401580800] = 2.951440; (*this)[1404172800] = 2.959800; (*this)[1406851200] = 2.968450; (*this)[1409529600] = 2.977090; (*this)[1412121600] = 2.985460; (*this)[1414800000] = 2.994100; (*this)[1417392000] = 3.002460; (*this)[1420070400] = 3.011100; (*this)[1422748800] = 3.020800; (*this)[1425168000] = 3.029560; (*this)[1427846400] = 3.039260; (*this)[1430438400] = 3.048640; (*this)[1433116800] = 3.058340; (*this)[1435708800] = 3.067720; (*this)[1438387200] = 3.077420; (*this)[1441065600] = 3.087110; (*this)[1443657600] = 3.096490; (*this)[1446336000] = 3.106180; (*this)[1448928000] = 3.115560; (*this)[1451606400] = 3.125250; (*this)[1454284800] = 3.134910; (*this)[1456790400] = 3.143950; (*this)[1459468800] = 3.153610; (*this)[1462060800] = 3.162950; (*this)[1464739200] = 3.172610; (*this)[1467331200] = 3.181960; (*this)[1470009600] = 3.191610; (*this)[1472688000] = 3.201270; (*this)[1475280000] = 3.210610; (*this)[1477958400] = 3.220260; (*this)[1480550400] = 3.229600; (*this)[1483228800] = 3.239250; (*this)[1485907200] = 3.248930; (*this)[1488326400] = 3.257670; (*this)[1491004800] = 3.267340; (*this)[1493596800] = 3.276700; (*this)[1496275200] = 3.286370; (*this)[1498867200] = 3.295730; (*this)[1501545600] = 3.305400; (*this)[1504224000] = 3.315070; (*this)[1506816000] = 3.324420; (*this)[1509494400] = 3.334090; (*this)[1512086400] = 3.343450; (*this)[1514764800] = 3.353110; (*this)[1517443200] = 3.362770; (*this)[1519862400] = 3.371500; (*this)[1522540800] = 3.381160; (*this)[1525132800] = 3.390510; (*this)[1527811200] = 3.400170; (*this)[1530403200] = 3.409520; (*this)[1533081600] = 3.419170; (*this)[1535760000] = 3.428830; (*this)[1538352000] = 3.438170; (*this)[1541030400] = 3.447830; (*this)[1543622400] = 3.457170; (*this)[1546300800] = 3.466820; (*this)[1548979200] = 3.476470; (*this)[1551398400] = 3.485190; (*this)[1554076800] = 3.494840; (*this)[1556668800] = 3.504170; (*this)[1559347200] = 3.513820; (*this)[1561939200] = 3.523160; (*this)[1564617600] = 3.532800; (*this)[1567296000] = 3.542440; (*this)[1569888000] = 3.551780; (*this)[1572566400] = 3.561420; (*this)[1575158400] = 3.570750; (*this)[1577836800] = 3.580390; (*this)[1580515200] = 3.589700; (*this)[1583020800] = 3.598420; (*this)[1585699200] = 3.607730; (*this)[1588291200] = 3.616750; (*this)[1590969600] = 3.626060; (*this)[1593561600] = 3.635070; (*this)[1596240000] = 3.644380; (*this)[1598918400] = 3.653690; (*this)[1601510400] = 3.662700; (*this)[1604188800] = 3.672010; (*this)[1606780800] = 3.681020; (*this)[1609459200] = 3.690320; (*this)[1612137600] = 3.699660; (*this)[1614556800] = 3.708080; (*this)[1617235200] = 3.717410; (*this)[1619827200] = 3.726440; (*this)[1622505600] = 3.735770; (*this)[1625097600] = 3.744800; (*this)[1627776000] = 3.754120; (*this)[1630454400] = 3.763450; (*this)[1633046400] = 3.772470; (*this)[1635724800] = 3.781800; (*this)[1638316800] = 3.790820; (*this)[1640995200] = 3.800140; (*this)[1643673600] = 3.809460; (*this)[1646092800] = 3.817880; (*this)[1648771200] = 3.827200; (*this)[1651363200] = 3.836220; (*this)[1654041600] = 3.845540; (*this)[1656633600] = 3.854550; (*this)[1659312000] = 3.863870; (*this)[1661990400] = 3.873180; (*this)[1664582400] = 3.882200; (*this)[1667260800] = 3.891510; (*this)[1669852800] = 3.900520; (*this)[1672531200] = 3.909830; (*this)[1675209600] = 3.919150; (*this)[1677628800] = 3.927550; (*this)[1680307200] = 3.936860; (*this)[1682899200] = 3.945870; (*this)[1685577600] = 3.955180; (*this)[1688169600] = 3.964180; (*this)[1690848000] = 3.973490; (*this)[1693526400] = 3.982800; (*this)[1696118400] = 3.991800; (*this)[1698796800] = 4.001100; (*this)[1701388800] = 4.010100; (*this)[1704067200] = 4.019410; (*this)[1706745600] = 4.028680; (*this)[1709251200] = 4.037360; (*this)[1711929600] = 4.046630; (*this)[1714521600] = 4.055600; (*this)[1717200000] = 4.064870; (*this)[1719792000] = 4.073840; (*this)[1722470400] = 4.083110; (*this)[1725148800] = 4.092380; (*this)[1727740800] = 4.101350; (*this)[1730419200] = 4.110620; (*this)[1733011200] = 4.119590; compile(); } }; /** * Interpolation of magnetic declination data at ORCA site. * * The data have been converted using the scripts by Vladimir Kulikovski, * see GIT repository. */ struct JORCAMagneticDeclination : public JNOAAFunction1D_t { /** * Default constructor. */ JORCAMagneticDeclination() : JNOAAFunction1D_t("ORCA") { (*this)[ 946684800] = -0.280210; (*this)[ 949363200] = -0.271470; (*this)[ 951868800] = -0.263290; (*this)[ 954547200] = -0.254560; (*this)[ 957139200] = -0.246100; (*this)[ 959817600] = -0.237370; (*this)[ 962409600] = -0.228910; (*this)[ 965088000] = -0.220180; (*this)[ 967766400] = -0.211450; (*this)[ 970358400] = -0.203000; (*this)[ 973036800] = -0.194260; (*this)[ 975628800] = -0.185820; (*this)[ 978307200] = -0.177080; (*this)[ 980985600] = -0.168330; (*this)[ 983404800] = -0.160430; (*this)[ 986083200] = -0.151670; (*this)[ 988675200] = -0.143200; (*this)[ 991353600] = -0.134450; (*this)[ 993945600] = -0.125990; (*this)[ 996624000] = -0.117240; (*this)[ 999302400] = -0.108490; (*this)[1001894400] = -0.100020; (*this)[1004572800] = -0.091270; (*this)[1007164800] = -0.082810; (*this)[1009843200] = -0.074070; (*this)[1012521600] = -0.065320; (*this)[1014940800] = -0.057420; (*this)[1017619200] = -0.048680; (*this)[1020211200] = -0.040220; (*this)[1022889600] = -0.031480; (*this)[1025481600] = -0.023020; (*this)[1028160000] = -0.014280; (*this)[1030838400] = -0.005540; (*this)[1033430400] = 0.002920; (*this)[1036108800] = 0.011660; (*this)[1038700800] = 0.020120; (*this)[1041379200] = 0.028850; (*this)[1044057600] = 0.037590; (*this)[1046476800] = 0.045480; (*this)[1049155200] = 0.054210; (*this)[1051747200] = 0.062670; (*this)[1054425600] = 0.071400; (*this)[1057017600] = 0.079850; (*this)[1059696000] = 0.088580; (*this)[1062374400] = 0.097310; (*this)[1064966400] = 0.105760; (*this)[1067644800] = 0.114490; (*this)[1070236800] = 0.122940; (*this)[1072915200] = 0.131670; (*this)[1075593600] = 0.140370; (*this)[1078099200] = 0.148510; (*this)[1080777600] = 0.157210; (*this)[1083369600] = 0.165630; (*this)[1086048000] = 0.174330; (*this)[1088640000] = 0.182750; (*this)[1091318400] = 0.191450; (*this)[1093996800] = 0.200150; (*this)[1096588800] = 0.208570; (*this)[1099267200] = 0.217270; (*this)[1101859200] = 0.225680; (*this)[1104537600] = 0.234380; (*this)[1107216000] = 0.243640; (*this)[1109635200] = 0.252010; (*this)[1112313600] = 0.261270; (*this)[1114905600] = 0.270230; (*this)[1117584000] = 0.279490; (*this)[1120176000] = 0.288450; (*this)[1122854400] = 0.297710; (*this)[1125532800] = 0.306970; (*this)[1128124800] = 0.315920; (*this)[1130803200] = 0.325180; (*this)[1133395200] = 0.334130; (*this)[1136073600] = 0.343390; (*this)[1138752000] = 0.352640; (*this)[1141171200] = 0.360990; (*this)[1143849600] = 0.370240; (*this)[1146441600] = 0.379190; (*this)[1149120000] = 0.388430; (*this)[1151712000] = 0.397380; (*this)[1154390400] = 0.406630; (*this)[1157068800] = 0.415870; (*this)[1159660800] = 0.424810; (*this)[1162339200] = 0.434050; (*this)[1164931200] = 0.442990; (*this)[1167609600] = 0.452230; (*this)[1170288000] = 0.461470; (*this)[1172707200] = 0.469810; (*this)[1175385600] = 0.479050; (*this)[1177977600] = 0.487980; (*this)[1180656000] = 0.497210; (*this)[1183248000] = 0.506150; (*this)[1185926400] = 0.515380; (*this)[1188604800] = 0.524610; (*this)[1191196800] = 0.533540; (*this)[1193875200] = 0.542760; (*this)[1196467200] = 0.551690; (*this)[1199145600] = 0.560920; (*this)[1201824000] = 0.570110; (*this)[1204329600] = 0.578720; (*this)[1207008000] = 0.587910; (*this)[1209600000] = 0.596810; (*this)[1212278400] = 0.606000; (*this)[1214870400] = 0.614900; (*this)[1217548800] = 0.624090; (*this)[1220227200] = 0.633280; (*this)[1222819200] = 0.642170; (*this)[1225497600] = 0.651360; (*this)[1228089600] = 0.660250; (*this)[1230768000] = 0.669440; (*this)[1233446400] = 0.678650; (*this)[1235865600] = 0.686960; (*this)[1238544000] = 0.696170; (*this)[1241136000] = 0.705080; (*this)[1243814400] = 0.714280; (*this)[1246406400] = 0.723190; (*this)[1249084800] = 0.732390; (*this)[1251763200] = 0.741590; (*this)[1254355200] = 0.750500; (*this)[1257033600] = 0.759700; (*this)[1259625600] = 0.768600; (*this)[1262304000] = 0.777790; (*this)[1264982400] = 0.788410; (*this)[1267401600] = 0.798000; (*this)[1270080000] = 0.808610; (*this)[1272672000] = 0.818880; (*this)[1275350400] = 0.829500; (*this)[1277942400] = 0.839760; (*this)[1280620800] = 0.850370; (*this)[1283299200] = 0.860980; (*this)[1285891200] = 0.871250; (*this)[1288569600] = 0.881850; (*this)[1291161600] = 0.892120; (*this)[1293840000] = 0.902720; (*this)[1296518400] = 0.913320; (*this)[1298937600] = 0.922900; (*this)[1301616000] = 0.933500; (*this)[1304208000] = 0.943750; (*this)[1306886400] = 0.954350; (*this)[1309478400] = 0.964610; (*this)[1312156800] = 0.975200; (*this)[1314835200] = 0.985790; (*this)[1317427200] = 0.996040; (*this)[1320105600] = 1.006640; (*this)[1322697600] = 1.016880; (*this)[1325376000] = 1.027470; (*this)[1328054400] = 1.038030; (*this)[1330560000] = 1.047910; (*this)[1333238400] = 1.058460; (*this)[1335830400] = 1.068680; (*this)[1338508800] = 1.079230; (*this)[1341100800] = 1.089440; (*this)[1343779200] = 1.100000; (*this)[1346457600] = 1.110550; (*this)[1349049600] = 1.120750; (*this)[1351728000] = 1.131300; (*this)[1354320000] = 1.141510; (*this)[1356998400] = 1.152050; (*this)[1359676800] = 1.162630; (*this)[1362096000] = 1.172170; (*this)[1364774400] = 1.182750; (*this)[1367366400] = 1.192970; (*this)[1370044800] = 1.203540; (*this)[1372636800] = 1.213770; (*this)[1375315200] = 1.224330; (*this)[1377993600] = 1.234900; (*this)[1380585600] = 1.245120; (*this)[1383264000] = 1.255680; (*this)[1385856000] = 1.265900; (*this)[1388534400] = 1.276460; (*this)[1391212800] = 1.287020; (*this)[1393632000] = 1.296550; (*this)[1396310400] = 1.307110; (*this)[1398902400] = 1.317320; (*this)[1401580800] = 1.327870; (*this)[1404172800] = 1.338090; (*this)[1406851200] = 1.348640; (*this)[1409529600] = 1.359190; (*this)[1412121600] = 1.369390; (*this)[1414800000] = 1.379940; (*this)[1417392000] = 1.390150; (*this)[1420070400] = 1.400690; (*this)[1422748800] = 1.412860; (*this)[1425168000] = 1.423850; (*this)[1427846400] = 1.436010; (*this)[1430438400] = 1.447780; (*this)[1433116800] = 1.459940; (*this)[1435708800] = 1.471710; (*this)[1438387200] = 1.483870; (*this)[1441065600] = 1.496020; (*this)[1443657600] = 1.507790; (*this)[1446336000] = 1.519940; (*this)[1448928000] = 1.531700; (*this)[1451606400] = 1.543850; (*this)[1454284800] = 1.555970; (*this)[1456790400] = 1.567300; (*this)[1459468800] = 1.579410; (*this)[1462060800] = 1.591140; (*this)[1464739200] = 1.603250; (*this)[1467331200] = 1.614960; (*this)[1470009600] = 1.627070; (*this)[1472688000] = 1.639180; (*this)[1475280000] = 1.650890; (*this)[1477958400] = 1.663000; (*this)[1480550400] = 1.674710; (*this)[1483228800] = 1.686810; (*this)[1485907200] = 1.698940; (*this)[1488326400] = 1.709900; (*this)[1491004800] = 1.722030; (*this)[1493596800] = 1.733760; (*this)[1496275200] = 1.745890; (*this)[1498867200] = 1.757620; (*this)[1501545600] = 1.769750; (*this)[1504224000] = 1.781870; (*this)[1506816000] = 1.793600; (*this)[1509494400] = 1.805720; (*this)[1512086400] = 1.817450; (*this)[1514764800] = 1.829560; (*this)[1517443200] = 1.841680; (*this)[1519862400] = 1.852620; (*this)[1522540800] = 1.864730; (*this)[1525132800] = 1.876450; (*this)[1527811200] = 1.888560; (*this)[1530403200] = 1.900280; (*this)[1533081600] = 1.912380; (*this)[1535760000] = 1.924490; (*this)[1538352000] = 1.936200; (*this)[1541030400] = 1.948300; (*this)[1543622400] = 1.960010; (*this)[1546300800] = 1.972110; (*this)[1548979200] = 1.984210; (*this)[1551398400] = 1.995130; (*this)[1554076800] = 2.007230; (*this)[1556668800] = 2.018930; (*this)[1559347200] = 2.031020; (*this)[1561939200] = 2.042720; (*this)[1564617600] = 2.054810; (*this)[1567296000] = 2.066900; (*this)[1569888000] = 2.078590; (*this)[1572566400] = 2.090680; (*this)[1575158400] = 2.102370; (*this)[1577836800] = 2.114450; (*this)[1580515200] = 2.127360; (*this)[1583020800] = 2.139440; (*this)[1585699200] = 2.152350; (*this)[1588291200] = 2.164850; (*this)[1590969600] = 2.177760; (*this)[1593561600] = 2.190250; (*this)[1596240000] = 2.203150; (*this)[1598918400] = 2.216060; (*this)[1601510400] = 2.228540; (*this)[1604188800] = 2.241440; (*this)[1606780800] = 2.253930; (*this)[1609459200] = 2.266830; (*this)[1612137600] = 2.279760; (*this)[1614556800] = 2.291440; (*this)[1617235200] = 2.304370; (*this)[1619827200] = 2.316880; (*this)[1622505600] = 2.329810; (*this)[1625097600] = 2.342320; (*this)[1627776000] = 2.355240; (*this)[1630454400] = 2.368160; (*this)[1633046400] = 2.380670; (*this)[1635724800] = 2.393590; (*this)[1638316800] = 2.406090; (*this)[1640995200] = 2.419010; (*this)[1643673600] = 2.431920; (*this)[1646092800] = 2.443590; (*this)[1648771200] = 2.456500; (*this)[1651363200] = 2.469000; (*this)[1654041600] = 2.481910; (*this)[1656633600] = 2.494400; (*this)[1659312000] = 2.507310; (*this)[1661990400] = 2.520210; (*this)[1664582400] = 2.532700; (*this)[1667260800] = 2.545610; (*this)[1669852800] = 2.558090; (*this)[1672531200] = 2.570990; (*this)[1675209600] = 2.583890; (*this)[1677628800] = 2.595540; (*this)[1680307200] = 2.608440; (*this)[1682899200] = 2.620920; (*this)[1685577600] = 2.633810; (*this)[1688169600] = 2.646280; (*this)[1690848000] = 2.659180; (*this)[1693526400] = 2.672060; (*this)[1696118400] = 2.684540; (*this)[1698796800] = 2.697420; (*this)[1701388800] = 2.709890; (*this)[1704067200] = 2.722780; (*this)[1706745600] = 2.735620; (*this)[1709251200] = 2.747640; (*this)[1711929600] = 2.760480; (*this)[1714521600] = 2.772910; (*this)[1717200000] = 2.785750; (*this)[1719792000] = 2.798180; (*this)[1722470400] = 2.811020; (*this)[1725148800] = 2.823850; (*this)[1727740800] = 2.836270; (*this)[1730419200] = 2.849110; (*this)[1733011200] = 2.861530; compile(); } }; /** * Fall back class for zero magnetic declination. */ struct JZEROMagneticDeclination : public JNOAAFunction1D_t { /** * Default constructor. */ JZEROMagneticDeclination() : JNOAAFunction1D_t("zero") { this->setExceptionHandler(new JNOAAFunction1D_t::JDefaultResult(0.0)); } }; static JARCAMagneticDeclination getARCAMagneticDeclination; //!< Function object for magnetic declination at ARCA site. static JORCAMagneticDeclination getORCAMagneticDeclination; //!< Function object for magnetic declination at ORCA site. static JZEROMagneticDeclination getZEROMagneticDeclination; //!< Function object for zero magnetic declination. } #endif