{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/Users/sth/dev/lonlat_bng/venv/lib/python2.7/site-packages/matplotlib/__init__.py:872: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n",
" warnings.warn(self.msg_depr % (key, alt_key))\n",
"/Users/sth/dev/lonlat_bng/venv/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n",
" warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n"
]
}
],
"source": [
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from mpl_toolkits.basemap import Basemap\n",
"import pyproj\n",
"from convertbng.cutil import convert_bng, convert_etrs89_to_osgb36, convert_etrs89_to_ll, convert_osgb36_to_ll\n",
"from matplotlib.collections import PatchCollection\n",
"from mpl_toolkits.basemap import Basemap\n",
"from shapely.geometry import Point, MultiPoint, MultiPolygon\n",
"from descartes import PolygonPatch\n",
"\n",
"from shapely.geometry import Polygon, MultiPolygon, box\n",
"from matplotlib.collections import PatchCollection\n",
"\n",
"from scipy.spatial import Voronoi, voronoi_plot_2d\n",
"\n",
"%matplotlib inline"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def voronoi_finite_polygons_2d(vor, radius=None):\n",
" \"\"\"\n",
" Reconstruct infinite voronoi regions in a 2D diagram to finite\n",
" regions.\n",
"\n",
" Parameters\n",
" ----------\n",
" vor : Voronoi\n",
" Input diagram\n",
" radius : float, optional\n",
" Distance to 'points at infinity'.\n",
"\n",
" Returns\n",
" -------\n",
" regions : list of tuples\n",
" Indices of vertices in each revised Voronoi regions.\n",
" vertices : list of tuples\n",
" Coordinates for revised Voronoi vertices. Same as coordinates\n",
" of input vertices, with 'points at infinity' appended to the\n",
" end.\n",
" from http://stackoverflow.com/a/20678647/416626\n",
" \"\"\"\n",
"\n",
" if vor.points.shape[1] != 2:\n",
" raise ValueError(\"Requires 2D input\")\n",
"\n",
" new_regions = []\n",
" new_vertices = vor.vertices.tolist()\n",
"\n",
" center = vor.points.mean(axis=0)\n",
" if radius is None:\n",
" radius = vor.points.ptp().max()\n",
"\n",
" # Construct a map containing all ridges for a given point\n",
" all_ridges = {}\n",
" for (p1, p2), (v1, v2) in zip(vor.ridge_points, vor.ridge_vertices):\n",
" all_ridges.setdefault(p1, []).append((p2, v1, v2))\n",
" all_ridges.setdefault(p2, []).append((p1, v1, v2))\n",
"\n",
" # Reconstruct infinite regions\n",
" for p1, region in enumerate(vor.point_region):\n",
" vertices = vor.regions[region]\n",
"\n",
" if all(v >= 0 for v in vertices):\n",
" # finite region\n",
" new_regions.append(vertices)\n",
" continue\n",
"\n",
" # reconstruct a non-finite region\n",
" ridges = all_ridges[p1]\n",
" new_region = [v for v in vertices if v >= 0]\n",
"\n",
" for p2, v1, v2 in ridges:\n",
" if v2 < 0:\n",
" v1, v2 = v2, v1\n",
" if v1 >= 0:\n",
" # finite ridge: already in the region\n",
" continue\n",
"\n",
" # Compute the missing endpoint of an infinite ridge\n",
" t = vor.points[p2] - vor.points[p1] # tangent\n",
" t /= np.linalg.norm(t)\n",
" n = np.array([-t[1], t[0]]) # normal\n",
"\n",
" midpoint = vor.points[[p1, p2]].mean(axis=0)\n",
" direction = np.sign(np.dot(midpoint - center, n)) * n\n",
" far_point = vor.vertices[v2] + direction * radius\n",
"\n",
" new_region.append(len(new_vertices))\n",
" new_vertices.append(far_point.tolist())\n",
"\n",
" # sort region counterclockwise\n",
" vs = np.asarray([new_vertices[v] for v in new_region])\n",
" c = vs.mean(axis=0)\n",
" angles = np.arctan2(vs[:,1] - c[1], vs[:,0] - c[0])\n",
" new_region = np.array(new_region)[np.argsort(angles)]\n",
"\n",
" # finish\n",
" new_regions.append(new_region.tolist())\n",
"\n",
" return new_regions, np.asarray(new_vertices)\n",
"\n",
"\n",
"def plot_voronoi(lon, lat, ax, **kwargs):\n",
" \"\"\" \n",
" More flexible Voronoi plotting\n",
" kwargs are passed to ax.plot()\n",
" returns computed voronoi object\n",
" This is a bit of a black box tbh\n",
" adapted from http://nbviewer.ipython.org/gist/wiso/6755034\n",
" \"\"\"\n",
" vor = Voronoi(data[['projected_lon', 'projected_lat']])\n",
" xy = np.dstack((lon, lat))[0]\n",
" \n",
" for simplex in vor.ridge_vertices:\n",
" simplex = np.asarray(simplex)\n",
" if np.all(simplex >= 0):\n",
" ax.plot(vor.vertices[simplex, 0], vor.vertices[simplex, 1], **kwargs)\n",
" center = xy.mean(axis=0)\n",
" for pointidx, simplex in zip(vor.ridge_points, vor.ridge_vertices):\n",
" simplex = np.asarray(simplex)\n",
" if np.any(simplex < 0):\n",
" i = simplex[simplex >= 0][0]\n",
" t = xy[pointidx[1]] - xy[pointidx[0]]\n",
" t /= np.linalg.norm(t)\n",
" n = np.array([-t[1], t[0]])\n",
" midpoint = xy[pointidx].mean(axis=0)\n",
" far_point = vor.vertices[i] + \\\n",
" np.sign(np.dot(midpoint - center, n)) * n * 10000000\n",
" vor.complete_regions, vor.complete_vertices = voronoi_finite_polygons_2d(vor)\n",
" # this plots the far points - maybe consider a dashed line\n",
" ax.plot(\n",
" [vor.vertices[i, 0], far_point[0]],\n",
" [vor.vertices[i, 1], far_point[1]],\n",
" **kwargs)\n",
" return vor"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"from matplotlib import rc\n",
"rc('font', **{'family':'sans-serif',\n",
" 'sans-serif':['Helvetica'],\n",
" 'monospace': ['Inconsolata'],\n",
" 'serif': ['Helvetica']})\n",
"rc('text', **{'usetex': True})\n",
"rc('text', **{'latex.preamble': '\\usepackage{sfmath}'})"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Ordnance Survey test values, ETRS89 x, y\n",
"etrs89_e = [331439.16, 362174.408, 151874.984, 339824.598, 241030.731, 599345.196,\n",
" 357359.683, 389448.042, 319092.329, 525643.491, 397061.069, 256247.486,\n",
" 266961.481, 244687.517, 227685.882, 562079.805, 422143.679, 170277.189,\n",
" 530526.413, 247865.448, 247865.718, 167542.805, 292090.289, 424539.719,\n",
" 639720.224, 474237.874, 453904.269, 438614.045, 250265.789, 449719.403,\n",
" 440623.592, 299624.627, 91400.000, 9500.003, 71622.45, 180766.824, 261500.000,\n",
" 395898.578, 421200.000, 330300.000, 337800.000, 334100.000]\n",
"etrs89_n = [431992.943, 170056.5,\n",
" 966535.331,\n",
" 556102.504,\n",
" 220409.858,\n",
" 225801.485,\n",
" 383364.152,\n",
" 261989.271,\n",
" 671010.63,\n",
" 470775.61,\n",
" 805408.146,\n",
" 664760.292,\n",
" 846233.646,\n",
" 495324.611,\n",
" 468918.331,\n",
" 319862.042,\n",
" 433891.207,\n",
" 11652.895,\n",
" 178467.043,\n",
" 393566.264,\n",
" 393568.938,\n",
" 797124.153,\n",
" 168081.281,\n",
" 565080.533,\n",
" 169645.824,\n",
" 262125.333,\n",
" 340910.743,\n",
" 114871.192,\n",
" 62095.883,\n",
" 75415.594,\n",
" 1107930.781,\n",
" 967256.596,\n",
" 11400.000,\n",
" 899499.996,\n",
" 938567.303,\n",
" 1029654.639,\n",
" 1025500.000,\n",
" 1138780.346,\n",
" 1072200.000,\n",
" 1017400.000,\n",
" 981800.000,\n",
" 982100.000]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# Ordnance Survey test values, ETRS89 lon, lat\n",
"etrs89_lon = [\n",
" -3.0404549,\n",
" -2.54407618,\n",
" -6.26091467,\n",
" -2.93827742,\n",
" -4.30852477,\n",
" 0.89724327,\n",
" -2.64049321,\n",
" -2.15458614,\n",
" -3.2947922,\n",
" -0.07773132,\n",
" -2.04856032,\n",
" -4.29649018,\n",
" -4.21926404,\n",
" -4.38849118,\n",
" -4.63452169,\n",
" 0.40153548,\n",
" -1.66379168,\n",
" -5.20304611,\n",
" -0.11992556,\n",
" -4.28918069,\n",
" -4.28917792,\n",
" -5.82836702,\n",
" -3.55128349,\n",
" -1.61657684,\n",
" 1.44454731,\n",
" -0.91248957,\n",
" -1.19747657,\n",
" -1.45051434,\n",
" -4.10864564,\n",
" -1.29782277,\n",
" -1.2748691,\n",
" -3.72631026,\n",
" -6.29977753,\n",
" -8.57854474,\n",
" -7.59255577,\n",
" -5.8279935,\n",
" -4.41757681,\n",
" -2.07382823,\n",
" -1.62516965,\n",
" -3.21454004,\n",
" -3.07392607,\n",
" -3.13788291\n",
"]\n",
"\n",
"etrs89_lat = [\n",
" 53.77911025,\n",
" 51.42754743,\n",
" 58.51560462,\n",
" 54.89542346,\n",
" 51.85890897,\n",
" 51.89436637,\n",
" 53.34480281,\n",
" 52.25529381,\n",
" 55.92478316,\n",
" 54.11685144,\n",
" 57.13902611,\n",
" 55.85400002,\n",
" 57.48625099,\n",
" 54.32919541,\n",
" 54.08666318,\n",
" 52.75136687,\n",
" 53.8002152,\n",
" 49.96006138,\n",
" 51.48936564,\n",
" 53.41628516,\n",
" 53.41630925,\n",
" 57.00606785,\n",
" 51.4007822,\n",
" 54.97912283,\n",
" 51.37447026,\n",
" 52.25160951,\n",
" 52.9621911,\n",
" 50.93127938,\n",
" 50.43885825,\n",
" 50.57563665,\n",
" 59.85409974,\n",
" 58.58120563,\n",
" 49.92226394,\n",
" 57.81351942,\n",
" 58.2126235,\n",
" 59.09671707,\n",
" 59.09335126,\n",
" 60.13308136,\n",
" 59.5347087,\n",
" 59.03743964,\n",
" 58.71893818,\n",
" 58.72108386\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# ordnance survey result values, OSGB36 x, y\n",
"\n",
"osgb36_test_e = [331534.552, 362269.979, 151968.641, 339921.133, 241124.573, 599445.578,\n",
" 357455.831, 389544.178, 319188.423, 525745.658, 397160.479, 256340.914,\n",
" 267056.756, 244780.625, 227778.318, 562180.535, 422242.174, 170370.706,\n",
" 530624.963, 247958.959, 247959.229, 167634.19, 292184.858, 424639.343,\n",
" 639821.823, 474335.957, 454002.822, 438710.908, 250359.798, 449816.359,\n",
" 440725.061, 299721.879, 91492.135, 9587.897, 71713.12, 180862.449, 261596.767,\n",
" 395999.656, 421300.513, 330398.311, 337898.195, 334198.101]\n",
"\n",
"osgb36_test_n = [431920.792,\n",
" 169978.688,\n",
" 966483.777,\n",
" 556034.759,\n",
" 220332.638,\n",
" 225722.824,\n",
" 383290.434,\n",
" 261912.151,\n",
" 670947.532,\n",
" 470703.211,\n",
" 805349.734,\n",
" 664697.266,\n",
" 846176.969,\n",
" 495254.884,\n",
" 468847.386,\n",
" 319784.993,\n",
" 433818.699,\n",
" 11572.404,\n",
" 178388.461,\n",
" 393492.906,\n",
" 393495.58,\n",
" 797067.142,\n",
" 168003.462,\n",
" 565012.7,\n",
" 169565.856,\n",
" 262047.752,\n",
" 340834.941,\n",
" 114792.248,\n",
" 62016.567,\n",
" 75335.859,\n",
" 1107878.445,\n",
" 967202.99,\n",
" 11318.801,\n",
" 899448.993,\n",
" 938516.401,\n",
" 1029604.111,\n",
" 1025447.599,\n",
" 1138728.948,\n",
" 1072147.236,\n",
" 1017347.013,\n",
" 981746.359,\n",
" 982046.419]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# define some CRS\n",
"etrs89 = pyproj.Proj(init='epsg:4258')\n",
"wgs84 = pyproj.Proj(init='epsg:4326')\n",
"osgb36 = pyproj.Proj(init='epsg:27700')\n",
"# include grid shifts\n",
"osgb36_ostn02 = pyproj.Proj(\"+init=EPSG:27700 +nadgrids=OSTN02_NTv2.gsb\")"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# convert to BNG (OSGB36) using pyproj and convertbng\n",
"\n",
"# from etrs89 x, y to osgb36 e, n\n",
"convertbng_res_e, convertbng_res_n = convert_etrs89_to_osgb36(etrs89_e, etrs89_n)\n",
"\n",
"# from osgb36 e, n to WGS84 lon, lat \n",
"convertbng_res_lon, convertbng_res_lat = convert_osgb36_to_ll(convertbng_res_e, convertbng_res_n)\n",
"\n",
"pyproj_res_e, pyproj_res_n = pyproj.transform(etrs89, osgb36, etrs89_lon, etrs89_lat)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"df_plot = pd.DataFrame({\n",
" 'lons': convertbng_res_lon,\n",
" 'lats': convertbng_res_lat\n",
" })"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
\n",
" \n",
" \n",
" | \n",
" lats | \n",
" lons | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 53.779110 | \n",
" -3.040455 | \n",
"
\n",
" \n",
" 1 | \n",
" 51.427547 | \n",
" -2.544076 | \n",
"
\n",
" \n",
" 2 | \n",
" 58.515605 | \n",
" -6.260915 | \n",
"
\n",
" \n",
" 3 | \n",
" 54.895423 | \n",
" -2.938277 | \n",
"
\n",
" \n",
" 4 | \n",
" 51.858909 | \n",
" -4.308525 | \n",
"
\n",
" \n",
" 5 | \n",
" 51.894366 | \n",
" 0.897243 | \n",
"
\n",
" \n",
" 6 | \n",
" 53.344803 | \n",
" -2.640493 | \n",
"
\n",
" \n",
" 7 | \n",
" 52.255294 | \n",
" -2.154586 | \n",
"
\n",
" \n",
" 8 | \n",
" 55.924783 | \n",
" -3.294792 | \n",
"
\n",
" \n",
" 9 | \n",
" 54.116851 | \n",
" -0.077731 | \n",
"
\n",
" \n",
" 10 | \n",
" 57.139026 | \n",
" -2.048560 | \n",
"
\n",
" \n",
" 11 | \n",
" 55.854000 | \n",
" -4.296490 | \n",
"
\n",
" \n",
" 12 | \n",
" 57.486251 | \n",
" -4.219264 | \n",
"
\n",
" \n",
" 13 | \n",
" 54.329195 | \n",
" -4.388491 | \n",
"
\n",
" \n",
" 14 | \n",
" 54.086663 | \n",
" -4.634522 | \n",
"
\n",
" \n",
" 15 | \n",
" 52.751367 | \n",
" 0.401535 | \n",
"
\n",
" \n",
" 16 | \n",
" 53.800215 | \n",
" -1.663792 | \n",
"
\n",
" \n",
" 17 | \n",
" 49.960061 | \n",
" -5.203046 | \n",
"
\n",
" \n",
" 18 | \n",
" 51.489366 | \n",
" -0.119926 | \n",
"
\n",
" \n",
" 19 | \n",
" 53.416285 | \n",
" -4.289181 | \n",
"
\n",
" \n",
" 20 | \n",
" 53.416309 | \n",
" -4.289178 | \n",
"
\n",
" \n",
" 21 | \n",
" 57.006068 | \n",
" -5.828367 | \n",
"
\n",
" \n",
" 22 | \n",
" 51.400782 | \n",
" -3.551283 | \n",
"
\n",
" \n",
" 23 | \n",
" 54.979123 | \n",
" -1.616577 | \n",
"
\n",
" \n",
" 24 | \n",
" 51.374470 | \n",
" 1.444547 | \n",
"
\n",
" \n",
" 25 | \n",
" 52.251610 | \n",
" -0.912490 | \n",
"
\n",
" \n",
" 26 | \n",
" 52.962191 | \n",
" -1.197477 | \n",
"
\n",
" \n",
" 27 | \n",
" 50.931279 | \n",
" -1.450514 | \n",
"
\n",
" \n",
" 28 | \n",
" 50.438858 | \n",
" -4.108646 | \n",
"
\n",
" \n",
" 29 | \n",
" 50.575637 | \n",
" -1.297823 | \n",
"
\n",
" \n",
" 30 | \n",
" 59.854100 | \n",
" -1.274869 | \n",
"
\n",
" \n",
" 31 | \n",
" 58.581206 | \n",
" -3.726310 | \n",
"
\n",
" \n",
" 32 | \n",
" 49.922264 | \n",
" -6.299778 | \n",
"
\n",
" \n",
" 33 | \n",
" 57.813519 | \n",
" -8.578545 | \n",
"
\n",
" \n",
" 34 | \n",
" 58.212623 | \n",
" -7.592556 | \n",
"
\n",
" \n",
" 35 | \n",
" 59.096717 | \n",
" -5.827993 | \n",
"
\n",
" \n",
" 36 | \n",
" 59.093351 | \n",
" -4.417577 | \n",
"
\n",
" \n",
" 37 | \n",
" 60.133081 | \n",
" -2.073828 | \n",
"
\n",
" \n",
" 38 | \n",
" 59.534709 | \n",
" -1.625170 | \n",
"
\n",
" \n",
" 39 | \n",
" 59.037440 | \n",
" -3.214540 | \n",
"
\n",
" \n",
" 40 | \n",
" 58.718938 | \n",
" -3.073926 | \n",
"
\n",
" \n",
" 41 | \n",
" 58.721084 | \n",
" -3.137883 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" lats lons\n",
"0 53.779110 -3.040455\n",
"1 51.427547 -2.544076\n",
"2 58.515605 -6.260915\n",
"3 54.895423 -2.938277\n",
"4 51.858909 -4.308525\n",
"5 51.894366 0.897243\n",
"6 53.344803 -2.640493\n",
"7 52.255294 -2.154586\n",
"8 55.924783 -3.294792\n",
"9 54.116851 -0.077731\n",
"10 57.139026 -2.048560\n",
"11 55.854000 -4.296490\n",
"12 57.486251 -4.219264\n",
"13 54.329195 -4.388491\n",
"14 54.086663 -4.634522\n",
"15 52.751367 0.401535\n",
"16 53.800215 -1.663792\n",
"17 49.960061 -5.203046\n",
"18 51.489366 -0.119926\n",
"19 53.416285 -4.289181\n",
"20 53.416309 -4.289178\n",
"21 57.006068 -5.828367\n",
"22 51.400782 -3.551283\n",
"23 54.979123 -1.616577\n",
"24 51.374470 1.444547\n",
"25 52.251610 -0.912490\n",
"26 52.962191 -1.197477\n",
"27 50.931279 -1.450514\n",
"28 50.438858 -4.108646\n",
"29 50.575637 -1.297823\n",
"30 59.854100 -1.274869\n",
"31 58.581206 -3.726310\n",
"32 49.922264 -6.299778\n",
"33 57.813519 -8.578545\n",
"34 58.212623 -7.592556\n",
"35 59.096717 -5.827993\n",
"36 59.093351 -4.417577\n",
"37 60.133081 -2.073828\n",
"38 59.534709 -1.625170\n",
"39 59.037440 -3.214540\n",
"40 58.718938 -3.073926\n",
"41 58.721084 -3.137883"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df_plot"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# instantiate a map\n",
"from itertools import chain\n",
"\n",
"bds = [-6.108398, 49.61071, 1.669922, 58.972667]\n",
"extra = 0.01\n",
"ll = (bds[0], bds[1])\n",
"ur = (bds[2], bds[3])\n",
"coords = list(chain(ll, ur))\n",
"w, h = coords[2] - coords[0], coords[3] - coords[1]\n",
"\n",
"minx, miny, maxx, maxy = bds\n",
"w, h = maxx - minx, maxy - miny"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"# add a basemap and a small additional extent\n",
"m = Basemap(\n",
" projection='merc',\n",
" ellps = 'WGS84',\n",
" llcrnrlon=minx - 0.2 * w,\n",
" llcrnrlat=miny - 0.2 * h,\n",
" urcrnrlon=maxx + 0.2 * w,\n",
" urcrnrlat=maxy + 0.2 * h,\n",
" lat_ts=0,\n",
" resolution='h')"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"df_plot['projected_lon'], df_plot['projected_lat'] = m(*(df_plot[\"lons\"].values, df_plot[\"lats\"].values))"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# create a new matplotlib figure and axes instance\n",
"fig = plt.figure(figsize=(1, 2))\n",
"ax = fig.add_subplot(111, axisbg='none')\n",
"\n",
"# m.drawcoastlines(linewidth=0.3)\n",
"m.drawmapboundary()\n",
"\n",
"\n",
"\n",
"# generate voronoi decomposition\n",
"vor = Voronoi(df_plot[['projected_lon', 'projected_lat']])\n",
"# get finite cells\n",
"vor.complete_regions, vor.complete_vertices = voronoi_finite_polygons_2d(vor)\n",
"# create square polygon of map extent\n",
"clip = box(*(chain(m(bds[0], bds[1]), m(bds[2], bds[3]))))\n",
"# clip Voronoi cells to map extent by intersecting with box\n",
"clipped = [clip.intersection(poly) for poly in\n",
" (Polygon(pol) for pol in (vor.complete_vertices[region] for region in vor.complete_regions))]\n",
"\n",
"\n",
"patches = [PolygonPatch(pol) for pol in clipped if type(pol) == Polygon]\n",
"# we can specify a normalize instance (area?) and a colour map here\n",
"pc = PatchCollection(patches, match_original=False, alpha=0.75, color='#000000', lw=.2, zorder=5)\n",
"pc.set_facecolor('#ffffff')\n",
"# uncomment to add the filled voronoi tesselation\n",
"ax.add_collection(pc)\n",
"\n",
"\n",
"# set axes limits to basemap's coordinate reference system \n",
"min_x, min_y = m(minx, miny)\n",
"max_x, max_y = m(maxx, maxy)\n",
"corr_w, corr_h = max_x - min_x, max_y - min_y\n",
"ax.set_xlim(min_x - 0.2 * corr_w, max_x + 0.2 * corr_w)\n",
"ax.set_ylim(min_y - 0.2 * corr_h, max_y + 0.2 * corr_h)\n",
"# square up axes and basemap\n",
"ax.set_aspect(1)\n",
"# buffer units are translated to metres by Basemap\n",
"patches = [PolygonPatch(Point(m(lon, lat)).buffer(5000),\n",
" fc='#cc00cc', ec='#555555', alpha=0.75, zorder=4)\n",
" for lon, lat in zip(df_plot.lons, df_plot.lats)]\n",
"\n",
"ax.add_collection(PatchCollection(patches, match_original=True))\n",
"ax.axis('off')\n",
"plt.savefig('points.png', dpi=150, alpha=True, transparent=True)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"shapely.geometry.polygon.Polygon"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"type(clipped[0])"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" OS_e | \n",
" OS_n | \n",
" convertbng_e | \n",
" convertbng_n | \n",
" pyproj_e | \n",
" pyproj_n | \n",
" convertbng_e_diff | \n",
" convertbng_n_diff | \n",
" pyproj_e_diff | \n",
" pyproj_n_diff | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 331534.552 | \n",
" 431920.792 | \n",
" 331534.552 | \n",
" 431920.791 | \n",
" 331534.550305 | \n",
" 431920.790149 | \n",
" 5.820766e-11 | \n",
" 0.001 | \n",
" 0.001695 | \n",
" 0.001851 | \n",
"
\n",
" \n",
" 1 | \n",
" 362269.979 | \n",
" 169978.688 | \n",
" 362269.979 | \n",
" 169978.688 | \n",
" 362269.980162 | \n",
" 169978.683970 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" -0.001162 | \n",
" 0.004030 | \n",
"
\n",
" \n",
" 2 | \n",
" 151968.641 | \n",
" 966483.777 | \n",
" 151968.641 | \n",
" 966483.889 | \n",
" 151968.642709 | \n",
" 966483.888993 | \n",
" 0.000000e+00 | \n",
" -0.112 | \n",
" -0.001709 | \n",
" -0.111993 | \n",
"
\n",
" \n",
" 3 | \n",
" 339921.133 | \n",
" 556034.759 | \n",
" 339921.132 | \n",
" 556034.765 | \n",
" 339921.132563 | \n",
" 556034.764894 | \n",
" 1.000000e-03 | \n",
" -0.006 | \n",
" 0.000437 | \n",
" -0.005894 | \n",
"
\n",
" \n",
" 4 | \n",
" 241124.573 | \n",
" 220332.638 | \n",
" 241124.573 | \n",
" 220332.638 | \n",
" 241124.572998 | \n",
" 220332.636264 | \n",
" 0.000000e+00 | \n",
" 0.000 | \n",
" 0.000002 | \n",
" 0.001736 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" OS_e OS_n convertbng_e convertbng_n pyproj_e \\\n",
"0 331534.552 431920.792 331534.552 431920.791 331534.550305 \n",
"1 362269.979 169978.688 362269.979 169978.688 362269.980162 \n",
"2 151968.641 966483.777 151968.641 966483.889 151968.642709 \n",
"3 339921.133 556034.759 339921.132 556034.765 339921.132563 \n",
"4 241124.573 220332.638 241124.573 220332.638 241124.572998 \n",
"\n",
" pyproj_n convertbng_e_diff convertbng_n_diff pyproj_e_diff \\\n",
"0 431920.790149 5.820766e-11 0.001 0.001695 \n",
"1 169978.683970 0.000000e+00 0.000 -0.001162 \n",
"2 966483.888993 0.000000e+00 -0.112 -0.001709 \n",
"3 556034.764894 1.000000e-03 -0.006 0.000437 \n",
"4 220332.636264 0.000000e+00 0.000 0.000002 \n",
"\n",
" pyproj_n_diff \n",
"0 0.001851 \n",
"1 0.004030 \n",
"2 -0.111993 \n",
"3 -0.005894 \n",
"4 0.001736 "
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = pd.DataFrame(\n",
" {\n",
" \"OS_e\": osgb36_test_e,\n",
" \"OS_n\": osgb36_test_n,\n",
" \"convertbng_e\": convertbng_res_e,\n",
" \"convertbng_n\": convertbng_res_n,\n",
" \"pyproj_e\": pyproj_res_e,\n",
" \"pyproj_n\": pyproj_res_n\n",
" })\n",
"\n",
"\n",
"# calculate differences\n",
"df['convertbng_e_diff'] = df.OS_e - df.convertbng_e\n",
"df['convertbng_n_diff'] = df.OS_n - df.convertbng_n\n",
"\n",
"df['pyproj_e_diff'] = df.OS_e - df.pyproj_e\n",
"df['pyproj_n_diff'] = df.OS_n - df.pyproj_n\n",
"\n",
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": 96,
"metadata": {
"collapsed": false,
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjgAAALICAYAAABy54rvAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X1cVNedP/DPBYengCLWBEURgbUaYyNwXTXuptYxJptf\n6WoWbzVNtmtbtbXWbbYxmq64v1USRf292lBNg2lqd5N0zY2J22CTXSM227SN1FFs1ega0NEKPlCV\nCIKTCdzfH/eOGQmDA8ydh3M+79eLV5g7T+czl8iXc849RzEMA0REREQiiYt0A4iIiIhCjQUOERER\nCYcFDhEREQmHBQ4REREJhwUOERERCYcFDhEREQmHBQ5RGCmKUqAoSqeiKB9Eui3RQlGUmYqiXFYU\n5ZVu7tttfV7dfXUoivJ4NLQzUhRFWagoykTr+0HW55IT2VYRRYcBkW4AkWS+CcAAkKsoSo5hGO4I\ntycaPAFgN4CF3dy3CEC69f19ANYDKASgWMdO2t66T/TUzkhZDPPn6ZBhGB8qilIJ4HKE20QUFdiD\nQxRecwFssL4viWRDokgGAJdhGC1d7zAMw20YxiHDMA4BOGgd+4PvmGEYV6OhndHCMIxvhfkzIYpa\nLHCIwkRRlEIAgwC8AuA1mH99d33MIEVR3raGQj5QFGVhgPvqfPf5DU0M9Hvs3ymKUud3u9MaHnMp\nivJjRVFG+73WZWsoaGAQ77VeUZTdXdr8qqIoP+4h9yDrMZcVRbmkKMp6v/tcMHtkyvsy9NOHXL7H\n+4a+6nxDPNb9JdYx331/F6idPeXqrm1+x5zWsU5FUV6xXidQe3ID5fFrU2WX18/pZft69VkQxQzD\nMPjFL36F4QtAJYAPrO//DkAHgJwuj6kHsB3ARJhDIZ0AHurpPphFUweAgX6v83e+97JudwL4AMD3\nrOdfBvBfAO4GMMO678e3ageAAgAdXdrcCeALPeSuB/Dffu91uct7uQA8HsTn5wzw3r3J1Qlgv3Xf\nROu991v35Vr3+17rx/6fa9d2BpHL17bHAUzs8v53W+/Rab3HHAA51nv8t99r3CqPC8DX/W7f+JkK\nsn19+iz4xa9Y+Ip4A/jFL1m+rF8wT1vfD7J+gfj/wiwBcKnLcx4H8A2YBUug+3yvdasC53tdnuv/\n+PW+X6w9tcMvx0OBHtvleTOtX4xpfsduKlS6Fg49vFagAieoXH6P9y8I/s73mr7X7/L8h9BNgRNk\nrpva5ndsjt/t3QBe8bu9sMt5u1Uel++8+L1+Ti/a16fPgl/8ioUvTjImCgNFUWbCLER0ADDMCaEH\nAXwZwCbrYaNh/sK6wTCMTdbzl/dw3yCYE01vpdr/udZQSSGASTALlbdv1Q6LbrX7dQCaL1MAowGc\nNPzmrRiGUa2YJhrm3Jr+CjaXzwG/75u7tGsPgGZFUXbALDxeC/Ceweaq7ua5p7q8v/9E6ZsmCAeZ\npz/tC8VnQRSVOAeHKDxKYF75c8Ca09AJc7inUPnkst4hPTy/p/uCdeMXmKIo9TB7AwwATwNY0Yv3\nehVAiVVYlQB4Ltj37SKYoiwYwea6JcMw7oc5PFMPc77NZSXwZdfB5Ar0mKD0M0+/PvdefhZEUYcF\nDlF4+Ho68mD+0siFedmzgk+uptoPQPV/kqIovkmtv4f5F3x398F6nQy/u/8yUEOsyaLphmFMMgxj\nk/XX/Gf8HtJTO2AYRjWADwE8D6DeMIw/9JD7JICiLhN9Z5ov0+Pzei2IXLd6vlNRlOWGeeXWk4Zh\n5MPsUenuajfbcymKUoK+5+lX+3r5WRBFJRY4RDbzG55aZ/3C8H3thXnp85cBwDcEYF1ZU2D9gnsc\nwHbDMF7v5r7l1n0fWm9VrphXEZWg57VamgGkK+aVVoMURVlkPT7jVu3we409MH/ZvdpTdqsYqgfw\nqvVaM2H2+FQG8dH1Vo+5glSumIvnFVjPH42bh3EAhC3XFQSXJ8+/kAlh+4L6LIiiFQscIvuVIHBP\nRyVuHqYqAjAY5hyYSgBPGIax07qvsMt9y/3uK7Hur4O51k7Xv7RvDEtYv/w2ANgK8y/9AphX0uQq\nirIuiHYA5qXuhvUat1IEs/jYYz1vt2EYS7prWx/0NlfA97Ke/wTMISEXzAJykWEYvwrw3L7k6nrs\nVu25VZ5KmIshlnfzen3+3IP4LIiinmIYoRoG75mmaYsADNR1fVM399UBmKnrutu67VutdDCAuT0d\nD8Vjiah3FEV5AsBcwzAm3fLBREQREJYeHE3TdsNcR6G7+56A2fXpu10AoEDX9Vkw/zLZGuh4KB5L\nRMGzhkpmAliJW08uJiKKmLAUOFZR8alVWzVNGw1zvYaDfodnwroMUtf1WpjdrN0dV2Gu1dDXx940\niZKIgpILc7L0bsMwXoh0Y4iIAgnnHBylm2O+8WP/+4ag+w30ujseiscSUZAMw6g1DCPDMIx5kW4L\nEVFPIjbJWNO0hQB2dzMP5hLMvxJ90ns4fgnmZbd9eeygntpXXV1tKIoy3XdbUZTpvM3bvM3bvM3b\nvB3a23YJ5yTjhQAG+SYZa5r2HIDRMHtvVJiXNM6FOQF4va7r92uaVghgnfV9QdfjMBe92qDr+qy+\nPjZQe6urqw2n09ldrxMRERFFuYgVOF3u2w+gRNf109btdTDn0xgAFvtdGfWp46F4bHdY4BAREcWu\nsBU4sUa2AkdRlOmGYbwT6XaEA7OKS6a8zCou2fLahZtt9kJ1dbWSlpZWnJiYOFpRFKGKn5/+9Kf5\nf/zjHydGuh3hEK6shmEYHo/nVEtLS5XT6eRfEkREYcQCpxfS0tKKR4wYcU9ycvL1SLcl1EaOHPln\nfDJJW2jhzNre3j7s7NmzAPBGON6vK9n+CpQpL7OKS7a8duFWDb2QmJg4WsTihuyTnJx8PTExcfSt\nH0lERKHEAqcXghmWamlpGVBZWTnxkUXf+vrcr37t24v/8bEv//KXv8zp7OwMRxP77NChQzmRbkO4\nhDtrJIczw3EpZjSRKS+ziku2vHbhEFUIHTt2bNDKf/nXr300LC/p41mLEjBoCJrPHB+y+eWf573x\n32/X/2jThlcTEhJ6Xen85Cc/yf3hD384U1EU47bbbmv/53/+5z3FxcXnAz1+48aN465cuZL89NNP\nHwz0GDt86Utf+uLJkyeHX79+PXHWrFkHnn322d/Z/Z4zZsyYe/HixcGXL18enJGRcUVRFGPdunVV\nX/ziFwN+Ph988EHqn/70p8yun2FVVVXm4sWLvzpkyJDLAJCbm9v4i1/84pfdvUZNTU36xYsXk3o6\nD0REFDnswQmRjo4OZdXap77aPuORtI//8dkEFM4A8u4GvvBl5ePVrzhOIyVvzbpyZ29ft6amJv2Z\nZ55x7tmz52eHDx9+/plnntn12GOPaefOnUsMZfsnTpzo7s/zX3jhhdGKohhHjhzZWldX96N33313\n/P79+22f57J3795Xjxw5sjU7O7vhZz/72SuHDx9+vqfiBgCuXr167a233srt7r5JkyYdOXz48POH\nDx9+fsSIEVeWLFlyT3ePO3LkyOBArxFNZBvLlykvs4pLtrx2YQ9OiPziF7/IbUu47Tbjvkc+PRyR\nkISOR1c7DqydN+nDDz98Z9CgQd5gX/eZZ55Rv/rVr/4mMzPzIwCYPHly8/333++qqKgYDwBHjx4d\nfvHixfRnnnlm19e//nUtNTW1zTAMxel0Hn3yyScLjx49Ory1tTW5ra0tcd++fS81NDQkPvTQQ5qi\nKEZKSsr1vXv37ujpcW1tbUmf+9znTr788svVkydPfrStrS2pu56N22+/vf3kyZPDq6qqMouLi88f\nPnz4eQB48sknC4cMGdL++OOPH1uyZMk9RUVF5+rq6gYfPXp0+IULFwYrimLs3Lnz1WHDhnkmT578\naEVFRdWyZcuK/d9nxowZc8vLy9+eNGlS8+TJkx/9z//8T33YsGEe//c3DEMxDEOxPqOb2llVVZVZ\nVlZ2n6Ioxhe+8IX3a2pq8pqamtL379///qRJk5oDffZbtmz53V133bXo3LlzB2bPnn3TZ/byyy+r\nTU1N6W+++Wb9v/7rv87yvy/Yc0tERPZhD06I/Pb3rnEfTylOQKDpFkOGQRk2uvNXv/rVyN68bmtr\na9LYsWOv+B8rLCw8d/r06QwAUBTF2Ldv30tPPfXUX33ve9/bvW/fvpduu+22dt9jFUUx9u7d+2pe\nXt65n/70p6PPnj2bXFpa+va+ffteAqD4elk6OjpSfY974YUXRi9fvvyvNU3b7ytUlixZco/T6Tx6\n+PDh52+77TbPpk2bxvm3qbi4+Pxjjz225wc/+MFf5+fnf+fb3/52tz0fvukoiqIYNTU1L86YMeP9\nH/3oR+N99//bv/3bnf7vs3HjxnEPPvjgkddffz23oaEhUVEUo2tx469rOzdu3Dhu+/bt4+fOneva\nt2/fS4qi4MEHH/zTvffee7Sn4sbn+vXrSd19Zl/5yldc995779GhQ4d6uvs8o4VsY/ky5WVWccmW\n1y4scELko46OBCQm9/ygpBR4PJ5e9ZqlpaW1Hzt2bLD/sQMHDgzLycm5DADjx48/BwAXLlwY/MAD\nD5wDgMmTJ9/YVNR3f3Z29pXLly8nAcDWrVvVL33pS19samq68cs4Pz//kv/jTp48mfnwww+fAoCX\nX365+uzZsxl79+69c8aMGSXnz59Pv3z58k1ha2pq0u+///7GvXv3vlpXV/ejY8eOZW3cuPGmIsif\nr13f/va3j+7bty9v48aN45xO59Gu73PlypXk+fPnn9y7d+/4zZs3jy8pKTnQ3espimIAQHfP37Bh\nw29+/etf502ZMuWRjIyMdl9PTzCSk5PbOzs7u/3MAKCn+4iIKHJY4IRIXtbws/H/+/vAQ08fXUen\n+1j8hAkTLvbmdZctW3bg3//93/+qoaEhEQDOnj2b9O67747/zne+cxQAMjIy2gEgMzPz8ptvvjkc\nAGpqavJ8z/fdDwCGYeCZZ55RZ8+effSNN97YNXTo0Gbf1V0jR448e1OevLxzL730Ui5gTh7+zGc+\n01JSUnJg7969O77yla8cuOeeexr9H//rX/962PLly//adzs1NbVdURQoioJLly4lA8CBAwc+1a6s\nrCzPtWvXkt56663x3/nOd46OHDnyctf3ycrK8gDArl27ih5//PFj3X1OvqKlu+dv3rx5fGlp6W/2\n7dv30s9+9rO/HjJkyPlAK3j7Fz9Lliy559577z3a9TPr6fPs9kUjSLaxfJnyMqu4ZMtrFxY4IfKV\nrzz8Bxx9T0FDXbf3K796xbgjM/PsnXfe2atfgpMnT25+7LHH9tx///1fveuuuxb9zd/8zaPl5eVv\ndB2mefbZZ/f84Ac/uG/KlCmPwNxrC12vTlYUBQ8//PCRysrKv5oxY0ZJWlpaW0VFRVF3j9u0adNv\nduzYoU6YMGHhwIED25966ql9r776qjplypRH3njjjTu7TuRdvnz5sdbW1qS77rprUX5+/ncURTEe\nf/zxY9/+9rePVlVVqTNmzCjxDZ11fb+ioqL6tra2pGHDhnm+//3vH+jufWbMmHF06NChNw3VdWmz\nAQC+50+ePPlR3/Pz8/OvzJ8//++nTJnyyMSJE+vHjx9/JdAk6AMHDtw5YcKEhRMmTFjY0NAweMuW\nLb+bP3/+TZ/ZD3/4w6K77rrryrvvvjt+6tSpZ7red6tzSkRE9uNeVAF0txfVH//4x++OHDky4DDE\ntm0/u+uVN3b9bYf2+AAUOgFHAnD1ElD9H0bCb16/vqFszdbx48dH3V/5gLk2TH+vpLLTkiVL7snN\nzb0SqAenN8Kd9U9/+lPz5z73uR+G6/38ybanjUx5mVVcsuW1C6+iCqEFC/7hyGc+M+Ta9l/81Pnn\nl5/OjEtJ7TDaWuP+YuzY95euf7r6s5/97NVItzEWbdy4cdzBgwdzn3322Zci3RYiIooN7MEJoC89\nOP7Onj2b0tzcnDhixIjW9PT0oC8LJ/FEsgeHiEhW7MGxyYgRI9pGjBjRFul2EBERyYiTjAkA96IS\nlWzraciUl1nFJVteu7DAISIiIuGwwIkBP/nJT3J9l19PmTLlEd+aOKHkf1VRTU1NelVVVebDDz88\nc9euXZmhfq9Ii+arxUJNtisxZMrLrOKSLa9dOAfHBr///e+H/vz1n//lpeZLgz+b81n3N/7hG67M\nzMzrfXmthoaGxB/+8Icz9+zZ87PMzMyPNm3aNO7RRx8ttnPPoyNHjgw+cODAMN/aMkRERLGGV1EF\n0NerqN5///30VeWrtHO3n4vruK3Dm/TnpMQxGHOp8plKPT4+vtcf9pNPPlmoKAqefvrpg75j+/fv\nTx8+fHh7MJtm+m9OGWgzyyeffLLwD3/4w2cvX74cv2/fvpdmzJgxt6mpKT03N7expaUl5dq1a0mK\nohivvfbaq5s3bx5/iw08PQ8++OCRUKxXYxeugyMumfIyq7hky2sXDlGFWNVbVeMupl+M997ube+8\nrfPjtuy2a+fazw3+3e9+d0dfXu/06dMZ+fn5N63gO2nSpObly5f/9cyZM4/s27fvpWHDhl3x7fvk\nv7nmCy+8MNrpdB691WaWvudZG0bikUcecd17771Hb7vtNs+wYcMu19TUvFhUVHTyqaeeKuruPb71\nrW/d981vfvPdffv2vXTt2rWkvn52REREocICJ8Tar7cndAzo+OSAAnQM6MC1a9cS+vJ6o0aNuvzB\nBx/ctNlmcXHxF8+fP58+e/bsUwAwceLERrfbPRi4eXPNK1euJAWzmSUA3H333Sd8r28YBgzDgKIo\nhtPpPAkADzzwwMmzZ89mKIryqQ08L168mO7b6LOoqKi+LznDiXNwxCVTXmYVl2x57cICJ8Sm/eW0\n+ozLGVA8ShwAxF+JT0jzpH08derUc315vaVLlx7dtWtXkW9i8YYNG+68du1a0rBhw668/vrruQBQ\nW1ubNXr06CvAzZtrAsFtZtnd8wBz48nq6upcAHjrrbdy77rrrkbDMD712DvuuOOKb6NP/w01iYiI\nIoUFTog5nc6zxfcUv5f9QbZj+JHhKX/x57+4vuzry3YNGjSoT6sZZ2VleXybbU6YMGHh66+/Xvjy\nyy9Xbdiw4Td79+4dP2XKlEfOnz+f3tOcl+42s/TfjBIArl69OtT3eN9GkteuXUtsbW1Nmjx58qMH\nDx7M9Z8H5KMoCp599tk9W7du/aspU6Y8oiiKkZGR0acJ1eHCdXDEJVNeZhWXbHntwknGAfR3q4bW\n1tYBTU1NSdnZ2df6Mrk43Poz8Xbjxo3jpk+ffm7SpEnNM2bMmFteXv72pEmTonJTUYCTjEUmU15m\nFZdsee3Cy8Rtkpqa+nFqamprpNsRrP78wr/33nvPLViwQLv99tsvp6WltUVzcQNwDo7IZMrLrOKS\nLa9dWOBQv02ePLn5yJEjWyPdDiIiIh/OwSEAcs1LkSmrbGP5MuVlVnHJltcuLHCIiIhIOCxwCIBc\n81JkyirbWL5MeZlVXLLltQvn4Niks7MTbW1tA1JTUz/uz+tUVVVlLl68+KtDhgy53N7envyZz3zm\nsm/F4f7auHHjOEVREM3bKhAREfUFe3BsoP9c/+w/PvyPX/veV763aMXCFXMPHTqU0Z/XGzt2bP3h\nw4efr6urq7j99tubv//97xeGop3Lly8/5ituZJqXIlNW2cbyZcrLrOKSLa9d2IMTYu+++27mvv/Y\nN+PRC49+dEfnHdf+ePGPGT8p/8nfbnhhw7+npKR03PoVunVjPZ7W1tbkjIyMdv/1ZiZPnvzoyJEj\nmz766KMBFy5cGOzbV8q3+ebFixfTX3vttVe725xzyJAh7ezBISIi0bAHJ8RqflUzZsqlKcjszPxY\ngYK7vXdfv6P5jsTf/OY3w/v6msePH8+dMGHCwgkTJixMS0tre/zxx489+OCDR15//fVc3xYOiYmJ\n3rS0tHbfxphLliy5B/hkE81Am3P6yDQvRaasso3ly5SXWcUlW167sAcnxOIGxHV8rNw87eZj5WM4\nHI6+9t5g7Nix9Xv37t3hf2z+/PknH3roIQ0A5s6d6zp48GDWzJkz6wFzY8znn39eTU9Pb/RtjHn+\n/PnBjz32mAswN+c8derU4PT09KjeUoGIiKiv2IMTYl/4my8c3zd0n/G/A/43sUVpift10q9TPhz6\nYeu0adPOh/J9srKyPACwa9euIt8Qk//GmCNHjrzsvzHmsGHDLvtvzpmbm3vFf5sOmealyJRVtrF8\nmfIyq7hky2sXFjghVlBQcOlvv/O3VXvu2nNlS86WAafuOXVy2b8s+8+EhITOUL/XjBkzjg4dOvSK\n7/a5c+cG+zbG3LJly+/8H9ubzTmJiIhiHYeobOB0OhucTueroXit4uLi88XFxTu6u+/DDz9MevDB\nB4/6bv/TP/3Tb3y7gwPAunXrbuz+nZWV5ampqXkx0PvINC9FpqyyjeXLlJdZxSVbXruwBydGbdy4\ncdzBgwdzfT0xiqL0asfyhoaGxF27dhV9/vOfP2dPC4mIiCKHBU6MWr58+TH/Bf9efvnlav/em1vJ\nysryHD58+Hnfzt8yzUuRKatsY/ky5WVWccmW1y4scHrB8J+VSxQk/twQEYUfC5xe8Hg8p9rb25Mi\n3Q47yDQvJZxZ29vbkzwez6lwvV9Xso3ly5SXWcUlW167cJJxL7S0tFSdPXsWiYmJoxVFUW79DJKZ\nYRiGx+M51dLSUhXpthARyYYFTi84nU4DwBuRbocdFEWZLstfDcwqLpnyMqu4ZMtrFw5RERERkXAU\nzn/sXnV1teF0OjkMRUREFIPYg0NERETCYYFDAORad4FZxSVTXmYVl2x57cICh4iIiITDOTgBcA4O\nERFR7GIPDhEREQmHBQ4BkGvMl1nFJVNeZhWXbHntwgKHiIiIhMM5OAFwDg4REVHsYg8OERERCYcF\nDgGQa8yXWcUlU15mFZdsee3CAoeIiIiEwzk4AXAODhERUexiDw4REREJhwUOAZBrzJdZxSVTXmYV\nl2x57cICh4iIiITDOTgBcA4OERFR7GIPDhEREQmHBQ4BkGvMl1nFJVNeZhWXbHntwgKHiIiIhMM5\nOAFwDg4REVHsYg8OERERCYcFDgGQa8yXWcUlU15mFZdsee3CAoeIiIiEwzk4AXAODhERUexiDw4R\nEREJhwUOAZBrzJdZxSVTXmYVl2x57cICh4iIiITDOTgBcA4OERFR7BoQrjfSNG0RgIG6rm/yO/Yc\ngFwAowGs1HX9Nev4egCFAAYDmKvrujvQ8VA8loiIiMQSliEqTdN2A/hxl2NOAIau67MAqACet44X\nACiwji8CsDXQ8VA8lkwyjfkyq7hkysus4pItr13CUuBYRcXiLofrAZRb938I4JJ1fCaAt63jtQCK\nAhxXATj78Vg1hBGJiIgoioRtiArATfNZ/IaScgHoANZbdw0B8Ptunt/d8SEA9vfzsYEbrCjTDcN4\nx/c9AIh6W6a8hmG8E03t4W3e7uttn2hpD/99Yt6+5rVD2CYZa5q2EMCgLnNwngAwF8A3dF3/g3Vs\nOcyhq03W7Q5d1+O7Od4J4AkAiq7rG/v62EDt5SRjIiKi2BWxy8Q1TSsBMFPX9Um+4sayB8B91mMK\nrdvdHX87RI8lyDXmy6zikikvs4pLtrx2ieQ6ODMBFGma9oGmaXWapn0A3Jgfc9CamLwO1tyd7o7r\nun4IwIH+PJaIiIjEw3VwAuAQFRERUeziSsZEREQkHBY4BECuMV9mFZdMeZlVXLLltQsLHCIiIhIO\n5+AEwDk4REREsYs9OERERCQcFjgEQK4xX2YVl0x5mVVcsuW1CwscIiIiEg7n4ATAOThERESxiz04\nREREJBwWOARArjFfZhWXTHmZVVyy5bULCxwiIiISDufgBMA5OERERLGLPThEREQkHBY4BECuMV9m\nFZdMeZlVXLLltQsLHCIiIhLOgEg3gKKDYRjvRLoN4cKs4hI5r6qqaQDmAMgEcL6oqGhnhJsUNiKf\n1+7IltcuLHCIiKKYqqoKHIkr4EhYjfyCDgzPS0Jj/XXU1T6nTp22Bl5Pucvl4tUiRF1wiIoAyDXm\ny6ziEjKvI3EF0oeWYtX2ZBQ6U+FpG4BCZypWbU9G+tBSOBJXRLqJdhPyvPZAtrx2YYFDRBSlzGEp\nYzWWVqQ4KkuRs20Hpu9qRc62HXBUlgJLK1IAlKqqmhrpthJFGxY4BECuMV9mFZeAeecgv6ADJ1zI\ncnsx62oxxnYUYNbVYmS5vcAJF5A/sRPm3BxhCXheeyRbXruwwCEiil6ZGJ6XhNPvI6ctG3GK+U92\nnBKHnLZs4MxxYHheIoBhkW0mUfRhgUMA5BrzZVZxCZj3PBrrr2PUnXCnnEGn0QkA6DQ64U45A2SP\nBRrrPQDORbaZ9hLwvPZItrx2YYFDRBS9dqKuNh5jVDTkOLB7YBWOx9di98AqNOQ4gDEqUHcoDoA0\nl4wTBYt7UQXAvaiIKBqoU6etRPrQUiytSMEJlzkslT3WLG42L7uG5qYy13u/XR/pdhJFG66DQ0QU\nzbyecjQ3AWXzfOvgJOJgtQf6pnhAKYPXUx7pJhJFI/bgBCBbD46iKNNlmbnPrOISOa+1kvFsmBOK\nzx09evTP7e3tb0W4WWEh8nntjmx57cIeHCKiGOByuVoAvOi7zYmoRD1jD04AsvXgEBERiYQ9OERE\ndEPXTT0B7LR6j4hiCi8TJwBydXczq7hkyhvqrKqqKurUaSvhSLiAcZO3wPnwUxg3eQscCRfUqdNW\nqqoasR5tmc4rIF9eu7DAISIibupJwuEcnAA4B4eIZKGqahocCRewanuyo7IUWW4vctqy4U45g4Yc\nB7yL1wJl89vg9dzhcrlaI91eomCwB4eIiLipJwmHBQ4BkGvMl1nFJVPeEGeN6k09ZTqvgHx57cIC\nh4iIuKknCYcFDgEAZFo1k1nFJVPeEGeN6k09ZTqvgHx57cJ1cIiIJOdyuVrUqdPWYPOyUu/SihT3\nCRfcZ44D2SWfbOoJlHGCMcUS9uAQALnGfJlVXDLlDXlWc1PPtSib146D1a1ISPLiYHUryua1o7kp\nopt6ynTMs3vwAAAgAElEQVReAfny2oU9OEREBJfLZQBYr6rqFhyrmY1jNcNgzrnZyZ4bikVcBycA\nroNDREQUuzhERURERMJhgUMA5BrzZVZxyZSXWcUlW167cA4OEZHguEM4yYhzcALgHBwiinWqqirm\nJpnGauQXdGB4XhIa66+jrjYeUNbA6ym3JhcTCYdDVEREouIO4SQxFjgEQK4xX2YVl0x5b5XVHJYy\nVmNpRYqjshQ523Zg+q5W5GzbAUdlKbC0IgVAqaqqqeFpcd/JdF4B+fLahQUOEZGYuEM4SY0FDgGQ\na+8TZhWXTHmDyBrVO4T3hkznFZAvr11Y4BARiYk7hJPUWOAQALnGfJlVXDLlDSJrVO8Q3hsynVdA\nvrx24To4REQC4g7hJDuugxMA18EholjXzTo4iWis93AdHJIBC5wAWOAQkSislYxnw5xQzB3CSQoc\noiIA5pivLDP3mVVcMuXtTVZrW4YX7W2RfWQ6r4B8ee3CScZEREQkHA5RBcAhKiIiotjFHhwiIiIS\nDgscAiDXugvMKi6Z8jKruGTLaxcWOERERCQczsEJgHNwiIiIYhcvEyeKEdZaJnMAZAI4D3Mtk5bI\ntoqIKDqxwCEAcq27EGtZb6xG60jwrUabhMb666irfU6dOq3H1WijKWs4CrRoyms3ZhWXbHntwgKH\nKNo5ElcgfWgpllYk44QLOP0+UOhMxbwVwOZlpWhuAoD1kW5mIP0p0IiI+opzcALgHByKBqqqpsGR\ncAGrtic7KkuR5fYipy0b7pQzaMhxwLt4LVA2vw1ezx3RuvS+OnXaSqtAS7lRoI2607fhYxuam9a6\n3vtt1BZoRBSbeBUVUXSbg/yCDpxwIcvtxayrxRjbUYBZV4uR5fYCJ1xA/sROmEM/UcccljJWY2lF\niqOyFDnbdmD6rlbkbNsBR2UpsLQiBUCpqqqpkW4rEYmFBQ4BkGvdhRjLmonheUk4/T5y2rIRp5j/\ny8YpcchpywbOHAeG5yXC3ETxU6Iga1gLtP7mVVU1TVXVv1dV9Qnrv2mhaJcdouDcho1MWQH58tqF\nBQ5RdDuPxvrrGHUn3Cln0Gl0AgA6jU64U84A2WOBxnoPzB2io1G/CrRwUVVVUadOWwlHwgWMm7wF\nzoefwrjJW+BIuKBOnbZSVVUOVxPFGBY4BACQacZ+jGXdibraeIxR0ZDjwO6BVTgeX4vdA6vQkOMw\n57HUHYoDsLO7J0dB1rAWaH3O65vIvWp7MgqdqfC0DUChMxWrticjfWgpHIkrQtG+UIqCcxs2MmUF\n5MtrFxY4RFHMvIxaWYPNy9q8i9fCvaAE7xQPhHtBiTnBePOyawDWRusEY/SzQAsHzhMiEhMLHAIg\n15hvzGX1esrR3LQWZfPacbC6FQlJXhysbkXZvHY0N5XB6ykP9NRIZw13gdbHvDE5kTvS5zacZMoK\nyJfXLlwHhyjKWWvErFdVdQuO1czGsZphMId0dkZxz80nzAINKJvnWwcnEQerPdA3xQNKjwVamPQ4\nT8jtmydkfu5EFCNY4BAAucZ8YzWrtervi715TjRkDWeB1se85jyhQmeqO2UHxly9G3FKnN88oRLg\nYHXUTeSOhnMbLjJlBeTLaxcWOEQUFn0p0MJkJ+pqn8O8FWjI+QV2u6tuWkwRY1RA/38RnSdERL0X\ntgJH07RFAAbqur7J79h6AIUABgOYq+u6u7fHQ/FYkmvvE2YVV1/yulyuFnXqtDXYvKzUu7QixX3C\nZQ5LZZf4Vlu+BqAs2oYDZTq3MmUF5Mtrl7BMMtY0bTeAH3c5VgCgQNf1WQAWAdja2+OheCwRUX8m\nchNRdApLgWMVFYu7HJ4J4G3r/loARb08rgJw9uOxaggjxjyZ/lpgVnH1Na/L5TJc7/12Pbwf3YFj\nNUtQ/fNVOFazBN6Pbne999v10bgZqEznVqasgHx57RLOOThdVwIdAuD33TyuN8eHANjfz8cSEQGI\n6nlCRNRLkVwH5xKAXL/b6X04fglAXh8fO+hWDfRfi0BRlOmC3/5ulLXHttu+76OlPXbe7po50u1h\n3pDe/m6UtcfO29L8+yRjXrsohhGenldN0xYCGOSbZGzNiVmv6/r9mqYVAlhnfR/0cQArAGzQdX1W\nXx8bqL3V1dWG0+mUZv8ZRZFnUhuzikumvMwqLtny2iViBY51bB3MeTMGgMV+V0AFfTwUj+2ObAUO\nEX3C2kV8DoBRAEYAOAvgNMy1e1oi2TYiCk7YCpxYwwKHSD6qqipwJK6AYaxG/sR4DM9NwLlTwMk/\nAum3e3CpsRNK3Bp4PeXROPGYiD7BvagIgNklGuk2hAuziqvfeX27ipduT0bRzAR42oG0DOCuvwKu\nX0vEjIejZndxmc6tTFkB+fLahQUOERG631XcufMaPrvnJPL+5yRGNaXDsfsVYHE5dxcnigEscAiA\nXOsuMKu4+pn3pl3FH/jzg/jLy5Ow4PTXMPijDBS0qMhqHwbs3R4Vu4vLdG5lygrIl9cuLHCIiEw3\n7Soe36EgqSMJAxCPnLYctMZ9iJz20cC5k+bu4gB3FyeKYtxskwDIdVliJLL6XZWTCeA8wnQ1jgzn\n1f+zbW5uTk9PT1/Xx8/2pl3Fx7bdhevx15HYmQR3ihsjOvNwKKUGGHYX0Fgf8d3FZTi3PjJlBeTL\naxcWOEQ2unFVjiNhNfILOjA8LwmN9ddRV/ucOnUar8bph+4+20ENdV7UH/puHz/bm3YV/y+8ibwB\n2Tib9Cd8HPcxmhKuoDHhHDCjDCj/GncXJ4pyHKIiAHKN+YY1q++qnFXbk1HoTIWnbQAKnalYtT0s\nV+MIfV67+WyVopnJff1szV4fZQ02L2vzLl4L94ISVD+Uiv+dmYv6z+fh9NBmeGd9GahccQ3A2kjv\nLi70ue1CpqyAfHntwnVwAuA6ONRfqqqmwZFwAau2JzsqS5Hl9iKnLRvulDNoyHHAu3gtUDa/DV7P\nHZH+ZRlr7Ppsu6yDE4fhuYlcB4coNrEHhwDIte5CGLPedFXOrKvFGNtRgFlXi5Hl9gInXLZfjSPw\nebXls72xq/jHH92B479fiL3bV+NYTSU87aW4cHohPvZGze7iAp/bT5EpKyBfXrtwDg6RfW66KidO\nMf+eiFPizN6GM8fNq3GO1fBqnN6z9bPlruJEsY89OARArjHfMGY1r8oZdSfcKWfQaXQCADqNTrhT\nzgDZY22/Gkfg8xrxzzbSBD63nyJTVkC+vHZhgUNkn52oq43HGBUNOQ7sHliF4/G12D2wCg05DmCM\nCtQd4tU4fcPPloh6xEnGAcg2yVimdRfCmVWdOm0l0oeWYmlFCk64gDPHzd6FMSqwedk1NDeVud77\n7Xq73l/k8xrpzzbSRD63XcmUFZAvr104B4fITl5POZqbgLJ5vrVaEnGw2gN9UzyglMHrKY90E2NW\nN5+tceDtjxV9E/jZEhF7cAKQrQeH7GWttjsb5vL+52CuZMxLw0OAny0RdYcFTgAscIiIiGIXh6gI\nQPSP+YZyL6dozxpKMmUF5MrLrOKSLa9dWOBQVONeTkRE1BcscAhAFK+74NtvaNnmZLRcBi6eAYpm\npiItA6hYWormJgDo1ZUyUZvVBjJlBeTKy6ziki2vXTgHJwDOwYm8G/sNrdaTE/bsxIjaRoxuGYVT\naadxtmA4Ppo5B1jzZe7lREREn8KF/ghA1O59Yu431HIZI2ob8aWrj+Ju4wv40tVHMaK2EWi53Kf9\nhqI0qy1kygrIlZdZxSVbXruwwKFoZu43dPEMRreMQhziAQBxiMfollFA05/M/YbMy4OJiIhuYIFD\nAKJ2zNfcb+j2bJxKO41OdAAAOtGBU2mngaEj+7TfUJRmtYVMWQG58jKruGTLaxdOMqZothN1tc8h\nLQNnC4bjjdoXb5qDg7QM7jdERETdYg8OAYjOMV9znRtlDSqWtn00cw5OfnM+qv9hJE5+c745wbhi\n6TUAa3s7wTgas9pFpqyAXHmZVVyy5bULe3Aouvn2G1qjfbKX0743Pair5V5OREQUEC8TD4CXiUcX\n7jdERES9wR4cignWtgwvRrodREQUGzgHhwDINebLrOKSKS+ziku2vHZhgUNERETC4RycADgHh4iI\nKHaxB4eIiIiEw0nGBMAc8/WtnmldsTQHQCaA8zCvWGqJYPNCyj+r6GTKCsiVl1nFJVteu7DAoRtU\nVVXgSFwBR4JvzZkkNNZfR13tc+rUaWvg9ZS7XC6OaRIRUdRjgUMAzL1P1KnTViJ9aCmWbU5Gy2Xg\n4hmgaGYq0jKAiqWlaG4CgPWRbmt/yfSXkUxZAbnyMqu4ZMtrF04yDkC2ScaqqqbBkXABq/XkhD07\nMaK28aZ9nz6aOQdY8+U2eD13cIE9IiKKdpxkTACA5ubmJ5Ff0IGWyxhR24gvXX0UdxtfwJeuPooR\ntY1Ay2Ugf2InzLk5MU2mNSZkygrIlZdZxSVbXruwwCEAwIABAzIwPC8JF89gdMsoxCEeABCHeIxu\nGQU0/QkYnpcIc6sEIiKiqMYChwAAqampv0Nj/XXcno1TaafRiQ4AQCc6cCrtNDB0JNBY74G5D1RM\nk2l8W6asgFx5mVVcsuW1CycZk89O1NU+h7QMnC0YjjdqX7xpDg7SMoC6Q3EAdka6oURERLfCHhwC\nABw4cKAIUNagYmnbRzPn4OQ356P6H0bi5DfnmxOMK5ZeA7BWhAnGMo1vy5QVkCsvs4pLtrx2YQ8O\nfcLrKUdzE7BG862Dk4h9b3pQVxsPKGXwesoj3UQiIqJg8DLxAGS7TNyftZLxbJgTis/BXMk45ntu\niIhIHuzBoU+xtmV4MdLtICIi6ivOwSEAco35Mqu4ZMrLrOKSLa9dWOAQERGRcDgHJwCZ5+AQERHF\nOvbgEBERkXBY4BAAucZ8mVVcMuVlVnHJltcuLHCIiIhIOJyDEwDn4BAREcUu9uAQERGRcFjgEAC5\nxnyZVVwy5WVWccmW1y5cyZiIws7aDmQOgEwA52FuB9IS2VYRkUg4BycAzsEhCj1VVRU4ElcAhm9D\n1yQ01l+3NnRdA6+n3OVy8R8lIuo3DlERUfg4ElcgfWgpVm1PRqEzFZ62ASh0pmLV9mSkDy01ix8i\nov5jgUMA5BrzZdbIMIeljNVYWpHiqCxFzrYdmL6rFTnbdsBRWQosrUgBUKqqampf3yOa8tqNWcUl\nW167sMAhonCZg/yCDpxwIcvtxayrxRjbUYBZV4uR5fYCJ1xA/sROmHNziIj6hQUOAQAMw3gn0m0I\nF2aNmEwMz0vC6feR05aNOMX85ydOiUNOWzZw5jgwPC8RwLC+vkGU5bUVs4pLtrx2YYFDROFyHo31\n1zHqTrhTzqDT6AQAdBqdcKecAbLHAo31HgDnIttMIhIBCxwCINeYL7NGzE7U1cZjjIqGHAd2D6zC\n8fha7B5YhYYcBzBGBeoOxQHY2dc3iLK8tmJWccmW1y5cB4eIwsLlcrWoU6etweZlpd6lFSnuEy64\nzxwHskvM4mbzsmsAylwuV2uk20pEsY/r4ATAdXCIQq+bdXAS0Vjv4To4RBRqLHACYIFDZB9rJePZ\nMCcUn4O5kjF7bogoZDhERQDMMV9ZZu4za+RZ2zK8GOrXjda8dmBWccmW1y6cZExERETC4RBVAByi\nIiIiil3swSEiIiLhsMAhAHKtu8Cs4pIpL7OKS7a8dmGBQ0RERMLhVVQEQK69T5hVXCLntS6tnwMg\nE8D5oqKiPq/4HGtEPq/dkS2vXVjgEBFFsRuLIzoSfIsjJqGx/jrqap9Tp07j4ohEAXCIigDINebL\nrOISMq8jcQXSh5Zi1fZkFDpT4WkbgEJnKlZtT0b60FJzZWixCXleeyBbXruwB4coSnQdgoC5um9L\nZFtFkaSqahocCauxtCLZUVmKLLcXOW3ZcKfsQEPOL+BdWpGCsvmlqqpu5krQRDeLeIGjadpzAFQA\nBoBFuq7XWsfXAygEMBjAXF3X3b093tvXkJlMY77RltXOIYhoy2o3AfPOQX5BB064kOX2YtbVYsQp\ncRhz9W7sdlfBfcIF5E/sxLGaObBhZehoIeB57ZFsee0S0SEqTdOcAEbruq4CWATgeet4AYACXddn\nWce39vZ4b1+DKGI4BEGBZWJ4XhJOv4+ctmzEKeY/2XFKHHLasoEzx4HheYkw9/QiIj+RnoNz2e/7\nIQAuWd/PBPA2AFg9OkW9PK4CcPbisdKTacw3mrKaw1LGaiytSHFUliJn2w5M39WKnG074KgsBZZW\npAAoVVU1tS+vH01Zw0HAvOfRWH8do+6EO+UMOo1OAECn0Ql3yhkgeyzQWO+BuWGpsAQ8rz2SLa9d\nIlrgWAWGomlaHYD/BuD7S3UIgJPdPKU3x3v7Gp/i/0OmKMp0kW8DmBhN7ZHo9qeGIMZ2FGDW1WJk\nub2ANQTR3Nz8ZJS0l7fDe3sn6mrjMUZFQ44DuwdW4Xh8LXYPrEJDjgMYowJ1h+KOHj365yhpry23\nIdm/TxLmtUVE96LSNG05gAxd15/UNC0HwB5d1/Ot44au65usx3Xouh7fi+OdAJ4AoOi6vjGY1+ja\nNu5FReGgquoTcD78FDxtA6bvasXYjoIb9x2Pr8U7xQOBhCQvqn++yuVybYhgUylC1KnTViJ9aCmW\nVqTghMsclsoeaxY3m5ddQ3NTmeu9366PdDuJok2kh6j8h6WaYU76BYA9AO4DAE3TCq3bvTn+dh9e\ngygSOARBPfN6ytHctBZl89pxsLoVCUleHKxuRdm8djQ3lcHrKY90E4miUaR7cAYBeBVABoBBAJ7Q\ndX2ndd86mPNmDACL/a6ACvp4b1/Dn2w9OIqiTJdl5n40ZbUuA76AVdu7XAZ8Bg05DngXrwXK5rfB\n67mjL5cBR1PWcBA5r7WMwGyYE4rPHT169M/t7e1vRbhZYSHyee2ObHntEtECJ5qxwBFXtGW1cwgi\n2rLaTaa8zCou2fLahQVOALIVOBQ5N9bBgeFbBycRjfUe1NXGAwqX4ici6gMWOAGwwKFw6zoEAXMl\nY65OS0TUBxFfyZiig0xdotGa1dqWIaSr0UZrVrvIlJdZxSVbXrtE+ioqIiIiopDjEFUAHKIiIiKK\nXezBISIiIuGwwCEA5phvpNsQLswqLpnyMqu4ZMtrFxY4REREJBzOwQmAc3CIiIhiF3twiIiISDgs\ncAiAXGO+zCoumfIyq7hky2sXFjhEREQkHM7BCYBzcIiIiGIXe3CIiIhIOCxwCIBcY77MKi6Z8jKr\nuGTLaxcWOERERCQczsEJgHNwiIiIYhd7cIiIiEg4LHAIgFxjvswqLpnyMqu4ZMtrFxY4REREJBzO\nwQmAc3CIiIhiF3twiIiISDgscAiAXGO+zCoumfIyq7hky2sXFjhEREQkHM7BCYBzcIiIiGIXe3CI\niIhIOCxwCIBcY77MKi6Z8jKruGTLaxcWOERERCQczsEJgHNwiIiIYhd7cIiIiEg4LHAIgFxjvswq\nLpnyMqu4ZMtrFxY4REREJBzOwQmAc3CIiIhiF3twiIiISDgscAiAXGO+zCoumfIyq7hky2sXFjhE\nREQkHM7BCYBzcIiIiGIXe3CIiIhIOCxwCIBcY77MKi6Z8jKruGTLaxcWOERERCQczsEJgHNwiIiI\nYhd7cIiIiEg4LHAIgFxjvswqLpnyMqu4ZMtrlwGRbgARUTipqpoGYA6ATADnAex0uVwtkW0VEYUa\n5+AEwDk4RGJRVVWBI3EFYKxGfkEHhuclobH+Oupq4wFlDbyecpfLxX8QiQTBHhwisk1U9ZY4Elcg\nfWgpllYk44QLOP0+UOhMxbwVwOZlpWhuAoD1EWkbEYUce3ACkK0HR1GU6YZhvBPpdoQDs9ovUr0l\ngfKqqpoGR8IFrNqe7KgsRZbbi5y2bLhTzqAhxwHv4rVA2fw2eD13uFyu1lC3yw78ORaXbHntwknG\nRBR6vt6SVduTUehMhadtAAqdqVi1PRnpQ0vN4ies5iC/oAMnXMhyezHrajHGdhRg1tViZLm9wAkX\nkD+xE2ZvExEJgAUOAQBk+muBWe1lDksZq7G0IsVRWYqcbTswfVcrcrbtgKOyFFhakQKgVFXV1FC/\ndw95MzE8Lwmn30dOWzbiFPOfvjglDjlt2cCZ48DwvEQAw0LdJrvw51hcsuW1CwscIgq1aOwtOY/G\n+usYdSfcKWfQaXQCADqNTrhTzgDZY4HGeg+Ac2FsExHZKKgCR9O0gX7fP6Rp2kP2NYkiQaZ1F5jV\ndhHrLekh707U1cZjjIqGHAd2D6zC8fha7B5YhYYcBzBGBeoOxQHYGeo22YU/x+KSLa9dblngaJq2\nHMAVTdMGWt9vAFCuadrTtreOiGJR1PWWmFduKWuweVmbd/FauBeU4J3igXAvKDEnGG9edg3A2liZ\nYExEtxZMD85KAEW6rl+1vp8J4H4Ai+1sGIWXTGO+zGq7iPWW9JjX6ylHc9NalM1rx8HqViQkeXGw\nuhVl89rR3FQGr6c81O2xE3+OxSVbXrvc8jJxTdMuAxgFIB/Aq7qu52uaNgjAFV3XhZ3DI9tl4kSh\npE6dttJacyYFJ1zmsFT2WLO42bzsGpqbylzv/TYia85Ya/PMhjlEdg7m2jzsuSESTDAL/b0K4KD1\n/XpN00Zbx/bY1ioKO5nWXWDWMDB7S4Cyeb51cBJxsNoDfVM8oNjWWxJMXmuhwRfteP9w4s+xuGTL\na5dbFji6ri/WNK0EgKHr+mtWgfOKrusb7W8eEcUiaxG/9aqqbsGxmtk4VsPeEiIKK65kHACHqIiI\niGLXLXtwNE2rA9BdFdQM4DLMeTk/CXXDiIiIiPoqmEnC5QA+hHkFlQbgSet2JYCtADRN0561rYUU\nFjKtu8Cs4pIpL7OKS7a8dglmkvET+OQycQCo1TRtD4D9uq7/BYDXNE27BGCJXY0kIiIi6o1genCG\nABjd5dho6zisS8Y5VyXGyTRjn1nFJVNeZhWXbHntEkwPzkoAv9I0rRJAPcz1cBYCeELTtAIA1QC4\nqjERERFFjVv24Oi6vhWACrOXZpZ1eKY1sbgZgFPX9U32NZHCQaYxX2YVl0x5mVVcsuW1SzA9ONB1\n/STMnpyux0+FvEVERERE/RTMVg0TYV5JldH1Pl3XJ9nUrojjOjhERESxK9itGqrRTQ8OERERUTQK\npsAZouv6N21vCUWUTHufMKu4ZMrLrOKSLa9dgrlMfJ2mad+zvSVEREREIRLMHBwXgEIAV2BuzQCY\nV1QZ1kJ/QuIcHCIiotgVzBDVXNtbQURERBRCtyxweCm4HGQa82VWccmUl1nFJVteuwQscDRN2w9g\nBYAN6H43caEvEyciIqLY1VMPziIAJ2Fuy0CCk+mvBWYVl0x5mVVcsuW1S8ACR9f1Wuvb2kCPCQVN\n0xbCnOczGoDme19N09bDnNw8GMBcXdfdvT3e29cgIiIiMdzyMnFN0yZqmvbfmqbt7/rV3zfXNG00\ngEW6rs8CcB+ArdbxAgAF1vFFfTne29eQnUx7nzCruGTKy6ziki2vXYJZB+dVmL04i7r56q8SAK8A\ngNWL4rSOzwTwtnW8FkBRL4+r1msF+1giIiISSLArGdu1TcMQALmapu2GOVy0Eua2EEMA/D7A44M9\nPgRAd71MgV5DajKN+TKruGTKy6ziki2vXYLpwdlq80rGhjVcNBNmbxEAXAKQ6/eY9D4cvwQgL4jH\nDgrUMP9uQkVRpvM2b/M2b/M2b/N2aG/bJeBKxpqm1cG8PFyBWRCEfCVjTdOcAEp0Xf+WpmnpAOp1\nXR9izZNZr+v6/ZqmFQJYZ30f9HFYl7jruj4rmNfo2jbZVjJWFHnWXWBWccmUl1nFJVteu/TUg3Mf\nAN/k3zyYc1Vm+R27r79vrut6NYAPre0g9gP4hnW8FsBBa+hqHYDFvT2u6/ohAAeCfQ0iIiISRzB7\nUV3SdX1IN8c7dF2Pt61lESZbDw4REZFIelrJuBPWEJWmaR1+dynW8ddsbhsRERFRn/S00F8cAGia\nttuaBEwCk2nMl1nFJVNeZhWXbHntEsxVVBmapo2yvSVEREREIRJMgbMH5hVJJDCZ/lpgVnHJlJdZ\nxSVbXrsEs9BfIYCZmqYthrn5JhCiy8SJiIiI7BBMgcPLqCUg05gvs4pLprx9yaqqahqAOQAyAZwH\nsNPlcrXY0LyQkum8AvLltcstCxxd10+FoyFERGQPVVUVOBJXwJGwGvkFHRiel4TG+uuoq31OnTpt\nDbyecpfL1fOaIUQx5pYFjqZpAwFsAKDB3NagGeYGmSt1Xb9qb/MoXGT6a4FZxSVT3l5ldSSuQPrQ\nUiytSMYJF3D6faDQmYp5K4DNy0rR3AQA6+1qa3/JdF4B+fLaJZhJxs8DyABQZC3slwfgMwC22tkw\nIiLqP3NYyliNpRUpjspS5Gzbgem7WpGzbQcclaXA0ooUAKWqqqZGuq1EoRRMgVMC4Bu+oSpd15sB\nLAIw186GUXiFY+OzaMGs4rIjr6qqaaqq/r2qqk9Y/00L9Xv0RS+yzkF+QQdOuJDl9mLW1WKM7SjA\nrKvFyHJ7gRMuIH9iJ8y5OVGJP8fUF8FMMj4FoAjAr/yOFVrHiYiEJNC8lUwMz0vC6feR05aNOMX8\nuzZOiUNOWzbcZ44Dw/MScaxmWITbSRRSwRQ4KwFUa5pWCaAeQD6AhWAPjlBkGvNlVnGFNG+Uz1vp\nRdbzaKy/jkJnqjtlB8ZcvRtxShw6jU64U84A2SXAwWoPgHM2Nrdf+HNMfXHLISpd13fALGpOwpx7\nUw8gX9f1121uGxFRRAg2b2Un6mrjMUZFQ44DuwdW4Xh8LXYPrEJDjgMYowJ1h+IA7Ix0Q4lCKZge\nHOi6fhLARpvbQhEk07oLzCquEOb91LyVOCUOY67ejd3uKrh981aO1cwB8GII3q/Xgs3qcrla1KnT\n1mDzslLv0ooU9wmXOSyVXWIWN5uXXQNQ5nK5Wu1vdd/w55j6oqfdxHfD3DU8EEPX9QdC3yQioogT\naxCGVNoAACAASURBVN6K11OO5iagbJ5vPlEiDlZ7oG+KB5QyeD3lkW4iUaj11INTGeD4JABPwByq\nIkHI9NcCs4orhHmjft5Kb7Jak6HXq6q6BcdqZluF2TmYKxlHbc+ND3+OqS8CFji6rr/W9Zimacth\nXiK+Qtd1DlkRkah2oq72OcxbgYacX2C3u8rsuUk588m8Ff3/xdy8FWtbhogMqRGFWzDr4EDTtBma\nptUBmAlzwT8WN4KRad0FZhVXqPKahYCyBpuXtXkXr4V7QQneKR4I94ISeBev9c1bWRvJ3g+Zzq1M\nWQH58tqlx0nG1jYNP4FZ2CzsrleHiEhInLdCFNMUw+h+HrGmad8AUA5gq67rT4a1VVGgurracDqd\nSqTbQUSRZa1cPBtATM1bIZJdTwVOp9/Nrg9SYF5FFW9XwyKNBQ4REVHs6mkOzmC/r4wuX75jJAiZ\nxnyZVVwy5WVWccmW1y49XUX1YTgbQkRERBQqAYeoZMchKiIiotgV1GXiRERERLGEBQ4BkGvMl1nF\nJVNeZhWXbHntwgKHiIiIhMM5OAFwDg4REVHsYg8OERERCYcFDgGQa8yXWcUlU15mFZdsee3CAoeI\niIiEwzk4AXAODhERUexiDw4REREJJ+BWDSQXRVGmG4bxTqTbEQ7MGlrWbttzAGQCOA9zt+0WO98z\nEJ5bMcmUFZAvr11Y4BBRn6iqqsCRuAKOhNXIL+jA8LwkNNZfR13tc+rUaWvg9ZS7XC6OgRNRRHCI\nigAAMv21wKwh4khcgfShpVi1PRmFzlR42gag0JmKVduTkT60FI7EFba9dwA8t2KSKSsgX167cJJx\nAJxkTBSYqqppcCRcwKrtyY7KUmS5vchpy4Y75QwachzwLl4LlM1vg9dzh8vlao10e4lIPuzBIQBy\nrbvArCExB/kFHTjhQpbbi1lXizG2owCzrhYjy+0FTriA/ImdMOfmhA3PrZhkygrIl9cuLHCIqC8y\nMTwvCaffR05bNuIU85+SOCUOOW3ZwJnjwPC8RADDIttMIpIVCxwCINeYL7OGxHk01l/HqDvhTjmD\nTqMTANBpdMKdcgbIHgs01nsAnLPp/bvFcysmmbIC8uW1CwscIuqLnairjccYFQ05DuweWIXj8bXY\nPbAKDTkOYIwK1B2KA7Az0g0lIjmxwCEAco35Mmv/mevcKGuweVmbd/FauBeU4J3igXAvKDEnGG9e\ndg3A2nBPMOa5FZNMWQH58tqF6+AQUd94PeVobgLK5vnWwUnEwWoP9E3xgFIGr6c80k0kInnxMvEA\neJk4UXCslYxnw5xQfA7mSsa8NJwiLppW2abwY4ETAAsckh1/OVCsurHKNoyuq2zHAwpX2ZYE5+AQ\nALnGfJm1Z6qqKurUaSvhSLiAcZO3wPnwUxg3eQscCRfUqdNWqqoatYU/z62Yep01ClfZ7g2Zzq2d\nWOAQ0c1i/JcDyc3seTRWY2lFiqOyFDnbdmD6rlbkbNsBR2UpsLQiBUCpqqqpkW4r2YsFDgGQa90F\nZg0s1n858NyKqZdZo3KV7d6Q6dzaiQUOEfmL+V8OJD2usk0AWOCQRaYxX2btUUz/cuC5FVMvs0bl\nKtu9IdO5tRMLHCLyF/O/HEh6XGWbALDAIYtMY77M2qOY/uXAcyum3mSN1lW2e0Omc2snroMTANfB\nIVmpU6etRPrQUiytSMEJlzkslT3WLG42L7uG5qYy13u/XR/pdhIF0s06OIlorPdwHRy5sMAJQLYC\nR1GU6bL81cCsPYvlXw48t2Lqa9ZYXWVbpnNrJ+5FRUQ3sYqX9aqqbsGxmtk4VhNTvxyIfKyVt1+M\ndDsoMtiDE4BsPThEREQi4SRjIiIiEg4LHAIg17oLzCoumfIyq7hky2sXzsEhIhIcd4YnGXEOTgCc\ng0MkH9EKgW6uiEtCY/31WLgijqi/2INDRNK7UQg4EroWAs+pU6fFbiHg2xl+aUUyTriA0+8Dhc5U\nzFsBbF5WiuYmAOCaRiQkzsEhAHKN+TKruPqc11cIrNqejEJnKjxtA1DoTMWq7clIH1pq9oJEl1tl\njfWd4f3x55j6ggUOEUlNpEKgC+4MT1JjgUMA5Nr7hFnF1ce8MVkIBJE1pneG98efY+oLFjhEJDth\nCoEuuDM8SY0FDgGQa8yXWcXVx7wxWQgEkTWmd4b3x59j6gsWOEQkO2EKAX/m5e3KGmxe1uZdvBbu\nBSV4p3gg3AtK4F281twZHljL/cVIVFwHJwCug0MkD3XqtJXW5dQpOOEyh6Wyx5rFzeZl19DcVOZ6\n77cxdzl1LO8MT9RfLHACYIFDJA/RCwFrAcPZMOcRcWd4kgILnABkK3AURZkuy8x9ZhVXf/PGUiEg\n07mVKSsgX167cCVjIiKLtS3Di5FuBxH1H3twApCtB4eIiEgkvIqKiIiIhMMChwDIte4Cs4pLprzM\nKi7Z8tolaubgaJpWB2Cmrutu6/Z6AIUABgOY25fjvX0NIiIiEkNU9OBomvYEgNF+twsAFOi6PgvA\nIgBbe3u8t68hO5lm7DOrPVRVHaaqaqWqqr+0/hv2rQ14bsUkU1ZAvrx2iXiBo2naaAAzARz0OzwT\nwNsAoOt6LYCiXh5XATh78Vgi6iNVVRV16rS3MCChEeMmL4Jz/oMYN3kRBiQ0qlOnvaWqKifrE1HY\nRbzAAVAJsyfF/x/BIQBOdvPY3hzv7Wt8iv84qKIo0wW//d0oa49tt33fR0t77LzdNbMt7+dIfNNI\nH/oAvv8SkJYBHPmd+d/vvwSkD30AjsQ3hcobPbe/G2XtsfO2NP8+yZjXLhG9TFzTtIUABum6vknT\nNBeAEmvuzHIAhq7rm6zHdei6Ht+L450AngCg6Lq+MZjX6No22S4TVxR5FpZi1tBRVXUYBiQ04vsv\nIXntQmR/mIkxrWNwIvUEzgw6j/bS54F1jwJeT6bL5bpgVzt8eG7FJFNWQL68dol0D04RgPs0TdsN\nIBfAq5qm5QDYA+A+ANA0rdC6jV4cf7sPryE1mf5nYtaQ+r/4iwLgv7Yh+8NMLDj9NXz+0uex4PTX\nkP1hJvBf24D8iQDwrza3A0Dkz62qqmmqqv69qqpPWP9Ns+u9Ip01nGTKCsiX1y5Rs9Cfpmn7Yfbg\nnLZur4NZABkAFvtdARX08d6+hj/ZenCI+kJV1V/COf9BHPkdims/h89f+vyN+/5nyP+gqvAIMH4K\nUP0fb7pcrv8Twabaqpu9rJLQWH9dlL2siGJR1BQ40Ua2AkemLlFmDR1VVSsxbvIipGXgs3tOYsHp\nr2EA4vExOrBt1E/xvzNzgZbLwLGaSpfL9U272uETqXP7qd3IT78PjLrTtxt5G5qb1oZ6N3L+HItL\ntrx2ifQQFRHFtv+LD2qBBxbgzKDz2Dbqp/ifIf+DbaN+ijODzgMPLADqDgHAv0S6oXYxh6GM1Vha\nkeKoLEXOth2YvqsVOdt2wFFZCiytSAH+f3t3HCPlfd95/D2Lh4UV4E18NBja9dpwCDt/xIufng9R\n6dxCqFqJylzxUxy1p7N6NbkK8Ud1CfSO9R+waSBx/0FYMcmdrJOlK3nsFLVEVYqN6j/O8tFMwJEu\nhlI2Hu8VjEvtbACv2UzZuT+eWWeLGdiFmZ2Z3+/9khDMs8vM78Oz7H7n9/s+v4fBJEkWtHqsUkws\ncATEteZr1sYplUrvUih8j2/8ER8Nfou/W/8AR1b/X/5u/QN5g/E3/gjge7PRYAwtO7ebWDFwjTMl\nlpUrbLi0kVXXBthwaSPLyhU4U4IVD08Amxr5on4dhyu2vM1igSPpzlTGf5PRi9/jT343X4767L/N\nf/+T34XRi9+jMv6brR5iky1h6fJ5vPMW/WN9dBXyb6tdhS76x/pg5DQsXd4NzPrGh1LMLHAE5Gu+\nrR7DbDFrY5VKpWrpjdd/g3/+2VJOHT/IsT/7K04dP8g//2xJ6Y3Xf2M2m2tbdG4vcH74Kvc9RLln\nhInqBAAT1QnKPSPQtwrOD48D7zbyRf06DldseZulbe5FJamzlUqld4GmNxK3ocOcPfk8W3Zwrv8v\nOFo+Qv9YH+WeEc71F/NG4+xPu4DDrR6oFBOvoqojtquoJN2+T1xFNXI6n7nJr6L6kNGLQ42+ikrS\nzTmDI0l3qjK+j9GLMLRlch+cbk4cGyd7dg4UhqiM72v1EKXYOINTR2wzODHtu2DWcLU6b23n4sfJ\nG4rfBQ6XSqUrzXitVmedTTFlhfjyNoszOJLUIKVS6TLwYqvHIckZnLpim8GRJCkkXiYuSZKCY4Ej\nIK59F8warpjymjVcseVtFgscSZIUHHtw6rAHR5KkzuVVVJKkaatdCr8JWAJcIL8U/nJrRyV9kktU\nAuJa8zVruGLKO9tZkyQpJGvW7qQ49z0efPQ51n3hKzz46HMU576XrFm7M0mSps14x3ReIb68zWKB\nI0m6tWL3DnoXD7Lr0HxWr1vA+NhdrF63gF2H5tO7eJBi945WD1Gayh6cOuzBkaRckiQLKc59j12H\n5hcPDrKsXPkXNxStbN0DQ0+OURn/TLN2bpZmyhkcSdKtbGLFwDXOlFhWrrDh0kZWXRtgw6WNLCtX\n4EwJVjw8Qd6bI7UFCxwBca35mjVcMeWd5axLWLp8Hu+8Rf9YH12F/EdHV6GL/rG+/O7pS5d3k9+D\nq+FiOq8QX95mscCRJN3KBc4PX+W+hyj3jDBRnQBgojpBuWcE+lbB+eFx8huMSm3BAkcAxHTnWrOG\nK6a8s5z1MGdPzmFlwrn+IkcXHeH0nJMcXXSEc/1FWJnA2Te7gMPNePGYzivEl7dZ3AdHknRTpVLp\ncrJm7W4ObB+sbNvfUz5TojxyGvo258XNge0fAkM2GKudWOAIyNd8Y3nXYNZwxZR31rNWxvcxehGG\ntjzDioFrLF3ezYlj42TPzoHCEJXxfc166XY6r7Ox0WE75e1kFjiSpFsqlUpVYG+SJM9x6vjjnDp+\nL3nPzeEYZm6SJClQ7N5Bce5kgTeP88NXOXvy+WTN2t1UxvfV/o3UJtwHpw73wZEkTUrWrN1J7+JB\ntu3v4UwJ3nkL7ntocolujNGLe0pvvL631ePUz1ng1GGBI0kCNzrsVF5FJSCufRfMGq6Y8pp1Vs3q\nRodtkDcIFjiSJN1cSzc61O2xwBEQ174LZg1XTHnNOqtmdaPDNsgbBAscSZJurqUbHer2WOAIiGvN\n16zhiimvWWdPvs9NYTcHto9Vtu6h/NRmXtu4iPJTm/MG43yjwz2NajBudd5QuA+OJEm30sKNDnV7\nvEy8Di8TlyRdr7aT8ePkDcXRbHTYiZzBkSRpmmq3ZXix1ePQrdmDIyCuNV+zhiumvGYNV2x5m8UC\nR5IkBccenDrswZEkqXM5gyNJkoJjgSMgrjVfs4YrprxmDVdseZvFAkeSJAXHHpw67MGRJKlzOYMj\nSZKCY4EjIK41X7OGK6a8Zg1XbHmbxQJHkiQFxx6cOuzBkSSpc3kvKklqQ7WbOm4ClgAXyG/qeLm1\no5q5UHKo8ziDU0dsMziFQuGxarX6WqvHMRvMGq4Q8iZJUqDYvQOqz7Bi4BpLl8/j/PBVzp6cA4Xd\nVMb3lUqlartnnW6O6TxXu2dttNjyNos9OJLUTordO+hdPMiuQ/NZvW4B42N3sXrdAnYdmk/v4sG8\naOgAoeRQx3IGp47YZnAktV6SJAspzn2PXYfmFw8OsqxcoX+sj3LPCOf6i1S27oGhJ8eojH+mVCpd\nafV46wklhzqbMziS1D42sWLgGmdKLCtX2HBpI6uuDbDh0kaWlStwpgQrHp4g72lpZ6HkUAezwBEQ\n174LZg1XAHmXsHT5PN55i/6xProK+bforkIX/WN9MHIali7vBu5t86zTzjGdJ2vzrA0XW95mscCR\npPZxgfPDV7nvIco9I0xUJwCYqE5Q7hmBvlVwfngceLe1w7ylUHKog1ngCICYOvbNGq4A8h7m7Mk5\nrEw411/k6KIjnJ5zkqOLjnCuvwgrEzj7ZhdwuM2zTjvHdJ6szbM2XGx5m8Um4zpsMpbUCsmatTvp\nXTzItv09nCnlyzl9q/Ki4MD2Dxm9OFR64/W9rR7nrYSSQ53LGRwBca35mjVcQeStjO9j9OIehrZ8\nxIljV5g7r8KJY1cY2vIRoxeHqIzvgw7IOs0c09H2WRsstrzN4k7GktRGapvf7U2S5DlOHX+cU8fv\nJe9VOdxJl1SHkkOdyyWqOlyikiSpc7lEJUmSgmOBIyCuNV+zhiumvGYNV2x5m8UCR5IkBccenDrs\nwZEkzZYkSRaS37piCXCBvBn7cmtH1dm8ikqSpBZJkqRAsXsHxbnPsGLgGkuXz+P88FXOnnw+WbN2\nN5XxfbUr0jRDLlEJiGvN16yNkSTJwiRJ/kOSJF+u/b6wWa81XZ7bMAWdtdi9g97Fg+w6NJ/V6xYw\nPnYXq9ctYNeh+fQuHqTYvaPVQ+xUzuBImhHfcUqNkSTJQopzn2Hb/vnFg4MsK1foH+uj3PMy5/r/\ngsq2/T0MPTmYJMkB9w6aOWdwBMR17xOz3qE2fsfpuQ1TwFk3sWLgGmdKLCtX2HBpI6uuDbDh0kaW\nlStwpgQrHp4g783RDFngSJq2fBmq+gzb9vcUDw7S/8LLPPbdK/S/8DLFg4OwbX8PMJgkyYJWj1Xq\nAEtYunwe77xF/1gfXYX8R3JXoYv+sb78/l1Ll3cD97Z2mJ3JAkdA4Gvc1zHrHWnrd5ye2zAFnPUC\n54evct9DlHtGmKhOADBRnaDcM5LfnPT88Dj5LS40QxY4kmbCd5xS4xzm7Mk5rEw411/k6KIjnJ5z\nkqOLjnCuv5jfef3sm13A4VYPtBNZ4AgIeo37E8x6R9r6HafnNkyhZs33uSns5sD2scrWPZSf2sxr\nGxdRfmozla174MD2D4E9NhjfHgscSTPhO06pkSrj+xi9uIehLR9x4tgV5s6rcOLYFYa2fMToxSEq\n4/taPcRO5U7GdcS2k3GhUHgs1HdJ1zPrnUnWrN1J7+JBtu3v4UwpX5bqW5UXNwe2f8joxaHSG6/v\nbeRrTpfnNkwxZK3tI/U4cO/o6Ojdvb29X3Xm5s64D46kmcnfccLQlsl9cLo5cWyc7Nk5UPAdp3Qb\nardleBE+Lugsbu5Qy2dw0jR9HngAuB/YmWXZd2rH9wKrgU8BT2RZVp7p8Zk+x1SxzeBIMzX1HSd5\nz81h33FKahct7cFJ03QdUM2ybAOQAN+qHR8ABmrHnwa+OdPjM30OSTNTKpUul0qlF0ul0tdqv1vc\nSGobrW4yHgb2AWRZ9lPg/drx9cArteMngUdmeDwB1s3gc6MX8D4Tn2DWcMWU16zhii1vs7S0B2fK\nktEDQAZMNibeA/ztDf7KTI7fA3x/Bs8hSZIC0eoZHNI0/TLwbeD3syz7H7XD75P35UzqvY3j7wPL\np/G5d9cb29QqulAoPBby45jyVqvV19ppPM18PHnlSbuMx7yNe8wU7TCeZj6+PnOrx2PexudthpY2\nGadpuhl4utYPM/X4ALA3y7JfT9N0NfDV2p+nfRzYAXwty7IN03mO68dmk7EkSZ2r1TM464FH0jT9\n+zRNz6Zp+vfwcW/MiTRNj5IXK1tnejzLsjeBH0z3OWI3G9V0uzBruGLKa9ZwxZa3WVp+mXi7im0G\nZ+r0fujMGq6Y8pp1+mpbGmwClgAXyLc0uNyg4TVcTOe2mSxw6oitwJGk0CRJUqDYvQOqk5tSzuP8\n8FXOnpwDhd1UxveVSiV/CAaq1UtUkiQ1R7F7B72LB9l1aD6r1y1gfOwuVq9bwK5D8+ldPJgXPwqV\nBY6AuNZ8zRqumPKa9ebyZanqM2zb31M8OEj/Cy/z2Hev0P/CyxQPDsK2/T3AYJIkCxo/4jsT07lt\nJu9FJUlN0Gl9HwHaxIqBa5wpsaxcYcOljXQVulh56XMcLR+hfKYEKx6e4NTxTdTuARWyGL8eLXAE\n5HvDtHoMs8Wsne1m36jbIe/HfR/Fudf3fTyfrFnbsL6Pdsg6W24z6xKWLp/HO2/RP9ZHVyFfsOgq\ndNE/1kd55DQsXd7NqeP3NnSwDdDIcztbX4/tyCUqSR0hSZJCsmbtTopz3+PBR59j3Re+woOPPkdx\n7nvJmrU7kyRpj4sC7PtoFxc4P3yV+x6i3DPCRHUCgInqBOWeEehbBeeHx8lvFBuuiL8eLXAExLXm\na9YONY1v1K3OO5t9H63OOptuM+thzp6cw8qEc/1Fji46wuk5Jzm66Ajn+ouwMoGzb3YBhxs83DvW\nqHPbyX1IjWCBI6ntTfcb9bx58+a3eKif6PtYdW2ADZc2sqxcgcm+j3yJTU2UL1sWdnNg+1hl6x7K\nT23mtY2LKD+1mcrWPXBg+4fAnlKpdKXVY22iqL8eLXAEuJ4fqoCyTusb9Wc/+9l/1eJx3rTvg8m+\nD7jjvo+Azu0t3XbWyvg+Ri/uYWjLR5w4doW58yqcOHaFoS0fMXpxiMr4vsaOtDEaeG5n7euxHVng\nSOoEnfKN2r6PNlIqlaqlN17fS+Vnn+HU8T/k2P/axanjf0jlZ79QeuP1vaE2104R9dejBY4A1/ND\nFVDWaX2jHh0dvbvF45y1vo+Azu0t3WnWUql0uVQqvVgqlb5W+72tl6UaeG47tg+pESxwJHWCaX2j\nPnfu3P9u5SDt+1A7if3r0XtR1eG9qKT2kqxZu5PexYNs29/DmVK+LNW3Ki9uDmz/kNGLQ6U3Xt/b\n8nF+8v5H3ZwfHvf+R2qFmL8eLXDqsMCR2kunfaOubUj4OHlf0LvkGxIG+U5Z7S/Gr0cLnDpiK3AK\nhcJjsVyVYdbOdrNv1CHmrces4Yotb7N4qwZJHaV2W4bg7x0k6c44g1NHbDM4kiSFxKuoJElScCxw\nBLinRqhiygpx5TVruGLL2ywWOJIkKTj24NRhD44kSZ3LGRxJkhQcCxwBca35mjVcMeU1a7hiy9ss\nFjiSJCk49uDUYQ+OJEmdy52MJUnAx7fB2AQsAS6Q3wbjcmtHJd0el6gExLXma9ZwxZS3kVmTJCkk\na9bupDj3PR589DnWfeErPPjocxTnvpesWbszSZKWzmbHdF4hvrzNYoEjSbErdu+gd/Eguw7NZ/W6\nBYyP3cXqdQvYdWg+vYsH87u4S53FHpw67MGRFIMkSRZSnPseuw7NLx4cZFm5Qv9YH+WeEc71F6ls\n3QNDT45RGf/M5F3bpU7gDI4kxW0TKwaucabEsnKFDZc2suraABsubWRZuQJnSrDi4Qny3hypY1jg\nCIhrzdes4YopbwOzLmHp8nm88xb9Y310FfIfC12FLvrH+mDkNCxd3g3c26DXm7GYzivEl7dZLHAk\nKW4XOD98lfseotwzwkR1AoCJ6gTlnhHoWwXnh8eBd1s7TGlmLHAEQLVafa3VY5gtZg1XTHkbmPUw\nZ0/OYWXCuf4iRxcd4fSckxxddIRz/UVYmcDZN7uAww16vRmL6bxCfHmbxX1wJClipVLpcrJm7W4O\nbB+sbNvfUz5TojxyGvo258XNge0fAkM2GKvTOIMjIK41X7OGK6a8Dc1aGd/H6MU9DG35iBPHrjB3\nXoUTx64wtOUjRi8OURnf17DXug0xnVeIL2+zOIMjSZErlUpVYG+SJM9x6vjjnDp+L3nPzWFnbtSp\n3AenDvfBkSSpc7lEJUmSgmOBIyCuNV+zhiumvGYNV2x5m8UCR5IkBccenDrswZEkqXN5FZUk6ZaS\nJFlIfj+qJcAF8iusLrd2VFJ9LlEJiGvN16zhiinvbGVNkqSQrFm7k+Lc93jw0edY94Wv8OCjz1Gc\n+16yZu3OJEmaPtMd03mF+PI2iwWOJKm+YvcOehcPsuvQfFavW8D42F2sXreAXYfm07t4kGL3jlYP\nUboRe3DqsAdHUuySJFlIce577Do0v3hwkGXlCv1jfZR7RjjXX6SydQ8MPTlGZfwzbgioduMMjiSp\nnk2sGLjGmRLLyhU2XNrIqmsDbLi0kWXlCpwpwYqHJ8h7c6S2YoEjIK41X7OGK6a8s5R1CUuXz+Od\nt+gf66OrkP/I6Cp00T/WByOnYenybuDeZg4ipvMK8eVtFq+iktQwXmkTnAucH77K6nULyj0vs/LS\n5+gqdDFRnaDcM5LfcfzEsXHy+1ZJbcUenDrswZGmL0mSQt5sWn2GFQPXWLp8HueHr3L25Bwo7KYy\nvq92Q0d1EHtw1MlcopJ057zSJkj57FthNwe2j1W27qH81GZe27iI8lOb8+LmwPYPgT0WN2pHFjgC\n4lrzNWtj5ctS1WfYtr+neHCQ/hde5rHvXqH/hZcpHhyEbft7gMEkSRY0eyye2yaojO9j9OIehrZ8\nxIljV5g7r8KJY1cY2vIRoxeHqIzva/YQYjqvEF/eZrEHR9Kd+sSVNl2FLlZe+hxHy0coT15pc+r4\nJuDFVg9WM1NbWtybJMlznDr+OKeO30vec3PYmRu1MwscAVCtVl9r9Rhmi1kb7qZX2pQnr7TJfzA2\nlee2eWrN4i0pUGM6rxBf3mZxiUrSncqvtLnvIco9I0xUJwCmXGmzCs4Pe6WNpFllgSMgrjVfszbc\nYc6enMPKhHP9RY4uOsLpOSc5uugI5/qLsDKBs292AYebPRDPbZhiygrx5W0Wl6gk3ZFSqXQ5WbN2\nNwe2D1a27e8pnynly1J9m/PiJr/SZsh+DUmzyX1w6nAfHGn6brAPTjfnh8fdB0dSq1jg1GGBI81c\nbSfjx8m37vdKG0kt4xKVgHzNN5bOfbM2TyuvtAHPbahiygrx5W0Wm4wlSVJwXKKqwyUqSZI6lzM4\nkiQpOBY4AuLad8Gs4Yopr1nDFVveZrHAkSRJwbEHpw57cCRJ6lzO4EiSpOBY4AiIa83XrOGKKa9Z\nwxVb3mZxoz8Fqbaj7iZgCXCBfEfdy60d1fR08tglqV3Yg1OHPTid6Qb3RJrH+eGrnXBPpE4euyS1\nG2dwFJZi9w56Fw+y/cB8Ln8A/zgCj6xfwMJPw/5tg4xeBNjb6mHe0OTYt+2fz5kSvPMWrF63pUvN\n3QAADZxJREFUgC074MD29h67JLUZe3AEhLHmmy/tVJ9h+4Geua8e5oHn/4x1//MfeOD5P2Puq4dh\n+4EeYHD+/Pm/0eqxXu/jsW/b31M8OEj/Cy/z2Hev0P/CyxQPDsK2/T3AYJIkC2byvCGc15mIKa9Z\nwxVb3maxwFFINrFi4BqXP+AXT57nty79Hp+r/iq/den3+MWT5+HyB7Di4Ylly5b9SqsHegP52M+U\nWFausOHSRlZdG2DDpY0sK1fgTAlWPDxB3psjSboFCxwBEMida5ewdPk8/nGE+y/fRxdzAOhiDvdf\nvg8u/j9Yury7t7f3py0e543kY3/nLfrH+ugq5P81uwpd9I/1wchpWLq8G7h3Jk8ayHmdtpjymjVc\nseVtFgscheQC54ev8gt9vL3wHSa4BsAE13h74Tuw+Jfg/PA48G5rh3lD+djve4hyzwgT1QkAJqoT\nlHtGoG9VO49dktpOdAVOmqZ70zQ9mqbp99M07W/1eNpFIGu+hzl7cg4LP80/DCzlLxe9yA8Lf8Nf\nLnqRfxhYCgs/DWff7PrRj370T60e6A3kY1+ZcK6/yNFFRzg95yRHFx3hXH8RViZw9s0u4PBMnjSQ\n8zptMeU1a7hiy9ssURU4aZoOAANZlm0Anga+2eIhqYHyvWIKu9m/bexn6zfx4y8+ybH/+Ev8+ItP\n8rP1m2D/tg+BPVevXv2o1WO93sdjP7B9rLJ1D+WnNvPaxkWUn9pMZeseOLD9Q2BPqVS60uqxSlIn\niO0y8fXAKwBZlp1M0zRp8XjaRjBrvpXxfYxehN3p5F4y3fyfvxqv7SUzRGV8X7VdN3+aHPvQlp+P\n/cSxcbJnPx77TJ8ymPM6TTHlNWu4YsvbLLEVOPcAfzvdTy4UCo9NfqFNThn6uCMe750/f/4Pl138\nx1+pNRS/+6Mf/eifrl69+tFkcdNm4536eG+SJM+NvvHXO++66657FixY8Dpw+Ac/+EEC/Dug1ePz\nsY997OOGPm6WqHYyTtP0S0A1y7Jna4+vZVk250afG9tOxlOLudCZNVwx5TVruGLL2yxR9eAArwKf\nB0jTdHXtsSRJCkxUMzgAaZp+FXgEqAJbsywr3+jzYpvBkSQpJLH14JBl2R+3egySJKm5YluiUh0x\n7btg1nDFlNes4Yotb7NY4EiSpOBE14MzXfbgSJLUuZzBkSRJwbHAERDXmq9ZwxVTXrOGK7a8zWKB\nI0mSgmMPTh324EiS1LmcwZEkScGxwBEQ15qvWcMVU16zhiu2vM1igSNJkoJjD04d9uBIktS5nMGR\nJEnBscARENear1nDFVNes4YrtrzNYoEjSZKCYw9OHfbgSJLUuZzBkSRJwbHAERDXmq9ZwxVTXrOG\nK7a8zWKBI0mSgmMPTh324EiS1LmcwZEkScGxwBEQ15qvWcMVU16zhiu2vM1igSNJkoJjD04d9uBI\nktS5nMGRJEnBscARENear1nDFVNes4YrtrzNYoEjSZKCYw9OHfbgSJLUuZzBkSRJwbHAERDXmq9Z\nwxVTXrOGK7a8zWKBI0mSgmMPTh324EiS1LmcwZEkScGxwBEQ15qvWcMVU16zhiu2vM1igSNJkoJj\nD04d9uBIktS5nMGRJEnBscARENear1nDFVNes4YrtrzNYoEjSZKCYw9OHfbgSJLUuZzBkSRJwbHA\nERDXmq9ZwxVTXrOGK7a8zWKBI0mSgmMPTh324EiS1LmcwZEkScGxwBEQ15qvWcMVU16zhiu2vM1i\ngSNJkoJjD04d9uBIktS5nMGRJEnBscARENear1nDFVNes4YrtrzNYoEjSZKCYw9OHfbgSJLUuZzB\nkSRJwbHAERDXmq9ZwxVTXrOGK7a8zWKBI0mSgmMPTh324EiS1LmcwZEkScGxwBEQ15qvWcMVU16z\nhiu2vM1igSNJkoJjD04d9uBIktS5nMGRJEnBscARENear1nDFVNes4YrtrzNYoEjSZKCYw9OHfbg\nSJLUuZzBkSRJwbHAERDXmq9ZwxVTXrOGK7a8zWKBI0mSgmMPTh324EiS1LmcwZEkScGxwBEQ15qv\nWcMVU16zhiu2vM1igSNJkoJjD04d9uBIktS5nMGRJEnBscARENear1nDFVNes4YrtrzNYoEjSZKC\n0/IenDRNnwceAO4HdmZZ9p3a8b3AauBTwBNZlpXrHW/E517PHhxJkjpXS2dw0jRdB1SzLNsAJMC3\nascHgIHa8aeBb9Y73ojPlSRJYWn1EtUwsA8gy7KfAu/Xjq8HXqkdPwk8Uud4Aqy7g89Nmpasw8S0\n5mvWcMWU16zhii1vs9zVyhefspT0AJABe2sfugf42xv8lRsdvwf4/h1+7g0dO3YsmmvoX331VY4d\nO9bqYcwKs4YrprxmDVdseZvVDtL0AidN0z8Ari8UPsiy7M9rH/8y8ATw+1mW/bD28ffJ+3Im9d7k\n+PvA8tv83Lvrjdv+G0mSOlfTC5wsy75V72Npmm4G1mdZ9svXfehV8tmcZ9M0XV17fKPjr9SOfQ34\n+h18riRJCkhLr6KqXUH1BPABUCBvOP7XtY99lbyfpgpsnbKc9YnjjfhcSZIUjpZfJi5JktRorb6K\nSpIkqeEscCRJUnBaepl4K6Rp+jSwKMuyZ6cca+muya3UCWO83p2ew3rHZ/ocs6URu33XO95umdM0\nzcivePwU8AdZlr0ZatZJaZqeJb/Y4qbj6fSsaZp+QL73GUApy7L/fLMxdXLe2tXDT5D/n01r+64F\nlzVN0y8Bv0Pe01qovf4DtzPOZmSNagYnTdOjwDeuOxbtrsmdMMbr3ek5rHd8ps8xWxqx23e94+2W\nufZDYXjK634t1KyTattk3D/lcZBZ0zS9H3gly7Jfrv2aLG6Cy1vL+nTtdT9/O5k6JWuWZV/Psiyp\nXQn9BPBSrTBpi6xRFTi1f5Ct1x2OedfkG427rd3hOWzUuZ1Nd7rbdydlfgU4WPtzAfhJnfGEkHXy\nB+F64MSUw0FmJZ+BXJ6maZam6V/XfkjdaEwh5N0MfLv2uuXa+G40nhCyTnUQ+IM642lJ1qgKnJrr\nN/C7B/jxDT7vRscb8bntpBPGeCN3cg7rHZ/pc8yKLMvKtXdED6RpWuJf7vYdVOYpWZ8n33H8q7cY\nT8dmrTlI/g506tdzqFnfB/4ky7IU+CLw0i3G1Ml57wH+TZqmR9M0/T7wy1OOh5YVgDRNfxs4mmXZ\npVuMZ1azBtWDc6tdk+to+a7JLXT9uNtxjNMxk3NY7/h0z+2s/xs1YLfvesfbMnOWZV+srbG/Cqy4\nwXg6Pmvte9XRWkE39UPBZQXI8l6qN2t/fjtN02qapotuMKYg8lJbVk7T9G7gbeDTNxhPKFkB/hj4\ntSmP2yJrUDM4WZZ9K8uy/37dr5sVN5B/E/08wA12Qp56/JUGfW476YQxTsd0z0sjzu2s/hulU3b7\nnlLc3GxcHZs5TdO9tR/8AKPkDYQ3G0/HZiWfbv98rafsAeClNE37b2OcnZCVNE2/VGtIJU3TXoDa\nu/0Q875Cvnkt1DawvcV4OjkraX4vyeqU2ZubjWdWs0a30V/tG+jd2b+8AifaXZM7YYzXu9NzWO/4\nTJ9jNqQN2u273vF2ylx7t/sS+bvdKvDlLMv+JsSsU9WWMTZnWfbOTDPVO96OWdP8CrkHaq/9nyYL\n9hDz1mYg15PPLnw5y7LDAWf9Evn3pWevO97yrNEVOJIkKXxBLVFJkiSBBY4kSQqQBY4kSQqOBY4k\nSQqOBY4kSQpOUBv9SWp/aZpO8POb8039/VPX7aUxo+fMsqyrdguAb9bujSMpYhY4kmZblfxOwG9P\nPXi7xc2U54R8C/cdd/A8kgJhgSNpthWAn9YraNI0fZr8nlt3k9+I8okpG3wdJN/4sArszbLs67Xd\ngAtpmr5Pvrna14CkdjPLl8hvfPjH5Fu8P1G7bcDU13m/9nd2ZFm2ot7rNPxfQVJT2YMjqW3UdjP+\nBvCr5LdqeJva3eNrt634NeA+8jsN703TdFHtDvPVLMvuqT3N1N1LVwMTWZZ9GjhG7c7ste3l99Ze\n55Haa1Rv9jrNyiypOSxwJLXCcJqmE1N+/T1AlmU/Je/F+WFthucDfn6TvcnCZUVtFmY6PTs/ybLs\nT2t/Pkh+GwjI7+J9cMrrfHXK37md15HUZixwJLXCevL7Ek3+emTKx/5bmqalNE3/Grh/8mCWZd8h\nn4F5qbYctXUar/NBneMPAMNTHv/4Dl9HUpuxwJHUCm9nWVae8usSQJqmv02+PPSrWZb9OvDy5F+o\n9dQcq/XJPAJsTdP039c+XJjh6/8YWDHl8fJpvo6kDmGTsaRW+FSapj+ZeqC2PPVp4IMsyy6nadpL\nPnsyOdOyGfidNE3X8fM3Z9Xrfr9evcLn28CraZp+m7zPZ+eUj13/Ot6RWOpAzuBImm1VoES+fPQB\n8BPggzRNfy3Lsm+RXxH1AfAK8GVgfe1jX5/y+d8HsizLDtee8ztpml7jk8XIDYuTLMtOkl9Ofqz2\nXM8Do7WPXf86L2VZ9ucNSS5p1hSqVd+cSIpLbRmqt1boTC6NPV1bFpMUAGdwJMWoFzhWuywd8qWw\nl1o4HkkN5gyOpCilafpfgP9Kvoz17SzL/rDFQ5LUQBY4kiQpOC5RSZKk4FjgSJKk4FjgSJKk4Fjg\nSJKk4FjgSJKk4Px/aqR7Ky3KagwAAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# plot results\n",
"\n",
"plt.clf()\n",
"fig = plt.figure(figsize=(8, 10))\n",
"ax = fig.add_subplot(111, axisbg='none')\n",
"orig = plt.scatter(\n",
" df['OS_e'],\n",
" df['OS_n'],\n",
" color='#33CCFF',\n",
" edgecolor='#333333',\n",
" marker='o',\n",
" lw=1,\n",
" s=80,\n",
" alpha=1.0)\n",
"\n",
"convertbng = plt.scatter(\n",
" df['convertbng_e'],\n",
" df['convertbng_n'],\n",
" marker='o',\n",
" color='#006600',\n",
" edgecolor='#333333',\n",
" lw=1,\n",
" s=25,\n",
" alpha=0.75)\n",
"\n",
"pyproj = plt.scatter(\n",
" df['pyproj_e'],\n",
" df['pyproj_n'],\n",
" marker='o',\n",
" color='#CC00CC',\n",
" edgecolor='#333333',\n",
" lw=1,\n",
" s=25,\n",
" alpha=0.75)\n",
"\n",
"ax.set_xlabel('Eastings')\n",
"ax.set_ylabel('Northings')\n",
"plt.title(\"Accuracy of Transformations\")\n",
"leg = plt.legend(\n",
" (orig, convertbng, pyproj),\n",
" ('Ordnance Survey Test Data',\n",
" \"Convertbng\",\n",
" 'Pyproj'),\n",
" loc='upper left',\n",
" scatterpoints=1,\n",
" fontsize=9)\n",
"leg.get_frame().set_alpha(0.5)\n",
"ax.spines['top'].set_visible(False)\n",
"ax.spines['right'].set_visible(False)\n",
"plt.tight_layout()\n",
"ax.grid(b=None)\n",
"plt.savefig('test_data.png', format=\"png\", bbox_inches='tight', alpha=True, transparent=True, dpi=300)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"/Users/sth/dev/lonlat_bng/venv/lib/python2.7/site-packages/pyproj/data\n"
]
}
],
"source": [
"# put ostn02 grid shift file in here\n",
"pyproj\n",
"print pyproj.pyproj_datadir"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df['convertbng_e_diff'].hist()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\ncBQ9AAT3/3SQRB28xF7DAAAAAElFTkSuQmCC\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df['pyproj_e_diff'].hist()"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\nZGaXJR2VNJJ0gd+WAYDlUXu4AwCWF09iAoACMdwBoEC8KiSAkKZ5lvxut8n9DPs52z+QtCZpVdIl\nd/94p2M0PtynfdDM7LykA1u/TjlLdJvm7I/+CXNM4x+Qn6+enLZQc/afk3RW488di9Y/8f47kk7m\n+AWFRQycBlufP0u+evtDSaemuc00913i9p7Gv4Z+ysxWJN2TtONj3ehaZtqXJTCzG5KubrvuebTG\nQ+YXTbZNY87+rC/JMM3xd7tN9divuvux6vqlfOz36F/T+H9IpyT92U73bds8/RPvf0fj4bhwDXz+\nLPprd5pnyW+/zdEZ7tumedo/l/Redf0TSY92O0jTO/epHrTqk+DCtqvvasroFs3TH/kT5vHEbQ5p\neR/73fr/QtIvq+vvS+q13LqTOv3Pb2Nmq9X7h62X7mwhA6dBh6rj1rnNNPdtU532jiS5+z13v29m\na2Z2S+PnG+2o6bXMLC9L8MKTmya+vVuT5NojukW1+2e8bxumOf7222x9wtw2s061EljVt1+0i1Sn\nf/L6teo7qlckXZLUbzYvaZ5+SfoHjc+G/7nJqBnM8/lzT1r41+4jjddAW3b6W4zbb3Nwhvu2qU77\n89tU3+GdlfQzd9/c7SAzD/dqtzn5y/EdSY/c/dqU0Xt97Kmi59Fif+ufMA2073ib6uUk/q3a4/2x\nxs84PtxguqrjNN1/cOLt7XvIP2im+lstPv7nJN2ozsiajZ7QVn/1sVv/2t1mmmfJ73abqZ9h35La\n7WZ2RuOfyRxPHWTm4e7ue+3Taj9os0TPo63+Oe87lQbad7vNIUn/Xb39Pxqf/Tauxf6bks5Ub3f0\n4gBrTIv9RyWtmtkpjYfnR2bW+A/k2+pf1NfupOq7zWH13dpI1Zq0Wm/dcvdDu91mt+sjtGu8Gjtq\nZp+p+lx39zd3Ok7jz1Dd6WUJJqMnbndO0srEi499oPH/+R+nottUt3+3+y5b+y63WZH0kcZnuyuS\n3nH3f1lk+zz91fVXNP7ED9k/8TE+lXTG3f9jofG7tE35+bMUX7t4ES8/AAAF4hmqAFAghjsAFIjh\nDgAFYrgDQIEY7gBQIIY7ABSI4Q4ABfp/fyCimptQLq8AAAAASUVORK5CYII=\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df['convertbng_n_diff'].hist()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
""
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\ngg==\n",
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"df['pyproj_n_diff'].hist()"
]
},
{
"cell_type": "code",
"execution_count": 106,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
\n",
" \n",
" \n",
" | \n",
" OS_e | \n",
" OS_n | \n",
" convertbng_e | \n",
" convertbng_n | \n",
" pyproj_e | \n",
" pyproj_n | \n",
" convertbng_e_diff | \n",
" convertbng_n_diff | \n",
" pyproj_e_diff | \n",
" pyproj_n_diff | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 331534.552 | \n",
" 431920.792 | \n",
" 331534.552 | \n",
" 431920.791 | \n",
" 331534.774663 | \n",
" 4.319224e+05 | \n",
" 5.820766e-11 | \n",
" 1.000000e-03 | \n",
" -0.222663 | \n",
" -1.633227 | \n",
"
\n",
" \n",
" 1 | \n",
" 362269.979 | \n",
" 169978.688 | \n",
" 362269.979 | \n",
" 169978.688 | \n",
" 362269.948057 | \n",
" 1.699785e+05 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" 0.030943 | \n",
" 0.221962 | \n",
"
\n",
" \n",
" 2 | \n",
" 151968.641 | \n",
" 966483.777 | \n",
" 151968.641 | \n",
" 966483.889 | \n",
" 151967.507879 | \n",
" 9.664809e+05 | \n",
" 0.000000e+00 | \n",
" -1.120000e-01 | \n",
" 1.133121 | \n",
" 2.915748 | \n",
"
\n",
" \n",
" 3 | \n",
" 339921.133 | \n",
" 556034.759 | \n",
" 339921.132 | \n",
" 556034.765 | \n",
" 339920.907833 | \n",
" 5.560355e+05 | \n",
" 1.000000e-03 | \n",
" -6.000000e-03 | \n",
" 0.225167 | \n",
" -0.734340 | \n",
"
\n",
" \n",
" 4 | \n",
" 241124.573 | \n",
" 220332.638 | \n",
" 241124.573 | \n",
" 220332.638 | \n",
" 241123.036187 | \n",
" 2.203337e+05 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" 1.536813 | \n",
" -1.027037 | \n",
"
\n",
" \n",
" 5 | \n",
" 599445.578 | \n",
" 225722.824 | \n",
" 599445.578 | \n",
" 225722.824 | \n",
" 599447.608443 | \n",
" 2.257241e+05 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" -2.030443 | \n",
" -1.306420 | \n",
"
\n",
" \n",
" 6 | \n",
" 357455.831 | \n",
" 383290.434 | \n",
" 357455.831 | \n",
" 383290.434 | \n",
" 357455.855556 | \n",
" 3.832922e+05 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" -0.024556 | \n",
" -1.725604 | \n",
"
\n",
" \n",
" 7 | \n",
" 389544.178 | \n",
" 261912.151 | \n",
" 389544.178 | \n",
" 261912.151 | \n",
" 389544.680553 | \n",
" 2.619137e+05 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" -0.502553 | \n",
" -1.576546 | \n",
"
\n",
" \n",
" 8 | \n",
" 319188.423 | \n",
" 670947.532 | \n",
" 319188.424 | \n",
" 670947.588 | \n",
" 319188.476915 | \n",
" 6.709470e+05 | \n",
" -1.000000e-03 | \n",
" -5.600000e-02 | \n",
" -0.053915 | \n",
" 0.509785 | \n",
"
\n",
" \n",
" 9 | \n",
" 525745.658 | \n",
" 470703.211 | \n",
" 525745.658 | \n",
" 470703.211 | \n",
" 525744.761695 | \n",
" 4.707055e+05 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" 0.896305 | \n",
" -2.259462 | \n",
"
\n",
" \n",
" 10 | \n",
" 397160.479 | \n",
" 805349.734 | \n",
" 397160.479 | \n",
" 805349.836 | \n",
" 397159.946751 | \n",
" 8.053481e+05 | \n",
" 0.000000e+00 | \n",
" -1.020000e-01 | \n",
" 0.532249 | \n",
" 1.615594 | \n",
"
\n",
" \n",
" 11 | \n",
" 256340.914 | \n",
" 664697.266 | \n",
" 256340.914 | \n",
" 664697.321 | \n",
" 256341.818432 | \n",
" 6.646967e+05 | \n",
" -2.910383e-11 | \n",
" -5.500000e-02 | \n",
" -0.904432 | \n",
" 0.526310 | \n",
"
\n",
" \n",
" 12 | \n",
" 267056.756 | \n",
" 846176.969 | \n",
" 267056.756 | \n",
" 846177.079 | \n",
" 267056.810841 | \n",
" 8.461753e+05 | \n",
" -5.820766e-11 | \n",
" -1.100000e-01 | \n",
" -0.054841 | \n",
" 1.680885 | \n",
"
\n",
" \n",
" 13 | \n",
" 244780.625 | \n",
" 495254.884 | \n",
" 244780.625 | \n",
" 495254.884 | \n",
" 244780.894318 | \n",
" 4.952562e+05 | \n",
" 0.000000e+00 | \n",
" 5.820766e-11 | \n",
" -0.269318 | \n",
" -1.327238 | \n",
"
\n",
" \n",
" 14 | \n",
" 227778.318 | \n",
" 468847.386 | \n",
" 227778.318 | \n",
" 468847.386 | \n",
" 227778.679594 | \n",
" 4.688492e+05 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" -0.361594 | \n",
" -1.853549 | \n",
"
\n",
" \n",
" 15 | \n",
" 562180.535 | \n",
" 319784.993 | \n",
" 562180.535 | \n",
" 319784.992 | \n",
" 562181.531714 | \n",
" 3.197875e+05 | \n",
" 0.000000e+00 | \n",
" 1.000000e-03 | \n",
" -0.996714 | \n",
" -2.493075 | \n",
"
\n",
" \n",
" 16 | \n",
" 422242.174 | \n",
" 433818.699 | \n",
" 422242.174 | \n",
" 433818.700 | \n",
" 422241.874585 | \n",
" 4.338204e+05 | \n",
" 0.000000e+00 | \n",
" -1.000000e-03 | \n",
" 0.299415 | \n",
" -1.710247 | \n",
"
\n",
" \n",
" 17 | \n",
" 170370.706 | \n",
" 11572.404 | \n",
" 170370.706 | \n",
" 11572.403 | \n",
" 170366.823437 | \n",
" 1.157107e+04 | \n",
" 0.000000e+00 | \n",
" 1.000000e-03 | \n",
" 3.882563 | \n",
" 1.338870 | \n",
"
\n",
" \n",
" 18 | \n",
" 530624.963 | \n",
" 178388.461 | \n",
" 530624.963 | \n",
" 178388.461 | \n",
" 530626.708705 | \n",
" 1.783886e+05 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" -1.745705 | \n",
" -0.162629 | \n",
"
\n",
" \n",
" 19 | \n",
" 247958.959 | \n",
" 393492.906 | \n",
" 247958.960 | \n",
" 393492.905 | \n",
" 247958.550442 | \n",
" 3.934950e+05 | \n",
" -1.000000e-03 | \n",
" 1.000000e-03 | \n",
" 0.408558 | \n",
" -2.049764 | \n",
"
\n",
" \n",
" 20 | \n",
" 247959.229 | \n",
" 393495.580 | \n",
" 247959.230 | \n",
" 393495.580 | \n",
" 247958.820527 | \n",
" 3.934976e+05 | \n",
" -1.000000e-03 | \n",
" 0.000000e+00 | \n",
" 0.408473 | \n",
" -2.049318 | \n",
"
\n",
" \n",
" 21 | \n",
" 167634.190 | \n",
" 797067.142 | \n",
" 167634.190 | \n",
" 797067.241 | \n",
" 167635.106740 | \n",
" 7.970648e+05 | \n",
" 0.000000e+00 | \n",
" -9.900000e-02 | \n",
" -0.916740 | \n",
" 2.375681 | \n",
"
\n",
" \n",
" 22 | \n",
" 292184.858 | \n",
" 168003.462 | \n",
" 292184.858 | \n",
" 168003.462 | \n",
" 292183.852940 | \n",
" 1.680034e+05 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" 1.005060 | \n",
" 0.024524 | \n",
"
\n",
" \n",
" 23 | \n",
" 424639.343 | \n",
" 565012.700 | \n",
" 424639.344 | \n",
" 565012.710 | \n",
" 424638.472167 | \n",
" 5.650135e+05 | \n",
" -1.000000e-03 | \n",
" -1.000000e-02 | \n",
" 0.870833 | \n",
" -0.765455 | \n",
"
\n",
" \n",
" 24 | \n",
" 639821.823 | \n",
" 169565.856 | \n",
" 639821.823 | \n",
" 169565.856 | \n",
" 639823.549751 | \n",
" 1.695667e+05 | \n",
" -1.164153e-10 | \n",
" 0.000000e+00 | \n",
" -1.726751 | \n",
" -0.874993 | \n",
"
\n",
" \n",
" 25 | \n",
" 474335.957 | \n",
" 262047.752 | \n",
" 474335.957 | \n",
" 262047.752 | \n",
" 474336.902652 | \n",
" 2.620495e+05 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" -0.945652 | \n",
" -1.728697 | \n",
"
\n",
" \n",
" 26 | \n",
" 454002.822 | \n",
" 340834.941 | \n",
" 454002.822 | \n",
" 340834.941 | \n",
" 454003.017797 | \n",
" 3.408372e+05 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" -0.195797 | \n",
" -2.251670 | \n",
"
\n",
" \n",
" 27 | \n",
" 438710.908 | \n",
" 114792.248 | \n",
" 438710.908 | \n",
" 114792.249 | \n",
" 438711.527215 | \n",
" 1.147913e+05 | \n",
" 0.000000e+00 | \n",
" -1.000000e-03 | \n",
" -0.619215 | \n",
" 0.913517 | \n",
"
\n",
" \n",
" 28 | \n",
" 250359.798 | \n",
" 62016.567 | \n",
" 250359.798 | \n",
" 62016.566 | \n",
" 250357.821188 | \n",
" 6.201521e+04 | \n",
" 2.910383e-11 | \n",
" 1.000000e-03 | \n",
" 1.976812 | \n",
" 1.360159 | \n",
"
\n",
" \n",
" 29 | \n",
" 449816.359 | \n",
" 75335.859 | \n",
" 449816.359 | \n",
" 75335.859 | \n",
" 449817.050544 | \n",
" 7.533459e+04 | \n",
" 0.000000e+00 | \n",
" 0.000000e+00 | \n",
" -0.691544 | \n",
" 1.266028 | \n",
"
\n",
" \n",
" 30 | \n",
" 440725.061 | \n",
" 1107878.445 | \n",
" 440725.060 | \n",
" 1107878.512 | \n",
" 440724.861338 | \n",
" 1.107879e+06 | \n",
" 1.000000e-03 | \n",
" -6.700000e-02 | \n",
" 0.199662 | \n",
" -0.690691 | \n",
"
\n",
" \n",
" 31 | \n",
" 299721.879 | \n",
" 967202.990 | \n",
" 299721.880 | \n",
" 967203.103 | \n",
" 299721.357844 | \n",
" 9.672016e+05 | \n",
" -1.000000e-03 | \n",
" -1.130000e-01 | \n",
" 0.521156 | \n",
" 1.430696 | \n",
"
\n",
" \n",
" 32 | \n",
" 91492.135 | \n",
" 11318.801 | \n",
" NaN | \n",
" NaN | \n",
" 91487.427488 | \n",
" 1.131840e+04 | \n",
" NaN | \n",
" NaN | \n",
" 4.707512 | \n",
" 0.399160 | \n",
"
\n",
" \n",
" 33 | \n",
" 9587.897 | \n",
" 899448.993 | \n",
" NaN | \n",
" NaN | \n",
" 9588.182533 | \n",
" 8.994442e+05 | \n",
" NaN | \n",
" NaN | \n",
" -0.285533 | \n",
" 4.811184 | \n",
"
\n",
" \n",
" 34 | \n",
" 71713.120 | \n",
" 938516.401 | \n",
" NaN | \n",
" NaN | \n",
" 71712.568322 | \n",
" 9.385124e+05 | \n",
" NaN | \n",
" NaN | \n",
" 0.551678 | \n",
" 4.040666 | \n",
"
\n",
" \n",
" 35 | \n",
" 180862.449 | \n",
" 1029604.111 | \n",
" 180862.449 | \n",
" 1029604.211 | \n",
" 180860.426831 | \n",
" 1.029602e+06 | \n",
" 0.000000e+00 | \n",
" -1.000000e-01 | \n",
" 2.022169 | \n",
" 2.272725 | \n",
"
\n",
" \n",
" 36 | \n",
" 261596.767 | \n",
" 1025447.599 | \n",
" 261596.767 | \n",
" 1025447.700 | \n",
" 261595.878513 | \n",
" 1.025447e+06 | \n",
" 0.000000e+00 | \n",
" -1.010000e-01 | \n",
" 0.888487 | \n",
" 0.841813 | \n",
"
\n",
" \n",
" 37 | \n",
" 395999.656 | \n",
" 1138728.948 | \n",
" 395999.656 | \n",
" 1138728.997 | \n",
" 395998.704721 | \n",
" 1.138730e+06 | \n",
" 5.820766e-11 | \n",
" -4.900000e-02 | \n",
" 0.951279 | \n",
" -0.777785 | \n",
"
\n",
" \n",
" 38 | \n",
" 421300.513 | \n",
" 1072147.236 | \n",
" 421300.513 | \n",
" 1072147.320 | \n",
" 421300.583564 | \n",
" 1.072147e+06 | \n",
" 0.000000e+00 | \n",
" -8.400000e-02 | \n",
" -0.070564 | \n",
" -0.201103 | \n",
"
\n",
" \n",
" 39 | \n",
" 330398.311 | \n",
" 1017347.013 | \n",
" 330398.311 | \n",
" 1017347.117 | \n",
" 330397.798101 | \n",
" 1.017346e+06 | \n",
" 0.000000e+00 | \n",
" -1.040000e-01 | \n",
" 0.512899 | \n",
" 0.755363 | \n",
"
\n",
" \n",
" 40 | \n",
" 337898.195 | \n",
" 981746.359 | \n",
" 337898.195 | \n",
" 981746.470 | \n",
" 337897.871262 | \n",
" 9.817452e+05 | \n",
" 0.000000e+00 | \n",
" -1.110000e-01 | \n",
" 0.323738 | \n",
" 1.133432 | \n",
"
\n",
" \n",
" 41 | \n",
" 334198.101 | \n",
" 982046.419 | \n",
" 334198.101 | \n",
" 982046.531 | \n",
" 334197.767473 | \n",
" 9.820452e+05 | \n",
" 0.000000e+00 | \n",
" -1.120000e-01 | \n",
" 0.333527 | \n",
" 1.170664 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" OS_e OS_n convertbng_e convertbng_n pyproj_e \\\n",
"0 331534.552 431920.792 331534.552 431920.791 331534.774663 \n",
"1 362269.979 169978.688 362269.979 169978.688 362269.948057 \n",
"2 151968.641 966483.777 151968.641 966483.889 151967.507879 \n",
"3 339921.133 556034.759 339921.132 556034.765 339920.907833 \n",
"4 241124.573 220332.638 241124.573 220332.638 241123.036187 \n",
"5 599445.578 225722.824 599445.578 225722.824 599447.608443 \n",
"6 357455.831 383290.434 357455.831 383290.434 357455.855556 \n",
"7 389544.178 261912.151 389544.178 261912.151 389544.680553 \n",
"8 319188.423 670947.532 319188.424 670947.588 319188.476915 \n",
"9 525745.658 470703.211 525745.658 470703.211 525744.761695 \n",
"10 397160.479 805349.734 397160.479 805349.836 397159.946751 \n",
"11 256340.914 664697.266 256340.914 664697.321 256341.818432 \n",
"12 267056.756 846176.969 267056.756 846177.079 267056.810841 \n",
"13 244780.625 495254.884 244780.625 495254.884 244780.894318 \n",
"14 227778.318 468847.386 227778.318 468847.386 227778.679594 \n",
"15 562180.535 319784.993 562180.535 319784.992 562181.531714 \n",
"16 422242.174 433818.699 422242.174 433818.700 422241.874585 \n",
"17 170370.706 11572.404 170370.706 11572.403 170366.823437 \n",
"18 530624.963 178388.461 530624.963 178388.461 530626.708705 \n",
"19 247958.959 393492.906 247958.960 393492.905 247958.550442 \n",
"20 247959.229 393495.580 247959.230 393495.580 247958.820527 \n",
"21 167634.190 797067.142 167634.190 797067.241 167635.106740 \n",
"22 292184.858 168003.462 292184.858 168003.462 292183.852940 \n",
"23 424639.343 565012.700 424639.344 565012.710 424638.472167 \n",
"24 639821.823 169565.856 639821.823 169565.856 639823.549751 \n",
"25 474335.957 262047.752 474335.957 262047.752 474336.902652 \n",
"26 454002.822 340834.941 454002.822 340834.941 454003.017797 \n",
"27 438710.908 114792.248 438710.908 114792.249 438711.527215 \n",
"28 250359.798 62016.567 250359.798 62016.566 250357.821188 \n",
"29 449816.359 75335.859 449816.359 75335.859 449817.050544 \n",
"30 440725.061 1107878.445 440725.060 1107878.512 440724.861338 \n",
"31 299721.879 967202.990 299721.880 967203.103 299721.357844 \n",
"32 91492.135 11318.801 NaN NaN 91487.427488 \n",
"33 9587.897 899448.993 NaN NaN 9588.182533 \n",
"34 71713.120 938516.401 NaN NaN 71712.568322 \n",
"35 180862.449 1029604.111 180862.449 1029604.211 180860.426831 \n",
"36 261596.767 1025447.599 261596.767 1025447.700 261595.878513 \n",
"37 395999.656 1138728.948 395999.656 1138728.997 395998.704721 \n",
"38 421300.513 1072147.236 421300.513 1072147.320 421300.583564 \n",
"39 330398.311 1017347.013 330398.311 1017347.117 330397.798101 \n",
"40 337898.195 981746.359 337898.195 981746.470 337897.871262 \n",
"41 334198.101 982046.419 334198.101 982046.531 334197.767473 \n",
"\n",
" pyproj_n convertbng_e_diff convertbng_n_diff pyproj_e_diff \\\n",
"0 4.319224e+05 5.820766e-11 1.000000e-03 -0.222663 \n",
"1 1.699785e+05 0.000000e+00 0.000000e+00 0.030943 \n",
"2 9.664809e+05 0.000000e+00 -1.120000e-01 1.133121 \n",
"3 5.560355e+05 1.000000e-03 -6.000000e-03 0.225167 \n",
"4 2.203337e+05 0.000000e+00 0.000000e+00 1.536813 \n",
"5 2.257241e+05 0.000000e+00 0.000000e+00 -2.030443 \n",
"6 3.832922e+05 0.000000e+00 0.000000e+00 -0.024556 \n",
"7 2.619137e+05 0.000000e+00 0.000000e+00 -0.502553 \n",
"8 6.709470e+05 -1.000000e-03 -5.600000e-02 -0.053915 \n",
"9 4.707055e+05 0.000000e+00 0.000000e+00 0.896305 \n",
"10 8.053481e+05 0.000000e+00 -1.020000e-01 0.532249 \n",
"11 6.646967e+05 -2.910383e-11 -5.500000e-02 -0.904432 \n",
"12 8.461753e+05 -5.820766e-11 -1.100000e-01 -0.054841 \n",
"13 4.952562e+05 0.000000e+00 5.820766e-11 -0.269318 \n",
"14 4.688492e+05 0.000000e+00 0.000000e+00 -0.361594 \n",
"15 3.197875e+05 0.000000e+00 1.000000e-03 -0.996714 \n",
"16 4.338204e+05 0.000000e+00 -1.000000e-03 0.299415 \n",
"17 1.157107e+04 0.000000e+00 1.000000e-03 3.882563 \n",
"18 1.783886e+05 0.000000e+00 0.000000e+00 -1.745705 \n",
"19 3.934950e+05 -1.000000e-03 1.000000e-03 0.408558 \n",
"20 3.934976e+05 -1.000000e-03 0.000000e+00 0.408473 \n",
"21 7.970648e+05 0.000000e+00 -9.900000e-02 -0.916740 \n",
"22 1.680034e+05 0.000000e+00 0.000000e+00 1.005060 \n",
"23 5.650135e+05 -1.000000e-03 -1.000000e-02 0.870833 \n",
"24 1.695667e+05 -1.164153e-10 0.000000e+00 -1.726751 \n",
"25 2.620495e+05 0.000000e+00 0.000000e+00 -0.945652 \n",
"26 3.408372e+05 0.000000e+00 0.000000e+00 -0.195797 \n",
"27 1.147913e+05 0.000000e+00 -1.000000e-03 -0.619215 \n",
"28 6.201521e+04 2.910383e-11 1.000000e-03 1.976812 \n",
"29 7.533459e+04 0.000000e+00 0.000000e+00 -0.691544 \n",
"30 1.107879e+06 1.000000e-03 -6.700000e-02 0.199662 \n",
"31 9.672016e+05 -1.000000e-03 -1.130000e-01 0.521156 \n",
"32 1.131840e+04 NaN NaN 4.707512 \n",
"33 8.994442e+05 NaN NaN -0.285533 \n",
"34 9.385124e+05 NaN NaN 0.551678 \n",
"35 1.029602e+06 0.000000e+00 -1.000000e-01 2.022169 \n",
"36 1.025447e+06 0.000000e+00 -1.010000e-01 0.888487 \n",
"37 1.138730e+06 5.820766e-11 -4.900000e-02 0.951279 \n",
"38 1.072147e+06 0.000000e+00 -8.400000e-02 -0.070564 \n",
"39 1.017346e+06 0.000000e+00 -1.040000e-01 0.512899 \n",
"40 9.817452e+05 0.000000e+00 -1.110000e-01 0.323738 \n",
"41 9.820452e+05 0.000000e+00 -1.120000e-01 0.333527 \n",
"\n",
" pyproj_n_diff \n",
"0 -1.633227 \n",
"1 0.221962 \n",
"2 2.915748 \n",
"3 -0.734340 \n",
"4 -1.027037 \n",
"5 -1.306420 \n",
"6 -1.725604 \n",
"7 -1.576546 \n",
"8 0.509785 \n",
"9 -2.259462 \n",
"10 1.615594 \n",
"11 0.526310 \n",
"12 1.680885 \n",
"13 -1.327238 \n",
"14 -1.853549 \n",
"15 -2.493075 \n",
"16 -1.710247 \n",
"17 1.338870 \n",
"18 -0.162629 \n",
"19 -2.049764 \n",
"20 -2.049318 \n",
"21 2.375681 \n",
"22 0.024524 \n",
"23 -0.765455 \n",
"24 -0.874993 \n",
"25 -1.728697 \n",
"26 -2.251670 \n",
"27 0.913517 \n",
"28 1.360159 \n",
"29 1.266028 \n",
"30 -0.690691 \n",
"31 1.430696 \n",
"32 0.399160 \n",
"33 4.811184 \n",
"34 4.040666 \n",
"35 2.272725 \n",
"36 0.841813 \n",
"37 -0.777785 \n",
"38 -0.201103 \n",
"39 0.755363 \n",
"40 1.133432 \n",
"41 1.170664 "
]
},
"execution_count": 106,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.10"
}
},
"nbformat": 4,
"nbformat_minor": 0
}