Два калькулятора, одна и та же дата, одно и то же место рождения — и иногда разные градусы на выходе. Причина почти никогда не в том, что один инструмент «точнее» другого: в подавляющем большинстве случаев оба используют одну и ту же эфемериду, а расходятся в настройках, которые эта эфемерида честно выполняет по запросу, но не выбирает сама.
01Сначала небо
Эфемерида — это не мнение и не интерпретация, а таблица или, в современном виде, программа, вычисляющая, где находилось или будет находиться каждое небесное тело в любой заданный момент. Это тот же тип расчёта, которым пользуется профессиональная астрономия для навигации, для предсказания затмений, для наведения телескопов, — просто применённый здесь к точкам, которые интересуют астрологию.
Вопрос, какую эфемериду использует конкретный инструмент, поэтому не сводится к вкусовщине или к маркетинговому выбору: это вопрос о том, на какие именно астрономические данные и модели движения тел опирается каждое число на экране, и можно ли эти данные в принципе проверить у кого-то ещё, кроме автора самого инструмента.
Swiss Ephemeris — конкретная эфемерида, которую с 1997 года разрабатывает швейцарская компания Astrodienst, и за без малого три десятилетия она стала фактическим отраслевым стандартом в астрологическом программном обеспечении: её используют не только в этом продукте, а в большей части серьёзных астрологических инструментов вообще, именно потому, что её можно независимо проверить против опубликованных астрономических данных, а не потому, что кто-то авторитетно назвал её лучшей. Этот продукт использует не переписанную версию и не приближение, а swisseph-wasm — тот же самый вычислительный код, скомпилированный в WebAssembly вместо нативного бинарника, чтобы он одинаково работал и в браузере, и на сервере без отдельной сборки под каждую платформу. Смена способа упаковки не меняет то, что именно вычисляется внутри.
Зависимость от одной конкретной эфемериды устроена и на уровне архитектуры, а не только на уровне выбора библиотеки: весь код, который умеет разговаривать со Swiss Ephemeris напрямую, собран в одном месте продукта, за общим интерфейсом, а не разбросан по всему приложению. Остальной код запрашивает положение тела или куспиды домов, не зная и не спрашивая, какая именно реализация отвечает на этот запрос. Практический смысл этого разделения простой: сменить саму реализацию эфемериды — например, если однажды изменятся условия лицензии и появится смысл перейти на другую сборку того же Swiss Ephemeris — означает переписать один файл за этим интерфейсом, а не искать по всему проекту места, где к эфемериде обращались напрямую.
02Механизм в цифрах
Версия эфемериды, которой пользуется продукт, — 2.10.03, и это не факт, спрятанный в документации: номер версии печатается на каждой построенной карте, потому что версия эфемериды — часть того, что делает результат проверяемым, а не просто заявленным.
Зодиак по умолчанию тропический: 0° Овна — это точка весеннего равноденствия, определяемая пересечением эклиптики и небесного экватора, а не положением относительно далёких звёзд. Сидерический (Лахири IAE-1985) — отдельный ноль, доступный в настройках карты за флагом; накшатры, даши и варги не считаются.
Положения — геоцентрические и видимые: с поправкой на время, за которое свет от тела успевает дойти до Земли, и на смещение, вызванное движением самой Земли по орбите. Это не приближение ради простоты, а стандарт точности, которым пользуется профессиональная эфемеридная астрономия, — та же самая величина, что и в навигационных и научных расчётах положений тел Солнечной системы.
Здесь же лежит одна из главных технических причин, по которой независимые расчёты вообще способны разойтись: планеты вычисляются в эфемеридном времени, а дома и асцендент — во всемирном, и это два разных времени с разницей, называемой ΔT, которая берётся из собственной таблицы эфемериды, а не оценивается на глаз. Спутать эти два времени — передать эфемеридное время туда, где ожидается всемирное, или наоборот, — значит молча сдвинуть все вычисленные положения на несколько секунд дуги для планет и заметно больше для домов и асцендента, потому что оба расчёта в системе разделены намеренно и жёстко, именно чтобы такая путаница была невозможна внутри одного инструмента.
Полный набор данных Swiss Ephemeris покрывает около восьми тысячелетий и весит порядка 97 мегабайт, но натальные карты интересуются диапазоном примерно с 1800 по 2400 год, а этому диапазону достаточно около 2,7 мегабайта — именно этот срез и встроен в swisseph-wasm напрямую, без отдельной загрузки файлов при каждом расчёте.
Точность, которую продукт показывает читателю, — тоже конкретное, а не расплывчатое число: карта выводит градус и угловую минуту, секунды считаются внутри расчёта, но не печатаются, потому что для практического чтения карты они не добавляют ничего, что не тонуло бы в погрешности самого времени рождения. Именно поэтому минута ошибки во времени рождения — величина того же порядка, что и последняя показанная цифра: она сдвигает асцендент примерно на четверть градуса, и это не константа самого движка, а стандартное астрономическое соотношение между временем и углом поворота Земли, которое остаётся верным вне зависимости от того, какая эфемерида стоит за расчётом.
Сама реализация проверена не декларативно, а численно: 86 из 104 методов WebAssembly-версии сверены напрямую с результатами нативной C-библиотеки Swiss Ephemeris, метод за методом. Часть конкретных проверок стоит назвать по числам: эклиптическая долгота Солнца на эпоху J2000 совпадает с эталонным значением, 280,368166°, до последнего знака; все двадцать вычисляемых тел действительно возвращают положение; айанамса Лахири на 1990 год даёт 23,72° — значение, совпадающее с независимо публикуемым эталоном для этой поправки.
03Почему два инструмента расходятся
Если оба калькулятора используют Swiss Ephemeris с одними и теми же настройками для одной и той же секунды времени, расхождение между ними должно быть на уровне угловых секунд — это один и тот же численный расчёт, а не два конкурирующих метода. Реальные расхождения почти всегда объясняются не эфемеридой, а тем, что вокруг неё: перепутанные эфемеридное и всемирное время сдвигают результат незаметно и системно, а не хаотично. Разный зодиак — тропический против сидерического, или сидерический с разной поправкой айанамсы, — даёт разные градусы не потому, что один расчёт ошибся, а потому, что это два разных определения нулевой точки, и оба по-своему корректны внутри собственной системы. Разная система домов по умолчанию — отдельный источник расхождения, никак не связанный с самими планетами: он разобран отдельно в статье о системах домов. Округление времени рождения до получаса вместо минуты — ещё один источник, особенно заметный для домов и асцендента, которые смещаются на четверть градуса за каждую минуту ошибки. И наконец разные исторические таблицы часовых поясов: если один инструмент не знает о конкретном историческом переходе на летнее время в конкретной стране, а другой знает, для дат до и во время такого перехода они разойдутся — не из-за эфемериды, а из-за входных данных, которые эфемериде передали.
04Чем это не является
Самое частое заблуждение — считать, что разные приложения используют разную, конкурирующую математику, и поэтому расходятся, как расходятся мнения. В большинстве случаев это не так: почти все серьёзные астрологические инструменты, включая этот, используют одну и ту же эфемериду, и расхождение почти всегда сводится к перечисленным выше настройкам, а не к разной арифметике внутри.
Второе заблуждение — и его этот продукт не допускает намеренно: будто он вычисляет точнее, чем любой другой инструмент на той же версии Swiss Ephemeris. Это неверно и легко проверяемо: используется тот же самый расчётный код, а не улучшенная версия. Честное обещание здесь — не «точнее», а «то же самое, независимо проверяемое число», и это единственное, что вообще имеет смысл обещать про астрономический расчёт: превосходство над эталоном, на котором сам расчёт и основан, — утверждение, которое невозможно проверить в свою пользу, потому что при совпадении настроек оно попросту неверно по построению.
Третье заблуждение — что WebAssembly-версия менее точна, чем нативно скомпилированный код, потому что работает «в браузере». WebAssembly — способ упаковки того же самого вычислительного кода, а не его переписывание набело; именно поэтому имеет смысл сверять его с нативной библиотекой метод за методом, а не доверять слепо, — и большая часть методов такую сверку уже прошла, а не осталась заявленной на словах.
Четвёртое заблуждение — считать несовпадение с сидерическим расчётом ошибкой одной из сторон. Тропический и сидерический зодиак — два разных, по-своему обоснованных соглашения о том, где ставить ноль, а не конкурирующие попытки вычислить одно и то же число; продукт выбрал одно из двух и говорит об этом прямо, а не скрывает выбор за общим словом «зодиак».
Пятое заблуждение — думать, что проверить совпадение с эталоном может только сам разработчик. Номер версии эфемериды, обе временные шкалы и настройки, при которых посчитана конкретная карта, показаны рядом с результатом именно для того, чтобы читатель мог взять эти же входные данные и пересчитать их в любом другом инструменте на той же версии Swiss Ephemeris самостоятельно — а не поверить утверждению о точности на слово.
05Где это видно в собственной карте
Версия эфемериды и обе временные шкалы — эфемеридная для планет, всемирная для домов — напечатаны под каждой построенной картой, а не спрятаны в справке:
Полный список того, что вычисляется и на каких настройках, собран на одной странице:
То же самое разделение — что действительно вычислено, а где кончается вычисление и начинается интерпретация, — разобрано подробнее в отдельной статье:
Что этот продукт утверждает, а чего не утверждает
06Закрытие
Swiss Ephemeris — не собственная разработка этого продукта, а общий, проверяемый отраслевой стандарт, которым с 1997 года занимается Astrodienst и которым пользуется большая часть серьёзного астрологического программного обеспечения. Здесь он работает через swisseph-wasm, версии 2.10.03, тот же вычислительный код в другой упаковке, частично сверенный напрямую с нативной библиотекой — и номер версии печатается на каждой карте, а не прячется. Обещание, которое продукт готов дать, — не превосходство над эталоном, а совпадение с ним: тот же расчёт, доступный для независимой проверки, а не число, которому предлагается просто поверить.
Настройки, которые чаще всего объясняют расхождение между двумя честными инструментами — система домов, точность времени рождения, историческая таблица часовых поясов, — разобраны отдельно: системы домов и время рождения неизвестно — что всё-таки можно посчитать.
Сам расчёт бесплатный и таким останется. Аккаунт нужен, чтобы сохранить карту, сравнить её со второй и прочитать трактовку.