Как стать автором
Обновить

Об полетах на околоземной орбите у себя дома перед монитором и как я это делал

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

Наша моделька:
image
Точка 1 — Спутник с координатами x1,y1,z1
Коричневая плоскость — снимок. Точки снимка имеют координаты x2,y2,z2
Голубой Шар — земля… Снимок на него проецируется по координатам x,y,z. (без индексов)
Зеленая линия — квант луча долетевший до спутника.
То есть нам нужно найти функцию проецирования точек снимка на шар: X(x2,y2), Y(x2,y2), Z(x2,y2)

Шар задается уравнением
x^2+y^2+z^2=1; где за 1 принимаем радиус земли чтобы упростить расчеты уже на этом этапе.
Уравнения линии:
(z-z1)/(1-z1)=t
y/y2=t
x/x2=t

Отсюда
z=z1 + t — t*z1
y=y2*t
x=x2*t
Осталось подставить в формулу шара:
x2^2*t^2+y2^2*t^2+(z1+t-t*z1)^2 = 1
и найти t:
t1 = (-z1+z1^2+sqrt(z1^2+x2^2-x2^2*z1^2+y2^2-y2^2*z1^2+1-2*z1))/(x2^2+y2^2+1-2*z1+z1^2)
t2= -(z1-z1^2+sqrt(z1^2+x2^2-x2^2*z1^2+y2^2-y2^2*z1^2+1-2*z1))/(x2^2+y2^2+1-2*z1+z1^2)
t1 отвечает точкам с обратной стороны земли и он нам не нужен.
Теперь можно подставить t и найти координаты проецируемой точки.
Осталось поставить координаты спутника:
Расстояние от земли до спутника на орбитальной орбите 35786 км
Радиус земли 6378.1км
z1=35786/6378.1+1

Моделирование дает вот такую проекцию:
image

Далее я сделал программу просмотра таких снимков.
Здесь вы можете посмотреть как это работает:


О самих снимках: RGB изображения доступны в качестве 120MPix. Rрасный канал захватывает и инфракрасную область, от этого снимки выглядят неестественно… Очень хотелось бы увидеть спектральные чувствительности используемых фильтров. Я мог бы чтобы попробовать свести изображения в естественных цветах.
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.