Что делал Марс в этот день? API планетного калькулятора дат

По образованию я - математик, вся моя профессиональная жизнь - в ИТ-сфере, а одно из моих увлечений - космос, с глубокой убежденностью что человечеству нужна колонизация, хотя бы как план Б на случай вполне реалистичных угроз типа астероидов.

Однажды из любопытства я ковырялась в открытых данных Марса о погоде и климате https://api.maas2.apollorion.com, полученных в рамках миссии Curiosity. Марсоход начал отправлять первые данные 6 августа 2012 года, последние данные в этом сервисе от 14 февраля 2023 года.
Примечание автора - если будете пробовать аполлорион, он прямо очень простой - по умолчанию возвращает последний сол в датасете, но через слеш можно запросить конкретный сол (например https://api.maas2.apollorion.com/9) - скорее всего в браузере вам выгрузится json в текстовом файле. И учтите - не на каждый последовательный сол есть информация.

Что делал Марс в этот день? API планетного калькулятора дат

Исходя из этих или подобных данных мы можем вполне понимать сезонные климатические измеения на Марсе и прогнозировать погоду, восход и заход солнца, длительность светового марсианского дня в прошлом и будущем (конечно на обозримые интервалы пока эти данные могут оставаться стабильными).

Но для этого важно быстро переводить земные даты в марсианские и обратно. Даже если ученые способны оперировать исключительно астрономическими внепланетными календарями, для интерпретации публике и стейкхолдерам важно соотношение времени которое измеряется иначе по сравнению с нашими привычными календарями.

Для такой конвертации дат земли / Марса есть онлайн-калькуляторы, например тут.

Что делал Марс в этот день? API планетного калькулятора дат

Но поскольку я сразу перевожу разные возможности на язык автоматизации, то есть программной логики, то ручной календарь не подходящий вариант для программ анализа и прогнозирования.

Это привело меня к идее сделать простое REST API которое будет переводить земную дату в Марсианскую и обратно. Будем честны - навайбкодить, так как доменеджерские времена когда я программровала свободно, покрылись толстым слоем пыли.

Как пользоваться API :

Адрес и пример вызова :

https://planet-calendar.onrender.com/api/planet_date?planet=Mars&date=2025-09-21T00:00

Возвращаемый результат - Ls - это то, по чему планетологи понимают сезон на Марсе и вообще его "дату". Поэтому я и возвращаю его в API:


Ls - главный результат, сезонный угол, см. дальше что это
Ls - главный результат, сезонный угол, см. дальше что это

Сам метод - planet_date - расчет даты на нужной нам планете. На дату написания этой статьи - единственный метод. Есть желание сделать обратный расчет позже. При первом запуске API, размещенное на бесплатном сервисе, несколько секунд разворачивает необходимые ресурсы, дальнейшние вызовы присходят почти мгновенно.

Параметры :

planet = Mars - планета для которой надо рассчитать ее дату отталкиваясь от земной даты.

date = земная дата и время в UTC (или просто дата + 00:00).

Код и краткое описание: https://github.com/Aquamariss/planet_calendar/tree/main

Что нужно знать о Марсе и о данных:

На Марсе, да и на других планетах, нет календаря в привычном нам формате месяцев с названиями и номеров дней в них.
Хотя люди все же попытались приблизить Марс к нему, предложили разные календари (Darian , Utopian , Роберта Зубрина и еще несколько).
Но ни один из них не стал универсальным, все они — попытка сделать Марс понятным людям, а не приборам: чтобы у "колонистов" когда-нибудь были привычные “месяц/год”.
Но астрономы и ученые, когда оперируют астрономическими периодами, полагаются на совсем другую систему отсчета, главный показатель в которой Ls - угол между текущим направлением на Солнце и положением Солнца в момент весеннего равноденствия на рассматриваемой планете.

Впрочем, так как Марс - наш кандидат номер 1 на колонизацию и активно изучается, его календарь все же «оброс» некой адаптацией к земному календарю.

Марсианские «сутки» — сол — длятся 24 ч 39 мин 35,244 с (на 39,6 минуты дольше земных)

Марсианский год (тропический, от равноденствия к равноденствию) ≈ 668,59 сол ≈ 686,97 земных суток (~687 дней, или ~1,88 земного года).

Все же самый главный маркер внепланетного асторономического календаря любой планеты Солнечной системы (в том числе и Земли) - это сезонный угол Ls.

Чуть подробнее про него:

Ls → solar longitude, то есть солярная долгота Марса. Это угол между текущим направлением на Солнце и положением Солнца в момент весеннего равноденствия Марса (Ls = 0°)

Ls = 0° — начало марсианской весны в северном полушарии;

Ls = 90° — летнее солнцестояние (северное лето);

Ls = 180° — осеннее равноденствие;

Ls = 270° — зимнее солнцестояние.
Вот теперь понятно что найденный нами в примере вызова API Ls = 143 градуса говорит о том что когда на Земле было 21 сентября 2025 года, на марсе вовсю шло лето.

Хоть как такового календаря нет, но марсианский год часто условно разбивают на 12 месяцев, каждый из которых длиной по 30° — то есть на весну (0–90°), начало лета (90–180°) и т.д. У таких месяцев нет названий, только номера. Также учитывая что год на Марсе почти в два раза дольше нашего, то если мы хотим чтобы размеры месяцев все же были сопоставимы с нашими, мы также условно можем разбить период обращения Марса вокруг Солнца на 24 "месяца" по 15°.

Если например Ls = 130°, то можно вычислить текущий марсианский месяц 130/30 = 4,33, то есть идет пятый месяц Month 5.

В самих расчетах конвертации использовалась математика NASA - алгоритм Mars24, а также исследования Эллисона и Макьюэна по солнечной долготе Марса.
Надеюсь в будущем вернуться к API и предусмотреть варианты пересчета дат с земных на даты других планет Солнечной системы, по крайней мере интересных для изучения.

1
Начать дискуссию