Akshaj Sr

Hey, Im an AIE student studying in Amrita University. I still havent figured out what am i good at.

Email me to akshajsr000@gmail.com

Home

Aerglo Mars

Published Sep 27, 2021

Share

< Introspection


This blog contains my approach on learning command line interface apps and Application programming interface to complete Aerglo Mars task.

Task-04

I started my task by getting my api key from “https://api.nasa.gov”. I kept it aside and start learning about cli app.

I learned the basics of cli from doin small mathematical tasks like addition, substraction etc. I understood the different parts of the interface like parameters, optional parameters etc.\

code:

import argparse

parser = argparse.ArgumentParser(description='Adding two numbers')
parser.add_argument('numberone',type=int,help='Enter no-1')
parser.add_argument('numbertwo',type=int,help='Enter no-2')
parser.add_argument('operation',help='Enter operation')
args = parser.parse_args()

if str(args.operation) == "+":
	print(args.numberone + args.numbertwo)
elif str(args.operation) == "-":
	print(args.numberone - args.numbertwo)
elif str(args.operation) == "*":
	print(args.numberone * args.numbertwo)
elif str(args.operation) == "/":
	print(args.numberone / args.numbertwo)

After understanding cli app , I tried to fetch the json file from the query using request module.

code:

import request
url="https://api.nasa.gov/mars-photos/api/v1/rovers/2015-09-13/photos?earth_date={}&api_key=Oxnb3aAfbCBjXgreQ0EaFtKlPh66yNBl3QGWXgno"
data=requests.get(url)
data=data.json()
img_src=(data['photos'])[i]['img_src'] #contains the link for the element

Then i figured out how to use urllib to download image from the image source.

import urllib
img_src=(data['photos'])[i]['img_src']
urllib.request.urlretrieve(img_src,'newimage.jpg')

Then i combined all these.

Code :

import argparse
import requests
import urllib
import sys

my_parser = argparse.ArgumentParser(description='Fetch Image from NASA API')
my_parser.add_argument('date',metavar='',help='Date in YYYY-MM-DD')
my_parser.add_argument('id',metavar='',type=int,help='Image ID')
my_parser.add_argument('-rovername',metavar='',help='Rover name - opportunity , spirit , curiosity(default)')
args=my_parser.parse_args()

rn=args.rovername

if str(rn) not in ['Curiosity','curiosity','Spirit','spirit','Opportunity','opportunity'] and rn!=None:
    print('unknown rovername')
    sys.exit()
elif rn == None:
    rovername='Curiosity'
else:
    rovername=str(rn)


url="https://api.nasa.gov/mars-photos/api/v1/rovers/{}/photos?earth_date={}&api_key=Oxnb3aAfbCBjXgreQ0EaFtKlPh66yNBl3QGWXgno".format(rovername,str(args.date))
data=requests.get(url)
id=args.id

data=data.json()

i=0
while True:
    try:
        if (data['photos'])[i]['id']==id:
            urllib.request.urlretrieve((data['photos'])[i]['img_src'],'newimage.jpg')
            break
        i+=1
    except:
        print('invalid parameter')
        break


< Previous Next >