#include // #include #include #include using namespace mcc::impl; typedef MccGenericSkyPoint skypt_t; static skypt_t::ccte_t::engine_state_t saoras{.meteo{.temperature = 0.0, .humidity = 0.5, .pressure = 1010.0}, .wavelength = 0.5, .lat = 43.646711_degs, .lon = 41.440732_degs, .elev = 2100.0}; // skypt_t::cctEngine.setStateERFA(saoras); static_assert(mcc::mcc_angle_c, "!!!!!!!!!!!!"); template void serialize(VT const& value) { MccSerializer ser; std::string s; auto err = ser(s, value); if (err) { std::cout << "SERIALIZing ERR: " << err << "\n"; } else { std::cout << "SERIALIZED: " << s << "\n"; } } int main() { skypt_t::cctEngine.setStateERFA(saoras); skypt_t pt; MccSkyRADEC_ICRS icrs(0.0, 70.0_degs); pt = icrs; MccSkyRADEC_OBS radec_obs{0.0, 0.0}; MccSkyRADEC_APP radec_app; MccSkyAZALT azalt{0, 0}; MccSkyAZZD azzd{0, 0}; MccSkyHADEC_OBS hadec_obs; MccAngle eo, lst; skypt_t::cctEngine.equationOrigins(radec_obs.epoch(), &eo); skypt_t::cctEngine.apparentSideralTime(radec_obs.epoch(), &lst, true); std::cout << "EO = " << eo.sexagesimal(true) << "\n"; std::cout << "LST = " << lst.sexagesimal(true) << "\n\n"; pt.to(radec_obs, azalt, azzd, radec_app); std::cout << "FROM ICRS TO OBSERVED:\n"; std::cout << "RA_ICRS = " << icrs.x().sexagesimal(true) << "\n"; std::cout << "DEC_ICRS = " << icrs.y().sexagesimal() << "\n"; std::cout << "OBS COORD EPOCH: " << radec_obs.epoch().UTC() << "\n"; std::cout << "RA_OBS = " << radec_obs.x().sexagesimal(true) << "\n"; std::cout << "DEC_OBS = " << radec_obs.y().sexagesimal() << "\n"; std::cout << "AZ = " << azalt.x().sexagesimal() << "\n"; std::cout << "ALT = " << azalt.y().sexagesimal() << "\n"; std::cout << "ZD = " << azzd.y().sexagesimal() << "\n"; std::cout << "RA_APP = " << radec_app.x().sexagesimal(true) << "\n"; std::cout << "DEC_APP = " << radec_app.y().sexagesimal() << "\n"; // radec_obs = {10.2387983_degs, "43:21:34.5465"_dms}; icrs.setX(111.0_degs), icrs.setY(111.0_degs); azzd.setX(111.0_degs), azzd.setY(111.0_degs); azalt.setX(111.0_degs), azalt.setY(111.0_degs); hadec_obs.setX(111.0_degs), hadec_obs.setY(111.0_degs); radec_app.setX(111.0_degs), radec_app.setY(111.0_degs); pt = radec_obs; // pt.to(icrs, azzd, hadec_obs, radec_app); pt.to(icrs, radec_app); pt.to(radec_obs, hadec_obs, azzd); std::cout << "\n\nFROM OBSERVED TO ICRS:\n"; std::cout << "OBS COORD EPOCH: " << radec_obs.epoch().UTC() << "\n"; std::cout << "RA_OBS = " << radec_obs.x().sexagesimal(true) << "\n"; std::cout << "DEC_OBS = " << radec_obs.y().sexagesimal() << "\n"; std::cout << "RA_ICRS = " << icrs.x().sexagesimal(true) << "\n"; std::cout << "DEC_ICRS = " << icrs.y().sexagesimal() << "\n"; std::cout << "\n\nFROM OBSERVED TO OBSERVED:\n"; std::cout << "OBS COORD EPOCH: " << radec_obs.epoch().UTC() << "\n"; std::cout << "RA_OBS = " << radec_obs.x().sexagesimal(true) << "\n"; std::cout << "DEC_OBS = " << radec_obs.y().sexagesimal() << "\n"; std::cout << "HA_OBS = " << hadec_obs.x().sexagesimal(true) << "\n"; std::cout << "AZ = " << azzd.x().sexagesimal() << "\n"; std::cout << "ZD = " << azzd.y().sexagesimal() << "\n"; std::cout << "RA_APP = " << radec_app.x().sexagesimal(true) << "\n"; std::cout << "DEC_APP = " << radec_app.y().sexagesimal() << "\n"; azalt = pt; std::cout << "ALT = " << azalt.y().sexagesimal() << "\n"; std::cout << "\nIN DEGREES:\n"; std::cout << "RA_ICRS = " << icrs.x().degrees() << "\n"; std::cout << "DEC_ICRS = " << icrs.y().degrees() << "\n"; std::cout << "RA_OBS = " << radec_obs.x().degrees() << "\n"; std::cout << "DEC_OBS = " << radec_obs.y().degrees() << "\n"; std::cout << "HA_OBS = " << hadec_obs.x().degrees() << "\n"; std::cout << "AZ = " << azzd.x().degrees() << "\n"; std::cout << "ZD = " << azzd.y().degrees() << "\n"; std::cout << "RA_APP = " << radec_app.x().degrees() << "\n"; std::cout << "DEC_APP = " << radec_app.y().degrees() << "\n"; std::cout << "\n\nSERIALIZATION TEST:\n"; double v = 7.7; std::cout << "\tfor 'double' type: "; serialize(v); std::cout << "\tfor 'coord pair' type: "; serialize(radec_obs); radec_app = pt; // pt.to(radec_app); std::cout << "\tfor 'coord pair' type: "; serialize(radec_app); azzd = pt; // pt.to(azzd); std::cout << "\tfor 'coord pair' type: "; serialize(azzd); // pt.from(icrs); pt = radec_obs; std::cout << "\tfor 'sky point' type: "; serialize(pt); return 0; }