# Euler Pole And Angle

## Euler Pole And Angle

get the finite rotation as a tuple of pole longitude, pole latitude and angle (all in degrees) at given times for plate IDs.

Endpoint:

`https://gws.gplates.org/rotation/get_euler_pole_and_angle`

Parameters:

times : a list of times, such as `times=10,20,30`. a single time can also be used, such as `times=100` [required]

pids : a list of plate ids [required]

model : name for reconstruction model [defaults to default model from web service settings]. User can get a list of available model names at https://gws.gplates.org/list/model_names

group_by_pid : group the results by plate IDs

start : start age, such as "start=1"

end : end age, such as "end=100"

step : the size of step from start age to end age, such as "step=1"

Return:

[pole_lon, pole_lat, angle]

Examples:

ðŸŸ¢ E1: get euler pole and rotation angle at 100Ma for plate id 701

https://gws.gplates.org/rotation/get_euler_pole_and_angle?times=100&pids=701

ðŸŸ¢ E2: get euler pole and rotation angle at 100Ma for plate id 701

https://gws.gplates.org/rotation/get_euler_pole_and_angle?times=10,50,100&pids=701,801,901

ðŸŸ¢ E3: get euler pole and rotation angle at 100Ma for all plate ids

https://gws.gplates.org/rotation/get_euler_pole_and_angle?times=10,50,100

ðŸŸ¢ E4: get euler pole and rotation angle from 1Ma to 100Ma with step 2Ma; group the results by plate ids

https://gws.gplates.org/rotation/get_euler_pole_and_angle?start=1&end=100&step=2&pids=701,801,901&group_by_pid

ðŸŸ¢ E5: a Python example. the file can be found at https://github.com/GPlates/gplates-web-service/blob/master/examples/get_rotation_with_web_service.py

```import jsonimport random
import requests
SERVER_URL = "https://gws.gplates.org"time = 100.0
# get all the plate IDs in the reconstruction tree at 100Maurl = f"{SERVER_URL}/rotation/get_plate_ids?time={time}"r = requests.get(url)pids = json.loads(r.text)# print(pids)
# pick up 10 random plate IDs from above plate IDsrandom_pids = [pids[random.randint(0, len(pids) - 1)] for _ in range(10)]print(random_pids)
times = list(range(0, 101, 10))  # give a list of times
# get euler pole and angle for each time and plate ID# if the plate id does not exist at the time, return identity rotation [0.0, 90.0, 0.0](not moving)# data format [lon, lat, angle]url = f"{SERVER_URL}/rotation/get_euler_pole_and_angle?times={times}&pids={random_pids}"# print(url)r = requests.get(url)ret = json.loads(r.text)print(json.dumps(ret, indent=4, sort_keys=True))```