<p>From the paper by <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.546.7648&amp;rep=rep1&amp;type=pdf" rel="nofollow noreferrer">M. Kaasalainen, J. Torppa, and K. Muinonen</a>, equation (1) is:</p>
<p><span class="math-container">$$ \vec r_{ast} = R_z(\omega(t-t_0)+\phi_0) R_y(\hat\beta) R_z(\lambda) \vec r_{ecl} $$</span></p>
<p>To reverse this equation you must reverse the order of the rotations <em>and</em> the rotation angles:
<span class="math-container">$$ \vec r_{ecl} = R_z(-\lambda)R_y(-\hat\beta)R_z(-\omega(t-t_0)-\phi_0) \vec r_{ast} $$</span></p>
<p>From your description, you reversed the order of the rotations but not the rotation angles.</p>

CC BY-SA 4.0
2019-02-13T17:40:51.787Z
Looking at the paper and at the DAMIT description webpage, I can't reconcile the two transformations. They claim to use the same handedness for their rotations but the two equations are inverses of each other.
cms
CC BY-SA 4.0
2019-02-13T20:12:45.997Z
Thank you @cms.  Given ̂ = 90 - , t=t0, and phi0=0, my final transformation is  ⃗_=(−)(−(90-) )(0)⃗_. I'm first rotating -(90-) =-153 around Y, then -=-251 around Z.

[It still doesn't look quite right](https://i.imgur.com/JGigJci.png), but a small manual rotation matches the DAMIT rendering. Maybe it's accounted for by minor differences in ephemeris or other factors. I'm a little skeptical but at this point it's hard to be sure.  I've also updated the [interactive rendering](http://www.ianww.com/asteroid-spin/) accordingly.
ty.
CC BY-SA 4.0
2019-02-13T17:28:32.190Z
2019-02-13T17:28:32.190Z
2020-06-17T09:47:40.653Z
cms
<p>I am writing a program to render an asteroid as seen from various parts of the solar system.  My goal is to roughly reproduce the <a href="http://astro.troja.mff.cuni.cz/projects/asteroids3D/php.php?script=db_sky_projection&amp;model_id=1863&amp;jd=2443568.0" rel="nofollow noreferrer">image of Cacus</a> according to information on its DAMIT <a href="http://astro.troja.mff.cuni.cz/projects/asteroids3D/web.php?page=db_asteroid_detail&amp;asteroid_id=1046" rel="nofollow noreferrer">detail page</a>.  </p>

<p>Here is my approach:</p>

<ol>
<li><p>Create a solar system at JD0=2443568.0.  The axes of the visualization are arranged according to the ecliptic with positive X axis in the direction of the vernal equinox and other axes according to the right-hand rule.  Earth is positioned at t=JD0.  (<a href="https://i.sstatic.net/7UjqP.png" rel="nofollow noreferrer">image</a>)</p></li>
<li><p>Place the asteroid at (0, 0, 0) and begin to rotate the object according to the matrix multiplication described by the <a href="http://astro.troja.mff.cuni.cz/projects/asteroids3D/web.php?page=db_description" rel="nofollow noreferrer">Description page</a> and <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.546.7648&amp;rep=rep1&amp;type=pdf" rel="nofollow noreferrer">Kaasalainen &amp; Torppa 2001</a>:</p>

<ul>
<li><p>φ0=0 and t=JD0, so there is no initial Z axis rotation</p></li>
<li><p>Latitude β is -63, so rotate 90 - (-63) = 153 degrees on the Y axis (<a href="https://i.sstatic.net/KPulB.png" rel="nofollow noreferrer">image</a>)</p></li>
<li><p>Longitude λ is 251, so rotate the object 251 degrees anticlockwise around the Z axis of the ecliptic (<a href="https://i.sstatic.net/7Iv58.png" rel="nofollow noreferrer">image</a>)</p></li>
</ul></li>
<li><p>Using ephemeris from the NASA/JPL Small Body Database, move Cacus to its position in orbit at JD0. (<a href="https://i.sstatic.net/kZESc.png" rel="nofollow noreferrer">image</a>)</p></li>
<li><p>Move the camera to Earth's position at JD0 and point it at the asteroid. (<a href="https://i.sstatic.net/4IhIa.png" rel="nofollow noreferrer">image</a>)</p></li>
</ol>

<p>My final rendering does not match the <a href="https://i.sstatic.net/0Va8r.png" rel="nofollow noreferrer">projection from DAMIT</a>.  I understand that there are factors like light-time correction that I'm not including, but it looks completely different.  </p>

<p>What is wrong with my approach to rotating the asteroid on its spin axis?</p>

<p><a href="https://i.sstatic.net/RHCLw.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/RHCLw.png" alt="My rendering of Cacus"></a></p>

<p>(The work-in-progress visualization is online <a href="http://www.ianww.com/asteroid-spin/" rel="nofollow noreferrer">here</a>)</p>

CC BY-SA 4.0
2019-02-13T16:50:29.993Z
Obvious questions first: Did you convert the $\beta$ and $\lambda$ angles to radians before attempting to use them in a rotation matrix?
cms
CC BY-SA 4.0
2019-02-13T20:13:31.830Z
I am indeed converting the angles to radians
ty.
CC BY-SA 4.0
2019-02-13T21:16:46.893Z
How are you determining where the Earth is at jd0?
cms
CC BY-SA 4.0
2019-02-15T01:00:52.327Z
@cms If you are willing to read code, here is the function I wrote to compute heliocentric coords from ephemeris: https://gist.github.com/typpo/e20da5a9976edd28511240b9248f00fe  I am using ephem for EM Barycenter from https://ssd.jpl.nasa.gov/?planet_pos
ty.
CC BY-SA 4.0
2019-02-20T01:19:28.683Z
@cms I've detailed my process for heliocentric position here: https://astronomy.stackexchange.com/questions/29575/rendering-asteroid-orientation-as-seen-from-earth
ty.
<asteroids><rotation><orbital-mechanics>
Rendering asteroid orientation as seen from Earth
ty.
# Rendering asteroid orientation as seen from Earth

(Asked by: username_0 on 2019-02-13)

I am writing a program to render an asteroid as seen from various parts of the solar system. My goal is to roughly reproduce the [image of Cacus](http://astro.troja.mff.cuni.cz/projects/asteroids3D/php.php?script=db_sky_projection&model_id=1863&jd=2443568.0) according to information on its DAMIT [detail page](http://astro.troja.mff.cuni.cz/projects/asteroids3D/web.php?page=db_asteroid_detail&asteroid_id=1046).

Here is my approach:

1. Create a solar system at JD0=2443568.0. The axes of the visualization are arranged according to the ecliptic with positive X axis in the direction of the vernal equinox and other axes according to the right-hand rule. Earth is positioned at t=JD0. ([image](https://i.sstatic.net/7UjqP.png))
2. Place the asteroid at (0, 0, 0) and begin to rotate the object according to the matrix multiplication described by the [Description page](http://astro.troja.mff.cuni.cz/projects/asteroids3D/web.php?page=db_description) and [Kaasalainen & Torppa 2001](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.546.7648&rep=rep1&type=pdf):

   * φ0=0 and t=JD0, so there is no initial Z axis rotation
   * Latitude β is -63, so rotate 90 - (-63) = 153 degrees on the Y axis ([image](https://i.sstatic.net/KPulB.png))
   * Longitude λ is 251, so rotate the object 251 degrees anticlockwise around the Z axis of the ecliptic ([image](https://i.sstatic.net/7Iv58.png))
3. Using ephemeris from the NASA/JPL Small Body Database, move Cacus to its position in orbit at JD0. ([image](https://i.sstatic.net/kZESc.png))
4. Move the camera to Earth's position at JD0 and point it at the asteroid. ([image](https://i.sstatic.net/4IhIa.png))

My final rendering does not match the [projection from DAMIT](https://i.sstatic.net/0Va8r.png). I understand that there are factors like light-time correction that I'm not including, but it looks completely different.

What is wrong with my approach to rotating the asteroid on its spin axis?

[![My rendering of Cacus](https://i.sstatic.net/RHCLw.png)](https://i.sstatic.net/RHCLw.png)

(The work-in-progress visualization is online [here](http://www.ianww.com/asteroid-spin/))

**Tags:** asteroids, rotation, orbital-mechanics

> **Comments:**
> **username_1**: Obvious questions first: Did you convert the $\beta$ and $\lambda$ angles to radians before attempting to use them in a rotation matrix?  
> **username_0**: I am indeed converting the angles to radians  
> **username_1**: How are you determining where the Earth is at jd0?  
> **username_0**: @username_1 If you are willing to read code, here is the function I wrote to compute heliocentric coords from ephemeris: https://gist.github.com/typpo/e20da5a9976edd28511240b9248f00fe  I am using ephem for EM Barycenter from https://ssd.jpl.nasa.gov/?planet_pos  
> **username_0**: @username_1 I've detailed my process for heliocentric position here: https://astronomy.stackexchange.com/questions/29575/rendering-asteroid-orientation-as-seen-from-earth  

---

## 1 answers

### Answer by username_1 on 2019-02-13. Score: 1 | Accepted answer

From the paper by [M. Kaasalainen, J. Torppa, and K. Muinonen](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.546.7648&rep=rep1&type=pdf), equation (1) is:

$$ \vec r\_{ast} = R\_z(\omega(t-t\_0)+\phi\_0) R\_y(\hat\beta) R\_z(\lambda) \vec r\_{ecl} $$

To reverse this equation you must reverse the order of the rotations *and* the rotation angles:
$$ \vec r\_{ecl} = R\_z(-\lambda)R\_y(-\hat\beta)R\_z(-\omega(t-t\_0)-\phi\_0) \vec r\_{ast} $$

From your description, you reversed the order of the rotations but not the rotation angles.

> **Comments:**
> **username_1**: Looking at the paper and at the DAMIT description webpage, I can't reconcile the two transformations. They claim to use the same handedness for their rotations but the two equations are inverses of each other.  
> **username_0**: Thank you @username_1.  Given ̂ = 90 - , t=t0, and phi0=0, my final transformation is  ⃗_=(−)(−(90-) )(0)⃗_. I'm first rotating -(90-) =-153 around Y, then -=-251 around Z.  [It still doesn't look quite right](https://i.imgur.com/JGigJci.png), but a small manual rotation matches the DAMIT rendering. Maybe it's accounted for by minor differences in ephemeris or other factors. I'm a little skeptical but at this point it's hard to be sure.  I've also updated the [interactive rendering](http://www.ianww.com/asteroid-spin/) accordingly.  

---

