From 3ffd42d5b9f9e620925ed70cad223d1946c6d1df Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Sat, 29 Mar 2014 15:51:21 +1100 Subject: [PATCH] Fix a bug in the airline route distance example, found by a student. The system works! --- core/csv.md | 2 +- images/histogram.png | Bin 8605 -> 10091 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/core/csv.md b/core/csv.md index 0f2d8cd..e68542e 100644 --- a/core/csv.md +++ b/core/csv.md @@ -161,7 +161,7 @@ When looking at the list of fields in the OpenFlights data documentation, rememb if source_airport in latitudes and dest_airport in latitudes: source_lat = latitudes[source_airport] source_long = longitudes[source_airport] - dest_lat = latitudes[source_airport] + dest_lat = latitudes[dest_airport] dest_long = longitudes[dest_airport] distances.append(geo_distance.distance(source_lat,source_long,dest_lat,dest_long)) diff --git a/images/histogram.png b/images/histogram.png index 493e033ccc9a3c3120c76b4d60e4190fca17a5bb..c35eacc1c83e336f0870d326100f9a1172c8b5d6 100644 GIT binary patch literal 10091 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 Y+_U(Gn}3JjQ6R|m-_%igm+w9PKQSJjQ~&?~