Python Apis: Part2

Author: R Zach Feeser

Continuing with code to screen iterations using a “turtle”, we take a further look at tracking the International Space Station (ISS). Python has a “Turtle Graphics Module” that is built on top of Tkinter, which is a more powerful, general purpose Python library for building GUIs (Graphical User Interfaces). Using this library, we will set the background as a world map of the planet Earth, replace the “turtle” with an International Space Station (ISS) icon, and then tell our new ISS-turtle to move according to real-time data provided by a RESTful API that tracks the actual location of the orbiting ISS. In part two of working with APIs, we continue to improve our code - highlighting the Space Station and alerting us to when the ISS is actually overhead.

Step 1 - Prerequisites to Perform this task.

Step 2 - Take a look at your web resource.

Open a browser tab to

Step 3 - Create your updated python script and review!

You can do this with any of your favorite editors like vim, nano, or emacs. Here we use leafpad.

student@bchd:~/apicode$ leafpad

import time
import turtle
import urllib.request
import json
## Trace the ISS - earth-orbital space station 
eoss = ''

## Call the webserv
trackiss = urllib.request.urlopen(eoss)

## put into file object
ztrack =

## json 2 python data structure
result = json.loads(ztrack.decode('utf-8'))

## display our pythonic data

Converted python data")
ISS data retrieved & converted. Press the ENTER key to continue')

location = result['iss_position']
lat = location['latitude']
lon = location['longitude']
Latitude: ', lat)
print('Longitude: ', lon)

screen = turtle.Screen() # create a screen object
screen.setup(720, 360) # set the resolution



screen.register shape('spriteiss.gif')
iss = turtle.Turtle()

lon = round(float(lon))
lat = round(float(lat))

iss.goto(lon, lat)

## My location
yellowlat =40.2
yellowlon = -76.6
mylocation = turtle.Turtle()
mylocation.goto(yellowlon, yellowlat)

passiss = ''
passiss = passiss + '?lat=' + str(yellowlat) + '&lon=' + str(yellowlon)
response = urllib.request.urlopen(passiss)
result = json.loads('utf-8'))

## print(result) ## uncomment to see the downloaded result
over = result['response'][1]['risetime']
style = ('Arial', 6, 'bold')
mylocation.write(time.ctime(over), font=style)
turtle.mainloop() # <-- this line should ALWAYS be at the bottom of your script. It prevents the graphic from closing.

Step 4 - Run your python code!

student@bchd:~/apicode$ python3

Converted python data
{'timestamp': 1532358137, 'iss_position': {'longitude': '-160.0826', 'latitude': '12.7211'}, 'message': 'success'}

ISS data retrieved & converted. Press the ENTER key to continue

Latitude:  12.7211
Longitude: -160.0826

Step 5 - Take a look at the Map that shows where the International Space Station is at the Moment! Awesome!

api_python_turtle_iss2.PNG api_python_turtle_iss2.PNG

Explore more Python API studies with Alta3 Research!

Next →