Ireland kick off their **European Championship 2016** *Group E* on the **13th of June** at the **Stade de France**, Saint-Denis, in the northern suburbs of Paris at 6pm local time (5pm on the Emerald Isle). Our opponents that evening will be **Sweden**, followed by a trek down south to **Bordeaux** to face **Belgium** on the 18th, and then a northern journey to **Lille** to take on **Italy** in the final group game on the 22nd.

I have a flight from Dublin to Paris, a train from Paris to Bordeaux, Bordeaux to Lille, Lille to Paris, and a flight back to Dublin. Let’s use the simple **Haversine** formula to calculate approximately how far I will be travelling to follow the boys in green this summer. Just to note, I am not being pessimistic by not sticking around for the knockout stages, I have every faith that we will get out of the group, a two week holiday in France is going to take its toll on the bank account! But who knows…

The *Haversine* formula calculates the distance between two points on a sphere, also known as the Greater Circle distance, here’s the *Python* code similar to rosettacode.org…

from math import radians, sin, cos, sqrt, asin def haversine(coords_1, coords_2): lon1 = coords_1[0] lat1 = coords_1[1] lon2 = coords_2[0] lat2 = coords_2[1] # Earth radius in kilometers earth_radius = 6372.8 # convert from degrees to radians dLon = radians(lon2 - lon1) dLat = radians(lat2 - lat1) lat1 = radians(lat1) lat2 = radians(lat2) # mathsy stuff for you to research...if you're so inclined to a = sin(dLat/2)**2 + cos(lat1)*cos(lat2)*sin(dLon/2)**2 c = 2*asin(sqrt(a)) # return the distance rounded to 2 decimal places return round((earth_radius * c),2)

Now to use the function to calculate my approximate travelling distance. First define the coordinates as lists.

# lon - lat dub_airport = [-6.2700, 53.4214] cdg_airport = [2.5478, 49.0097] paris = [2.3831, 48.8390] bordeaux = [-0.5800, 44.8400] lille = [3.0583, 50.6278]

And then use the coordinates as parameters for the haversine function. Print the distance for each leg and the total distance.

leg_1 = haversine(dub_airport, cdg_airport) print "Leg 1: " + str(leg_1) + " Km" leg_2 = haversine(paris, bordeaux) print "Leg 2: " + str(leg_2) + " Km" leg_3 = haversine(bordeaux, lille) print "Leg 3: " + str(leg_3) + " Km" leg_4 = haversine(lille, paris) print "Leg 4: " + str(leg_4) + " Km" leg_5 = haversine(cdg_airport, dub_airport) print "Leg 5: " + str(leg_5) + " Km" total_dist = leg_1 + leg_2 + leg_3 + leg_4 + leg_5 print "Total Distance " + str(total_dist) + " Km"

The output from running the complete script is…

Leg 1: 785.3 Km Leg 2: 498.57 Km Leg 3: 698.71 Km Leg 4: 204.79 Km Leg 5: 785.3 Km Total Distance 2972.67 Km

**Just over 2,970 Km**! Ok so I could have been more accurate with getting the road length from my house to the airport, using the *Haversine* to find the distance from Dublin Airport to Charles De Gaulle, and then using road and rail networks to calculate my internal travel in France but the idea here was to introduce you to the *Haversine* formula.

And here’s a little map to show my up coming travels. These maps were made by exporting data from *ArcGIS* as an *emf* and imported in *CorelDraw*, a graphic design package for styling.

That’s it for the *Haversine, Python *and* GIS *in general*.* If you have no interest in football you can stop reading here. From here down it’s just * historic results* against our opponents and opinions.

# SWEDEN

We have faced Sweden in two world cup qualifying campaigns, in qualification for one European Championship, and four times in a friendly match. It doesn’t bode well that we have never beaten Sweden in a competitive game, losing four times and drawing twice.

Our dominance over Sweden in friendlies see us with a 75% win percentage, only losing once in four meetings.

**Overall**: **P10 W3 D2 L5 F13 A16 – WIN% 30**

# BELGIUM

Similar to our record against Sweden, Ireland have never beaten Belgium in a competitive fixture, although in the seven competitive games we have only been beaten twice, drawing the other five.

We have to look to the friendly results for Ireland to get the better of Belgium, with Ireland edging the score at four wins to three.

**Overall**: **P14 W4 D5 L5 F24 A25 – WIN% 28.57**

# ITALY

Well would you look at that!! We have beaten at least one of our upcoming opponents in a competitive match. Ok so one win out of eight but I am every the optimist and from 1994 onwards our record against Italy is pretty decent both competitively and in friendlies.

Our overall record against Italy looks dismal but recent results give Ireland hope. Since and including our meeting with Italy at World Cup 94 the head-to-head is two wins each and three draws. If you offered my a draw now against Italy I’d take it. Remember there are now twenty-four teams in the competition meaning the best placed third team in each group qualifies for the second round.

**Overall**: **P13 W2 D3 L8 F9 A20 – WIN% 16.67**

# Do we stand a chance of getting out of the group?

Let me know your thoughts. With three teams qualifying from four out of the six groups Ireland have every chance of progressing. A win and a draw will more than likely be the minimum requirement to achieve passage to the next phase, but let’s not forget that **Ireland reached the Quarter Finals of Italia 90 having not won a single match! **Beat Sweden in the opener and get a draw against Italy. If only it was that simple 🙂

#COYBIG

Data used to create maps was downloaded from Natural Earth.

Historic results collate from the FAI and Wikipedia.