2016-01-20 10:45:15 +00:00
|
|
|
{
|
|
|
|
"metadata": {
|
|
|
|
"name": ""
|
|
|
|
},
|
|
|
|
"nbformat": 3,
|
|
|
|
"nbformat_minor": 0,
|
|
|
|
"worksheets": [
|
|
|
|
{
|
|
|
|
"cells": [
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [
|
|
|
|
"# Import other notebooks\n",
|
|
|
|
"import io\n",
|
|
|
|
"from IPython.nbformat import current\n",
|
|
|
|
"\n",
|
|
|
|
"def execute_notebook(nbfile):\n",
|
|
|
|
" with io.open(nbfile) as f:\n",
|
|
|
|
" nb = current.read(f, 'json')\n",
|
|
|
|
" \n",
|
|
|
|
" ip = get_ipython()\n",
|
|
|
|
" for cell in nb.worksheets[0].cells:\n",
|
|
|
|
" if cell.cell_type != 'code':\n",
|
|
|
|
" continue\n",
|
|
|
|
" ip.run_cell(cell.input)\n",
|
|
|
|
"\n",
|
|
|
|
"execute_notebook(\"country_excludes.ipynb\")\n",
|
|
|
|
"execute_notebook(\"geofence_lib.ipynb\")\n",
|
|
|
|
"execute_notebook(\"header_files.ipynb\")\n",
|
|
|
|
"\n",
|
|
|
|
"import matplotlib"
|
|
|
|
],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 13
|
2016-01-20 10:45:15 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [
|
|
|
|
"import json\n",
|
|
|
|
"json_data = open(\"countries_world.json\").read()\n",
|
|
|
|
"countries = json.loads(json_data)"
|
|
|
|
],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 14
|
2016-01-20 10:45:15 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [
|
2016-02-03 19:15:05 +00:00
|
|
|
"def prepare_simple_grids(grids, tolerance=10*1000): # Approx 10km tolerance\n",
|
2016-01-20 10:45:15 +00:00
|
|
|
" simple = [simplify_points(points, tolerance) for points in grids]\n",
|
|
|
|
" return [s for s in simple if len(s) > 2]"
|
|
|
|
],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 15
|
2016-01-20 10:45:15 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [
|
|
|
|
"c_prefix = []\n",
|
|
|
|
"\n",
|
|
|
|
"for c in countries:\n",
|
|
|
|
" if (c['prefix']):\n",
|
|
|
|
" c_prefix.append(c)"
|
|
|
|
],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
2016-02-02 20:22:57 +00:00
|
|
|
"outputs": [],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 16
|
2016-01-20 10:45:15 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [
|
|
|
|
"print len(c_prefix)"
|
|
|
|
],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"output_type": "stream",
|
|
|
|
"stream": "stdout",
|
|
|
|
"text": [
|
2016-02-05 22:22:48 +00:00
|
|
|
"224\n"
|
2016-01-20 10:45:15 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 17
|
2016-01-20 10:45:15 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [
|
2016-02-06 14:17:19 +00:00
|
|
|
"c_prefix_with_grids = []\n",
|
|
|
|
"\n",
|
|
|
|
"for c in c_prefix: # for each prefix\n",
|
|
|
|
" c_grids = c['simple_grids']\n",
|
|
|
|
" \n",
|
|
|
|
" if len(c_grids) > 0:\n",
|
|
|
|
" # Difference with other zones\n",
|
|
|
|
" other_c_grids = [other_c['simple_grids'] for other_c in c_prefix if other_c['isocode'] != c['isocode']]\n",
|
|
|
|
" other_grids = [item for sublist in other_c_grids for item in sublist]\n",
|
|
|
|
" \n",
|
|
|
|
" pc = pyclipper.Pyclipper()\n",
|
|
|
|
" pc.AddPaths(c_grids, pyclipper.PT_SUBJECT, True)\n",
|
|
|
|
" pc.AddPaths(other_grids, pyclipper.PT_CLIP, True)\n",
|
|
|
|
" \n",
|
|
|
|
" differences = pc.Execute(pyclipper.CT_DIFFERENCE, pyclipper.PFT_EVENODD, pyclipper.PFT_EVENODD)\n",
|
|
|
|
" c_difference_grids = [[(point[0], point[1]) for point in difference] for difference in differences]\n",
|
|
|
|
" \n",
|
|
|
|
" # Fix antiprime\n",
|
2016-08-02 18:43:27 +00:00
|
|
|
" c['prefix_grids'] = prepare_simple_grids(c_difference_grids, tolerance=20*1000) # 20km tolerance\n",
|
2016-02-06 14:17:19 +00:00
|
|
|
" c['prefix_outlines'] = fix_antiprime_outlines(ea_grid_to_lonlat(c['prefix_grids']))\n",
|
|
|
|
" \n",
|
2016-08-02 18:43:27 +00:00
|
|
|
" # Remove everything well below the equator\n",
|
|
|
|
" c['prefix_outlines'] = cut_below_latitude(c['prefix_outlines'], -10)\n",
|
|
|
|
" \n",
|
2016-02-06 14:17:19 +00:00
|
|
|
" c_prefix_with_grids.append(c)\n",
|
|
|
|
" else:\n",
|
|
|
|
" print c['isocode']\n",
|
|
|
|
" \n",
|
|
|
|
"# Filter out those with no simple grids\n",
|
|
|
|
"c_prefix = c_prefix_with_grids"
|
2016-01-20 10:45:15 +00:00
|
|
|
],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"output_type": "stream",
|
|
|
|
"stream": "stdout",
|
|
|
|
"text": [
|
|
|
|
"Swap!\n",
|
|
|
|
"Swap!\n",
|
|
|
|
"Swap!\n",
|
|
|
|
"Swap!\n",
|
|
|
|
"Swap!\n",
|
|
|
|
"Swap!\n",
|
2016-02-06 14:17:19 +00:00
|
|
|
"LS"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"output_type": "stream",
|
|
|
|
"stream": "stdout",
|
|
|
|
"text": [
|
|
|
|
"\n",
|
2016-02-05 22:22:48 +00:00
|
|
|
"Swap!"
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
"output_type": "stream",
|
|
|
|
"stream": "stdout",
|
|
|
|
"text": [
|
|
|
|
"\n",
|
|
|
|
"Swap!\n",
|
|
|
|
"Swap!\n",
|
|
|
|
"Swap!\n",
|
|
|
|
"Swap!\n",
|
|
|
|
"Swap!\n",
|
2016-01-20 10:45:15 +00:00
|
|
|
"Swap!\n",
|
|
|
|
"Swap!\n"
|
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 18
|
2016-01-20 10:45:15 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [
|
|
|
|
"# Filter out zero-length outlines\n",
|
|
|
|
"for c in c_prefix:\n",
|
|
|
|
" filtered_outlines = []\n",
|
|
|
|
" for outline in c['prefix_outlines']:\n",
|
|
|
|
" if (len(outline) > 0):\n",
|
|
|
|
" filtered_outlines.append(outline)\n",
|
|
|
|
" \n",
|
|
|
|
" c['prefix_outlines'] = filtered_outlines"
|
|
|
|
],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 19
|
2016-08-02 18:43:27 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [
|
|
|
|
"# Filter out countries with no outlines now\n",
|
|
|
|
"countries = []\n",
|
|
|
|
"for c in c_prefix:\n",
|
|
|
|
" if (len(c['prefix_outlines']) > 0):\n",
|
|
|
|
" countries.append(c)\n",
|
|
|
|
" \n",
|
|
|
|
"c_prefix = countries"
|
|
|
|
],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 20
|
2016-01-20 10:45:15 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [
|
|
|
|
"n_outlines = 0\n",
|
|
|
|
"n_points = 0\n",
|
|
|
|
"\n",
|
|
|
|
"for c in c_prefix:\n",
|
|
|
|
" n_outlines = n_outlines + len(c['prefix_outlines'])\n",
|
|
|
|
" \n",
|
|
|
|
" for outline in c['prefix_outlines']:\n",
|
|
|
|
" n_points = n_points + len(outline)\n",
|
|
|
|
" \n",
|
|
|
|
"print \"Total number of points {}\".format(n_points)\n",
|
|
|
|
"print \"Across {} outlines\".format(n_outlines)"
|
|
|
|
],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"output_type": "stream",
|
|
|
|
"stream": "stdout",
|
|
|
|
"text": [
|
2016-08-02 18:43:27 +00:00
|
|
|
"Total number of points 6433\n",
|
|
|
|
"Across 399 outlines\n"
|
2016-01-20 10:45:15 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 21
|
2016-08-02 17:18:30 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [
|
|
|
|
"# Draw map\n",
|
|
|
|
"m = Basemap(projection='mill')\n",
|
|
|
|
"#m = Basemap(projection='mill')\n",
|
|
|
|
" \n",
|
|
|
|
"m.fillcontinents(color='0.96')\n",
|
|
|
|
"m.drawcoastlines()\n",
|
|
|
|
"\n",
|
|
|
|
"for c in c_prefix:\n",
|
|
|
|
" draw_outlines(m, c['prefix_outlines'], '#'+c['colour'][2:])"
|
|
|
|
],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data",
|
2016-08-02 18:43:27 +00:00
|
|
|
"png": "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\n5bXdJjIyEnd39+Z+iepVUWXm
|
2016-08-02 17:18:30 +00:00
|
|
|
"text": [
|
2016-08-07 09:25:08 +00:00
|
|
|
"<matplotlib.figure.Figure at 0x7f0d089d2550>"
|
2016-08-02 17:18:30 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 22
|
2016-01-20 10:45:15 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [
|
|
|
|
"# Draw map\n",
|
2016-02-06 14:17:19 +00:00
|
|
|
"ll_lon=-100\n",
|
|
|
|
"ur_lon=-60\n",
|
|
|
|
"ll_lat=10\n",
|
|
|
|
"ur_lat=32\n",
|
|
|
|
"\n",
|
|
|
|
"# Draw map\n",
|
|
|
|
"m = Basemap(projection='mill',\n",
|
|
|
|
" lat_0=(ll_lat+ur_lat)/2, lon_0=0,\n",
|
|
|
|
" resolution = 'i', area_thresh = 20.0,\n",
|
|
|
|
" llcrnrlon=ll_lon, llcrnrlat=ll_lat,\n",
|
|
|
|
" urcrnrlon=ur_lon, urcrnrlat=ur_lat)\n",
|
|
|
|
"#m = Basemap(projection='mill')\n",
|
2016-01-20 10:45:15 +00:00
|
|
|
" \n",
|
|
|
|
"m.fillcontinents(color='0.96')\n",
|
|
|
|
"m.drawcoastlines()\n",
|
|
|
|
"\n",
|
|
|
|
"for c in c_prefix:\n",
|
2016-02-06 14:17:19 +00:00
|
|
|
" draw_outlines(m, c['prefix_outlines'])#, '#'+c['colour'][2:])"
|
2016-01-20 10:45:15 +00:00
|
|
|
],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [
|
|
|
|
{
|
|
|
|
"metadata": {},
|
|
|
|
"output_type": "display_data",
|
2016-08-02 18:43:27 +00:00
|
|
|
"png": "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\n0dXVpXHjxowfPx6A+Ph4ihYt
|
2016-01-20 10:45:15 +00:00
|
|
|
"text": [
|
2016-08-07 09:25:08 +00:00
|
|
|
"<matplotlib.figure.Figure at 0x7f0d089d2450>"
|
2016-01-20 10:45:15 +00:00
|
|
|
]
|
|
|
|
}
|
|
|
|
],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 23
|
2016-01-20 10:45:15 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [
|
2016-02-02 20:22:57 +00:00
|
|
|
"write_prefixes(c_prefix)"
|
2016-01-20 10:45:15 +00:00
|
|
|
],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
|
|
|
"outputs": [],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 24
|
2016-01-20 10:45:15 +00:00
|
|
|
},
|
|
|
|
{
|
|
|
|
"cell_type": "code",
|
|
|
|
"collapsed": false,
|
|
|
|
"input": [],
|
|
|
|
"language": "python",
|
|
|
|
"metadata": {},
|
2016-02-02 20:22:57 +00:00
|
|
|
"outputs": [],
|
2016-08-07 09:25:08 +00:00
|
|
|
"prompt_number": 24
|
2016-01-20 10:45:15 +00:00
|
|
|
}
|
|
|
|
],
|
|
|
|
"metadata": {}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|