Skip to main content

A Python Wrapper for NASA's Mars Rover Photos API

Project description

Marstuff

API Wrapper for NASA's Mars Rover Photos API

📝 Description

This is a Work-In-Progress Python API Wrapper for NASA's Mars Rover Photos API which provides both Synchronous and Asynchronous support.

🔥 Getting Started

  • ⬇️ Installation

    • Via pip
      pip install marstuff
      
  • ✨ Getting a NASA Developer Key

    • Goto https://api.nasa.gov/
    • Navigate to Generate API Key at the top navbar. image
    • Fill in your details, and tap Signup image
    • Copy Your API Key image
  • ⚡ Quickstart

    • Synchronously getting, Viewing and Saving the Latest Photo of NASA's Curiosity Rover
      from marstuff import Client # Import the Client class
      client = Client("Your API Token") # Make a new Client
      
      # Get the latest Photo
      photo = client.get_latest_photo(client.curiosity)
      # OR
      photo = client.curiosity.get_latest_photo()
      
      # Display the Photo
      photo.show()
      # Save the Photo
      photo.save("Latest photo of Curiosity.png")
      
    • Asynchronously getting all the photos taken by the Rear Hazard Avoidance Camera of NASA's Curiosity Rover on sol 3259
      from marstuff import AsyncClient # Import the AsyncClient class
      from marstuff.objects.camera import CAMERAS # Import the list of all CAMERAS
      import asyncio # Import asyncio
      
      client = AsyncClient("Your API Token") # Make a new Client
      
      # Make a function for running asyncio
      async def get_photos():
          # Get the photo by Curiosity on sol 3259 with the RHAZ camera
          photos = await client.curiosity.get_all_photos_by_sol(3259, CAMERAS.RHAZ)
          # OR
          photos = await client.curiosity.rhaz.get_all_photos_by_sol(3259)
          print(photos)
      
      asyncio.run(get_photos())
      
  • 🧠 General Need-to-Know Stuff!!

    This API currently provides access to 4 NASA Rovers (Perseverance, Curiosity, Opportunity, and Spirit) Each rover, takes photos of the surface of mars via different cameras

    • The cameras of the Perseverance Rover are

      Abbreviation Camera
      EDL_RUCAM Rover Up-Look Camera
      EDL_RDCAM Rover Down-Look Camera
      EDL_DDCAM Descent Stage Down-Look Camera
      EDL_PUCAM1 Parachute Up-Look Camera A
      EDL_PUCAM2 Parachute Up-Look Camera B
      NAVCAM_LEFT Navigation Camera - Left
      NAVCAM_RIGHT Navigation Camera - Right
      MCZ_RIGHT Mast Camera Zoom - Right
      MCZ_LEFT Mast Camera Zoom - Left
      FRONT_HAZCAM_LEFT_A Front Hazard Avoidance Camera - Left
      FRONT_HAZCAM_RIGHT_A Front Hazard Avoidance Camera - Right
      REAR_HAZCAM_LEFT Rear Hazard Avoidance Camera - Left
      REAR_HAZCAM_RIGHT Rear Hazard Avoidance Camera - Right
      SKYCAM MEDA Skycam
      SHERLOC_WATSON SHERLOC WATSON Camera
    • Cameras of other Rovers are

      Abbreviation Camera Curiosity Opportunity Spirit
      FHAZ Front Hazard Avoidance Camera
      RHAZ Rear Hazard Avoidance Camera
      MAST Mast Camera
      CHEMCAM Chemistry and Camera Complex
      MAHLI Mars Hand Lens Imager
      MARDI Mars Descent Imager
      NAVCAM Navigation Camera
      PANCAM Panoramic Camera
      MINITES Miniature Thermal Emission Spectrometer (Mini-TES)

    You can query via sol or earth_date

    • sol means Martian rotation or day which can be (0 to Current Sol of Rover)
    • earth_date is in the format of YYYY-MM-DD

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

marstuff-0.2.0.tar.gz (14.6 kB view hashes)

Uploaded Source

Built Distribution

marstuff-0.2.0-py3-none-any.whl (11.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page