In the Spring of 2015, I took a course taught by former NASA astronaut Mike Massimino, "Humans in Spaceflight". The course dealt with human factors issues faced in spaceflight, such as nutrition, mental endurance, and the health effects of microgravity and prolonged exposure to radiation.
The final project was to create a graphical user interface (GUI) that astronauts on the International Space Station (ISS) could use to help take better pictures of Earth. ISS astronauts spend a good deal of time in the Cupola, a special observation module for looking back at Earth. Astronauts take pictures for their own personal enjoyment, but more importantly, they are often tasked with collecting images from above for NASA. The ISS provides a great vantage point for collecting images that may be used to analyze phenomena on a macro scale, such as deforestation or algal blooms. Because astronauts may be assigned to take photos at different locations throughout the day, it would be helpful to have a digital assistant that would tell them where and when to take photos.
Our GUI was made in MATLAB, and used APIs to collect data from Google Earth, The Weather Channel, and even the ISS itself. The program showed the user satellite imagery both of their current location, directly below the ISS, and of their "target" location. Information about both locations was also provided, such as coordinates, current weather conditions, and time until passage. Finally, the program incorporated Google search functionality, so that inquiries like "Houston Mission Control" or "Shake Shack Morningside Heights" would deliver results, which could then be saved to a drop-down list for later reference.
This project was a fantastic experience in writing an interactive program with a functional user interface. We had to consider what information was important to astronauts to take pictures from space and how we could deliver that information in a simple and easy-to-use format (as Professor Massimino would say, "astronaut-proof"). MATLAB is not necessarily the first program that comes to mind when creating a web-connected GUI, which presented many unique programming hurdles to overcome. Finally, I gained experience developing a program alongside 3 teammates, which was good practice in dividing up responsibilities and pushing code updates without breaking anyone else's module.
Massimino space photo from popsci.com