Making Vizz : Mars Missions

A brief on how I made the viz, learnings and techniques used.

I really love reading about Space. Hence I created this viz out of personal interest. There are few interesting visualizations out there which has the same info. I wanted the viz to be interactive and also kind of show each mission as a line from Earth to Mars.It also had to specify Type of Mission, Success/Failure and some details on each mission.

Scrollable Timeline

I used scrollable time line to make the selection of dates interactive. The tutorial on this by Ken Flerlage is all you need to implement it in tableau.

Arc representing a mission

I used the method in to create the sin curve.

The curve need to end on a circular path so that it coincide with the orbit for Mars. Some thing like

Sin curve ending on a circular path

Below are the details of the calculations to achieve this.(Assuming we have already created the basic sin curve for each mission.)

Calculate the X and Y coordinates of the circle(or Arc) representing Mars /Mars Orbit.

Create [Angle]

//There are 48 missions. This will give a 160 degree arc rather than circle and the angle at which the mission ending has to be plotted.


21+cos(RADIANS([Angle]*[Mission Code]-90))

// 21 is just a number which will determine how far the Arc is from starting point.

//[Mission Code] – each mission has a code(1-48)


3*SIN(RADIANS([Angle]*[Mission Code]-90))

//3 is the radius. This is an adjustment to get the arc right. More on this later in the blog.

Calculating the X and Y coordinates of each mission.




[Y_2] + (7+(WINDOW_MAX(MAX([Y_Mars])))- [Y_2]) * ( [Curve])

//[Y_2] is the starting Y coordinate for each mission.7 is just a number which determines the height at which the arc representing Mars will be drawn.[Curve] has the calculation for drawing the sin curve.

Mission Type

A Mission Type can be ‘Flyby’,’Orbiter’,’Lander’,’Rover’ etc. Based on the mission type the curve end on different arc.

For this, I assigned color to the densified points after the required [Index] for each Mission Type and excluded them.


if [Index]=80 and WINDOW_MAX(MAX([Type_Setup]))=1//Flyby
ELSEIF [Index]>80 and WINDOW_MAX(MAX([Type_Setup]))=1//Flyby : these points will be hidden
ELSEIF [Index]=90 and WINDOW_MAX(MAX([Type_Setup]))=2 //Orbiter
ELSEIF [Index]>90 and WINDOW_MAX(MAX([Type_Setup]))=2 //Orbiter : these points will be hidden



Exclude Filter


Create a calculated field to determine the X coordinate of each curve ending


if WINDOW_MAX(MAX([Type_Setup]))=1 and [Index]=80
then [X] //For Flyby
ELSEIF WINDOW_MAX(MAX([Type_Setup]))=2 and [Index]=90
then [X] //For Orbiter
ELSEIF WINDOW_MAX(MAX([Type_Setup]))=3 and [Index]=95
then [X] //For Lander


Drag the field to column shelf. Make it dual axis and synchronize the axis. Change mark type to circle. Drag the field [Success/Failure] to color. Set Compute using to path bin for the nested calculations.

Filtering based on Country

Created sheets with list of countries and added a filter action to get the interactivity in Dashboard.

The Final dashboard

To Improve

The Arc for Flyby and Orbiter was adjusted . It is not a part of perfect circle and hence some of the endpoints don’t exactly coincide with the arcs.

I did this because to get the end points of flyby/ orbiter on a perfect arc needed calculating X and Y coordinates of circle with increased radius that that for Mars. This would in turn create separate curve for each mission type. A particular mission can have more than one mission type(Same mission can have flyby,orbiter and lander) and having separate curve for each mission type would leave the graph incomprehensible.

Maybe in future I would try to find a solution for this 🙂

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Blog at

Up ↑

%d bloggers like this: