Helicopter escape is a rare event, yet when it happens, it normally involves high-profile criminals who have the resources and network to organise the risky attempt. These criminals are very dangerous if they're at large, thus it's important to reduce or prevent any further helicopter escapes.
The first few steps in accomplishing that would be the identification of the following:
Also, we recently read the story of Michel Vaujour's wife who took flying lessons for months and attempted to free her husband by piloting a helicopter on her own. Inspired by the story, we would like to additionally investigate if the power of love has an impact on success chance.
From our analysis, France and United States are the top two countries with regards to the number of attempts. But in terms of chances of success, escapees are very likely (70%+) to succeed when escaping from United States, Canada, and France's prisons.
Aside from that, attempts are more successful when they are not done alone, but the chances of success decreases when there are four escapees. We also looked into the relationship between involvement of a lover and chances of success, and discovered that the chances are lower when a lover is complicit in an attempt.
We'll be using Julia — a relatively new general-purpose language but with strong emphasis numerical analysis and computational science. Frankly, we are quite new to Julia so the codes we'll write for the rest of this project do not reflect Julia's actual calibre as a data science programming language.
Aside from that, unlike Python, Julia's ecosystem are fairly small. Thus, the libraries we use are not necessarily the best, but they are what's currently available. Julia can interoperate with Python as well, though in this project, we choose to stick to Julia's packages.
Our analysis will be simple in this project e.g bar charts, summary statistics, because our intention is to get an overview rather than a deep dive into the issue.
The data for this project is based on the list of helicopter prison escapes on Wikipedia. Wikipedia's content is crowd-sourced thus the quality of the article can vary depending on the contributors. Since we are not aware of any other sources that track helicopter escapes, we decided to use the stated Wikipedia's article while acknowledging the possible data quality issue.
The article is shared under the Creative Commons Attribution-ShareAlike License 3.0 which permits the copying of content from the article.
The first two sections, Getting the Data and Cleaning Up, are mostly technical and meant for setting up the data for easier and proper analysis. Feel free to skip them if you're only interested in the analyses and their results.
The Wikipedia article doesn't provide a downloadable dataset for us to use. Because of this, we have to resort to web-scraping. Considering that all our data is on one page, we can web-scrape with a single function call thus we avoid overloading Wikipedia's server. Even if Wikipedia can withstand repeated visits, it's always good manners to consider if we're being respectful rather than assuming that we can do anything we want.
We also reviewed Wikipedia's robots.txt and found no line indicating that the article is disallowed for scraping. Another alternative we should consider when we use Wikipedia again in other projects is to use its REST API.
# import all the necessary packages for the whole project
using HTTP, Gumbo, DataFrames, Statistics, FreqTables, PlotlyJS, Colors, ColorSchemes
import AbstractTrees as AT, Plots as PLT, StatsBase as SB
#=
Notes on packages
HTTP - handles GET requests
Gumbo - an HTML parser based on Google's Gumbo parser
Statistics - Julia's built-in statistics package containing only the essential statictical operations
FreqTables - converts DataFrames, Vectors, etc into a frequency table
AbstractTrees - needed to iterate through the HTML elements
Plots - Julia's built-in plotting package
StatsBase - to provide some statistical operations not available in Statistics
PlotlyJS - alternative plot backend
Colors - for colors
ColorSchemes - similar to the previous
=#
# by default, Jupyter won't display all columns in a dataframe
#
# we set the environment variable to override that behaviour,
# thus displaying all columns (assuming column numbers <= 10000)
ENV["COLUMNS"]=10000
The WebIO Jupyter extension was not detected. See the WebIO Jupyter integration documentation for more information.
10000
We start by sending a GET request to the article url. From there, we can store the response and then extract its body.
Note that we've already scraped the article before writing this, but we've provided the relevant code for reference.
# get the raw html from the wikipedia page: https://en.wikipedia.org/wiki/List_of_helicopter_prison_escapes
# do the following only if the data is not available locally
#=
response = HTTP.request("GET", "https://en.wikipedia.org/wiki/List_of_helicopter_prison_escapes")
response_body = String(response.body)
# print raw data to make sure the response is okay
println(response.status)
println(response.body)
# store locally
open("datasets/helicopter_escapes.html","w") do f
write(f,response_body)
end
=#
# read the file from the raw html stored locally
# the html was extracted on 16/09/2022
raw_html = open(f->read(f, String),"../datasets/helicopter_escapes.html")
"<!DOCTYPE html>\n<html class=\"client-nojs\" lang=\"en\" dir=\"ltr\">\n<head>\n<meta charset=\"UTF-8\"/>\n<title>List of helicopter prison escapes - Wikipedia</title>\n<script>document.documentElement.className=\"client-js\";RLCONF={\"wgBreakFrames\":false,\"wgSeparatorTransformTable\":[\"\",\"\"],\"wgDigitTransformTable\":[\"\",\"\"],\"wgDefaultDateFormat\":\"dmy\",\"wgMonthNames\":[\"\",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],\"wgRequestId\":\"6e0b92a5-42ff-47b4-94a5-92063aec8ef0\",\"wgCSPNonce\":false,\"wgCanonicalNamespace\":\"\",\"wgCanonicalSpecialPageName\":false,\"wgNamespaceNumber\":0,\"wgPageName\":\"List_of_helicopter_prison_escapes\",\"wgTitle\":\"List of helicopter prison escapes\",\"wgCurRevisionId\":1104271511,\"wgRevisionId\":1104271511,\"wgArticleId\":5531650,\"wgIsArticle\":true,\"wgIsRedirect\":false,\"wgAction\":\"view\",\"wgUserName\":null,\"wgUserGroups\":[\"*\"],\"wgCategories\":[\"CS1 Italian-language sources (it)\",\"All articles with dead external links\",\"Articles with dead external links from January 2018\",\"Articles with permanently dead external links\",\"Articles with dead external links from August 2021\",\n\"Articles with dead external links from December 2017\",\"CS1 errors: generic name\",\"Articles with short description\",\"Short description is different from Wikidata\",\"Articles using small message boxes\",\"Incomplete lists from December 2010\",\"Articles with hCards\",\"Helicopters\",\"Prison escapes\",\"Escapes\",\"Lists of events\"],\"wgPageContentLanguage\":\"en\",\"wgPageContentModel\":\"wikitext\",\"wgRelevantPageName\":\"List_of_helicopter_prison_escapes\",\"wgRelevantArticleId\":5531650,\"wgIsProbablyEditable\":true,\"wgRelevantPageIsProbablyEditable\":true,\"wgRestrictionEdit\":[],\"wgRestrictionMove\":[],\"wgFlaggedRevsParams\":{\"tags\":{\"status\":{\"levels\":1}}},\"wgVisualEditor\":{\"pageLanguageCode\":\"en\",\"pageLanguageDir\":\"ltr\",\"pageVariantFallbacks\":\"en\"},\"wgMFDisplayWikibaseDescriptions\":{\"search\":true,\"nearby\":true,\"watchlist\":true,\"tagline\":false},\"wgWMESchemaEditAttemptStepOversample\":false,\"wgWMEPageLength\":70000,\"wgNoticeProject\":\"wikipedia\",\"wgVector2022PreviewPages\":[],\"wgMediaViewerOnClick\":true,\n\"wgMediaViewerEnabledByDefault\":true,\"wgPopupsFlags\":10,\"wgULSCurrentAutonym\":\"English\",\"wgEditSubmitButtonLabelPublish\":true,\"wgCentralAuthMobileDomain\":false,\"wgULSPosition\":\"interlanguage\",\"wgULSisCompactLinksEnabled\":true,\"wgWikibaseItemId\":\"Q3592745\",\"GEHomepageSuggestedEditsEnableTopics\":true,\"wgGETopicsMatchModeEnabled\":false,\"wgGEStructuredTaskRejectionReasonTextInputEnabled\":false};RLSTATE={\"ext.globalCssJs.user.styles\":\"ready\",\"site.styles\":\"ready\",\"user.styles\":\"ready\",\"ext.globalCssJs.user\":\"ready\",\"user\":\"ready\",\"user.options\":\"loading\",\"ext.cite.styles\":\"ready\",\"skins.vector.styles.legacy\":\"ready\",\"jquery.tablesorter.styles\":\"ready\",\"jquery.makeCollapsible.styles\":\"ready\",\"ext.visualEditor.desktopArticleTarget.noscript\":\"ready\",\"ext.wikimediaBadges\":\"ready\",\"ext.uls.interlanguage\":\"ready\",\"wikibase.client.init\":\"ready\"};RLPAGEMODULES=[\"ext.cite.ux-enhancements\",\"site\",\"mediawiki.page.ready\",\"jquery.tablesorter\",\"jquery.makeCollapsible\",\"mediawiki.toc\",\n\"skins.vector.legacy.js\",\"mmv.head\",\"mmv.bootstrap.autostart\",\"ext.visualEditor.desktopArticleTarget.init\",\"ext.visualEditor.targetLoader\",\"ext.eventLogging\",\"ext.wikimediaEvents\",\"ext.navigationTiming\",\"ext.cx.eventlogging.campaigns\",\"ext.centralNotice.geoIP\",\"ext.centralNotice.startUp\",\"ext.gadget.ReferenceTooltips\",\"ext.gadget.charinsert\",\"ext.gadget.extra-toolbar-buttons\",\"ext.gadget.switcher\",\"ext.centralauth.centralautologin\",\"ext.popups\",\"ext.uls.compactlinks\",\"ext.uls.interface\",\"ext.growthExperiments.SuggestedEditSession\"];</script>\n<script>(RLQ=window.RLQ||[]).push(function(){mw.loader.implement(\"user.options@12s5i\",function(\$,jQuery,require,module){mw.user.tokens.set({\"patrolToken\":\"+\\\\\",\"watchToken\":\"+\\\\\",\"csrfToken\":\"+\\\\\"});});});</script>\n<link rel=\"stylesheet\" href=\"/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cjquery.makeCollapsible.styles%7Cjquery.tablesorter.styles%7Cskins.vector.styles.legacy%7Cwikibase.client.init&only=styles&skin=vector\"/>\n<script async=\"\" src=\"/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector\"></script>\n<meta name=\"ResourceLoaderDynamicStyles\" content=\"\"/>\n<link rel=\"stylesheet\" href=\"/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector\"/>\n<meta name=\"generator\" content=\"MediaWiki 1.40.0-wmf.1\"/>\n<meta name=\"referrer\" content=\"origin\"/>\n<meta name=\"referrer\" content=\"origin-when-crossorigin\"/>\n<meta name=\"referrer\" content=\"origin-when-cross-origin\"/>\n<meta name=\"format-detection\" content=\"telephone=no\"/>\n<meta property=\"og:image\" content=\"https://upload.wikimedia.org/wikipedia/commons/4/40/Mountjoy_Prison.jpg\"/>\n<meta property=\"og:image:width\" content=\"1200\"/>\n<meta property=\"og:image:height\" content=\"745\"/>\n<meta property=\"og:image\" content=\"https://upload.wikimedia.org/wikipedia/commons/4/40/Mountjoy_Prison.jpg\"/>\n<meta property=\"og:image:width\" content=\"800\"/>\n<meta property=\"og:image:height\" content=\"497\"/>\n<meta property=\"og:image:width\" content=\"640\"/>\n<meta property=\"og:image:height\" content=\"397\"/>\n<meta name=\"viewport\" content=\"width=1000\"/>\n<meta property=\"og:title\" content=\"List of helicopter prison escapes - Wikipedia\"/>\n<meta property=\"og:type\" content=\"website\"/>\n<link rel=\"preconnect\" href=\"//upload.wikimedia.org\"/>\n<link rel=\"alternate\" media=\"only screen and (max-width: 720px)\" href=\"//en.m.wikipedia.org/wiki/List_of_helicopter_prison_escapes\"/>\n<link rel=\"alternate\" type=\"application/x-wiki\" title=\"Edit this page\" href=\"/w/index.php?title=List_of_helicopter_prison_escapes&action=edit\"/>\n<link rel=\"apple-touch-icon\" href=\"/static/apple-touch/wikipedia.png\"/>\n<link rel=\"icon\" href=\"/static/favicon/wikipedia.ico\"/>\n<link rel=\"search\" type=\"application/opensearchdescription+xml\" href=\"/w/opensearch_desc.php\" title=\"Wikipedia (en)\"/>\n<link rel=\"EditURI\" type=\"application/rsd+xml\" href=\"//en.wikipedia.org/w/api.php?action=rsd\"/>\n<link rel=\"license\" href=\"https://creativecommons.org/licenses/by-sa/3.0/\"/>\n<link rel=\"canonical\" href=\"https://en.wikipedia.org/wiki/List_of_helicopter_prison_escapes\"/>\n<link rel=\"dns-prefetch\" href=\"//meta.wikimedia.org\" />\n<link rel=\"dns-prefetch\" href=\"//login.wikimedia.org\"/>\n</head>\n<body class=\"mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-List_of_helicopter_prison_escapes rootpage-List_of_helicopter_prison_escapes skin-vector action-view skin-vector-legacy vector-toc-not-collapsed vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-language-alert-in-sidebar-enabled vector-feature-sticky-header-disabled vector-feature-sticky-header-edit-disabled vector-feature-table-of-contents-disabled vector-feature-visual-enhancement-next-disabled\"><div id=\"mw-page-base\" class=\"noprint\"></div>\n<div id=\"mw-head-base\" class=\"noprint\"></div>\n<div id=\"content\" class=\"mw-body\" role=\"main\">\n\t<a id=\"top\"></a>\n\t<div id=\"siteNotice\"><!-- CentralNotice --></div>\n\t<div class=\"mw-indicators\">\n\t</div>\n\t<h1 id=\"firstHeading\" class=\"firstHeading mw-first-heading\"><span class=\"mw-page-title-main\">List of helicopter prison escapes</span></h1>\n\t<div id=\"bodyContent\" class=\"vector-body\">\n\t\t<div id=\"siteSub\" class=\"noprint\">From Wikipedia, the free encyclopedia</div>\n\t\t<div id=\"contentSub\"></div>\n\t\t<div id=\"contentSub2\"></div>\n\t\t\n\t\t<div id=\"jump-to-nav\"></div>\n\t\t<a class=\"mw-jump-link\" href=\"#mw-head\">Jump to navigation</a>\n\t\t<a class=\"mw-jump-link\" href=\"#searchInput\">Jump to search</a>\n\t\t<div id=\"mw-content-text\" class=\"mw-body-content mw-content-ltr\" lang=\"en\" dir=\"ltr\"><div class=\"mw-parser-output\"><p class=\"mw-empty-elt\">\n</p>\n<div class=\"thumb tright\"><div class=\"thumbinner\" style=\"width:222px;\"><a href=\"/wiki/File:Mountjoy_Prison.jpg\" class=\"image\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/commons/thumb/4/40/Mountjoy_Prison.jpg/220px-Mountjoy_Prison.jpg\" decoding=\"async\" width=\"220\" height=\"137\" class=\"thumbimage\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/4/40/Mountjoy_Prison.jpg/330px-Mountjoy_Prison.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/40/Mountjoy_Prison.jpg/440px-Mountjoy_Prison.jpg 2x\" data-file-width=\"636\" data-file-height=\"395\" /></a> <div class=\"thumbcaption\"><div class=\"magnify\"><a href=\"/wiki/File:Mountjoy_Prison.jpg\" class=\"internal\" title=\"Enlarge\"></a></div><a href=\"/wiki/Mountjoy_Prison\" title=\"Mountjoy Prison\">Mountjoy Prison</a> where on October 31, 1973 three IRA members escaped in a hijacked helicopter.<sup id=\"cite_ref-mountjoy_1-0\" class=\"reference\"><a href=\"#cite_note-mountjoy-1\">[1]</a></sup></div></div></div>\n<div class=\"thumb tright\"><div class=\"thumbinner\" style=\"width:222px;\"><a href=\"/wiki/File:La-Sante-Prison-MCB.jpg\" class=\"image\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/commons/thumb/8/85/La-Sante-Prison-MCB.jpg/220px-La-Sante-Prison-MCB.jpg\" decoding=\"async\" width=\"220\" height=\"165\" class=\"thumbimage\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/8/85/La-Sante-Prison-MCB.jpg/330px-La-Sante-Prison-MCB.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/85/La-Sante-Prison-MCB.jpg/440px-La-Sante-Prison-MCB.jpg 2x\" data-file-width=\"1249\" data-file-height=\"936\" /></a> <div class=\"thumbcaption\"><div class=\"magnify\"><a href=\"/wiki/File:La-Sante-Prison-MCB.jpg\" class=\"internal\" title=\"Enlarge\"></a></div><a href=\"/wiki/Prison_de_la_Sant%C3%A9\" class=\"mw-redirect\" title=\"Prison de la Santé\">Prison de la Santé</a> where on May 26, 1986 Michel Vaujour was flown out of the prison by his wife.<sup id=\"cite_ref-lesante_2-0\" class=\"reference\"><a href=\"#cite_note-lesante-2\">[2]</a></sup></div></div></div>\n<p>There have been multiple <a href=\"/wiki/Prison_escape\" title=\"Prison escape\">prison escapes</a> where an inmate escapes by means of a <a href=\"/wiki/Helicopter\" title=\"Helicopter\">helicopter</a>. One of the earliest instances was the escape of Joel David Kaplan, nicknamed \"Man Fan\", on August 19, 1971, from the Santa Martha Acatitla in Mexico.<sup id=\"cite_ref-Kaplan_3-0\" class=\"reference\"><a href=\"#cite_note-Kaplan-3\">[3]</a></sup> Kaplan was a New York businessman who not only escaped the prison but eventually got out of Mexico and went on to write a book about his experience, <i>The 10-Second Jailbreak</i>.<sup id=\"cite_ref-Kaplan_book_4-0\" class=\"reference\"><a href=\"#cite_note-Kaplan_book-4\">[4]</a></sup>\n</p><p>France has had more recorded helicopter escape attempts than any other country, with at least 11.<sup id=\"cite_ref-aiton_2005_5-0\" class=\"reference\"><a href=\"#cite_note-aiton_2005-5\">[5]</a></sup> One of the most notable French jail breaks occurred in 1986, when the wife of bank robber Michel Vaujour studied for months to learn how to fly a helicopter. Using her newly acquired skills, she rented a white helicopter and flew low over Paris to pluck her husband off the roof of his fortress prison. Vaujour was later seriously wounded in a shootout with police, and his pilot wife was arrested.<sup id=\"cite_ref-lesante_2-1\" class=\"reference\"><a href=\"#cite_note-lesante-2\">[2]</a></sup>\n</p><p>The record for most helicopter escapes goes to convicted murderer <a href=\"/wiki/Pascal_Payet\" title=\"Pascal Payet\">Pascal Payet</a>, who has used helicopters to escape from prisons in 2001, 2003, and most recently 2007.<sup id=\"cite_ref-Grasse_6-0\" class=\"reference\"><a href=\"#cite_note-Grasse-6\">[6]</a></sup>\n</p><p>Another multiple helicopter escapee is <a href=\"/wiki/Vasilis_Paleokostas\" class=\"mw-redirect\" title=\"Vasilis Paleokostas\">Vasilis Paleokostas</a>, who on February 22, 2009, escaped for the second time from the <a href=\"/wiki/Korydallos_Prison\" title=\"Korydallos Prison\">same prison</a>.<sup id=\"cite_ref-korydallos_7-0\" class=\"reference\"><a href=\"#cite_note-korydallos-7\">[7]</a></sup>\n</p><p>To thwart attempts of this nature, many prisons have taken precautions such as nets or cables strung over open prison courtyards.<sup id=\"cite_ref-Blade_1988_8-0\" class=\"reference\"><a href=\"#cite_note-Blade_1988-8\">[8]</a></sup>\n</p><p>This list includes prisoner escapes where a helicopter was used in an attempt to free prisoners from a place of internment, a prison or correctional facility.\n</p>\n<div id=\"toc\" class=\"toc\" role=\"navigation\" aria-labelledby=\"mw-toc-heading\"><input type=\"checkbox\" role=\"button\" id=\"toctogglecheckbox\" class=\"toctogglecheckbox\" style=\"display:none\" /><div class=\"toctitle\" lang=\"en\" dir=\"ltr\"><h2 id=\"mw-toc-heading\">Contents</h2><span class=\"toctogglespan\"><label class=\"toctogglelabel\" for=\"toctogglecheckbox\"></label></span></div>\n<ul>\n<li class=\"toclevel-1 tocsection-1\"><a href=\"#Actual_attempts\"><span class=\"tocnumber\">1</span> <span class=\"toctext\">Actual attempts</span></a></li>\n<li class=\"toclevel-1 tocsection-2\"><a href=\"#Escapes_in_fiction\"><span class=\"tocnumber\">2</span> <span class=\"toctext\">Escapes in fiction</span></a></li>\n<li class=\"toclevel-1 tocsection-3\"><a href=\"#See_also\"><span class=\"tocnumber\">3</span> <span class=\"toctext\">See also</span></a></li>\n<li class=\"toclevel-1 tocsection-4\"><a href=\"#References\"><span class=\"tocnumber\">4</span> <span class=\"toctext\">References</span></a></li>\n</ul>\n</div>\n\n<h2><span class=\"mw-headline\" id=\"Actual_attempts\">Actual attempts</span><span class=\"mw-editsection\"><span class=\"mw-editsection-bracket\">[</span><a href=\"/w/index.php?title=List_of_helicopter_prison_escapes&action=edit&section=1\" title=\"Edit section: Actual attempts\">edit</a><span class=\"mw-editsection-bracket\">]</span></span></h2>\n<style data-mw-deduplicate=\"TemplateStyles:r1097763485\">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}</style><table class=\"plainlinks metadata ambox mbox-small-left ambox-notice\" role=\"presentation\" style=\"width: auto;\"><tbody><tr><td class=\"mbox-image\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/en/thumb/1/1d/Information_icon4.svg/20px-Information_icon4.svg.png\" decoding=\"async\" width=\"20\" height=\"20\" srcset=\"//upload.wikimedia.org/wikipedia/en/thumb/1/1d/Information_icon4.svg/30px-Information_icon4.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/1/1d/Information_icon4.svg/40px-Information_icon4.svg.png 2x\" data-file-width=\"620\" data-file-height=\"620\" /></td><td class=\"mbox-text\" style=\"width: auto;\"><div class=\"mbox-text-span\">This list is <a href=\"/wiki/Wikipedia:WikiProject_Lists#Incomplete_lists\" title=\"Wikipedia:WikiProject Lists\">incomplete</a>; you can help by <a class=\"external text\" href=\"https://en.wikipedia.org/w/index.php?title=List_of_helicopter_prison_escapes&action=edit\">adding missing items</a>. <span class=\"date-container\"><i>(<span class=\"date\">December 2010</span>)</i></span></div></td></tr></tbody></table>\n<table class=\"wikitable sortable\" style=\"width:100%;\">\n<tbody><tr>\n<th style=\"width:11%;\">Date</th>\n<th style=\"width:14%;\">Prison name</th>\n<th style=\"width:5%;\">Country</th>\n<th style=\"width:5%;\">Succeeded</th>\n<th style=\"width:15%;\" class=\"unsortable\">Escapee(s)</th>\n<th style=\"width:55%;\" class=\"unsortable\">Details\n</th></tr>\n<tr>\n<td><span data-sort-value=\"1971-07-19 !\">August 19, 1971</span>\n</td>\n<td>Santa Martha Acatitla\n</td>\n<td><span class=\"flagicon\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Flag_of_Mexico.svg/23px-Flag_of_Mexico.svg.png\" decoding=\"async\" width=\"23\" height=\"13\" class=\"thumbborder\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Flag_of_Mexico.svg/35px-Flag_of_Mexico.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/fc/Flag_of_Mexico.svg/46px-Flag_of_Mexico.svg.png 2x\" data-file-width=\"980\" data-file-height=\"560\" /> </span><a href=\"/wiki/Mexico\" title=\"Mexico\">Mexico</a>\n</td>\n<td style=\"background-color: #CEF2CE;\">Yes\n</td>\n<td><span data-sort-value=\"Kaplan, Joel David\"><span class=\"vcard\"><span class=\"fn\">Joel David Kaplan</span></span></span>\n<p><span data-sort-value=\"Contreras Castro, Carlos Antonio\"><span class=\"vcard\"><span class=\"fn\">Carlos Antonio Contreras Castro</span></span></span>\n</p>\n</td>\n<td>Joel David Kaplan was a <a href=\"/wiki/New_York_City\" title=\"New York City\">New York</a> businessman who had been arrested for murder in 1962 in <a href=\"/wiki/Mexico_City\" title=\"Mexico City\">Mexico City</a> and was incarcerated at the Santa Martha Acatitla prison in the <a href=\"/wiki/Iztapalapa\" title=\"Iztapalapa\">Iztapalapa</a> borough of Mexico City. Joel's sister, Judy Kaplan, arranged the means to help Kaplan escape, and on August 19, 1971, a helicopter landed in the prison yard. The guards mistakenly thought this was an official visit. In two minutes, Kaplan and his cellmate Carlos Antonio Contreras, a <a href=\"/wiki/Venezuela\" title=\"Venezuela\">Venezuelan</a> counterfeiter, were able to board the craft and were piloted away, before any shots were fired.<sup id=\"cite_ref-TimeMexico_9-0\" class=\"reference\"><a href=\"#cite_note-TimeMexico-9\">[9]</a></sup> Both men were flown to <a href=\"/wiki/Texas\" title=\"Texas\">Texas</a> and then different planes flew Kaplan to <a href=\"/wiki/California\" title=\"California\">California</a> and Castro to <a href=\"/wiki/Guatemala\" title=\"Guatemala\">Guatemala</a>.<sup id=\"cite_ref-Kaplan_3-1\" class=\"reference\"><a href=\"#cite_note-Kaplan-3\">[3]</a></sup> The Mexican government never initiated extradition proceedings against Kaplan.<sup id=\"cite_ref-TimeMexico_9-1\" class=\"reference\"><a href=\"#cite_note-TimeMexico-9\">[9]</a></sup> The escape is told in a book, <i>The 10-Second Jailbreak: The Helicopter Escape of Joel David Kaplan</i>.<sup id=\"cite_ref-Kaplan_book_4-1\" class=\"reference\"><a href=\"#cite_note-Kaplan_book-4\">[4]</a></sup> It also inspired the 1975 <a href=\"/wiki/Action_film\" title=\"Action film\">action movie</a> <i><a href=\"/wiki/Breakout_(1975_film)\" title=\"Breakout (1975 film)\">Breakout</a></i>, which starred <a href=\"/wiki/Charles_Bronson\" title=\"Charles Bronson\">Charles Bronson</a> and <a href=\"/wiki/Robert_Duvall\" title=\"Robert Duvall\">Robert Duvall</a>.<sup id=\"cite_ref-TimeMexico_9-2\" class=\"reference\"><a href=\"#cite_note-TimeMexico-9\">[9]</a></sup>\n</td></tr>\n<tr>\n<td><span data-sort-value=\"1973-10-31 !\">October 31, 1973</span>\n</td>\n<td><a href=\"/wiki/Mountjoy_Jail\" class=\"mw-redirect\" title=\"Mountjoy Jail\">Mountjoy Jail</a>\n</td>\n<td><span class=\"flagicon\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/commons/thumb/4/45/Flag_of_Ireland.svg/23px-Flag_of_Ireland.svg.png\" decoding=\"async\" width=\"23\" height=\"12\" class=\"thumbborder\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/4/45/Flag_of_Ireland.svg/35px-Flag_of_Ireland.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/4/45/Flag_of_Ireland.svg/46px-Flag_of_Ireland.svg.png 2x\" data-file-width=\"1200\" data-file-height=\"600\" /> </span><a href=\"/wiki/Republic_of_Ireland\" title=\"Republic of Ireland\">Ireland</a>\n</td>\n<td style=\"background-color: #CEF2CE;\">Yes\n</td>\n<td><span data-sort-value=\"O'Hagan, JB\"><span class=\"vcard\"><span class=\"fn\">JB O'Hagan</span></span></span><br />\n<p><a href=\"/wiki/Seamus_Twomey\" title=\"Seamus Twomey\">Seamus Twomey</a><br />Kevin Mallon\n</p>\n</td>\n<td>On October 31, 1973 an <a href=\"/wiki/Provisional_Irish_Republican_Army\" title=\"Provisional Irish Republican Army\">IRA</a> member hijacked a helicopter and forced the pilot to land in the exercise yard of Dublin's <a href=\"/wiki/Mountjoy_Jail\" class=\"mw-redirect\" title=\"Mountjoy Jail\">Mountjoy Jail</a>'s D Wing at 3:40 p.m., October 31, 1973. Three members of the IRA were <a href=\"/wiki/1973_Mountjoy_Prison_helicopter_escape\" class=\"mw-redirect\" title=\"1973 Mountjoy Prison helicopter escape\">able to escape</a>: <a href=\"/wiki/JB_O%27Hagan\" class=\"mw-redirect\" title=\"JB O'Hagan\">JB O'Hagan</a>, <a href=\"/wiki/Seamus_Twomey\" title=\"Seamus Twomey\">Seamus Twomey</a> and <a href=\"/wiki/Kevin_Mallon_(Irish_republican)\" class=\"mw-redirect\" title=\"Kevin Mallon (Irish republican)\">Kevin Mallon</a>. Another prisoner who also was in the prison was quoted as saying, \"One shamefaced screw apologised to the governor and said he thought it was the new Minister for Defence (<a href=\"/wiki/Paddy_Donegan\" title=\"Paddy Donegan\">Paddy Donegan</a>) arriving. I told him it was our Minister of Defence leaving.\"\n<p>The Mountjoy helicopter escape became <a href=\"/wiki/Republican_Movement_(Ireland)\" class=\"mw-redirect\" title=\"Republican Movement (Ireland)\">Republican lore</a> and was immortalized by \"<a href=\"/wiki/The_Helicopter_Song\" title=\"The Helicopter Song\">The Helicopter Song</a>\", which contains the lines \"It's up like a bird and over the city. There's three men a'missing I heard the warder say\".<sup id=\"cite_ref-mountjoy_1-1\" class=\"reference\"><a href=\"#cite_note-mountjoy-1\">[1]</a></sup>\n</p>\n</td></tr>\n<tr>\n<td><span data-sort-value=\"1978-05-24 !\">May 24, 1978</span>\n</td>\n<td><a href=\"/wiki/United_States_Penitentiary,_Marion\" title=\"United States Penitentiary, Marion\">United States Penitentiary, Marion</a>\n</td>\n<td><span class=\"flagicon\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/23px-Flag_of_the_United_States.svg.png\" decoding=\"async\" width=\"23\" height=\"12\" class=\"thumbborder\" srcset=\"//upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/35px-Flag_of_the_United_States.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/46px-Flag_of_the_United_States.svg.png 2x\" data-file-width=\"1235\" data-file-height=\"650\" /> </span><a href=\"/wiki/United_States\" title=\"United States\">United States</a>\n</td>\n<td style=\"background-color: #F2CECE;\">No\n</td>\n<td align=\"left\"><a href=\"/wiki/Garrett_Brock_Trapnell\" title=\"Garrett Brock Trapnell\">Garrett Brock Trapnell</a><br />Martin Joseph McNally<br />James Kenneth Johnson\n</td>\n<td>43-year-old Barbara Ann Oswald hijacked a <a href=\"/wiki/St._Louis,_Missouri\" class=\"mw-redirect\" title=\"St. Louis, Missouri\">Saint Louis</a>-based charter helicopter and forced the pilot to land in the yard at USP Marion. While landing the aircraft, the pilot, Allen Barklage, who was a <a href=\"/wiki/Vietnam_War\" title=\"Vietnam War\">Vietnam War</a> veteran, struggled with Oswald and managed to wrestle the gun away from her. Barklage then shot and killed Oswald, thwarting the escape.<sup id=\"cite_ref-St._Joseph_News-Press_10-0\" class=\"reference\"><a href=\"#cite_note-St._Joseph_News-Press-10\">[10]</a></sup> A few months later Oswald's daughter <a href=\"/wiki/TWA_Flight_541\" title=\"TWA Flight 541\">hijacked TWA Flight 541</a> in an effort to free Trapnell.\n</td></tr>\n<tr>\n<td><span data-sort-value=\"1981-02-27 !\">February 27, 1981</span>\n</td>\n<td>Fleury-Mérogis, Essonne, Ile de France\n</td>\n<td><span class=\"flagicon\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/en/thumb/c/c3/Flag_of_France.svg/23px-Flag_of_France.svg.png\" decoding=\"async\" width=\"23\" height=\"15\" class=\"thumbborder\" srcset=\"//upload.wikimedia.org/wikipedia/en/thumb/c/c3/Flag_of_France.svg/35px-Flag_of_France.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/c/c3/Flag_of_France.svg/45px-Flag_of_France.svg.png 2x\" data-file-width=\"900\" data-file-height=\"600\" /> </span><a href=\"/wiki/France\" title=\"France\">France</a>\n</td>\n<td style=\"background-color: #CEF2CE;\">Yes\n</td>\n<td align=\"left\">Gérard Dupré<br />Daniel Beaumont\n</td>\n<td>With the help of Serge Coutel, Gérard Dupré and Daniel Beaumont, succeed in the first and double helicopter escape of a French prison, in Fleury-Mérogis (Essonne), the best kept prison of France. The men hijacked a helicopter and its pilot that they rented to fly from Paris to Orléans. The pilot, Claude Fourcade, was taken hostage and was told that they were holding his wife and daughter hostage (which was not true) ... The flight turned into Paris - Fleury -Merogis - Porte d'Orléans.<sup id=\"cite_ref-11\" class=\"reference\"><a href=\"#cite_note-11\">[11]</a></sup>\n</td></tr>\n<tr>\n<td><span data-sort-value=\"1981-05-7 !\">May 7, 1981</span>\n</td>\n<td>Orsainville Prison, Quebec City\n</td>\n<td><span class=\"flagicon\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Flag_of_Canada_%28Pantone%29.svg/23px-Flag_of_Canada_%28Pantone%29.svg.png\" decoding=\"async\" width=\"23\" height=\"12\" class=\"thumbborder\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Flag_of_Canada_%28Pantone%29.svg/35px-Flag_of_Canada_%28Pantone%29.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/d9/Flag_of_Canada_%28Pantone%29.svg/46px-Flag_of_Canada_%28Pantone%29.svg.png 2x\" data-file-width=\"1200\" data-file-height=\"600\" /> </span><a href=\"/wiki/Canada\" title=\"Canada\">Canada</a>\n</td>\n<td style=\"background-color: #F2CECE;\">No\n</td>\n<td align=\"left\">Marina Paquet (hijacker)<br />Giles Arseneault (prisoner)\n</td>\n<td>Marina Paquet held a sawed off shotgun against the back of the head of a helicopter pilot. She demanded that he land in the Orsainville prison courtyard, where her boyfriend (awaiting extradition to California on a murder charge) was set to escape. The pilot, Brian Jenner, feigned a panic attack, put the helicopter through some rough maneuvers and was then able to convince Paquet, in the back seat of the Jet Ranger, to turn over her shotgun and her knife. Jenner then gave her the choice of any landing spot, except the prison. She chose to go back to the airport.\n<p>The pilot then explained, in great detail, exactly where they were and where they would be landing on arrival at the Quebec City airport. He added that the police would surely be aware by then, that she had hijacked the helicopter but would not yet be aware that she had given up her arms to the pilot. All the time Jenner was squeezing the transmit button on his cyclic stick and the tower was picking up all the details. The moment they touched down at the airport, the woman left the helicopter but the police, who had been advised of the situation by the control tower, were hiding nearby, and captured Paquet within seconds.\n</p>\n</td></tr>\n<tr>\n<td><span data-sort-value=\"1983-01-31 !\">January, 1983</span>\n</td>\n<td><span data-sort-value=\"Pentridge !\"><a href=\"/wiki/HM_Prison_Pentridge\" title=\"HM Prison Pentridge\">Pentridge (HM Prison)</a></span>\n</td>\n<td><span class=\"flagicon\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/commons/thumb/8/88/Flag_of_Australia_%28converted%29.svg/23px-Flag_of_Australia_%28converted%29.svg.png\" decoding=\"async\" width=\"23\" height=\"12\" class=\"thumbborder\" srcset=\"//upload.wikimedia.org/wikipedia/commons/thumb/8/88/Flag_of_Australia_%28converted%29.svg/35px-Flag_of_Australia_%28converted%29.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/88/Flag_of_Australia_%28converted%29.svg/46px-Flag_of_Australia_%28converted%29.svg.png 2x\" data-file-width=\"1280\" data-file-height=\"640\" /> </span><a href=\"/wiki/Australia\" title=\"Australia\">Australia</a>\n</td>\n<td style=\"background-color: #F2CECE;\">No\n</td>\n<td><span data-sort-value=\"McMillan, David\"><span class=\"vcard\"><span class=\"fn\"><a href=\"/wiki/David_McMillan_(smuggler)\" title=\"David McMillan (smuggler)\">David McMillan</a></span></span></span>\n</td>\n<td>Arrests were made for the 1983 attempted helicopter escape from Melbourne’s Pentridge Prison in Australia.<sup id=\"cite_ref-melbournecrime_12-0\" class=\"reference\"><a href=\"#cite_note-melbournecrime-12\">[12]</a></sup> The three, all held on drug-importation charges, had hired a former <a href=\"/wiki/Special_Air_Service\" title=\"Special Air Service\">SAS</a> soldier, then living in the <a href=\"/wiki/Philippines\" title=\"Philippines\">Philippines</a>, to lift the prisoners from the jail’s tennis court to a nearby van fitted with panels to hide them for the 600 kilometre road trip to Sydney, where a yacht was to take them to <a href=\"/wiki/Manila\" title=\"Manila\">Manila</a>.\n<p>The plan was thwarted when <a href=\"/wiki/Antony_Moynihan,_3rd_Baron_Moynihan\" title=\"Antony Moynihan, 3rd Baron Moynihan\">Lord Tony Moynihan</a>, himself an exile in the Philippines, informed the <a href=\"/wiki/Australian_Federal_Police\" title=\"Australian Federal Police\">Australian Federal Police</a>, who then ran it as a sting operation. Tony Moynihan would later become an informer against <a href=\"/wiki/Howard_Marks\" title=\"Howard Marks\">Howard Marks</a> in a Florida trial.\n</p><p>Of the accused, only <a href=\"/wiki/David_McMillan_(smuggler)\" title=\"David McMillan (smuggler)\">David McMillan</a> and his accountant friend who had visited the prison stood trial. During the hearings, few prosecution witnesses used their real names as they were mostly from Moynihan’s former West African <a href=\"/wiki/MI6\" title=\"MI6\">MI6</a> unit. Those on trial were convicted and sentenced.<sup id=\"cite_ref-13\" class=\"reference\"><a href=\"#cite_note-13\">[13]</a></sup>\n</p>\n</td></tr>\n<tr>\n<td><span data-sort-value=\"1985-12-19 !\">December 19, 1985</span>\n</td>\n<td>Perry Correctional Institution, <a href=\"/wiki/Pelzer,_South_Carolina\" title=\"Pelzer, South Carolina\">Pelzer, South Carolina</a>\n</td>\n<td><span class=\"flagicon\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/23px-Flag_of_the_United_States.svg.png\" decoding=\"async\" width=\"23\" height=\"12\" class=\"thumbborder\" srcset=\"//upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/35px-Flag_of_the_United_States.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/a/a4/Flag_of_the_United_States.svg/46px-Flag_of_the_United_States.svg.png 2x\" data-file-width=\"1235\" data-file-height=\"650\" /> </span><a href=\"/wiki/United_States\" title=\"United States\">United States</a>\n</td>\n<td style=\"background-color: #CEF2CE;\">Yes\n</td>\n<td align=\"left\">James Rodney Leonard<br />William Douglas Ballew<br />Jesse Glenn Smith\n</td>\n<td>One murderer, James Rodney Leonard, and two armed robbers, William Douglas Ballew and Jesse Glenn Smith, fled in a helicopter with a pilot and a woman hijacker with a pistol to a getaway car 4 to 5 miles away.<sup id=\"cite_ref-14\" class=\"reference\"><a href=\"#cite_note-14\">[14]</a></sup> The 3-passenger helicopter was so overloaded with 5 occupants that it barely cleared the fence, while flying away in a hail of gunfire that injured one guard. Two other men attempted to escape as well, but either jumped or were pushed off when the pilot told the escapees that the helicopter could not take off.<sup id=\"cite_ref-Perry3_15-0\" class=\"reference\"><a href=\"#cite_note-Perry3-15\">[15]</a></sup> The three escapees were captured on December 23 in <a href=\"/wiki/Camden_County,_Georgia\" title=\"Camden County, Georgia\">Camden County</a>, <a href=\"/wiki/Georgia_(U.S._state)\" title=\"Georgia (U.S. state)\">Georgia</a>.<sup id=\"cite_ref-16\" class=\"reference\"><a href=\"#cite_note-16\">[16]</a></sup>\n</td></tr>\n<tr>\n<td><span data-sort-value=\"1985-12-31 !\">December 31, 1985</span>\n</td>\n<td>Cândido Mendes penitentiary, <a href=\"/wiki/Ilha_Grande\" title=\"Ilha Grande\">Ilha Grande</a>, <a href=\"/wiki/Rio_de_Janeiro_(state)\" title=\"Rio de Janeiro (state)\">Rio de Janeiro</a>\n</td>\n<td><span class=\"flagicon\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/en/thumb/0/05/Flag_of_Brazil.svg/22px-Flag_of_Brazil.svg.png\" decoding=\"async\" width=\"22\" height=\"15\" class=\"thumbborder\" srcset=\"//upload.wikimedia.org/wikipedia/en/thumb/0/05/Flag_of_Brazil.svg/33px-Flag_of_Brazil.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/0/05/Flag_of_Brazil.svg/43px-Flag_of_Brazil.svg.png 2x\" data-file-width=\"720\" data-file-height=\"504\" /> </span><a href=\"/wiki/Brazil\" title=\"Brazil\">Brazil</a>\n</td>\n<td style=\"background-color: #CEF2CE;\">Yes\n</td>\n<td align=\"left\">José Carlos dos Reis Encina, a.k.a. \"Escadinha\"\n</td>\n<td>Drug lord Encina was rescued by José Carlos Gregório, aka \"Gordo\", who rented the <a href=\"/wiki/Bell_47\" title=\"Bell 47\">Bell 47</a> aircraft under the guise of surveying some lands he intended to buy. \"Gordo\" forced the pilot to land and pick up Encina, who had escaped the prison proper earlier. Encina was recaptured three months later after being shot in a firefight.<sup id=\"cite_ref-17\" class=\"reference\"><a href=\"#cite_note-17\">[17]</a></sup>\n</td></tr>\n<tr>\n<td><span data-sort-value=\"1986-05-26 !\">May 26, 1986</span>\n</td>\n<td><a href=\"/wiki/Prison_de_la_Sant%C3%A9\" class=\"mw-redirect\" title=\"Prison de la Santé\">Prison de la Santé</a>\n</td>\n<td><span class=\"flagicon\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/en/thumb/c/c3/Flag_of_France.svg/23px-Flag_of_France.svg.png\" decoding=\"async\" width=\"23\" height=\"15\" class=\"thumbborder\" srcset=\"//upload.wikimedia.org/wikipedia/en/thumb/c/c3/Flag_of_France.svg/35px-Flag_of_France.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/c/c3/Flag_of_France.svg/45px-Flag_of_France.svg.png 2x\" data-file-width=\"900\" data-file-height=\"600\" /> </span><a href=\"/wiki/France\" title=\"France\">France</a>\n</td>\n<td style=\"background-color: #CEF2CE;\">Yes\n</td>\n<td><span data-sort-value=\"Vaujour, Michel\"><span class=\"vcard\"><span class=\"fn\">Michel Vaujour</span></span></span>\n</td>\n<td>Vaujour had 28 years to serve for attempted murder and armed robbery; this was his fourth escape attempt. He made his way to the roof by" ⋯ 193425 bytes ⋯ "=\"/wiki/Prison_ring\" title=\"Prison ring\">Ring</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_slang\" title=\"Prison slang\">Slang</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_tattooing\" title=\"Prison tattooing\">Tattooing</a></span></li></ul>\n</div></td></tr><tr><th scope=\"row\" class=\"navbox-group\" style=\"width:1%\">Social issues</th><td class=\"navbox-list-with-group navbox-list navbox-even\" style=\"width:100%;padding:0\"><div style=\"padding:0 0.25em\">\n<ul><li><span class=\"nowrap\"><a href=\"/wiki/Prisoner_abuse\" title=\"Prisoner abuse\">Abuse</a> </span>\n<ul><li><span class=\"nowrap\"><a href=\"/wiki/Prisoner_abuse_in_the_United_States\" class=\"mw-redirect\" title=\"Prisoner abuse in the United States\">United States</a></span></li></ul></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_contemplative_programs\" title=\"Prison contemplative programs\">Contemplative programs</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_education\" title=\"Prison education\">Education</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Jailhouse_informants\" class=\"mw-redirect\" title=\"Jailhouse informants\">Informants</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/LGBT_people_in_prison\" title=\"LGBT people in prison\">LGBT</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Mentally_ill_people_in_United_States_jails_and_prisons\" title=\"Mentally ill people in United States jails and prisons\">Mentally ill people in the United States</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Mobile_phones_in_prison\" title=\"Mobile phones in prison\">Mobile phones</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_overcrowding\" title=\"Prison overcrowding\">Overcrowding</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Pay-to-stay_(imprisonment)\" title=\"Pay-to-stay (imprisonment)\">Pay-to-stay</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Private_prison\" title=\"Private prison\">Private prisons</a> </span>\n<ul><li><span class=\"nowrap\"><a href=\"/wiki/Incarceration_in_the_United_States#Privatization\" title=\"Incarceration in the United States\">United States</a></span></li></ul></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Protective_custody\" title=\"Protective custody\">Protective custody</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_rape\" title=\"Prison rape\">Rape</a> </span>\n<ul><li><span class=\"nowrap\"><a href=\"/wiki/Prison_rape_in_the_United_States\" title=\"Prison rape in the United States\">United States</a></span></li></ul></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_religion\" title=\"Prison religion\">Religion</a> </span>\n<ul><li><span class=\"nowrap\"><a href=\"/wiki/Religion_in_United_States_prisons\" title=\"Religion in United States prisons\">United States</a></span></li></ul></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_riot\" title=\"Prison riot\">Riots</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_sexuality\" title=\"Prison sexuality\">Sexuality</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Solitary_confinement\" title=\"Solitary confinement\">Solitary confinement</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_strike\" title=\"Prison strike\">Strikes</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prisoner_suicide\" title=\"Prisoner suicide\">Suicide</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_violence\" title=\"Prison violence\">Violence</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Incarceration_of_women\" title=\"Incarceration of women\">Women in prison</a> </span>\n<ul><li><span class=\"nowrap\"><a href=\"/wiki/Incarceration_of_women_in_the_United_States\" title=\"Incarceration of women in the United States\">United States</a></span></li></ul></li></ul>\n</div></td></tr><tr><th scope=\"row\" class=\"navbox-group\" style=\"width:1%\">Organizations</th><td class=\"navbox-list-with-group navbox-list navbox-odd\" style=\"width:100%;padding:0\"><div style=\"padding:0 0.25em\">\n<ul><li><span class=\"nowrap\"><a href=\"/wiki/Association_for_the_Protection_and_Assistance_of_the_Convicted\" title=\"Association for the Protection and Assistance of the Convicted\">Association for the Protection and Assistance of the Convicted</a> (Brazil)</span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Black_and_Pink\" title=\"Black and Pink\">Black and Pink</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Florida_Justice_Institute\" title=\"Florida Justice Institute\">Florida Justice Institute</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/International_Network_of_Prison_Ministries\" title=\"International Network of Prison Ministries\">International Network of Prison Ministries</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Justice_Action\" title=\"Justice Action\">Justice Action</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Justice_Defenders\" title=\"Justice Defenders\">Justice Defenders</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Mount_Tamalpais_College\" title=\"Mount Tamalpais College\">Mount Tamalpais College</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/POA_(trade_union)\" title=\"POA (trade union)\">POA</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_abolition_movement\" title=\"Prison abolition movement\">Prison abolition movement</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_Advice_and_Care_Trust\" title=\"Prison Advice and Care Trust\">Prison Advice and Care Trust</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison-Ashram_Project\" title=\"Prison-Ashram Project\">Prison-Ashram Project</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_Fellowship\" title=\"Prison Fellowship\">Prison Fellowship</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_Fellowship_International\" title=\"Prison Fellowship International\">Prison Fellowship International</a></span></li>\n<li><span class=\"nowrap\"><i><a href=\"/wiki/Prison_Legal_News\" title=\"Prison Legal News\">Prison Legal News</a></i></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_Officers%27_Association_(Ireland)\" title=\"Prison Officers' Association (Ireland)\">Prison Officers' Association (Ireland)</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/The_Prison_Phoenix_Trust\" title=\"The Prison Phoenix Trust\">The Prison Phoenix Trust</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_Radio\" title=\"Prison Radio\">Prison Radio</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prison_Reform_Trust\" title=\"Prison Reform Trust\">Prison Reform Trust</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/WriteAPrisoner.com\" title=\"WriteAPrisoner.com\">WriteAPrisoner.com</a></span></li></ul>\n</div></td></tr><tr><th scope=\"row\" class=\"navbox-group\" style=\"width:1%\">Leaving prison</th><td class=\"navbox-list-with-group navbox-list navbox-even\" style=\"width:100%;padding:0\"><div style=\"padding:0 0.25em\">\n<ul><li><span class=\"nowrap\"><a href=\"/wiki/Rehabilitation_(penology)\" title=\"Rehabilitation (penology)\">Rehabilitation</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Work_release\" title=\"Work release\">Work release</a></span></li></ul>\n</div></td></tr><tr><th scope=\"row\" class=\"navbox-group\" style=\"width:1%\">Lists</th><td class=\"navbox-list-with-group navbox-list navbox-odd\" style=\"width:100%;padding:0\"><div style=\"padding:0 0.25em\">\n<ul><li><span class=\"nowrap\"><a href=\"/wiki/List_of_countries_by_incarceration_rate\" title=\"List of countries by incarceration rate\">Countries by incarceration rate</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/List_of_prisons\" title=\"List of prisons\">Prisons</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/List_of_prison_films\" title=\"List of prison films\">Films featuring prisons</a></span></li></ul>\n</div></td></tr><tr><th scope=\"row\" class=\"navbox-group\" style=\"width:1%\"><a href=\"/wiki/Category:Penal_systems_by_country\" title=\"Category:Penal systems by country\">By country</a></th><td class=\"navbox-list-with-group navbox-list navbox-even\" style=\"width:100%;padding:0\"><div style=\"padding:0 0.25em\">\n<ul><li><span class=\"nowrap\"><a href=\"/wiki/Punishment_in_Australia\" title=\"Punishment in Australia\">Australia</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prisons_in_Chile\" title=\"Prisons in Chile\">Chile</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Penal_system_in_China\" title=\"Penal system in China\">China</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prisons_in_Estonia\" title=\"Prisons in Estonia\">Estonia</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prisons_in_Germany\" title=\"Prisons in Germany\">Germany</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/List_of_prisons_in_Iceland\" title=\"List of prisons in Iceland\">Iceland</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prisons_in_India\" title=\"Prisons in India\">India</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prisons_in_the_Republic_of_Ireland\" title=\"Prisons in the Republic of Ireland\">Ireland, Republic of</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/List_of_prisons_in_Jamaica\" title=\"List of prisons in Jamaica\">Jamaica</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Penal_system_of_Japan\" title=\"Penal system of Japan\">Japan</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/List_of_prisons_in_New_Zealand\" title=\"List of prisons in New Zealand\">New Zealand</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prisons_in_North_Korea\" title=\"Prisons in North Korea\">North Korea</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Incarceration_in_Norway\" title=\"Incarceration in Norway\">Norway</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/National_Penitentiary_Institute_(Peru)\" title=\"National Penitentiary Institute (Peru)\">Peru</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prisons_in_Russia\" title=\"Prisons in Russia\">Russia</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Category:Prisons_in_the_Soviet_Union\" title=\"Category:Prisons in the Soviet Union\">Soviet Union</a></span>\n<ul><li><span class=\"nowrap\"><a href=\"/wiki/Gulag\" title=\"Gulag\">Gulag</a></span></li></ul></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prisons_in_Turkey\" title=\"Prisons in Turkey\">Turkey</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Prisons_in_Ukraine\" title=\"Prisons in Ukraine\">Ukraine</a></span></li>\n<li><span class=\"nowrap\">United Kingdom and British overseas territories </span>\n<ul><li><span class=\"nowrap\"><a href=\"/wiki/Bermuda_Department_of_Corrections\" title=\"Bermuda Department of Corrections\">Bermuda</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/His_Majesty%27s_Prison_Service\" title=\"His Majesty's Prison Service\">England & Wales</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Northern_Ireland_Prison_Service\" title=\"Northern Ireland Prison Service\">Northern Ireland</a></span></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Scottish_Prison_Service\" title=\"Scottish Prison Service\">Scotland</a></span></li></ul></li>\n<li><span class=\"nowrap\"><a href=\"/wiki/Incarceration_in_the_United_States\" title=\"Incarceration in the United States\">United States</a></span></li></ul>\n</div></td></tr><tr><td class=\"navbox-abovebelow\" colspan=\"2\" style=\"font-weight:bold;\"><div>\n<ul><li><span class=\"nowrap\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/16px-Symbol_category_class.svg.png\" decoding=\"async\" title=\"Category\" width=\"16\" height=\"16\" class=\"noviewer\" srcset=\"//upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/23px-Symbol_category_class.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/96/Symbol_category_class.svg/31px-Symbol_category_class.svg.png 2x\" data-file-width=\"180\" data-file-height=\"185\" /> <a href=\"/wiki/Category:Imprisonment_and_detention\" title=\"Category:Imprisonment and detention\">Imprisonment and detention</a></span></li>\n<li><span class=\"nowrap\"><img alt=\"\" src=\"//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/12px-Commons-logo.svg.png\" decoding=\"async\" title=\"Commons page\" width=\"12\" height=\"16\" class=\"noviewer\" srcset=\"//upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/18px-Commons-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/4/4a/Commons-logo.svg/24px-Commons-logo.svg.png 2x\" data-file-width=\"1024\" data-file-height=\"1376\" /> <a href=\"https://commons.wikimedia.org/wiki/Category:Imprisonment_and_detention\" class=\"extiw\" title=\"commons:Category:Imprisonment and detention\">Commons</a></span></li></ul>\n</div></td></tr></tbody></table></div>\n<!-- \nNewPP limit report\nParsed by mw2375\nCached time: 20220915202610\nCache expiry: 1814400\nReduced expiry: false\nComplications: [vary‐revision‐sha1, show‐toc]\nCPU time usage: 0.890 seconds\nReal time usage: 1.089 seconds\nPreprocessor visited node count: 10638/1000000\nPost‐expand include size: 228621/2097152 bytes\nTemplate argument size: 12994/2097152 bytes\nHighest expansion depth: 17/100\nExpensive parser function count: 4/500\nUnstrip recursion depth: 1/20\nUnstrip post‐expand size: 228951/5000000 bytes\nLua time usage: 0.428/10.000 seconds\nLua memory usage: 9643155/52428800 bytes\nNumber of Wikibase entities loaded: 0/400\n-->\n<!--\nTransclusion expansion time report (%,ms,calls,template)\n100.00% 833.433 1 -total\n 51.25% 427.116 1 Template:Reflist\n 19.38% 161.547 48 Template:Cite_news\n 18.60% 155.013 24 Template:Cite_web\n 9.40% 78.322 48 Template:Flag\n 8.09% 67.383 5 Template:Navbox\n 6.95% 57.894 1 Template:Helicopters_and_rotorcraft\n 6.83% 56.961 1 Template:Expand_list\n 6.83% 56.948 1 Template:Short_description\n 4.77% 39.767 55 Template:Sort\n-->\n\n<!-- Saved in parser cache with key enwiki:pcache:idhash:5531650-0!canonical and timestamp 20220915202609 and revision id 1104271511.\n -->\n</div><noscript><img src=\"//en.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1\" alt=\"\" title=\"\" width=\"1\" height=\"1\" style=\"border: none; position: absolute;\" /></noscript>\n<div class=\"printfooter\" data-nosnippet=\"\">Retrieved from \"<a dir=\"ltr\" href=\"https://en.wikipedia.org/w/index.php?title=List_of_helicopter_prison_escapes&oldid=1104271511\">https://en.wikipedia.org/w/index.php?title=List_of_helicopter_prison_escapes&oldid=1104271511</a>\"</div></div>\n\t\t<div id=\"catlinks\" class=\"catlinks\" data-mw=\"interface\"><div id=\"mw-normal-catlinks\" class=\"mw-normal-catlinks\"><a href=\"/wiki/Help:Category\" title=\"Help:Category\">Categories</a>: <ul><li><a href=\"/wiki/Category:Helicopters\" title=\"Category:Helicopters\">Helicopters</a></li><li><a href=\"/wiki/Category:Prison_escapes\" title=\"Category:Prison escapes\">Prison escapes</a></li><li><a href=\"/wiki/Category:Escapes\" title=\"Category:Escapes\">Escapes</a></li><li><a href=\"/wiki/Category:Lists_of_events\" title=\"Category:Lists of events\">Lists of events</a></li></ul></div><div id=\"mw-hidden-catlinks\" class=\"mw-hidden-catlinks mw-hidden-cats-hidden\">Hidden categories: <ul><li><a href=\"/wiki/Category:CS1_Italian-language_sources_(it)\" title=\"Category:CS1 Italian-language sources (it)\">CS1 Italian-language sources (it)</a></li><li><a href=\"/wiki/Category:All_articles_with_dead_external_links\" title=\"Category:All articles with dead external links\">All articles with dead external links</a></li><li><a href=\"/wiki/Category:Articles_with_dead_external_links_from_January_2018\" title=\"Category:Articles with dead external links from January 2018\">Articles with dead external links from January 2018</a></li><li><a href=\"/wiki/Category:Articles_with_permanently_dead_external_links\" title=\"Category:Articles with permanently dead external links\">Articles with permanently dead external links</a></li><li><a href=\"/wiki/Category:Articles_with_dead_external_links_from_August_2021\" title=\"Category:Articles with dead external links from August 2021\">Articles with dead external links from August 2021</a></li><li><a href=\"/wiki/Category:Articles_with_dead_external_links_from_December_2017\" title=\"Category:Articles with dead external links from December 2017\">Articles with dead external links from December 2017</a></li><li><a href=\"/wiki/Category:CS1_errors:_generic_name\" title=\"Category:CS1 errors: generic name\">CS1 errors: generic name</a></li><li><a href=\"/wiki/Category:Articles_with_short_description\" title=\"Category:Articles with short description\">Articles with short description</a></li><li><a href=\"/wiki/Category:Short_description_is_different_from_Wikidata\" title=\"Category:Short description is different from Wikidata\">Short description is different from Wikidata</a></li><li><a href=\"/wiki/Category:Articles_using_small_message_boxes\" title=\"Category:Articles using small message boxes\">Articles using small message boxes</a></li><li><a href=\"/wiki/Category:Incomplete_lists_from_December_2010\" title=\"Category:Incomplete lists from December 2010\">Incomplete lists from December 2010</a></li><li><a href=\"/wiki/Category:Articles_with_hCards\" title=\"Category:Articles with hCards\">Articles with hCards</a></li></ul></div></div>\n\t</div>\n</div>\n\n<div id=\"mw-navigation\">\n\t<h2>Navigation menu</h2>\n\t<div id=\"mw-head\">\n\t\t\n\n<nav id=\"p-personal\" class=\"vector-menu mw-portlet mw-portlet-personal vector-user-menu-legacy\" aria-labelledby=\"p-personal-label\" role=\"navigation\" >\n\t<h3\n\t\tid=\"p-personal-label\"\n\t\t\n\t\tclass=\"vector-menu-heading \"\n\t>\n\t\t<span class=\"vector-menu-heading-label\">Personal tools</span>\n\t</h3>\n\t<div class=\"vector-menu-content\">\n\t\t\n\t\t<ul class=\"vector-menu-content-list\"><li id=\"pt-anonuserpage\" class=\"mw-list-item\"><span title=\"The user page for the IP address you are editing as\">Not logged in</span></li><li id=\"pt-anontalk\" class=\"mw-list-item\"><a href=\"/wiki/Special:MyTalk\" title=\"Discussion about edits from this IP address [n]\" accesskey=\"n\"><span>Talk</span></a></li><li id=\"pt-anoncontribs\" class=\"mw-list-item\"><a href=\"/wiki/Special:MyContributions\" title=\"A list of edits made from this IP address [y]\" accesskey=\"y\"><span>Contributions</span></a></li><li id=\"pt-createaccount\" class=\"mw-list-item\"><a href=\"/w/index.php?title=Special:CreateAccount&returnto=List+of+helicopter+prison+escapes\" title=\"You are encouraged to create an account and log in; however, it is not mandatory\"><span>Create account</span></a></li><li id=\"pt-login\" class=\"mw-list-item\"><a href=\"/w/index.php?title=Special:UserLogin&returnto=List+of+helicopter+prison+escapes\" title=\"You're encouraged to log in; however, it's not mandatory. [o]\" accesskey=\"o\"><span>Log in</span></a></li></ul>\n\t\t\n\t</div>\n</nav>\n\n\t\t<div id=\"left-navigation\">\n\t\t\t\n\n<nav id=\"p-namespaces\" class=\"vector-menu mw-portlet mw-portlet-namespaces vector-menu-tabs vector-menu-tabs-legacy\" aria-labelledby=\"p-namespaces-label\" role=\"navigation\" >\n\t<h3\n\t\tid=\"p-namespaces-label\"\n\t\t\n\t\tclass=\"vector-menu-heading \"\n\t>\n\t\t<span class=\"vector-menu-heading-label\">Namespaces</span>\n\t</h3>\n\t<div class=\"vector-menu-content\">\n\t\t\n\t\t<ul class=\"vector-menu-content-list\"><li id=\"ca-nstab-main\" class=\"selected mw-list-item\"><a href=\"/wiki/List_of_helicopter_prison_escapes\" title=\"View the content page [c]\" accesskey=\"c\"><span>Article</span></a></li><li id=\"ca-talk\" class=\"mw-list-item\"><a href=\"/wiki/Talk:List_of_helicopter_prison_escapes\" rel=\"discussion\" title=\"Discuss improvements to the content page [t]\" accesskey=\"t\"><span>Talk</span></a></li></ul>\n\t\t\n\t</div>\n</nav>\n\n\t\t\t\n\n<nav id=\"p-variants\" class=\"vector-menu mw-portlet mw-portlet-variants emptyPortlet vector-menu-dropdown\" aria-labelledby=\"p-variants-label\" role=\"navigation\" >\n\t<input type=\"checkbox\"\n\t\tid=\"p-variants-checkbox\"\n\t\trole=\"button\"\n\t\taria-haspopup=\"true\"\n\t\tdata-event-name=\"ui.dropdown-p-variants\"\n\t\tclass=\"vector-menu-checkbox\"\n\t\taria-labelledby=\"p-variants-label\"\n\t/>\n\t<label\n\t\tid=\"p-variants-label\"\n\t\t aria-label=\"Change language variant\"\n\t\tclass=\"vector-menu-heading \"\n\t>\n\t\t<span class=\"vector-menu-heading-label\">English</span>\n\t</label>\n\t<div class=\"vector-menu-content\">\n\t\t\n\t\t<ul class=\"vector-menu-content-list\"></ul>\n\t\t\n\t</div>\n</nav>\n\n\t\t</div>\n\t\t<div id=\"right-navigation\">\n\t\t\t\n\n<nav id=\"p-views\" class=\"vector-menu mw-portlet mw-portlet-views vector-menu-tabs vector-menu-tabs-legacy\" aria-labelledby=\"p-views-label\" role=\"navigation\" >\n\t<h3\n\t\tid=\"p-views-label\"\n\t\t\n\t\tclass=\"vector-menu-heading \"\n\t>\n\t\t<span class=\"vector-menu-heading-label\">Views</span>\n\t</h3>\n\t<div class=\"vector-menu-content\">\n\t\t\n\t\t<ul class=\"vector-menu-content-list\"><li id=\"ca-view\" class=\"selected vector-tab-noicon mw-list-item\"><a href=\"/wiki/List_of_helicopter_prison_escapes\"><span>Read</span></a></li><li id=\"ca-edit\" class=\"vector-tab-noicon mw-list-item\"><a href=\"/w/index.php?title=List_of_helicopter_prison_escapes&action=edit\" title=\"Edit this page [e]\" accesskey=\"e\"><span>Edit</span></a></li><li id=\"ca-history\" class=\"vector-tab-noicon mw-list-item\"><a href=\"/w/index.php?title=List_of_helicopter_prison_escapes&action=history\" title=\"Past revisions of this page [h]\" accesskey=\"h\"><span>View history</span></a></li></ul>\n\t\t\n\t</div>\n</nav>\n\n\t\t\t\n\n<nav id=\"p-cactions\" class=\"vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-menu-dropdown\" aria-labelledby=\"p-cactions-label\" role=\"navigation\" title=\"More options\" >\n\t<input type=\"checkbox\"\n\t\tid=\"p-cactions-checkbox\"\n\t\trole=\"button\"\n\t\taria-haspopup=\"true\"\n\t\tdata-event-name=\"ui.dropdown-p-cactions\"\n\t\tclass=\"vector-menu-checkbox\"\n\t\taria-labelledby=\"p-cactions-label\"\n\t/>\n\t<label\n\t\tid=\"p-cactions-label\"\n\t\t\n\t\tclass=\"vector-menu-heading \"\n\t>\n\t\t<span class=\"vector-menu-heading-label\">More</span>\n\t</label>\n\t<div class=\"vector-menu-content\">\n\t\t\n\t\t<ul class=\"vector-menu-content-list\"></ul>\n\t\t\n\t</div>\n</nav>\n\n\t\t\t\n<div id=\"p-search\" role=\"search\" class=\"vector-search-box-vue vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box\">\n\t<div>\n\t\t\t<h3 >\n\t\t\t\t<label for=\"searchInput\">Search</label>\n\t\t\t</h3>\n\t\t<form action=\"/w/index.php\" id=\"searchform\"\n\t\t\tclass=\"vector-search-box-form\">\n\t\t\t<div id=\"simpleSearch\"\n\t\t\t\tclass=\"vector-search-box-inner\"\n\t\t\t\t data-search-loc=\"header-navigation\">\n\t\t\t\t<input class=\"vector-search-box-input\"\n\t\t\t\t\t type=\"search\" name=\"search\" placeholder=\"Search Wikipedia\" aria-label=\"Search Wikipedia\" autocapitalize=\"sentences\" title=\"Search Wikipedia [f]\" accesskey=\"f\" id=\"searchInput\"\n\t\t\t\t>\n\t\t\t\t<input type=\"hidden\" name=\"title\" value=\"Special:Search\">\n\t\t\t\t<input id=\"mw-searchButton\"\n\t\t\t\t\t class=\"searchButton mw-fallbackSearchButton\" type=\"submit\" name=\"fulltext\" title=\"Search Wikipedia for this text\" value=\"Search\">\n\t\t\t\t<input id=\"searchButton\"\n\t\t\t\t\t class=\"searchButton\" type=\"submit\" name=\"go\" title=\"Go to a page with this exact name if it exists\" value=\"Go\">\n\t\t\t</div>\n\t\t</form>\n\t</div>\n</div>\n\n\t\t</div>\n\t</div>\n\t\n\n<div id=\"mw-panel\">\n\t<div id=\"p-logo\" role=\"banner\">\n\t\t<a class=\"mw-wiki-logo\" href=\"/wiki/Main_Page\"\n\t\t\ttitle=\"Visit the main page\"></a>\n\t</div>\n\t\n\n<nav id=\"p-navigation\" class=\"vector-menu mw-portlet mw-portlet-navigation vector-menu-portal portal\" aria-labelledby=\"p-navigation-label\" role=\"navigation\" >\n\t<h3\n\t\tid=\"p-navigation-label\"\n\t\t\n\t\tclass=\"vector-menu-heading \"\n\t>\n\t\t<span class=\"vector-menu-heading-label\">Navigation</span>\n\t</h3>\n\t<div class=\"vector-menu-content\">\n\t\t\n\t\t<ul class=\"vector-menu-content-list\"><li id=\"n-mainpage-description\" class=\"mw-list-item\"><a href=\"/wiki/Main_Page\" title=\"Visit the main page [z]\" accesskey=\"z\"><span>Main page</span></a></li><li id=\"n-contents\" class=\"mw-list-item\"><a href=\"/wiki/Wikipedia:Contents\" title=\"Guides to browsing Wikipedia\"><span>Contents</span></a></li><li id=\"n-currentevents\" class=\"mw-list-item\"><a href=\"/wiki/Portal:Current_events\" title=\"Articles related to current events\"><span>Current events</span></a></li><li id=\"n-randompage\" class=\"mw-list-item\"><a href=\"/wiki/Special:Random\" title=\"Visit a randomly selected article [x]\" accesskey=\"x\"><span>Random article</span></a></li><li id=\"n-aboutsite\" class=\"mw-list-item\"><a href=\"/wiki/Wikipedia:About\" title=\"Learn about Wikipedia and how it works\"><span>About Wikipedia</span></a></li><li id=\"n-contactpage\" class=\"mw-list-item\"><a href=\"//en.wikipedia.org/wiki/Wikipedia:Contact_us\" title=\"How to contact Wikipedia\"><span>Contact us</span></a></li><li id=\"n-sitesupport\" class=\"mw-list-item\"><a href=\"https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en\" title=\"Support us by donating to the Wikimedia Foundation\"><span>Donate</span></a></li></ul>\n\t\t\n\t</div>\n</nav>\n\n\t\n\n<nav id=\"p-interaction\" class=\"vector-menu mw-portlet mw-portlet-interaction vector-menu-portal portal\" aria-labelledby=\"p-interaction-label\" role=\"navigation\" >\n\t<h3\n\t\tid=\"p-interaction-label\"\n\t\t\n\t\tclass=\"vector-menu-heading \"\n\t>\n\t\t<span class=\"vector-menu-heading-label\">Contribute</span>\n\t</h3>\n\t<div class=\"vector-menu-content\">\n\t\t\n\t\t<ul class=\"vector-menu-content-list\"><li id=\"n-help\" class=\"mw-list-item\"><a href=\"/wiki/Help:Contents\" title=\"Guidance on how to use and edit Wikipedia\"><span>Help</span></a></li><li id=\"n-introduction\" class=\"mw-list-item\"><a href=\"/wiki/Help:Introduction\" title=\"Learn how to edit Wikipedia\"><span>Learn to edit</span></a></li><li id=\"n-portal\" class=\"mw-list-item\"><a href=\"/wiki/Wikipedia:Community_portal\" title=\"The hub for editors\"><span>Community portal</span></a></li><li id=\"n-recentchanges\" class=\"mw-list-item\"><a href=\"/wiki/Special:RecentChanges\" title=\"A list of recent changes to Wikipedia [r]\" accesskey=\"r\"><span>Recent changes</span></a></li><li id=\"n-upload\" class=\"mw-list-item\"><a href=\"/wiki/Wikipedia:File_Upload_Wizard\" title=\"Add images or other media for use on Wikipedia\"><span>Upload file</span></a></li></ul>\n\t\t\n\t</div>\n</nav>\n\n\n<nav id=\"p-tb\" class=\"vector-menu mw-portlet mw-portlet-tb vector-menu-portal portal\" aria-labelledby=\"p-tb-label\" role=\"navigation\" >\n\t<h3\n\t\tid=\"p-tb-label\"\n\t\t\n\t\tclass=\"vector-menu-heading \"\n\t>\n\t\t<span class=\"vector-menu-heading-label\">Tools</span>\n\t</h3>\n\t<div class=\"vector-menu-content\">\n\t\t\n\t\t<ul class=\"vector-menu-content-list\"><li id=\"t-whatlinkshere\" class=\"mw-list-item\"><a href=\"/wiki/Special:WhatLinksHere/List_of_helicopter_prison_escapes\" title=\"List of all English Wikipedia pages containing links to this page [j]\" accesskey=\"j\"><span>What links here</span></a></li><li id=\"t-recentchangeslinked\" class=\"mw-list-item\"><a href=\"/wiki/Special:RecentChangesLinked/List_of_helicopter_prison_escapes\" rel=\"nofollow\" title=\"Recent changes in pages linked from this page [k]\" accesskey=\"k\"><span>Related changes</span></a></li><li id=\"t-upload\" class=\"mw-list-item\"><a href=\"/wiki/Wikipedia:File_Upload_Wizard\" title=\"Upload files [u]\" accesskey=\"u\"><span>Upload file</span></a></li><li id=\"t-specialpages\" class=\"mw-list-item\"><a href=\"/wiki/Special:SpecialPages\" title=\"A list of all special pages [q]\" accesskey=\"q\"><span>Special pages</span></a></li><li id=\"t-permalink\" class=\"mw-list-item\"><a href=\"/w/index.php?title=List_of_helicopter_prison_escapes&oldid=1104271511\" title=\"Permanent link to this revision of this page\"><span>Permanent link</span></a></li><li id=\"t-info\" class=\"mw-list-item\"><a href=\"/w/index.php?title=List_of_helicopter_prison_escapes&action=info\" title=\"More information about this page\"><span>Page information</span></a></li><li id=\"t-cite\" class=\"mw-list-item\"><a href=\"/w/index.php?title=Special:CiteThisPage&page=List_of_helicopter_prison_escapes&id=1104271511&wpFormIdentifier=titleform\" title=\"Information on how to cite this page\"><span>Cite this page</span></a></li><li id=\"t-wikibase\" class=\"mw-list-item\"><a href=\"https://www.wikidata.org/wiki/Special:EntityPage/Q3592745\" title=\"Structured data on this page hosted by Wikidata [g]\" accesskey=\"g\"><span>Wikidata item</span></a></li></ul>\n\t\t\n\t</div>\n</nav>\n\n\n<nav id=\"p-coll-print_export\" class=\"vector-menu mw-portlet mw-portlet-coll-print_export vector-menu-portal portal\" aria-labelledby=\"p-coll-print_export-label\" role=\"navigation\" >\n\t<h3\n\t\tid=\"p-coll-print_export-label\"\n\t\t\n\t\tclass=\"vector-menu-heading \"\n\t>\n\t\t<span class=\"vector-menu-heading-label\">Print/export</span>\n\t</h3>\n\t<div class=\"vector-menu-content\">\n\t\t\n\t\t<ul class=\"vector-menu-content-list\"><li id=\"coll-download-as-rl\" class=\"mw-list-item\"><a href=\"/w/index.php?title=Special:DownloadAsPdf&page=List_of_helicopter_prison_escapes&action=show-download-screen\" title=\"Download this page as a PDF file\"><span>Download as PDF</span></a></li><li id=\"t-print\" class=\"mw-list-item\"><a href=\"/w/index.php?title=List_of_helicopter_prison_escapes&printable=yes\" title=\"Printable version of this page [p]\" accesskey=\"p\"><span>Printable version</span></a></li></ul>\n\t\t\n\t</div>\n</nav>\n\n\t\n\n<nav id=\"p-lang\" class=\"vector-menu mw-portlet mw-portlet-lang vector-menu-portal portal\" aria-labelledby=\"p-lang-label\" role=\"navigation\" >\n\t<h3\n\t\tid=\"p-lang-label\"\n\t\t\n\t\tclass=\"vector-menu-heading \"\n\t>\n\t\t<span class=\"vector-menu-heading-label\">Languages</span>\n\t</h3>\n\t<div class=\"vector-menu-content\">\n\t\t\n\t\t<ul class=\"vector-menu-content-list\"></ul>\n\t\t<div class=\"after-portlet after-portlet-lang\"><span class=\"uls-after-portlet-link\"></span><span class=\"wb-langlinks-add wb-langlinks-link\"><a href=\"https://www.wikidata.org/wiki/Special:EntityPage/Q3592745#sitelinks-wikipedia\" title=\"Add interlanguage links\" class=\"wbc-editpage\">Add links</a></span></div>\n\t</div>\n</nav>\n\n</div>\n\n</div>\n\n<footer id=\"footer\" class=\"mw-footer\" role=\"contentinfo\" >\n\t<ul id=\"footer-info\">\n\t<li id=\"footer-info-lastmod\"> This page was last edited on 13 August 2022, at 22:12<span class=\"anonymous-show\"> (UTC)</span>.</li>\n\t<li id=\"footer-info-copyright\">Text is available under the <a rel=\"license\" href=\"//en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License\">Creative Commons Attribution-ShareAlike License 3.0</a><a rel=\"license\" href=\"//creativecommons.org/licenses/by-sa/3.0/\" style=\"display:none;\"></a>;\nadditional terms may apply. By using this site, you agree to the <a href=\"//foundation.wikimedia.org/wiki/Terms_of_Use\">Terms of Use</a> and <a href=\"//foundation.wikimedia.org/wiki/Privacy_policy\">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a href=\"//www.wikimediafoundation.org/\">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li>\n</ul>\n\n\t<ul id=\"footer-places\">\n\t<li id=\"footer-places-privacy\"><a href=\"https://foundation.wikimedia.org/wiki/Privacy_policy\">Privacy policy</a></li>\n\t<li id=\"footer-places-about\"><a href=\"/wiki/Wikipedia:About\">About Wikipedia</a></li>\n\t<li id=\"footer-places-disclaimer\"><a href=\"/wiki/Wikipedia:General_disclaimer\">Disclaimers</a></li>\n\t<li id=\"footer-places-contact\"><a href=\"//en.wikipedia.org/wiki/Wikipedia:Contact_us\">Contact Wikipedia</a></li>\n\t<li id=\"footer-places-mobileview\"><a href=\"//en.m.wikipedia.org/w/index.php?title=List_of_helicopter_prison_escapes&mobileaction=toggle_view_mobile\" class=\"noprint stopMobileRedirectToggle\">Mobile view</a></li>\n\t<li id=\"footer-places-developers\"><a href=\"https://developer.wikimedia.org\">Developers</a></li>\n\t<li id=\"footer-places-statslink\"><a href=\"https://stats.wikimedia.org/#/en.wikipedia.org\">Statistics</a></li>\n\t<li id=\"footer-places-cookiestatement\"><a href=\"https://foundation.wikimedia.org/wiki/Cookie_statement\">Cookie statement</a></li>\n</ul>\n\n\t<ul id=\"footer-icons\" class=\"noprint\">\n\t<li id=\"footer-copyrightico\"><a href=\"https://wikimediafoundation.org/\"><img src=\"/static/images/footer/wikimedia-button.png\" srcset=\"/static/images/footer/wikimedia-button-1.5x.png 1.5x, /static/images/footer/wikimedia-button-2x.png 2x\" width=\"88\" height=\"31\" alt=\"Wikimedia Foundation\" loading=\"lazy\" /></a></li>\n\t<li id=\"footer-poweredbyico\"><a href=\"https://www.mediawiki.org/\"><img src=\"/static/images/footer/poweredby_mediawiki_88x31.png\" alt=\"Powered by MediaWiki\" srcset=\"/static/images/footer/poweredby_mediawiki_132x47.png 1.5x, /static/images/footer/poweredby_mediawiki_176x62.png 2x\" width=\"88\" height=\"31\" loading=\"lazy\"/></a></li>\n</ul>\n\n</footer>\n\n<script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({\"wgPageParseReport\":{\"limitreport\":{\"cputime\":\"0.890\",\"walltime\":\"1.089\",\"ppvisitednodes\":{\"value\":10638,\"limit\":1000000},\"postexpandincludesize\":{\"value\":228621,\"limit\":2097152},\"templateargumentsize\":{\"value\":12994,\"limit\":2097152},\"expansiondepth\":{\"value\":17,\"limit\":100},\"expensivefunctioncount\":{\"value\":4,\"limit\":500},\"unstrip-depth\":{\"value\":1,\"limit\":20},\"unstrip-size\":{\"value\":228951,\"limit\":5000000},\"entityaccesscount\":{\"value\":0,\"limit\":400},\"timingprofile\":[\"100.00% 833.433 1 -total\",\" 51.25% 427.116 1 Template:Reflist\",\" 19.38% 161.547 48 Template:Cite_news\",\" 18.60% 155.013 24 Template:Cite_web\",\" 9.40% 78.322 48 Template:Flag\",\" 8.09% 67.383 5 Template:Navbox\",\" 6.95% 57.894 1 Template:Helicopters_and_rotorcraft\",\" 6.83% 56.961 1 Template:Expand_list\",\" 6.83% 56.948 1 Template:Short_description\",\" 4.77% 39.767 55 Template:Sort\"]},\"scribunto\":{\"limitreport-timeusage\":{\"value\":\"0.428\",\"limit\":\"10.000\"},\"limitreport-memusage\":{\"value\":9643155,\"limit\":52428800}},\"cachereport\":{\"origin\":\"mw2375\",\"timestamp\":\"20220915202610\",\"ttl\":1814400,\"transientcontent\":false}}});});</script>\n<script type=\"application/ld+json\">{\"@context\":\"https:\\/\\/schema.org\",\"@type\":\"Article\",\"name\":\"List of helicopter prison escapes\",\"url\":\"https:\\/\\/en.wikipedia.org\\/wiki\\/List_of_helicopter_prison_escapes\",\"sameAs\":\"http:\\/\\/www.wikidata.org\\/entity\\/Q3592745\",\"mainEntity\":\"http:\\/\\/www.wikidata.org\\/entity\\/Q3592745\",\"author\":{\"@type\":\"Organization\",\"name\":\"Contributors to Wikimedia projects\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Wikimedia Foundation, Inc.\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/www.wikimedia.org\\/static\\/images\\/wmf-hor-googpub.png\"}},\"datePublished\":\"2006-06-12T14:35:45Z\",\"dateModified\":\"2022-08-13T22:12:50Z\",\"image\":\"https:\\/\\/upload.wikimedia.org\\/wikipedia\\/commons\\/4\\/40\\/Mountjoy_Prison.jpg\",\"headline\":\"Wikimedia list article\"}</script><script type=\"application/ld+json\">{\"@context\":\"https:\\/\\/schema.org\",\"@type\":\"Article\",\"name\":\"List of helicopter prison escapes\",\"url\":\"https:\\/\\/en.wikipedia.org\\/wiki\\/List_of_helicopter_prison_escapes\",\"sameAs\":\"http:\\/\\/www.wikidata.org\\/entity\\/Q3592745\",\"mainEntity\":\"http:\\/\\/www.wikidata.org\\/entity\\/Q3592745\",\"author\":{\"@type\":\"Organization\",\"name\":\"Contributors to Wikimedia projects\"},\"publisher\":{\"@type\":\"Organization\",\"name\":\"Wikimedia Foundation, Inc.\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\/\\/www.wikimedia.org\\/static\\/images\\/wmf-hor-googpub.png\"}},\"datePublished\":\"2006-06-12T14:35:45Z\",\"dateModified\":\"2022-08-13T22:12:50Z\",\"image\":\"https:\\/\\/upload.wikimedia.org\\/wikipedia\\/commons\\/4\\/40\\/Mountjoy_Prison.jpg\",\"headline\":\"Wikimedia list article\"}</script>\n<script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({\"wgBackendResponseTime\":1222,\"wgHostname\":\"mw2375\"});});</script>\n</body>\n</html>"
The response body will be formatted as an HTML, thus we'll have to convert the necessary sections into the appropriate Julia objects. To simplify traversal, we only take the body tag and ignore the rest. Traversal through the body element is by Pre-Order Depth First Search.
doc = parsehtml(raw_html)
html_el = doc.root
html_body_el = html_el[2]
table_el = HTMLElement(:div)
for elem in AT.PreOrderDFS(html_body_el)
try
# access first element four times and at the end, check if it contains the "Date" text
if text(elem[1][1][1][1]) == "Date"
table_el = elem[1]
end
catch
# ignore problematic tags
end
end
table_el
HTMLElement{:tbody}:<tbody> <tr> <th style="width:11%;"> Date </th> <th style="width:14%;"> Prison name </th> <th style="width:5%;"> Country </th> <th style="width:5%;"> Succeeded </th> <th class="unsortable" style="width:15%;"> Escapee(s) </th> <th class="unsortable" style="width:55%;"> Details </th> ...
Next step will be the extraction of column names.
# table_el[1] contains the column names
# we extract our column names from the first child of the parent element
index = 0
column_names = String[]
for elem in AT.PreOrderDFS(table_el[1])
if (index != 0) & (text(elem) ∉ column_names)
push!(column_names, text(elem))
end
index +=1
end
# remove the last column name which was not filtered by the for loop
pop!(column_names)
column_names
6-element Vector{String}: "Date" "Prison name" "Country" "Succeeded" "Escapee(s)" "Details"
The last step is to merge both the extracted columns and rows into one dataframe.
# create an initial dictionary to store column name to values mapping
# we will use the dictionary to build the dataframe for the analysis
data_dict = Dict{String, Array{String}}()
for col in column_names
data_dict[col] = String[]
end
# table_el[2] and subsequent indexes contain the data
# we'll filter the headers out
rows = children(table_el)[2:49]
num_rows = size(rows)[1]
test = String[]
# traverses through all elements, extract all text, combine all of them into a single String, and return the String
function get_all_text(htmlelement; separator = "", removenewline=false)
fulltext = ""
for elem in AT.PreOrderDFS(htmlelement)
if(typeof(elem) <: HTMLText)
fulltext *= separator * text(elem)
end
end
if removenewline
fulltext = chomp(fulltext)
end
fulltext
end
# loop through the rows too and push data into the appropriate dictionary keys
for idx in range(1, num_rows)
# the following can be made into a for loop but the columns are few enough
# to justify manual typing
date = get_all_text(rows[idx][1])
location = get_all_text(rows[idx][2])
country = get_all_text(rows[idx][3])
succeeded = get_all_text(rows[idx][4])
escapees = get_all_text(rows[idx][5], separator = ",", removenewline=true)
details = get_all_text(rows[idx][6])
push!(data_dict["Date"], date)
push!(data_dict["Prison name"], location)
push!(data_dict["Country"], country)
push!(data_dict["Succeeded"], succeeded)
push!(data_dict["Escapee(s)"], escapees)
push!(data_dict["Details"], details)
end
first(data_dict["Escapee(s)"],10)
10-element Vector{String}: ",Joel David Kaplan,Carlos Antonio Contreras Castro" ",JB O'Hagan,Seamus Twomey,Kevin Mallon" ",Garrett Brock Trapnell,Martin Joseph McNally,James Kenneth Johnson" ",Gérard Dupré,Daniel Beaumont" ",Marina Paquet (hijacker),Giles Arseneault (prisoner)" ",David McMillan" ",James Rodney Leonard,William Douglas Ballew,Jesse Glenn Smith" ",José Carlos dos Reis Encina, a.k.a. \"Escadinha\"" ",Michel Vaujour" ",Samantha Lopez"
# create the dataframe
h_escapes = DataFrame(data_dict)
# print the first five rows to make sure everything works correctly
first(h_escapes[!, Not(:Details)], 5)
5 rows × 5 columns
Country | Date | Escapee(s) | Prison name | Succeeded | |
---|---|---|---|---|---|
String | String | String | String | String | |
1 | Mexico | August 19, 1971 | ,Joel David Kaplan,Carlos Antonio Contreras Castro | Santa Martha Acatitla\n | Yes\n |
2 | Ireland | October 31, 1973 | ,JB O'Hagan,Seamus Twomey,Kevin Mallon | Mountjoy Jail | Yes\n |
3 | United States | May 24, 1978 | ,Garrett Brock Trapnell,Martin Joseph McNally,James Kenneth Johnson | United States Penitentiary, Marion | No\n |
4 | France | February 27, 1981 | ,Gérard Dupré,Daniel Beaumont | Fleury-Mérogis, Essonne, Ile de France\n | Yes\n |
5 | Canada | May 7, 1981 | ,Marina Paquet (hijacker),Giles Arseneault (prisoner) | Orsainville Prison, Quebec City\n | No\n |
Some country names have leading white spaces. Removing that would make the names cleaner and easier to use for analysis.
# strip the leading white space in the Country column
h_escapes[!, [:Country]] = select(h_escapes, :Country => ByRow(x -> string(strip(x))) => :Country)
first(h_escapes[!, [:Country]], 5)
5 rows × 1 columns
Country | |
---|---|
String | |
1 | Mexico |
2 | Ireland |
3 | United States |
4 | France |
5 | Canada |
Next, we'll simplify the date. We're only interested in the year the escape happened.
# change the date to only refer to the year
# also, change the type to Int64
h_escapes[!, [:Date]] = select(h_escapes, :Date => ByRow(x -> parse(Int, last(x, 4))) => :Date)
# rename Date to Year
h_escapes = rename(h_escapes, :Date => :Year)
first(h_escapes, 5)
5 rows × 6 columns
Country | Year | Details | Escapee(s) | Prison name | Succeeded | |
---|---|---|---|---|---|---|
String | Int64 | String | String | String | String | |
1 | Mexico | 1971 | Joel David Kaplan was a New York businessman who had been arrested for murder in 1962 in Mexico City and was incarcerated at the Santa Martha Acatitla prison in the Iztapalapa borough of Mexico City. Joel's sister, Judy Kaplan, arranged the means to help Kaplan escape, and on August 19, 1971, a helicopter landed in the prison yard. The guards mistakenly thought this was an official visit. In two minutes, Kaplan and his cellmate Carlos Antonio Contreras, a Venezuelan counterfeiter, were able to board the craft and were piloted away, before any shots were fired.[9] Both men were flown to Texas and then different planes flew Kaplan to California and Castro to Guatemala.[3] The Mexican government never initiated extradition proceedings against Kaplan.[9] The escape is told in a book, The 10-Second Jailbreak: The Helicopter Escape of Joel David Kaplan.[4] It also inspired the 1975 action movieBreakout, which starred Charles Bronson and Robert Duvall.[9] | ,Joel David Kaplan,Carlos Antonio Contreras Castro | Santa Martha Acatitla\n | Yes\n |
2 | Ireland | 1973 | On October 31, 1973 an IRA member hijacked a helicopter and forced the pilot to land in the exercise yard of Dublin's Mountjoy Jail's D Wing at 3:40 p.m., October 31, 1973. Three members of the IRA were able to escape: JB O'Hagan, Seamus Twomey and Kevin Mallon. Another prisoner who also was in the prison was quoted as saying, "One shamefaced screw apologised to the governor and said he thought it was the new Minister for Defence (Paddy Donegan) arriving. I told him it was our Minister of Defence leaving."\nThe Mountjoy helicopter escape became Republican lore and was immortalized by "The Helicopter Song", which contains the lines "It's up like a bird and over the city. There's three men a'missing I heard the warder say".[1] | ,JB O'Hagan,Seamus Twomey,Kevin Mallon | Mountjoy Jail | Yes\n |
3 | United States | 1978 | 43-year-old Barbara Ann Oswald hijacked a Saint Louis-based charter helicopter and forced the pilot to land in the yard at USP Marion. While landing the aircraft, the pilot, Allen Barklage, who was a Vietnam War veteran, struggled with Oswald and managed to wrestle the gun away from her. Barklage then shot and killed Oswald, thwarting the escape.[10] A few months later Oswald's daughter hijacked TWA Flight 541 in an effort to free Trapnell.\n | ,Garrett Brock Trapnell,Martin Joseph McNally,James Kenneth Johnson | United States Penitentiary, Marion | No\n |
4 | France | 1981 | With the help of Serge Coutel, Gérard Dupré and Daniel Beaumont, succeed in the first and double helicopter escape of a French prison, in Fleury-Mérogis (Essonne), the best kept prison of France. The men hijacked a helicopter and its pilot that they rented to fly from Paris to Orléans. The pilot, Claude Fourcade, was taken hostage and was told that they were holding his wife and daughter hostage (which was not true) ... The flight turned into Paris - Fleury -Merogis - Porte d'Orléans.[11] | ,Gérard Dupré,Daniel Beaumont | Fleury-Mérogis, Essonne, Ile de France\n | Yes\n |
5 | Canada | 1981 | Marina Paquet held a sawed off shotgun against the back of the head of a helicopter pilot. She demanded that he land in the Orsainville prison courtyard, where her boyfriend (awaiting extradition to California on a murder charge) was set to escape. The pilot, Brian Jenner, feigned a panic attack, put the helicopter through some rough maneuvers and was then able to convince Paquet, in the back seat of the Jet Ranger, to turn over her shotgun and her knife. Jenner then gave her the choice of any landing spot, except the prison. She chose to go back to the airport.\nThe pilot then explained, in great detail, exactly where they were and where they would be landing on arrival at the Quebec City airport. He added that the police would surely be aware by then, that she had hijacked the helicopter but would not yet be aware that she had given up her arms to the pilot. All the time Jenner was squeezing the transmit button on his cyclic stick and the tower was picking up all the details. The moment they touched down at the airport, the woman left the helicopter but the police, who had been advised of the situation by the control tower, were hiding nearby, and captured Paquet within seconds.\n | ,Marina Paquet (hijacker),Giles Arseneault (prisoner) | Orsainville Prison, Quebec City\n | No\n |
We don't need this at the moment and it clutters the display because of how text-heavy it is. So, removing it should simplify things.
# let's remove the details column so it doesn't clutter the display
# other than that, we don't need it at this moment
h_escapes = h_escapes[!, Not(:Details)]
# check if it's working properly
first(h_escapes, 5)
5 rows × 5 columns
Country | Year | Escapee(s) | Prison name | Succeeded | |
---|---|---|---|---|---|
String | Int64 | String | String | String | |
1 | Mexico | 1971 | ,Joel David Kaplan,Carlos Antonio Contreras Castro | Santa Martha Acatitla\n | Yes\n |
2 | Ireland | 1973 | ,JB O'Hagan,Seamus Twomey,Kevin Mallon | Mountjoy Jail | Yes\n |
3 | United States | 1978 | ,Garrett Brock Trapnell,Martin Joseph McNally,James Kenneth Johnson | United States Penitentiary, Marion | No\n |
4 | France | 1981 | ,Gérard Dupré,Daniel Beaumont | Fleury-Mérogis, Essonne, Ile de France\n | Yes\n |
5 | Canada | 1981 | ,Marina Paquet (hijacker),Giles Arseneault (prisoner) | Orsainville Prison, Quebec City\n | No\n |
Due to the simplistic way we extracted the text from the HTML elements, we'll need to clean the escapees names to make them easier for processing.
We'll try to fill the missing escapees data first, and then make the escapee names more analyzable.
missing_escapees = select(h_escapes, "Escapee(s)" => ByRow(x -> x == ",—" ? missing : x) => :Escapees)
h_escapes.Escapees = missing_escapees[!, :Escapees]
# code for showing missing escapees columns
# h_escapes[ismissing.(h_escapes[!, "Escapee(s)"]), :]
48-element Vector{Union{Missing, String}}: ",Joel David Kaplan,Carlos Antonio Contreras Castro" ",JB O'Hagan,Seamus Twomey,Kevin Mallon" ",Garrett Brock Trapnell,Martin Joseph McNally,James Kenneth Johnson" ",Gérard Dupré,Daniel Beaumont" ",Marina Paquet (hijacker),Giles Arseneault (prisoner)" ",David McMillan" ",James Rodney Leonard,William Douglas Ballew,Jesse Glenn Smith" ",José Carlos dos Reis Encina, a.k.a. \"Escadinha\"" ",Michel Vaujour" ",Samantha Lopez" ",André Bellaïche,Gianluigi Esposito,Luciano Cipollari" ",Sydney Draper,John Kendall" ",Mahoney Danny ,Francis Mitchell,Randy Lackey" ⋮ ",Nordin Benallal" ",Vasilis Paleokostas,Alket Rizai" ",Alexin Jismy,Fabrice Michel" ",Ashraf Sekkaki, plus three other criminals" ",Brian Lawrence " ",Alexey Shestakov " ",Panagiotis Vlastos " ",Benjamin Hudon-Barbeau,Danny Provençal" ",Yves Denis,Denis Lefebvre,Serge Pomerleau" ",Pola Roupa,Nikos Maziotis" ",Rédoine Faïd" ",Kristel A. "
h_escapes[ismissing.(h_escapes[!, "Escapees"]), :]
7 rows × 6 columns
Country | Year | Escapee(s) | Prison name | Succeeded | Escapees | |
---|---|---|---|---|---|---|
String | Int64 | String | String | String | String? | |
1 | France | 1992 | ,— | Lyon Prison\n | Yes\n | missing |
2 | France | 1992 | ,— | Touraine Central Prison, Tours | No\n | missing |
3 | Netherlands | 1997 | ,— | De Geerhorst jail\n | No\n | missing |
4 | France | 2000 | ,— | Lyon prison\n | Yes\n | missing |
5 | France | 2001 | ,— | Fresnes prison\n | No\n | missing |
6 | Brazil | 2002 | ,— | Parada Neto Penitentiary\n | Yes\n | missing |
7 | France | 2005 | ,— | France\n | No\n | missing |
If possible, we'll fill the missing escapee names with information from the Details column. If not, we should consider dropping them removing them from the all or some parts of the analysis.
# from reading the Details column, we've identified the following:
# index 18 - 3 escapees
# index 19 - 4 escapees
# index 22 - 1 escapees
# index 25 - 3 escapees
# index 28 - 2 escapees
# index 29 - 2 escapees
# index 32 - 3 escapees (data not available in the Detail column, but available here — https://web.archive.org/web/20110604154102/http://www.timesonline.co.uk/tol/news/world/article757427.ece)
missing_escapees_idx = []
for row in eachrow(h_escapes[!, :])
if ismissing(row["Escapees"])
push!(missing_escapees_idx, rownumber(row))
end
end
# because the missing escapees were unnamed, we'll use the year of the escape and the prison name plus a number to identify each of them
# e.g. index 18 - 1992 Lyon 1, 1992 Lyon 2, 1992 Lyon 3
missing_escapees_imputations = [
(18,3,"1992_Lyon"),
(19,4,"1992_Touraine"),
(22,3,"1997_De_Geerhorst"),
(25,3,"2000_Lyon"),
(28,2,"2001_Fresnes"),
(29,2,"2002_Parada"),
(32,3,"2005_France")
]
for imputations in missing_escapees_imputations
index = imputations[1]
num_escapees = imputations[2]
suffix = imputations[3]
# this will create an array of escapees with each escapee's name formatted as YEAR_PRISON_NUMBER
escapees = join(["$(suffix)_$num," for num in range(1,num_escapees)])
h_escapes[index, :Escapees] = escapees
end
h_escapes[missing_escapees_idx, [:Escapees]]
7 rows × 1 columns
Escapees | |
---|---|
String? | |
1 | 1992_Lyon_1,1992_Lyon_2,1992_Lyon_3, |
2 | 1992_Touraine_1,1992_Touraine_2,1992_Touraine_3,1992_Touraine_4, |
3 | 1997_De_Geerhorst_1,1997_De_Geerhorst_2,1997_De_Geerhorst_3, |
4 | 2000_Lyon_1,2000_Lyon_2,2000_Lyon_3, |
5 | 2001_Fresnes_1,2001_Fresnes_2, |
6 | 2002_Parada_1,2002_Parada_2, |
7 | 2005_France_1,2005_France_2,2005_France_3, |
# extract the names from the string and return the names as an array
function extractnames(string)
# match a sequence of anything except for commas and '-'
# any match also optionally ends with either a newline or a word boundary
matches = collect(eachmatch(r"(?<name>[^,—]+)[\n,\b]?", string))
[match["name"] for match = matches]
end
# apply the above function to each value in Escapees
new_escapees = transform(h_escapes, :Escapees => ByRow(x -> extractnames(x)) => :Escapees)[!, [6]]
# new_escapees = select(new_escapees, :Escapees => ByRow(x -> isempty(x) ? missing : x) => :Escapees)
h_escapes.Escapees = new_escapees[!, "Escapees"]
first(h_escapes[!, [:Escapees]], 5)
5 rows × 1 columns
Escapees | |
---|---|
Array… | |
1 | ["Joel David Kaplan", "Carlos Antonio Contreras Castro"] |
2 | ["JB O'Hagan", "Seamus Twomey", "Kevin Mallon"] |
3 | ["Garrett Brock Trapnell", "Martin Joseph McNally", "James Kenneth Johnson"] |
4 | ["Gérard Dupré", "Daniel Beaumont"] |
5 | ["Marina Paquet (hijacker)", "Giles Arseneault (prisoner)"] |
One escapee name was not extracted properly — "José Carlos dos Reis Encina, a.k.a. "Escadinha". We received two names instead of one.
Aside from that, some escapees are grouped together. We decided to rename them as separate escapees identified by the group name and a number, instead of finding their actual names.
An example:
Four members of the Manuel Rodriguez Patriotic Front --> MRPF 1, MRPF 2, MRPF 3, MRPF 4
# h_escapes = h_escapes[:, Not("Escapee(s)")]
# some values are a bit wrong and since there are not that many of them, we can just fix them manually
# index 8: """José Carlos dos Reis Encina, a.k.a. "Escadinha" """
# index 21: Four members of the Manuel Rodriguez Patriotic Front
# index 39: "Ashraf Sekkaki", " plus three other criminals"
h_escapes[8, :Escapees] = ["José Carlos dos Reis Encina"]
h_escapes[21, :Escapees] = ["MRPF 1", "MRPF 2", "MRPF 3", "MRPF 4"]
h_escapes[40, :Escapees] = ["Ashraf Sekkaki", "Criminal 1", "Criminal 2", "Criminal 3"]
h_escapes[[8,21,40],:]
3 rows × 6 columns
Country | Year | Escapee(s) | Prison name | Succeeded | Escapees | |
---|---|---|---|---|---|---|
String | Int64 | String | String | String | Array… | |
1 | Brazil | 1985 | ,José Carlos dos Reis Encina, a.k.a. "Escadinha" | Cândido Mendes penitentiary, Ilha Grande, Rio de Janeiro | Yes\n | ["José Carlos dos Reis Encina"] |
2 | Chile | 1996 | ,Four members of the ,Manuel Rodriguez Patriotic Front | High Security Prison, Santiago\n | Yes\n | ["MRPF 1", "MRPF 2", "MRPF 3", "MRPF 4"] |
3 | Belgium | 2009 | ,Ashraf Sekkaki, plus three other criminals | Bruges\n | Yes\n | ["Ashraf Sekkaki", "Criminal 1", "Criminal 2", "Criminal 3"] |
# finish dropping the redundant column Escapee(s)
h_escapes = h_escapes[!, Not("Escapee(s)")]
first(h_escapes, 5)
5 rows × 5 columns
Country | Year | Prison name | Succeeded | Escapees | |
---|---|---|---|---|---|
String | Int64 | String | String | Array… | |
1 | Mexico | 1971 | Santa Martha Acatitla\n | Yes\n | ["Joel David Kaplan", "Carlos Antonio Contreras Castro"] |
2 | Ireland | 1973 | Mountjoy Jail | Yes\n | ["JB O'Hagan", "Seamus Twomey", "Kevin Mallon"] |
3 | United States | 1978 | United States Penitentiary, Marion | No\n | ["Garrett Brock Trapnell", "Martin Joseph McNally", "James Kenneth Johnson"] |
4 | France | 1981 | Fleury-Mérogis, Essonne, Ile de France\n | Yes\n | ["Gérard Dupré", "Daniel Beaumont"] |
5 | Canada | 1981 | Orsainville Prison, Quebec City\n | No\n | ["Marina Paquet (hijacker)", "Giles Arseneault (prisoner)"] |
Some prison name has an extra newline at the end. We should remove that.
# strip newlines
h_escapes[!, ["Prison name"]] = select(h_escapes, "Prison name" => ByRow(x -> chomp(x)) => "Prison name")
48 rows × 1 columns
Prison name | |
---|---|
SubStrin… | |
1 | Santa Martha Acatitla |
2 | Mountjoy Jail |
3 | United States Penitentiary, Marion |
4 | Fleury-Mérogis, Essonne, Ile de France |
5 | Orsainville Prison, Quebec City |
6 | Pentridge (HM Prison) |
7 | Perry Correctional Institution, Pelzer, South Carolina |
8 | Cândido Mendes penitentiary, Ilha Grande, Rio de Janeiro |
9 | Prison de la Santé |
10 | Federal Correctional Institution, Dublin |
11 | Prigione di Rebibbia, Roma |
12 | Gartree (HM Prison) |
13 | Santa Fe prison |
14 | Federal Holding Facility, Miami, FL |
15 | Arkansas Valley Correctional Facility |
16 | Kent Penitentiary, British Columbia |
17 | Rio Piedras State Penitentiary, Puerto Rico |
18 | Lyon Prison |
19 | Touraine Central Prison, Tours |
20 | Touraine Central Prison, Tours |
21 | High Security Prison, Santiago |
22 | De Geerhorst jail |
23 | Metropolitan Remand and Reception Centre |
24 | Martin Treatment Center for Sexually Violent Predators, Martin County Florida |
25 | Lyon prison |
26 | Luynes prison |
27 | Draguignan prison |
28 | Fresnes prison |
29 | Parada Neto Penitentiary |
30 | Las Cucharas prison, Puerto Rico |
⋮ | ⋮ |
The "Yes" and "No" are a little bit tedious to analyse compared to booleans. Converting them is our next step.
# convert the Succeeded column from a String into a Bool column
h_escapes[!, [:Succeeded]] = select(h_escapes, :Succeeded => ByRow(x -> x == "Yes\n" ? true : false) => :Succeeded)
first(h_escapes[!, [:Succeeded]], 10)
10 rows × 1 columns
Succeeded | |
---|---|
Bool | |
1 | 1 |
2 | 1 |
3 | 0 |
4 | 1 |
5 | 0 |
6 | 0 |
7 | 1 |
8 | 1 |
9 | 1 |
10 | 1 |
The final data will be a dataframe listing helicopter escape attempts worldwide. The columns and their descriptions are as follows:
Column Name | Description | Data Type |
---|---|---|
Country | The name of the country the escape attempt happened | String |
Year | The year the escape attempt happened | Integer |
Prison name | The name of the prison the escapees were trying to escape from | String |
Succeeded | Whether the escapees successfully escaped from the prison | Boolean |
Escapees | The name of all escapees involved in the escape attempt | Array of String |
# find min and max values of the Year column
min_year = minimum(h_escapes[!, :Year])
max_year = maximum(h_escapes[!, :Year])
# create a list of tuples with year as the first value and 0 as the second
attempts_per_year = Tuple{Int64, Int64}[]
for y in range(min_year, max_year)
push!(attempts_per_year, (y,0))
end
first(attempts_per_year, 10)
10-element Vector{Tuple{Int64, Int64}}: (1971, 0) (1972, 0) (1973, 0) (1974, 0) (1975, 0) (1976, 0) (1977, 0) (1978, 0) (1979, 0) (1980, 0)
# we'll map the year with the corresponding number of attempts
for row in eachrow(h_escapes)
attempts_size = size(attempts_per_year)[1]
for idx in range(1, attempts_size)
num_attempts = attempts_per_year[idx][2]
year = attempts_per_year[idx][1]
# the second element in row is the year value
if row[2] == year
incr_attempts = num_attempts + 1
attempts_per_year[idx] = (year, incr_attempts)
end
end
end
first(attempts_per_year, 10)
10-element Vector{Tuple{Int64, Int64}}: (1971, 1) (1972, 0) (1973, 1) (1974, 0) (1975, 0) (1976, 0) (1977, 0) (1978, 1) (1979, 0) (1980, 0)
logocolors = Colors.JULIA_LOGO_COLORS
color_attempts_py = []
for tuple in attempts_per_year
attempts = tuple[2]
if attempts == 3
push!(color_attempts_py, logocolors.red)
elseif attempts == 2
push!(color_attempts_py, logocolors.blue)
else
push!(color_attempts_py, logocolors.green)
end
end
cs1 = ColorScheme(range(colorant"red", colorant"green", length=5))
# plot a horizontal barplot for attempts_per_year
PLT.bar(attempts_per_year,
label = nothing,
yticks = 1970:2020,
xticks = 0:3,
orientation = :horizontal,
size = (800,800),
xlabel = "Number of Attempts",
ylabel = "Year",
fillcolors = color_attempts_py,
linecolor = :transparent,
grid = false,
xlim = (0,3),
title = "Year 1986, 2001, 2007, and 2009 have the highest helicopter escape attempts",
titlefontsize = 11,
)
PLT.plot!([1,2,3], seriestype="vline", c=:black, alpha=0.1, label = nothing, )
To have a greater impact in preventing helicopter escapes, we decided to focus on identifying the three countries with the most helicopter escape attempts. A high number of attempts doesn't necessarily tell us that the country's prison is insecure, because it's possible for a prison to be very secure but the criminals it holds are more daring than those in other countries. But, it could also be a hint that the criminals were able to see a flaw in the security, thus they wanted to take advantage of that.
# create a frequency table for attempts per country
attempts_country_table = freqtable(h_escapes[!, [:Country]], :Country)
# sort by attempts number and descending
attempts_country_table = sort(attempts_country_table, rev=true)
15-element Named Vector{Int64} Country │ ───────────────┼─── France │ 15 United States │ 8 Belgium │ 4 Canada │ 4 Greece │ 4 Australia │ 2 Brazil │ 2 United Kingdom │ 2 Chile │ 1 Ireland │ 1 Italy │ 1 Mexico │ 1 Netherlands │ 1 Puerto Rico │ 1 Russia │ 1
France has the highest helicopter escape attempts at 15. The United State has the second highest number at 7 which is half of France. Belgium, Canada, and Greece are tie for the third highest number at 4 each which is half of the United States and quarter of France.
Knowing that France and USA have many attempts, we can investigate if the attempts happened at the same prison. If some prisons have more attempts than others, we can specifically focus on them instead.
france_escapes = filter( x -> x[:Country] == "France", h_escapes)
# create a frequency table for attempts per country
france_prison_table = freqtable(france_escapes[!, ["Prison name"]], "Prison name")
13-element Named Vector{Int64} Prison name │ ─────────────────────────────────────────┼── "Aiton Prison" │ 1 "Domenjod Prison, Réunion" │ 1 "Draguignan prison" │ 1 "Fleury-Mérogis, Essonne, Ile de France" │ 1 "France" │ 1 "Fresnes prison" │ 1 "Grasse prison" │ 1 "Luynes prison" │ 2 "Lyon Prison" │ 1 "Lyon prison" │ 1 "Prison de la Santé" │ 1 "Réau, near Paris" │ 1 "Touraine Central Prison, Tours" │ 2
Lyon Prison, Luynes Prison, and Touraine Central Prison have 2 attempts each. We should note those prisons because they could be less secure in preventing helicopter escape attempts than the rest.
usa_escapes = filter( x -> x[:Country] == "United States", h_escapes)
# create a frequency table for attempts per country
usa_prison_table = freqtable(usa_escapes[!, ["Prison name"]], "Prison name")
8-element Named Vector{Int64} Prison name │ ────────────────────────────────────────────────────────────────────────────────┼── "Arkansas Valley Correctional Facility" │ 1 "Federal Correctional Institution, Dublin" │ 1 "Federal Holding Facility, Miami, FL" │ 1 "Las Cucharas prison, Puerto Rico" │ 1 "Martin Treatment Center for Sexually Violent Predators, Martin County Florida" │ 1 "Perry Correctional Institution, Pelzer, South Carolina" │ 1 "Santa Fe prison" │ 1 "United States Penitentiary, Marion" │ 1
The USA has an even spread with all prisons only having 1 attempt each.
Even if helicopter escape attempts are undesirable, successful ones will be more so. Prisoners who successfuly escaped introduce significant danger to the public, unlike those who failed who'll still be in prison. The result of this analysis should be given more attention than the previous one.
Similar to the number of attempts, we'll need to calculate the successful attempts per country based on the available data, followed by finding the success chance.
# create a dictionary that maps each country to its frequencies
attempts_country_dict = SB.countmap(h_escapes[!, :Country])
# create a new dataframe based on the attempts per country frequency table
# this is required for country-based analysis
attempts_country_df = DataFrame("Country" => [k for k=keys(attempts_country_dict)],
"Attempts" => [v for v=values(attempts_country_dict)])
15 rows × 2 columns
Country | Attempts | |
---|---|---|
String | Int64 | |
1 | Greece | 4 |
2 | Belgium | 4 |
3 | Canada | 4 |
4 | Chile | 1 |
5 | France | 15 |
6 | Russia | 1 |
7 | United States | 8 |
8 | United Kingdom | 2 |
9 | Mexico | 1 |
10 | Netherlands | 1 |
11 | Brazil | 2 |
12 | Ireland | 1 |
13 | Puerto Rico | 1 |
14 | Italy | 1 |
15 | Australia | 2 |
# A function that creates a dataframe containing the attempts, successful attempts and success chance for a variable/column
# It:
# 1. groups the passed df argument by group_col, apply a function to calculate both the attempts and successful attempts
# 2. creates a success chance column based on successful attempts and attempts
# 3. sorts by success chance and returns the sorted dataframe
function create_attempts_df(df, group_col)
attempts_df = combine(groupby(h_escapes, group_col),
group_col => (y -> size(y, 1)) => :Attempts,
:Succeeded => count => :SuccessfulAttempts)
attempts_df[!, :SuccessChance] = attempts_df.SuccessfulAttempts ./ attempts_df.Attempts .* 100
attempts_df_sorted = sort(attempts_df, :SuccessChance, rev=true)
attempts_df_sorted
end
attempts_country_df = create_attempts_df(h_escapes, :Country)
15 rows × 4 columns
Country | Attempts | SuccessfulAttempts | SuccessChance | |
---|---|---|---|---|
String | Int64 | Int64 | Float64 | |
1 | Mexico | 1 | 1 | 100.0 |
2 | Ireland | 1 | 1 | 100.0 |
3 | Brazil | 2 | 2 | 100.0 |
4 | Italy | 1 | 1 | 100.0 |
5 | Puerto Rico | 1 | 1 | 100.0 |
6 | Chile | 1 | 1 | 100.0 |
7 | Russia | 1 | 1 | 100.0 |
8 | United States | 8 | 6 | 75.0 |
9 | Canada | 4 | 3 | 75.0 |
10 | France | 15 | 11 | 73.3333 |
11 | Australia | 2 | 1 | 50.0 |
12 | United Kingdom | 2 | 1 | 50.0 |
13 | Greece | 4 | 2 | 50.0 |
14 | Belgium | 4 | 2 | 50.0 |
15 | Netherlands | 1 | 0 | 0.0 |
Some of the countries only have a single attempt, and it's unlikely that a single attempt's success chance is representative of the prison's security i.e. will the success chance hold in future attempts?
For the purpose of this project, we'll focus on countries with a more representatitive success chance by only analysing those with at least 3 attempts.
filter(row -> row.Attempts > 2, attempts_country_df)[!, ["Country", "SuccessChance"]]
5 rows × 2 columns
Country | SuccessChance | |
---|---|---|
String | Float64 | |
1 | United States | 75.0 |
2 | Canada | 75.0 |
3 | France | 73.3333 |
4 | Greece | 50.0 |
5 | Belgium | 50.0 |
It turns out that the United States and Canada are tie for the highest helicopter escape success chance at 75%. France is a close second at approximately 73%. This is an important finding especially when we look at the results for France and the United States. Not only do they have high number of attempts, most of those attempts are more likely to succeed than fail. Our priority should be to investigate those two countries further in a different project. We should also consider looking into the other 3 countries especially Canada once we've investigated France and the United States.
Considering the multiple security layers presumably present in most prisons, prison escapes would likely require the expertise of multiple prisoners harnessed together. This is even more so for helicopter escapes which is likely to be more difficult as it is less discrete than other escaping methods. Even so, it's possible that having higher number of escapees could introduce more failure points, since it's more likely to have an accomplice who makes a mistake that jeopardises the whole operation.
With that said, let's see what the data tell us.
# we can use the size of the Escapees array to get the number of escapees per attempt
num_escapees = select(h_escapes, :Escapees => ByRow(array -> typeof(array) == Missing ? array : size(array,1)) => :NumEscapees)
h_escapes.NumEscapees = num_escapees[!, :NumEscapees]
first(h_escapes, 10)
10 rows × 6 columns
Country | Year | Prison name | Succeeded | Escapees | NumEscapees | |
---|---|---|---|---|---|---|
String | Int64 | SubStrin… | Bool | Array… | Int64 | |
1 | Mexico | 1971 | Santa Martha Acatitla | 1 | ["Joel David Kaplan", "Carlos Antonio Contreras Castro"] | 2 |
2 | Ireland | 1973 | Mountjoy Jail | 1 | ["JB O'Hagan", "Seamus Twomey", "Kevin Mallon"] | 3 |
3 | United States | 1978 | United States Penitentiary, Marion | 0 | ["Garrett Brock Trapnell", "Martin Joseph McNally", "James Kenneth Johnson"] | 3 |
4 | France | 1981 | Fleury-Mérogis, Essonne, Ile de France | 1 | ["Gérard Dupré", "Daniel Beaumont"] | 2 |
5 | Canada | 1981 | Orsainville Prison, Quebec City | 0 | ["Marina Paquet (hijacker)", "Giles Arseneault (prisoner)"] | 2 |
6 | Australia | 1983 | Pentridge (HM Prison) | 0 | ["David McMillan"] | 1 |
7 | United States | 1985 | Perry Correctional Institution, Pelzer, South Carolina | 1 | ["James Rodney Leonard", "William Douglas Ballew", "Jesse Glenn Smith"] | 3 |
8 | Brazil | 1985 | Cândido Mendes penitentiary, Ilha Grande, Rio de Janeiro | 1 | ["José Carlos dos Reis Encina"] | 1 |
9 | France | 1986 | Prison de la Santé | 1 | ["Michel Vaujour"] | 1 |
10 | United States | 1986 | Federal Correctional Institution, Dublin | 1 | ["Samantha Lopez"] | 1 |
# we can use similar codes we ran to calculate success chance per country
num_escapees_df = create_attempts_df(h_escapes, :NumEscapees)
num_escapees_df[!, :SuccessChance] = num_escapees_df.SuccessfulAttempts ./ num_escapees_df.Attempts .* 100
PLT.bar(num_escapees_df[:, :NumEscapees],
num_escapees_df[:, :SuccessChance],
label = nothing,
grid = false,
ylim = (0,100),
title = "Escapes with 5 escapees are always successful",
titlefontsize = 12,
xlabel = "Number of Escapees",
ylabel = "Chances of Success(%)",
fillcolors = [logocolors.blue, logocolors.blue, logocolors.blue, logocolors.blue, logocolors.red]
)
PLT.plot!([100], seriestype="hline", c=:black, alpha=0.1, label = nothing, )
The above chart can be misleading, because there is only one attempt with 5 escapees. With only one data point, it could be a fluke and the escapees were just lucky.
# to see the exact success chance
sort(num_escapees_df, :SuccessChance, rev=true)
5 rows × 4 columns
NumEscapees | Attempts | SuccessfulAttempts | SuccessChance | |
---|---|---|---|---|
Int64 | Int64 | Int64 | Float64 | |
1 | 5 | 1 | 1 | 100.0 |
2 | 3 | 13 | 10 | 76.9231 |
3 | 2 | 12 | 9 | 75.0 |
4 | 4 | 3 | 2 | 66.6667 |
5 | 1 | 19 | 12 | 63.1579 |
To get a more accurate view, we'll remove attempts with 5 escapees and keep the rest.
num_escapees_lt5_df = filter(x -> x[:NumEscapees] !=5 ,num_escapees_df)
PLT.bar(num_escapees_lt5_df[:, :NumEscapees],
num_escapees_lt5_df[:, :SuccessChance],
label = nothing,
grid = false,
ylim = (0,100),
title = "Attempts with 2 or 3 escapees are more likely to succeed",
titlefontsize = 12,
xlabel = "Number of Escapees",
ylabel = "Chances of Success(%)",
fillcolors = logocolors.blue
)
# plot improvement from solo
PLT.plot!([1,1], [64, 75.0], c=logocolors.green, alpha=0.5, label = nothing, arrow=true)
PLT.annotate!([1.2], [68.5], PLT.text("~12%", 8, logocolors.green))
# plot regression from 3 escapees
PLT.plot!([4,4], [76.9231, 67.5], c=logocolors.red, alpha=0.5, label = nothing, arrow=true)
PLT.annotate!([4.2], [73], PLT.text("~10%", 8, logocolors.red), )
# to see the exact success chance
sort(num_escapees_lt5_df, :SuccessChance, rev=true)
4 rows × 4 columns
NumEscapees | Attempts | SuccessfulAttempts | SuccessChance | |
---|---|---|---|---|
Int64 | Int64 | Int64 | Float64 | |
1 | 3 | 13 | 10 | 76.9231 |
2 | 2 | 12 | 9 | 75.0 |
3 | 4 | 3 | 2 | 66.6667 |
4 | 1 | 19 | 12 | 63.1579 |
We can see that the number of escapees does positively affect success chance but up to a point. Escapees will more likely to suceed when they don't attempt it alone and just by adding one more escapee can increase success chance by approximately 12%. But once they have three escapees and they add another, the success chance drops by approximately 10% yet it's still more likely to succeed compared to a solo attempt.
Based on the results, we should consider investigating how the escapees are related to each other and how they formulated the plan. We can also try to find ways to stop such relationships from happening or preventing the plan from being executed.
While we're here, we might as well see if particular escapees are also chronic escapees.
escapees_arr = String[]
for escapees in h_escapes[:, :Escapees]
# we'll have to remove the leading whitespace in the inner loop before pushing the value in
for escapee in escapees
push!(escapees_arr, strip(escapee))
end
end
sort(freqtable(escapees_arr), rev=true)
97-element Named Vector{Int64} Dim1 │ ────────────────────────────────┼── Michel Vaujour │ 2 Pascal Payet │ 2 1992_Lyon_1 │ 1 1992_Lyon_2 │ 1 1992_Lyon_3 │ 1 1992_Touraine_1 │ 1 1992_Touraine_2 │ 1 1992_Touraine_3 │ 1 1992_Touraine_4 │ 1 1997_De_Geerhorst_1 │ 1 1997_De_Geerhorst_2 │ 1 ⋮ ⋮ Samantha Lopez │ 1 Seamus Twomey │ 1 Serge Pomerleau │ 1 Steven Whitsett │ 1 Sydney Draper │ 1 Vasilis Paleokostas │ 1 Vassilis Paleokostas │ 1 Victor Diaz │ 1 William Douglas Ballew │ 1 William Lane │ 1 Yves Denis │ 1
Michel Vaujour and Pascal Payet are both from France, and their combined number of attempts account close to 27% of total number of attempts in France. Other than that, we can see nothing particularly interesting since most escapees only escaped once. Though, if we were able to get the exact names of some of the generic escapees e.g. 1992_Lyon_1, the results would probably be different.
Defining love is very difficult; identifying if love is involved in an escape attempts is even more so. Nonetheless, we'll simplify our analysis by assuming love is involved as long as an escapees' lover is complicit in the attempt. This means that the love we're interested in is romantic love and not other forms of love such as familial love. In cases where multiple forms of love is love e.g. husband and wife exhibit both romantic and familial love, we would still classify it as an attempt that involves romantic love instead of having a separate definition for mixed love.
To identify if love is involved, we read the details of the attempt and give it a boolean value of true
for the involvement of love and false
for the reverse.
#= power of love analysis
each row's PowerOfLove value is 1 if it involves any help from a lover (e.g. partner, lover, wife, husband, etc); relationship by blood is not included in the definition
the values are assigned manually; considering the limited amount of data, it is still a feasible operation
9 michel vaujour - wife piloted helicopter
46 greece roupa - mistress organised escape
24 usa whitsett
5 canada marina paquet
10 samantha lopez usa
23 australia john killick
48 kristel a -
=#
powerof❤️ = [false for n=1:48]
# we assign true to the array by using the index number of the attempts we identified that involve love,
for saved in [9, 46, 24, 5, 10, 23, 48]
powerof❤️[saved] = true
end
h_escapes.PowerOf❤️ = powerof❤️
filter(r -> r.PowerOf❤️ == true, h_escapes)
7 rows × 7 columns
Country | Year | Prison name | Succeeded | Escapees | NumEscapees | PowerOf❤️ | |
---|---|---|---|---|---|---|---|
String | Int64 | SubStrin… | Bool | Array… | Int64 | Bool | |
1 | Canada | 1981 | Orsainville Prison, Quebec City | 0 | ["Marina Paquet (hijacker)", "Giles Arseneault (prisoner)"] | 2 | 1 |
2 | France | 1986 | Prison de la Santé | 1 | ["Michel Vaujour"] | 1 | 1 |
3 | United States | 1986 | Federal Correctional Institution, Dublin | 1 | ["Samantha Lopez"] | 1 | 1 |
4 | Australia | 1999 | Metropolitan Remand and Reception Centre | 1 | ["John Killick"] | 1 | 1 |
5 | United States | 2000 | Martin Treatment Center for Sexually Violent Predators, Martin County Florida | 1 | ["Steven Whitsett"] | 1 | 1 |
6 | Greece | 2016 | Thiva | 0 | ["Pola Roupa", "Nikos Maziotis"] | 2 | 1 |
7 | Belgium | 2020 | Forest prison, Brussels | 0 | ["Kristel A. "] | 1 | 1 |
# we reuse methods from the previous attempts and success chance-based analysis
powerof❤️_df = create_attempts_df(h_escapes, :PowerOf❤️)
powerof❤️_df[!, :SuccessChance] = powerof❤️_df.SuccessfulAttempts ./ powerof❤️_df.Attempts .* 100
valentinered = colorant"#D41F3A"
PLT.bar(powerof❤️_df[:, :PowerOf❤️],
powerof❤️_df[:, :SuccessChance],
xticks = ([0.0:1.0;], ["No", "Yes"]),
xlabel ="Power of ❤️?", ylabel="Success Chance (%)",
title ="❤️ might not improve escapees chances of escaping by helicopter",
label = nothing,
fillcolor =["royalblue", valentinered],
grid = false,
titlefontsize = 11,
ylim = (0, 70)
)
# annotate the floating loves
PLT.annotate!([
(1,60, PLT.text("❤️", 15, valentinered, rotation = 0 )),
(0.95,63, PLT.text("❤️", 15, valentinered, rotation = 8 )),
(1.03,65, PLT.text("❤️", 15, valentinered, rotation = -10 )),
])
powerof❤️_df
2 rows × 4 columns
PowerOf❤️ | Attempts | SuccessfulAttempts | SuccessChance | |
---|---|---|---|---|
Bool | Int64 | Int64 | Float64 | |
1 | 0 | 41 | 30 | 73.1707 |
2 | 1 | 7 | 4 | 57.1429 |
Apparently, when love is involved, the success chance is close to 16% lower than the non-love attempts. If this result is to be believed, it indicates that escapees are less likely to succeed if they have a lover involved in their escapes. Possible reasons:
With that said, interestingness aside, further analysis with less crude classification of love is needed if we want to better understand the relationship between love and attempts chances of success. We might also want to investigate if other forms of love, or even love in general, have an impact on the success of helicopter escape attempts.
In this project, we analyzed a list of helicopter escapes to identify possible avenues for preventing more escapes. France and the United States both have high number of attempts and on top of that, a significant amount of them are successful. We should investigate those two countries to get more details on their security measures for preventing helicopter escapes — both past and current.
Next, we looked into number of escapes and discovered that compared to doing it alone, escapees are more likely to succeed if two or three people are involved , but the chances drop with the addition of one more person. This can be valuable information if we're interested in researching the social dynamics of prisoners, and thus, identifying whether we can prevent escape plans from being formulated by multiple escapees.
Lastly, we found that when a lover involved in an escape attempt, escapees are more likely to fail. Though, our classification of love is rather crude, but the result is interesting enough to merit further investigation in a different project.
Thank you for reading.
280922 - v1.0 completed
180922 - Dataquest suggestions
150922 - Initial dataquest requirements