# 3.7 Classroom Exercises

## Contents

# 3.7 Classroom Exercises#

**List of exercises and estimated completion times**

3a - Saving and Loading Data *5 minutes*

3b - Plotting with matplotlib *10 minutes*

3c The Biggest Earthquake in the UK This Century *30 minutes*

## Exercise 3a Saving and Loading Data#

*Relevant sections: 3.2.2, 3.2.3*

Use YAML or JSON to save your maze data structure to disk and load it again.

The maze would have looked something like this:

```
house = {
"living": {
"exits": {"north": "kitchen", "outside": "garden", "upstairs": "bedroom"},
"people": ["James"],
"capacity": 2,
},
"kitchen": {"exits": {"south": "living"}, "people": [], "capacity": 1},
"garden": {"exits": {"inside": "living"}, "people": ["Sue"], "capacity": 3},
"bedroom": {
"exits": {"downstairs": "living", "jump": "garden"},
"people": [],
"capacity": 1,
},
}
```

## Exercise 3b Plotting with matplotlib#

Generate two plots, next to each other (on the same row).

The first plot should show sin(x) and cos(x) for the range of x between -1 pi and +1 pi.

**Hint:** The `range(start, stop, step)`

function only works with integers. Use the `arange`

function from `numpy`

instead: `np.arange(start, stop, step)`

.

The second plot should show sin(x), cos(x) and the sum of sin(x) and cos(x) over the same -pi to +pi range. Set suitable limits on the axes and pick colours, markers, or line-styles that will make it easy to differentiate between the curves. Add legends to both axes.

## Exercise 3c The Biggest Earthquake in the UK This Century#

`GeoJSON`

is a json-based file format for sharing geographic data.
One example dataset is the USGS earthquake data:

```
import requests
quakes = requests.get(
"http://earthquake.usgs.gov/fdsnws/event/1/query.geojson",
params={
"starttime": "2000-01-01",
"maxlatitude": "58.723",
"minlatitude": "50.008",
"maxlongitude": "1.67",
"minlongitude": "-9.756",
"minmagnitude": "1",
"endtime": "2021-01-19",
"orderby": "time-asc",
},
timeout=60,
)
```

```
quakes.text[0:100]
```

```
'{"type":"FeatureCollection","metadata":{"generated":1706020665000,"url":"https://earthquake.usgs.gov'
```

### The Problem#

Determine the **location** of the **largest magnitude** earthquake in the UK this century.

You can break this exercise down into several subtasks. Youâ€™ll need to:

#### Load the data#

Get the text of the web result

Parse the data as JSON

#### Investigate the data#

Understand how the data is structured into dictionaries and lists

Where is the magnitude?

Where is the place description or coordinates?

#### Search through the data#

Program a search through all the quakes to find the biggest quake

Find the place of the biggest quake

#### Visualise your answer#

Form a URL for an online map service at that latitude and longitude: look back at the introductory example

Display that image