Hey, Im an AIE student studying in Amrita University. I still havent figured out what am i good at.
Email me to akshajsr000@gmail.comPublished Sep 27, 2021
This blog contains my approach on learning command line interface apps and Application programming interface to complete Aerglo Mars task.
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.\
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.
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.
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