Inspiration
"Every civilization either becomes space fairing or extinct" - Carl Sagan. Over ages humans have been fascinated by the idea of interplanetary travel and we also visited our moon during the Apollo Missions. MARS being our next destination, we want to know as much as possible about the harsh conditions on the red planet and data is important in this case.
Where man can't go, machines can, this is very well proven by the interplanetary exploratory missions that our space organizations plan. NASA's Curiosity/MSL and Perseverance/M2020 missions are two car size rovers that are out there doing the exploration for us. Everything they do, they record data of several kinds, the most important thing being images. As of now, downloading images and their metadata is a painful process from the official NASA website as in, there's no way for us enthusiasts to batch download.
This is where rover comes in.
What it does
rover is a command line interface application that abstracts and makes the process of obtaining information available on the mars.nasa.gov website easy through providing meaningful and easy to use commands so that the savvy data enthusiast in us doesn't have to keep switching between their programming environment and the web-browser. i.e., this is for the power user is us.
Challenges & How rover was built
As mentioned earlier there's no way to batch download images nor is there a way to download the metadata on the website.
To get around these challenges, rover mimics a browser request using the python requests library, applies some magic and presents data to the user.
Accomplishments so far..
rover has 5 functional commands that are operable on both MSL and MARS2020 missions and allows to download
Usage: rover [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
camera Show camera info
download Download mission raw images/metadata
missions Show list of active missions
stats Show mission statistics
status Show mission status
What we learned
- Building CLIS in python
- interacting with APIs
What's next for rover
- adding more commands
- add filters to download options
Log in or sign up for Devpost to join the conversation.