diff --git a/odc/geo/Test.ipynb b/odc/geo/Test.ipynb new file mode 100644 index 0000000..ba4af61 --- /dev/null +++ b/odc/geo/Test.ipynb @@ -0,0 +1,521 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from odc.geo.types import xy_\n", + "import numpy as np\n", + "from pyproj import Transformer\n", + "from odc.geo.geobox import GeoBox\n", + "from affine import Affine\n", + "\n", + "from odc.geo.overlap import roi_boundary, unstack_xy, stack_xy, gbox_boundary, roi_from_points, native_pix_transform, _relative_rois\n", + "\n", + "pts_per_side = 5\n", + "padding = 1\n", + "align = True\n", + "\n", + "dst_affine_1 = Affine(\n", + " 152.874,\n", + " 0.0,\n", + " -20037508.342,\n", + " 0.0,\n", + " -152.874,\n", + " -1995923.682,\n", + ")\n", + "dst_affine_2 = Affine(\n", + " 76.43702828517416,\n", + " 0.0,\n", + " 20017940.46354824,\n", + " 0.0,\n", + " -76.43702828518872,\n", + " -1976355.8033415154,\n", + ")\n", + "dst_1 = GeoBox((256, 256), dst_affine_1, \"EPSG:3857\")\n", + "dst_2 = GeoBox((512, 512), dst_affine_2, \"EPSG:3857\")\n", + "\n", + "src_affine = Affine(10.0, 0.0, 99960.0, 0.0, -10.0, 8100040.0)\n", + "src = GeoBox((10980, 10980), src_affine, \"EPSG:32701\")\n", + "\n", + "# # Do this the internal odc.geo.overlay way\n", + "# # NOTE: These functions hide the world/pixel conversion.\n", + "tr = native_pix_transform(src, dst_1)\n", + "\n", + "# from odc.geo.overlap import _relative_rois\n", + "\n", + "# _relative_rois(src, dst, tr, 5, 1, None)\n", + "\n", + "# xy = tr.back(unstack_xy(gbox_boundary(dst, pts_per_side)))\n", + "# roi_src = roi_from_points(stack_xy(xy), src.shape, padding, align=align)\n", + "\n", + "# xy_pix_src = unstack_xy(roi_boundary(roi_src, pts_per_side))\n", + "\n", + "# xx, yy = np.asarray([pt.xy for pt in xy_pix_src]).T\n", + "\n", + "# # This goes via world transform to a pixel space\n", + "# xys = tr([xy_(x, y) for x, y in zip(xx, yy)])\n", + "# xys" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name '_shape' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 30\u001b[0m\n\u001b[1;32m 16\u001b[0m _shape\n\u001b[1;32m 17\u001b[0m \u001b[38;5;66;03m# _XY = tr.back(unstack_xy())\u001b[39;00m\n\u001b[1;32m 18\u001b[0m \u001b[38;5;66;03m# roi_src = roi_from_points(stack_xy(_XY), src.shape, padding, align=align)\u001b[39;00m\n\u001b[1;32m 19\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[38;5;66;03m# roi_dst = roi_from_points(stack_xy(xy), dst.shape, padding=0)\u001b[39;00m\n\u001b[1;32m 28\u001b[0m \u001b[38;5;66;03m# return (roi_src, roi_dst)\u001b[39;00m\n\u001b[0;32m---> 30\u001b[0m src_roi, dst_roi \u001b[38;5;241m=\u001b[39m \u001b[43m_relative_rois\u001b[49m\u001b[43m(\u001b[49m\u001b[43msrc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdst_1\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpts_per_side\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpts_per_side\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpadding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpadding\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43malign\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43malign\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 31\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m dst_roi[\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m==\u001b[39m \u001b[38;5;28mslice\u001b[39m(\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m193\u001b[39m)\n\u001b[1;32m 33\u001b[0m src_2_roi, dst_2_roi \u001b[38;5;241m=\u001b[39m _relative_rois(src, dst_2, tr, pts_per_side\u001b[38;5;241m=\u001b[39mpts_per_side, padding\u001b[38;5;241m=\u001b[39mpadding, align\u001b[38;5;241m=\u001b[39malign)\n", + "Cell \u001b[0;32mIn[2], line 16\u001b[0m, in \u001b[0;36m_relative_rois\u001b[0;34m(src, dst, tr, pts_per_side, padding, align)\u001b[0m\n\u001b[1;32m 13\u001b[0m dst_boundary \u001b[38;5;241m=\u001b[39m gbox_boundary(dst, pts_per_side)\n\u001b[1;32m 14\u001b[0m src_boundary \u001b[38;5;241m=\u001b[39m gbox_boundary(src, pts_per_side)\n\u001b[0;32m---> 16\u001b[0m \u001b[43m_shape\u001b[49m\n", + "\u001b[0;31mNameError\u001b[0m: name '_shape' is not defined" + ] + } + ], + "source": [ + "from odc.geo.geobox import GeoBoxBase\n", + "from typing import Optional\n", + "from odc.geo.overlap import roi_is_empty, PointTransform\n", + "\n", + "def _relative_rois(\n", + " src: GeoBoxBase,\n", + " dst: GeoBoxBase,\n", + " tr: PointTransform,\n", + " pts_per_side: int,\n", + " padding: int,\n", + " align: Optional[int],\n", + "):\n", + " dst_boundary = gbox_boundary(dst, pts_per_side)\n", + " src_boundary = gbox_boundary(src, pts_per_side)\n", + "\n", + " _shape\n", + " # _XY = tr.back(unstack_xy())\n", + " # roi_src = roi_from_points(stack_xy(_XY), src.shape, padding, align=align)\n", + "\n", + " # if roi_is_empty(roi_src):\n", + " # return (roi_src, np.s_[0:0, 0:0])\n", + "\n", + " # # project src roi back into dst and compute roi from that\n", + " # xy = tr(unstack_xy(roi_boundary(roi_src, pts_per_side)))\n", + "\n", + " # # `padding=0` is to avoid adding padding twice\n", + " # roi_dst = roi_from_points(stack_xy(xy), dst.shape, padding=0)\n", + " # return (roi_src, roi_dst)\n", + "\n", + "src_roi, dst_roi = _relative_rois(src, dst_1, tr, pts_per_side=pts_per_side, padding=padding, align=align)\n", + "assert dst_roi[1] == slice(0, 193)\n", + "\n", + "src_2_roi, dst_2_roi = _relative_rois(src, dst_2, tr, pts_per_side=pts_per_side, padding=padding, align=align)\n", + "\n", + "assert dst_2_roi[1] == slice(0, 256)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "" + ], + "text/plain": [ + "Geometry(POLYGON ((19953017.257678803 -1938227.3171200808, 19950721.02969546 -2053913.3033035283, -20008928.163236532 -2055973.5880520523, -20007259.28274623 -1940157.5023554089, 19953017.257678803 -1938227.3171200808)), EPSG:3857)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from odc.geo.geom import polygon\n", + "\n", + "\n", + "dst_boundary = polygon(dst_1.boundary(pts_per_side=pts_per_side).tolist(), crs=dst_1.crs)\n", + "src_boundary = polygon(src.boundary(pts_per_side=pts_per_side).tolist(), crs=src.crs)\n", + "\n", + "dst = dst_2\n", + "\n", + "src_extent = src.extent.to_crs(dst.crs)\n", + "\n", + "intersection = src_extent.intersection(dst.extent)\n", + "\n", + "src_extent\n", + "\n", + "# # Convert to pixel space\n", + "\n", + "# xx, yy = np.asarray([pt for pt in intersection.boundary.coords]).T\n", + "\n", + "xx, yy = dst.wld2pix(xx, yy)\n", + "\n", + "# xy = [xy_(x, y) for x, y in zip(xx, yy)]\n", + "# xy\n", + "\n", + "# roi_from_points(stack_xy(xy), dst.shape, padding=0)\n", + "\n", + "\n", + "\n", + "# # dst_boundary = polygon(dst_1.boundary(pts_per_side=pts_per_side).tolist(), crs=dst_1.crs)\n", + "# # src_boundary = polygon(src.boundary(pts_per_side=pts_per_side).tolist(), crs=src.crs)\n", + "\n", + "# # src_in_dst = src_boundary.to_crs(dst_1.crs)\n", + "\n", + "# # overlap = dst_boundary.intersection(src_in_dst)\n", + "# # overlap\n" + ] + }, + { + "cell_type": "code", + "execution_count": 171, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(-20008062.859284565, -1995923.682),\n", + " (-19998372.598, -1995923.682),\n", + " (-19998372.598, -2035059.426),\n", + " (-20008626.79545321, -2035059.426),\n", + " (-20008062.859284565, -1995923.682)]" + ] + }, + "execution_count": 171, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "intersection.boundary.coords" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(0.0, 0.0),\n", + " (64.0, 0.0),\n", + " (128.0, 0.0),\n", + " (192.0, 0.0),\n", + " (256.0, 0.0),\n", + " (256.0, 64.0),\n", + " (256.0, 128.0),\n", + " (256.0, 192.0),\n", + " (256.0, 256.0),\n", + " (192.0, 256.0),\n", + " (128.0, 256.0),\n", + " (64.0, 256.0),\n", + " (0.0, 256.0),\n", + " (0.0, 192.0),\n", + " (0.0, 128.0),\n", + " (0.0, 64.0),\n", + " (0.0, 0.0)]" + ] + }, + "execution_count": 152, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dst_boundary.boundary.coords" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(10326779.455325058, -20681803.53243736),\n", + " (10326636.007173292, -20716881.293139733),\n", + " (10326490.968105443, -20752153.600514915),\n", + " (10326344.311481008, -20787622.618234247),\n", + " (10326196.010061376, -20823290.54630078),\n", + " (10361963.192913348, -20823339.102076493),\n", + " (10397729.792269738, -20823186.491820775),\n", + " (10433493.552312192, -20822832.744352557),\n", + " (10469252.2182955, -20822277.926461235),\n", + " (10468600.575717367, -20786621.258274734),\n", + " (10467956.15818113, -20751163.31349079),\n", + " (10467318.846085818, -20715901.89622177),\n", + " (10466688.522455493, -20680834.846799124),\n", + " (10431716.29471215, -20681365.594643336),\n", + " (10396739.301116558, -20681703.99314979),\n", + " (10361759.651167708, -20681849.9812044),\n", + " (10326779.455325058, -20681803.53243736)]" + ] + }, + "execution_count": 151, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "src_in_dst.boundary.coords" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((slice(3481, 5367, None), slice(6273, 8170, None)),\n", + " (slice(0, 256, None), slice(0, 0, None)))" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from odc.geo.overlap import _relative_rois\n", + "\n", + "_relative_rois(src, dst, tr, 5, -1, None)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[XY(x=-0.10159731112071313, y=-4.427431721906032),\n", + " XY(x=64.98885619704379, y=-3.3439970225444995),\n", + " XY(x=130.08235336779035, y=-2.2758573073297157),\n", + " XY(x=195.17885096525424, y=-1.2230158842248784),\n", + " XY(x=-524027.72169427166, y=-0.1854760142014129),\n", + " XY(x=-524028.74082344375, y=64.94308755152815),\n", + " XY(x=-524029.762836038, y=130.08663552844155),\n", + " XY(x=-524030.7877351886, y=195.24521028103482),\n", + " XY(x=-524031.81552404014, y=260.4188542199372),\n", + " XY(x=191.0241912441852, y=259.3695549964832),\n", + " XY(x=125.86687658549636, y=258.30478095856233),\n", + " XY(x=60.71257543217507, y=257.2245354113038),\n", + " XY(x=-4.438668792456156, y=256.1288217075198),\n", + " XY(x=-3.3498124120524153, y=190.9672164733238),\n", + " XY(x=-2.2640172564133536, y=125.82066739388029),\n", + " XY(x=-1.181279995769728, y=60.68913210241226)]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "transformer_to = Transformer.from_crs(src.crs, dst.crs, always_xy=True,)\n", + "\n", + "# xy_pix_src is in pixel space of source\n", + "xx, yy = np.asarray([pt.xy for pt in xy_pix_src]).T\n", + "\n", + "# Convert to world coordinates\n", + "xx, yy = src.pix2wld(xx, yy)\n", + "\n", + "# Transform to destination crs\n", + "xx_p, yy_p = transformer_to.transform(xx, yy, errcheck=True)\n", + "\n", + "# print(f\"This should be negative {xx_p[0]}\")\n", + "\n", + "# Uncommenting this fixes the whole thing, but it's not the right way to do it\n", + "# for i, n in enumerate(xx_p):\n", + "# if n > 0:\n", + "# xx_p[i] = n * -1\n", + "\n", + "# Convert back to pixel space of destination\n", + "# NOTE: this is the step that is resulting in incorrect coordinates\n", + "xx_n, yy_n = dst.wld2pix(*(xx_p, yy_p))\n", + "xys_new = [xy_(x, y) for x, y in zip(xx_n, yy_n)]\n", + "\n", + "# Coords are borked\n", + "xys_new" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([162670. , 167422.5, 172175. , 176927.5, 181680. , 181680. ,\n", + " 181680. , 181680. , 181680. , 176927.5, 172175. , 167422.5,\n", + " 162670. , 162670. , 162670. , 162670. ], dtype=float32)" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xy_pix_src" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([162670. , 167422.5, 172175. , 176927.5, 181680. , 181680. ,\n", + " 181680. , 181680. , 181680. , 176927.5, 172175. , 167422.5,\n", + " 162670. , 162670. , 162670. , 162670. ], dtype=float32)" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wgs84_xx, wgs84" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Orig: 162670.00000 8065250.00000\n", + "WGS: 179.82415 -17.47353\n", + "WM: 20017932.69775 -1976017.38362\n", + "WG: 20017932.69775 -1976017.38362\n", + "Pixel: -0.10160 -4.42743\n", + "\n", + "Orig: 181680.00000 8065250.00000\n", + "WGS: -179.99706 -17.47631\n", + "WM: -20037181.32181 -1976341.62611\n", + "WG: -20037181.32181 -1976341.62611\n", + "Pixel: -524027.72169 -0.18548\n", + "\n" + ] + } + ], + "source": [ + "test_coords = [\n", + " (162670.0, 8065250.0),\n", + " (181680.0, 8065250.0)\n", + "]\n", + "\n", + "args = {\n", + " \"always_xy\": True,\n", + " # \"force_over\": True\n", + "}\n", + "\n", + "wgs84 = Transformer.from_crs(\"EPSG:32701\", \"EPSG:4326\", **args)\n", + "webmercator = Transformer.from_crs(\"EPSG:32701\", \"EPSG:3857\", **args)\n", + "wgs_to_web = Transformer.from_crs(\"EPSG:4326\", \"EPSG:3857\", **args)\n", + "\n", + "for coord in test_coords:\n", + " x, y = coord\n", + " w_x, w_y = wgs84.transform(x, y)\n", + "\n", + " # if w_x <= -179.99:\n", + " # print(f\"Adjusting {w_x} to {w_x + 360}\")\n", + "\n", + " # w_x += 360\n", + "\n", + " wm_x, wm_y = webmercator.transform(x, y)\n", + " wg_x, wg_y = wgs_to_web.transform(w_x, w_y)\n", + "\n", + " p_x, p_y = dst.wld2pix(wm_x, wm_y)\n", + "\n", + " # Print the 4 sets of coords aligned nicely in a table with padding\n", + " print(f\"Orig: {x:10.5f} {y:10.5f}\")\n", + " print(f\"WGS: {w_x:10.5f} {w_y:10.5f}\")\n", + " print(f\"WM: {wm_x:10.5f} {wm_y:10.5f}\")\n", + " print(f\"WG: {wg_x:10.5f} {wg_y:10.5f}\")\n", + " print(f\"Pixel: {p_x:10.5f} {p_y:10.5f}\\n\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'dst_pix' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[72], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mdst_pix\u001b[49m\n", + "\u001b[0;31mNameError\u001b[0m: name 'dst_pix' is not defined" + ] + } + ], + "source": [ + "dst" + ] + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "262143.98348895763" + ] + }, + "execution_count": 197, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "((~dst._affine) * (xx_p,yy_p))[0][0]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/odc/geo/Test_AM.ipynb b/odc/geo/Test_AM.ipynb new file mode 100644 index 0000000..ba4af61 --- /dev/null +++ b/odc/geo/Test_AM.ipynb @@ -0,0 +1,521 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from odc.geo.types import xy_\n", + "import numpy as np\n", + "from pyproj import Transformer\n", + "from odc.geo.geobox import GeoBox\n", + "from affine import Affine\n", + "\n", + "from odc.geo.overlap import roi_boundary, unstack_xy, stack_xy, gbox_boundary, roi_from_points, native_pix_transform, _relative_rois\n", + "\n", + "pts_per_side = 5\n", + "padding = 1\n", + "align = True\n", + "\n", + "dst_affine_1 = Affine(\n", + " 152.874,\n", + " 0.0,\n", + " -20037508.342,\n", + " 0.0,\n", + " -152.874,\n", + " -1995923.682,\n", + ")\n", + "dst_affine_2 = Affine(\n", + " 76.43702828517416,\n", + " 0.0,\n", + " 20017940.46354824,\n", + " 0.0,\n", + " -76.43702828518872,\n", + " -1976355.8033415154,\n", + ")\n", + "dst_1 = GeoBox((256, 256), dst_affine_1, \"EPSG:3857\")\n", + "dst_2 = GeoBox((512, 512), dst_affine_2, \"EPSG:3857\")\n", + "\n", + "src_affine = Affine(10.0, 0.0, 99960.0, 0.0, -10.0, 8100040.0)\n", + "src = GeoBox((10980, 10980), src_affine, \"EPSG:32701\")\n", + "\n", + "# # Do this the internal odc.geo.overlay way\n", + "# # NOTE: These functions hide the world/pixel conversion.\n", + "tr = native_pix_transform(src, dst_1)\n", + "\n", + "# from odc.geo.overlap import _relative_rois\n", + "\n", + "# _relative_rois(src, dst, tr, 5, 1, None)\n", + "\n", + "# xy = tr.back(unstack_xy(gbox_boundary(dst, pts_per_side)))\n", + "# roi_src = roi_from_points(stack_xy(xy), src.shape, padding, align=align)\n", + "\n", + "# xy_pix_src = unstack_xy(roi_boundary(roi_src, pts_per_side))\n", + "\n", + "# xx, yy = np.asarray([pt.xy for pt in xy_pix_src]).T\n", + "\n", + "# # This goes via world transform to a pixel space\n", + "# xys = tr([xy_(x, y) for x, y in zip(xx, yy)])\n", + "# xys" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name '_shape' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[2], line 30\u001b[0m\n\u001b[1;32m 16\u001b[0m _shape\n\u001b[1;32m 17\u001b[0m \u001b[38;5;66;03m# _XY = tr.back(unstack_xy())\u001b[39;00m\n\u001b[1;32m 18\u001b[0m \u001b[38;5;66;03m# roi_src = roi_from_points(stack_xy(_XY), src.shape, padding, align=align)\u001b[39;00m\n\u001b[1;32m 19\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 27\u001b[0m \u001b[38;5;66;03m# roi_dst = roi_from_points(stack_xy(xy), dst.shape, padding=0)\u001b[39;00m\n\u001b[1;32m 28\u001b[0m \u001b[38;5;66;03m# return (roi_src, roi_dst)\u001b[39;00m\n\u001b[0;32m---> 30\u001b[0m src_roi, dst_roi \u001b[38;5;241m=\u001b[39m \u001b[43m_relative_rois\u001b[49m\u001b[43m(\u001b[49m\u001b[43msrc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdst_1\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpts_per_side\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpts_per_side\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpadding\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mpadding\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43malign\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43malign\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 31\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m dst_roi[\u001b[38;5;241m1\u001b[39m] \u001b[38;5;241m==\u001b[39m \u001b[38;5;28mslice\u001b[39m(\u001b[38;5;241m0\u001b[39m, \u001b[38;5;241m193\u001b[39m)\n\u001b[1;32m 33\u001b[0m src_2_roi, dst_2_roi \u001b[38;5;241m=\u001b[39m _relative_rois(src, dst_2, tr, pts_per_side\u001b[38;5;241m=\u001b[39mpts_per_side, padding\u001b[38;5;241m=\u001b[39mpadding, align\u001b[38;5;241m=\u001b[39malign)\n", + "Cell \u001b[0;32mIn[2], line 16\u001b[0m, in \u001b[0;36m_relative_rois\u001b[0;34m(src, dst, tr, pts_per_side, padding, align)\u001b[0m\n\u001b[1;32m 13\u001b[0m dst_boundary \u001b[38;5;241m=\u001b[39m gbox_boundary(dst, pts_per_side)\n\u001b[1;32m 14\u001b[0m src_boundary \u001b[38;5;241m=\u001b[39m gbox_boundary(src, pts_per_side)\n\u001b[0;32m---> 16\u001b[0m \u001b[43m_shape\u001b[49m\n", + "\u001b[0;31mNameError\u001b[0m: name '_shape' is not defined" + ] + } + ], + "source": [ + "from odc.geo.geobox import GeoBoxBase\n", + "from typing import Optional\n", + "from odc.geo.overlap import roi_is_empty, PointTransform\n", + "\n", + "def _relative_rois(\n", + " src: GeoBoxBase,\n", + " dst: GeoBoxBase,\n", + " tr: PointTransform,\n", + " pts_per_side: int,\n", + " padding: int,\n", + " align: Optional[int],\n", + "):\n", + " dst_boundary = gbox_boundary(dst, pts_per_side)\n", + " src_boundary = gbox_boundary(src, pts_per_side)\n", + "\n", + " _shape\n", + " # _XY = tr.back(unstack_xy())\n", + " # roi_src = roi_from_points(stack_xy(_XY), src.shape, padding, align=align)\n", + "\n", + " # if roi_is_empty(roi_src):\n", + " # return (roi_src, np.s_[0:0, 0:0])\n", + "\n", + " # # project src roi back into dst and compute roi from that\n", + " # xy = tr(unstack_xy(roi_boundary(roi_src, pts_per_side)))\n", + "\n", + " # # `padding=0` is to avoid adding padding twice\n", + " # roi_dst = roi_from_points(stack_xy(xy), dst.shape, padding=0)\n", + " # return (roi_src, roi_dst)\n", + "\n", + "src_roi, dst_roi = _relative_rois(src, dst_1, tr, pts_per_side=pts_per_side, padding=padding, align=align)\n", + "assert dst_roi[1] == slice(0, 193)\n", + "\n", + "src_2_roi, dst_2_roi = _relative_rois(src, dst_2, tr, pts_per_side=pts_per_side, padding=padding, align=align)\n", + "\n", + "assert dst_2_roi[1] == slice(0, 256)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/svg+xml": [ + "" + ], + "text/plain": [ + "Geometry(POLYGON ((19953017.257678803 -1938227.3171200808, 19950721.02969546 -2053913.3033035283, -20008928.163236532 -2055973.5880520523, -20007259.28274623 -1940157.5023554089, 19953017.257678803 -1938227.3171200808)), EPSG:3857)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from odc.geo.geom import polygon\n", + "\n", + "\n", + "dst_boundary = polygon(dst_1.boundary(pts_per_side=pts_per_side).tolist(), crs=dst_1.crs)\n", + "src_boundary = polygon(src.boundary(pts_per_side=pts_per_side).tolist(), crs=src.crs)\n", + "\n", + "dst = dst_2\n", + "\n", + "src_extent = src.extent.to_crs(dst.crs)\n", + "\n", + "intersection = src_extent.intersection(dst.extent)\n", + "\n", + "src_extent\n", + "\n", + "# # Convert to pixel space\n", + "\n", + "# xx, yy = np.asarray([pt for pt in intersection.boundary.coords]).T\n", + "\n", + "xx, yy = dst.wld2pix(xx, yy)\n", + "\n", + "# xy = [xy_(x, y) for x, y in zip(xx, yy)]\n", + "# xy\n", + "\n", + "# roi_from_points(stack_xy(xy), dst.shape, padding=0)\n", + "\n", + "\n", + "\n", + "# # dst_boundary = polygon(dst_1.boundary(pts_per_side=pts_per_side).tolist(), crs=dst_1.crs)\n", + "# # src_boundary = polygon(src.boundary(pts_per_side=pts_per_side).tolist(), crs=src.crs)\n", + "\n", + "# # src_in_dst = src_boundary.to_crs(dst_1.crs)\n", + "\n", + "# # overlap = dst_boundary.intersection(src_in_dst)\n", + "# # overlap\n" + ] + }, + { + "cell_type": "code", + "execution_count": 171, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(-20008062.859284565, -1995923.682),\n", + " (-19998372.598, -1995923.682),\n", + " (-19998372.598, -2035059.426),\n", + " (-20008626.79545321, -2035059.426),\n", + " (-20008062.859284565, -1995923.682)]" + ] + }, + "execution_count": 171, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "intersection.boundary.coords" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(0.0, 0.0),\n", + " (64.0, 0.0),\n", + " (128.0, 0.0),\n", + " (192.0, 0.0),\n", + " (256.0, 0.0),\n", + " (256.0, 64.0),\n", + " (256.0, 128.0),\n", + " (256.0, 192.0),\n", + " (256.0, 256.0),\n", + " (192.0, 256.0),\n", + " (128.0, 256.0),\n", + " (64.0, 256.0),\n", + " (0.0, 256.0),\n", + " (0.0, 192.0),\n", + " (0.0, 128.0),\n", + " (0.0, 64.0),\n", + " (0.0, 0.0)]" + ] + }, + "execution_count": 152, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "dst_boundary.boundary.coords" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[(10326779.455325058, -20681803.53243736),\n", + " (10326636.007173292, -20716881.293139733),\n", + " (10326490.968105443, -20752153.600514915),\n", + " (10326344.311481008, -20787622.618234247),\n", + " (10326196.010061376, -20823290.54630078),\n", + " (10361963.192913348, -20823339.102076493),\n", + " (10397729.792269738, -20823186.491820775),\n", + " (10433493.552312192, -20822832.744352557),\n", + " (10469252.2182955, -20822277.926461235),\n", + " (10468600.575717367, -20786621.258274734),\n", + " (10467956.15818113, -20751163.31349079),\n", + " (10467318.846085818, -20715901.89622177),\n", + " (10466688.522455493, -20680834.846799124),\n", + " (10431716.29471215, -20681365.594643336),\n", + " (10396739.301116558, -20681703.99314979),\n", + " (10361759.651167708, -20681849.9812044),\n", + " (10326779.455325058, -20681803.53243736)]" + ] + }, + "execution_count": 151, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "src_in_dst.boundary.coords" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "((slice(3481, 5367, None), slice(6273, 8170, None)),\n", + " (slice(0, 256, None), slice(0, 0, None)))" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from odc.geo.overlap import _relative_rois\n", + "\n", + "_relative_rois(src, dst, tr, 5, -1, None)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[XY(x=-0.10159731112071313, y=-4.427431721906032),\n", + " XY(x=64.98885619704379, y=-3.3439970225444995),\n", + " XY(x=130.08235336779035, y=-2.2758573073297157),\n", + " XY(x=195.17885096525424, y=-1.2230158842248784),\n", + " XY(x=-524027.72169427166, y=-0.1854760142014129),\n", + " XY(x=-524028.74082344375, y=64.94308755152815),\n", + " XY(x=-524029.762836038, y=130.08663552844155),\n", + " XY(x=-524030.7877351886, y=195.24521028103482),\n", + " XY(x=-524031.81552404014, y=260.4188542199372),\n", + " XY(x=191.0241912441852, y=259.3695549964832),\n", + " XY(x=125.86687658549636, y=258.30478095856233),\n", + " XY(x=60.71257543217507, y=257.2245354113038),\n", + " XY(x=-4.438668792456156, y=256.1288217075198),\n", + " XY(x=-3.3498124120524153, y=190.9672164733238),\n", + " XY(x=-2.2640172564133536, y=125.82066739388029),\n", + " XY(x=-1.181279995769728, y=60.68913210241226)]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "transformer_to = Transformer.from_crs(src.crs, dst.crs, always_xy=True,)\n", + "\n", + "# xy_pix_src is in pixel space of source\n", + "xx, yy = np.asarray([pt.xy for pt in xy_pix_src]).T\n", + "\n", + "# Convert to world coordinates\n", + "xx, yy = src.pix2wld(xx, yy)\n", + "\n", + "# Transform to destination crs\n", + "xx_p, yy_p = transformer_to.transform(xx, yy, errcheck=True)\n", + "\n", + "# print(f\"This should be negative {xx_p[0]}\")\n", + "\n", + "# Uncommenting this fixes the whole thing, but it's not the right way to do it\n", + "# for i, n in enumerate(xx_p):\n", + "# if n > 0:\n", + "# xx_p[i] = n * -1\n", + "\n", + "# Convert back to pixel space of destination\n", + "# NOTE: this is the step that is resulting in incorrect coordinates\n", + "xx_n, yy_n = dst.wld2pix(*(xx_p, yy_p))\n", + "xys_new = [xy_(x, y) for x, y in zip(xx_n, yy_n)]\n", + "\n", + "# Coords are borked\n", + "xys_new" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([162670. , 167422.5, 172175. , 176927.5, 181680. , 181680. ,\n", + " 181680. , 181680. , 181680. , 176927.5, 172175. , 167422.5,\n", + " 162670. , 162670. , 162670. , 162670. ], dtype=float32)" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "xy_pix_src" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([162670. , 167422.5, 172175. , 176927.5, 181680. , 181680. ,\n", + " 181680. , 181680. , 181680. , 176927.5, 172175. , 167422.5,\n", + " 162670. , 162670. , 162670. , 162670. ], dtype=float32)" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wgs84_xx, wgs84" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Orig: 162670.00000 8065250.00000\n", + "WGS: 179.82415 -17.47353\n", + "WM: 20017932.69775 -1976017.38362\n", + "WG: 20017932.69775 -1976017.38362\n", + "Pixel: -0.10160 -4.42743\n", + "\n", + "Orig: 181680.00000 8065250.00000\n", + "WGS: -179.99706 -17.47631\n", + "WM: -20037181.32181 -1976341.62611\n", + "WG: -20037181.32181 -1976341.62611\n", + "Pixel: -524027.72169 -0.18548\n", + "\n" + ] + } + ], + "source": [ + "test_coords = [\n", + " (162670.0, 8065250.0),\n", + " (181680.0, 8065250.0)\n", + "]\n", + "\n", + "args = {\n", + " \"always_xy\": True,\n", + " # \"force_over\": True\n", + "}\n", + "\n", + "wgs84 = Transformer.from_crs(\"EPSG:32701\", \"EPSG:4326\", **args)\n", + "webmercator = Transformer.from_crs(\"EPSG:32701\", \"EPSG:3857\", **args)\n", + "wgs_to_web = Transformer.from_crs(\"EPSG:4326\", \"EPSG:3857\", **args)\n", + "\n", + "for coord in test_coords:\n", + " x, y = coord\n", + " w_x, w_y = wgs84.transform(x, y)\n", + "\n", + " # if w_x <= -179.99:\n", + " # print(f\"Adjusting {w_x} to {w_x + 360}\")\n", + "\n", + " # w_x += 360\n", + "\n", + " wm_x, wm_y = webmercator.transform(x, y)\n", + " wg_x, wg_y = wgs_to_web.transform(w_x, w_y)\n", + "\n", + " p_x, p_y = dst.wld2pix(wm_x, wm_y)\n", + "\n", + " # Print the 4 sets of coords aligned nicely in a table with padding\n", + " print(f\"Orig: {x:10.5f} {y:10.5f}\")\n", + " print(f\"WGS: {w_x:10.5f} {w_y:10.5f}\")\n", + " print(f\"WM: {wm_x:10.5f} {wm_y:10.5f}\")\n", + " print(f\"WG: {wg_x:10.5f} {wg_y:10.5f}\")\n", + " print(f\"Pixel: {p_x:10.5f} {p_y:10.5f}\\n\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'dst_pix' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[72], line 1\u001b[0m\n\u001b[0;32m----> 1\u001b[0m \u001b[43mdst_pix\u001b[49m\n", + "\u001b[0;31mNameError\u001b[0m: name 'dst_pix' is not defined" + ] + } + ], + "source": [ + "dst" + ] + }, + { + "cell_type": "code", + "execution_count": 197, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "262143.98348895763" + ] + }, + "execution_count": 197, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "((~dst._affine) * (xx_p,yy_p))[0][0]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/odc/geo/Test_AM_Again.ipynb b/odc/geo/Test_AM_Again.ipynb new file mode 100644 index 0000000..37c2566 --- /dev/null +++ b/odc/geo/Test_AM_Again.ipynb @@ -0,0 +1,939 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.Dataset> Size: 100MB\n",
+       "Dimensions:      (latitude: 5000, longitude: 5000, time: 1)\n",
+       "Coordinates:\n",
+       "  * latitude     (latitude) float64 40kB -18.0 -18.0 -18.0 ... -19.5 -19.5 -19.5\n",
+       "  * longitude    (longitude) float64 40kB 180.0 180.0 180.0 ... 181.5 181.5\n",
+       "    spatial_ref  int32 4B 4326\n",
+       "  * time         (time) datetime64[ns] 8B 2024-01-28T22:01:06.923200\n",
+       "Data variables:\n",
+       "    red          (time, latitude, longitude) float32 100MB nan nan ... nan nan
" + ], + "text/plain": [ + " Size: 100MB\n", + "Dimensions: (latitude: 5000, longitude: 5000, time: 1)\n", + "Coordinates:\n", + " * latitude (latitude) float64 40kB -18.0 -18.0 -18.0 ... -19.5 -19.5 -19.5\n", + " * longitude (longitude) float64 40kB 180.0 180.0 180.0 ... 181.5 181.5\n", + " spatial_ref int32 4B 4326\n", + " * time (time) datetime64[ns] 8B 2024-01-28T22:01:06.923200\n", + "Data variables:\n", + " red (time, latitude, longitude) float32 100MB nan nan ... nan nan" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from pystac import Item\n", + "from affine import Affine\n", + "from odc.geo.geobox import GeoBox\n", + "\n", + "from ldn.utils import http_to_s3_url\n", + "\n", + "from odc.stac import load, configure_s3_access\n", + "\n", + "url = 'https://landsatlook.usgs.gov/stac-server/collections/landsat-c2l2-sr/items/LC09_L2SR_073073_20240128_20240130_02_T1_SR'\n", + "item = Item.from_file(url)\n", + "\n", + "src_geobox = GeoBox(item.properties[\"proj:shape\"], Affine(*item.properties[\"proj:transform\"]), crs=item.properties[\"proj:epsg\"])\n", + "\n", + "# This is wrong... it's world spanning.\n", + "src_geobox.geographic_extent\n", + "\n", + "shape = (5000, 5000)\n", + "transform = Affine(0.0003, 0.0, 180.0, 0.0, -0.0003, -18.0)\n", + "crs = 'EPSG:4326'\n", + "\n", + "dst_geobox = GeoBox(shape, transform, crs)\n", + "\n", + "configure_s3_access(cloud_defaults=True, requester_pays=True)\n", + "\n", + "# Can't load data in the target geobox\n", + "data = load([item], geobox=dst_geobox, chunks={}, bands=[\"red\"], patch_url=http_to_s3_url).compute()\n", + "data # Empty" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "\n", + "
<xarray.DataArray 'red' ()> Size: 8B\n",
+       "array(nan)\n",
+       "Coordinates:\n",
+       "    spatial_ref  int32 4B 4326
" + ], + "text/plain": [ + " Size: 8B\n", + "array(nan)\n", + "Coordinates:\n", + " spatial_ref int32 4B 4326" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data.red.max()" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "32601" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# item.properties[\"proj:shape\"]\n", + "item.properties[\"proj:epsg\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "src_geobox.geographic_extent.explore()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "src_geobox.geographic_extent.boundingbox" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "data = load([item], chunks={}, crs=\"utm\", bands=[\"red\"]).compute()\n", + "data" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "f" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/odc/geo/Test_Gridspec.ipynb b/odc/geo/Test_Gridspec.ipynb new file mode 100644 index 0000000..2795ca6 --- /dev/null +++ b/odc/geo/Test_Gridspec.ipynb @@ -0,0 +1,153 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from odc.geo.gridspec import GridSpec, XY" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Affine(0.0003, 0.0, -105.00000000000001,\n", + " 0.0, -0.0003, -13.500000000000014)" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from odc.geo.gridspec import GridSpec, XY\n", + "\n", + "WGS84GRID30 = GridSpec(\"EPSG:4326\", tile_shape=(5000, 5000), resolution=0.0003, origin=XY(-180, -90))\n", + "\n", + "tile = (50, 50)\n", + "geobox = WGS84GRID30.tile_geobox(tile)\n", + "\n", + "geobox.affine" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.4999999999999998" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from odc.geo.types import shape_, res_\n", + "\n", + "tile_shape = shape_((5000, 5000))\n", + "resolution = res_(0.0003)\n", + "\n", + "tile_shape.x * abs(resolution.x)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.0029999999999999996" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "10 * abs(resolution.x)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import geopandas as gpd\n", + "from shapely.geometry import shape\n", + "\n", + "geojson = geometry=proc.items[0].geometry\n", + "\n", + "geom = [shape(geojson)]\n", + "gdf = gpd.GeoDataFrame({'geometry':geom}, crs=\"epsg:4326\")\n", + " \n", + "gdf.explore()" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "ename": "ValueError", + "evalue": "cannot convert float NaN to integer", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[1], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mdep_tools\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mgrids\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m get_tiles\n\u001b[0;32m----> 3\u001b[0m tiles \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mt\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mt\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mget_tiles\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n", + "Cell \u001b[0;32mIn[1], line 3\u001b[0m, in \u001b[0;36m\u001b[0;34m(.0)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mdep_tools\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mgrids\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m get_tiles\n\u001b[0;32m----> 3\u001b[0m tiles \u001b[38;5;241m=\u001b[39m \u001b[43m[\u001b[49m\u001b[43mt\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mt\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mget_tiles\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\n", + "File \u001b[0;32m~/git/opendatacube/odc-geo/odc/geo/gridspec.py:223\u001b[0m, in \u001b[0;36mGridSpec.tiles_from_geopolygon\u001b[0;34m(self, geopolygon, geobox_cache)\u001b[0m\n\u001b[1;32m 220\u001b[0m geopolygon \u001b[38;5;241m=\u001b[39m geopolygon\u001b[38;5;241m.\u001b[39mto_crs(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcrs, check_and_fix\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 221\u001b[0m bbox \u001b[38;5;241m=\u001b[39m geopolygon\u001b[38;5;241m.\u001b[39mboundingbox\n\u001b[0;32m--> 223\u001b[0m \u001b[43m\u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mtile_index\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtile_geobox\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtiles\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbbox\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mgeobox_cache\u001b[49m\u001b[43m)\u001b[49m\u001b[43m:\u001b[49m\n\u001b[1;32m 224\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mgeopolygon\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdisjoint\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtile_geobox\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mextent\u001b[49m\u001b[43m)\u001b[49m\u001b[43m:\u001b[49m\n\u001b[1;32m 225\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01myield\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43mtile_index\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtile_geobox\u001b[49m\u001b[43m)\u001b[49m\n", + "File \u001b[0;32m~/git/opendatacube/odc-geo/odc/geo/gridspec.py:197\u001b[0m, in \u001b[0;36mGridSpec.tiles\u001b[0;34m(self, bounds, geobox_cache)\u001b[0m\n\u001b[1;32m 194\u001b[0m geobox_cache[tile_index] \u001b[38;5;241m=\u001b[39m gbox\n\u001b[1;32m 195\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m gbox\n\u001b[0;32m--> 197\u001b[0m ix1, iy1, ix2, iy2 \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmap\u001b[39m(\u001b[38;5;28mint\u001b[39m, \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43midx_bounds\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbounds\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[1;32m 199\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m iy \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(iy1, iy2):\n\u001b[1;32m 200\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m ix \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mrange\u001b[39m(ix1, ix2):\n", + "File \u001b[0;32m~/git/opendatacube/odc-geo/odc/geo/gridspec.py:159\u001b[0m, in \u001b[0;36mGridSpec.idx_bounds\u001b[0;34m(self, bounds)\u001b[0m\n\u001b[1;32m 156\u001b[0m tol \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1e-8\u001b[39m\n\u001b[1;32m 158\u001b[0m x1, y1, x2, y2 \u001b[38;5;241m=\u001b[39m bounds\n\u001b[0;32m--> 159\u001b[0m ix1, iy1 \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpt2idx\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx1\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mtol\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my1\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mtol\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mxy\n\u001b[1;32m 160\u001b[0m ix2, iy2 \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpt2idx(x2 \u001b[38;5;241m-\u001b[39m tol, y2 \u001b[38;5;241m-\u001b[39m tol)\u001b[38;5;241m.\u001b[39mxy\n\u001b[1;32m 162\u001b[0m ix1, ix2 \u001b[38;5;241m=\u001b[39m \u001b[38;5;28msorted\u001b[39m([ix1, ix2])\n", + "File \u001b[0;32m~/git/opendatacube/odc-geo/odc/geo/gridspec.py:117\u001b[0m, in \u001b[0;36mGridSpec.pt2idx\u001b[0;34m(self, x, y)\u001b[0m\n\u001b[1;32m 108\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mpt2idx\u001b[39m(\u001b[38;5;28mself\u001b[39m, x: \u001b[38;5;28mfloat\u001b[39m, y: \u001b[38;5;28mfloat\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Index2d:\n\u001b[1;32m 109\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 110\u001b[0m \u001b[38;5;124;03m Compute tile index from a point.\u001b[39;00m\n\u001b[1;32m 111\u001b[0m \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 115\u001b[0m \u001b[38;5;124;03m ``(ix, iy)``, index of a tile containing given point\u001b[39;00m\n\u001b[1;32m 116\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[0;32m--> 117\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ixy_(\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_xbin\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbin\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_ybin\u001b[38;5;241m.\u001b[39mbin(y))\n", + "File \u001b[0;32m~/git/opendatacube/odc-geo/odc/geo/math.py:680\u001b[0m, in \u001b[0;36mBin1D.bin\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 678\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbin\u001b[39m(\u001b[38;5;28mself\u001b[39m, x: \u001b[38;5;28mfloat\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mint\u001b[39m:\n\u001b[1;32m 679\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Lookup bin index that ``x`` falls into.\"\"\"\u001b[39;00m\n\u001b[0;32m--> 680\u001b[0m ix \u001b[38;5;241m=\u001b[39m \u001b[43mfloor\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m-\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43morigin\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m/\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msz\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 681\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mint\u001b[39m(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdirection \u001b[38;5;241m*\u001b[39m ix)\n", + "\u001b[0;31mValueError\u001b[0m: cannot convert float NaN to integer" + ] + } + ], + "source": [ + "from dep_tools.grids import get_tiles\n", + "\n", + "tiles = [t for t in get_tiles()]" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/odc/geo/data/ocean-bbox.ipynb b/odc/geo/data/ocean-bbox.ipynb new file mode 100644 index 0000000..92090c3 --- /dev/null +++ b/odc/geo/data/ocean-bbox.ipynb @@ -0,0 +1,64 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The ocean feature collection has 2 features\n", + "The first bounding box is: [46.6821, 36.7005, 54.7369, 47.0487]\n", + "The second bounding box is: [-180.0, -85.609, 180.0, 90.0]\n", + "The bbox of the ocean feature multipolygon is: [46.6821, -85.609, 54.7369, 90.0]\n" + ] + } + ], + "source": [ + "import json\n", + "\n", + "import antimeridian\n", + "\n", + "with open(\"ocean.geojson\") as f:\n", + " ocean = json.load(f)\n", + "\n", + "print(f\"The ocean feature collection has {len(ocean['features'])} features\")\n", + "print(\n", + " f\"The first bounding box is: {antimeridian.bbox(ocean['features'][0]['geometry'])}\"\n", + ")\n", + "print(\n", + " f\"The second bounding box is: {antimeridian.bbox(ocean['features'][1]['geometry'])}\"\n", + ")\n", + "\n", + "from odc.geo.geom import multigeom, Geometry\n", + "\n", + "gg = multigeom([Geometry(f[\"geometry\"], \"epsg:4326\") for f in ocean[\"features\"]])\n", + "\n", + "print(f\"The bbox of the ocean feature multipolygon is: {antimeridian.bbox(gg)}\")" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/odc/geo/data/ocean.geojson b/odc/geo/data/ocean.geojson new file mode 100644 index 0000000..35ff5d5 --- /dev/null +++ b/odc/geo/data/ocean.geojson @@ -0,0 +1 @@ +{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"featurecla":"Ocean","min_zoom":0.0,"scalerank":0},"geometry":{"type":"Polygon","coordinates":[[[49.1103,41.2823],[47.4925,42.9867],[47.5909,43.6603],[46.6821,44.6093],[47.6759,45.6415],[48.6455,45.8063],[49.1013,46.3995],[51.1921,47.0487],[52.0421,46.8047],[53.0427,46.8531],[53.2209,46.2347],[53.0409,45.2591],[52.1675,45.4085],[51.3169,45.2461],[51.2785,44.5149],[50.3057,44.6099],[50.3391,44.2841],[50.8913,44.0311],[51.3425,43.1331],[52.5015,42.7923],[52.6921,42.4439],[52.4463,42.0273],[52.8147,41.1355],[52.9167,41.8681],[53.7217,42.1233],[54.0083,41.5513],[54.7369,40.9511],[53.8583,40.6311],[52.9153,40.8765],[52.6941,40.0337],[53.3579,39.9753],[53.1011,39.2907],[53.8809,38.9521],[53.7355,37.9061],[53.9217,37.1989],[53.8259,36.9651],[52.2641,36.7005],[50.8423,36.8729],[50.1479,37.3747],[49.1997,37.5829],[48.8833,38.3203],[48.8565,38.8155],[49.2233,39.0493],[49.5693,40.1761],[50.3929,40.2565],[50.0849,40.5263],[49.6189,40.5729],[49.1103,41.2823]]]}},{"type":"Feature","properties":{"featurecla":"Ocean","min_zoom":0.0,"scalerank":0},"geometry":{"type":"Polygon","coordinates":[[[180.0,71.5157],[178.7253,71.0988],[178.9034,70.7811],[180.0,70.8322],[180.0,68.9637],[178.6001,69.4001],[175.7241,69.8773],[173.6439,69.8175],[170.4535,70.0971],[170.0083,69.6529],[170.8169,69.0137],[169.5777,68.6939],[167.8357,69.5827],[165.9405,69.4721],[164.0525,69.6683],[162.2791,69.6421],[160.9407,69.4373],[159.7087,69.7221],[159.8303,70.4533],[158.9979,70.8667],[157.0069,71.0315],[152.9689,70.8423],[150.3513,71.6065],[149.5001,72.2001],[140.4681,72.8495],[139.1479,72.4163],[139.8699,71.4879],[138.2341,71.6281],[137.4977,71.3477],[135.5621,71.6553],[133.8577,71.3865],[132.2535,71.8363],[131.2887,70.7871],[129.7161,71.1931],[128.4601,71.9801],[129.0517,72.3987],[128.5913,73.0387],[126.9765,73.5655],[123.2579,73.7351],[123.2007,72.9713],[119.0201,73.1201],[118.7763,73.5877],[115.5679,73.7529],[113.9689,73.5949],[113.5297,73.3351],[113.0195,73.9769],[112.1193,73.7877],[109.4001,74.1801],[110.1513,74.4767],[113.8855,75.3279],[114.1343,75.8477],[113.3315,76.2223],[111.0773,76.7101],[108.1539,76.7233],[107.2401,76.4801],[106.9703,76.9743],[104.7051,77.1275],[106.0667,77.3739],[104.3517,77.6979],[101.9909,77.2875],[101.0353,76.8619],[100.7597,76.4303],[98.9225,76.4469],[96.6783,75.9155],[95.8601,76.1401],[93.2343,76.0473],[92.9007,75.7733],[90.2601,75.6401],[88.3157,75.1439],[87.1669,75.1165],[86.0097,74.4597],[86.8223,73.9369],[82.2501,73.8501],[80.5111,73.6483],[80.6107,72.5829],[81.5001,71.7501],[79.6521,72.3201],[77.5767,72.2673],[75.9031,71.8741],[76.3591,71.1529],[75.2891,71.3357],[75.6835,72.3005],[75.1581,72.8551],[74.6593,72.8323],[74.8909,72.1213],[73.1011,71.4471],[74.3999,70.6319],[73.6019,69.6277],[73.8423,69.0715],[74.9359,68.9893],[74.4693,68.3291],[75.0521,67.7605],[74.1865,67.2843],[73.9211,66.7895],[72.8207,66.5327],[72.4231,66.1727],[71.2801,66.3201],[73.2387,67.7405],[73.6679,68.4079],[72.5647,69.0209],[72.7919,70.3911],[72.4701,71.0903],[71.8481,71.4091],[72.7961,72.2201],[72.5875,72.7763],[69.9401,73.0401],[69.1963,72.8435],[68.5401,71.9345],[66.6947,71.0291],[66.7249,70.7089],[67.2599,69.9287],[66.9301,69.4547],[68.1353,69.3565],[68.1645,69.1443],[69.1807,68.6157],[68.5121,68.0923],[63.5041,69.5475],[60.5501,69.8501],[60.0301,69.5201],[61.0779,68.9407],[59.9415,68.2785],[58.8021,68.8809],[57.3171,68.4663],[55.4427,68.4387],[54.7263,68.0971],[53.4859,68.2013],[54.4717,68.8083],[53.7175,68.8575],[48.1387,67.5225],[47.8943,66.8845],[46.3491,66.6677],[45.5621,67.0101],[45.5553,67.5665],[46.8213,67.6899],[46.2501,68.2501],[43.4529,68.5709],[44.1879,67.9505],[43.6985,67.3525],[44.5323,66.7563],[43.9499,66.0691],[43.0161,66.4187],[42.0931,66.4763],[39.7627,65.4969],[40.4357,64.7645],[39.5935,64.5209],[37.1761,65.1433],[36.5177,64.7803],[37.1421,64.3347],[37.0129,63.8499],[34.9439,64.4145],[34.8149,65.9001],[33.1845,66.6325],[33.9187,66.7597],[38.3829,65.9995],[40.0159,66.2663],[41.1261,66.7917],[41.0599,67.4573],[40.2925,67.9325],[36.5141,69.0635],[33.7755,69.3015],[32.1327,69.9059],[31.1011,69.5581],[30.0055,70.1863],[31.2935,70.4539],[28.1655,71.1855],[26.3701,70.9863],[24.5467,71.0305],[23.0237,70.2021],[21.3785,70.2553],[19.1841,69.8175],[14.7613,67.8107],[10.5277,64.4861],[8.5535,63.4541],[5.9129,62.6145],[4.9921,61.9711],[5.3083,59.6633],[5.6659,58.5881],[7.0489,58.0789],[8.3821,58.3133],[10.3567,59.4699],[11.0273,58.8561],[11.7881,57.4419],[12.6251,56.3071],[12.9429,55.3619],[14.1007,55.4079],[14.6667,56.2009],[15.8799,56.1043],[16.4477,57.0411],[16.8293,58.7199],[17.8693,58.9539],[18.7877,60.0819],[17.8315,60.6367],[17.1197,61.3413],[17.8479,62.7495],[21.3697,64.4137],[21.2135,65.0261],[22.1833,65.7239],[23.9035,66.0069],[25.2941,65.5345],[25.3981,65.1115],[22.4427,63.8179],[21.5361,63.1899],[21.0593,62.6075],[21.5449,61.7053],[21.3223,60.7203],[22.2909,60.3919],[22.8697,59.8465],[26.2553,60.4239],[28.0701,60.5035],[29.1177,60.0281],[27.9811,59.4755],[25.8643,59.6111],[23.3399,59.1873],[23.4267,58.6127],[24.0613,58.2575],[24.4291,58.3835],[24.1207,57.0257],[23.3185,57.0063],[22.5245,57.7535],[21.5819,57.4119],[21.0905,56.7839],[21.0559,56.0311],[21.2685,55.1905],[19.8885,54.8661],[19.6607,54.4261],[18.6963,54.4387],[18.6209,54.6827],[17.6229,54.8517],[14.1197,53.7571],[12.5185,54.4705],[11.9563,54.1965],[10.9395,54.0087],[10.9501,54.3637],[9.9397,54.5967],[9.9219,54.9831],[9.6501,55.4701],[10.3701,56.1901],[10.6679,56.0815],[10.9123,56.4587],[10.3701,56.6101],[10.2501,56.8901],[10.5461,57.2159],[10.5801,57.7301],[9.4245,57.1721],[8.5435,57.1101],[8.0901,56.5401],[8.1203,55.5177],[8.5263,54.9629],[8.5721,54.3957],[8.8007,54.0209],[8.1217,53.5279],[7.9363,53.7483],[7.1005,53.6939],[6.9053,53.4823],[6.0743,53.5105],[4.7061,53.0919],[3.8303,51.6205],[3.3151,51.3459],[1.6391,50.9467],[1.3387,50.1273],[-0.9894,49.3475],[-1.9334,49.7765],[-1.6165,48.6445],[-3.2958,48.9017],[-4.5923,48.6841],[-4.4916,47.9551],[-2.9632,47.5703],[-2.2257,47.0645],[-1.1938,46.0149],[-1.3842,44.0227],[-1.9013,43.4229],[-4.3478,43.4035],[-7.9782,43.7485],[-9.3929,43.0267],[-8.9844,42.5929],[-9.0348,41.8807],[-8.7687,40.7607],[-9.0483,39.7551],[-9.4469,39.3921],[-9.5265,38.7375],[-9.2875,38.3585],[-8.84,38.2663],[-8.7461,37.6515],[-8.8988,36.8689],[-8.3828,36.9789],[-7.8556,36.8383],[-7.4537,37.0979],[-6.5202,36.9429],[-6.2367,36.3677],[-5.8664,36.0299],[-5.3771,35.9469],[-4.3689,36.6779],[-2.1464,36.6741],[-1.4383,37.4431],[-0.6834,37.6423],[-0.4671,38.2925],[0.1113,38.7385],[-0.2787,39.3101],[0.1067,40.1241],[0.7213,40.6783],[0.8105,41.0147],[2.0919,41.2261],[3.0395,41.8921],[3.1005,43.0753],[4.5569,43.3997],[6.5293,43.1289],[8.8889,44.3663],[10.2001,43.9201],[10.5121,42.9315],[12.1067,41.7045],[12.8881,41.2531],[13.6281,41.1883],[14.0607,40.7865],[14.7033,40.6047],[14.9985,40.1731],[15.4137,40.0483],[16.1093,38.9645],[15.8921,38.7509],[15.6841,37.9089],[16.1011,37.9859],[16.6351,38.8437],[17.0529,38.9029],[17.1715,39.4247],[16.4487,39.7955],[16.8697,40.4423],[17.7385,40.2777],[18.2935,39.8109],[18.4803,40.1689],[17.5193,40.8771],[15.8893,41.5411],[16.1699,41.7403],[15.9263,41.9613],[15.1427,41.9551],[14.0299,42.7611],[13.5269,43.5877],[12.5893,44.0915],[12.2615,44.6005],[12.3287,45.3819],[13.1417,45.7367],[13.9377,45.5911],[13.6795,45.4841],[13.6571,45.1371],[13.9523,44.8021],[14.2587,45.2339],[14.9017,45.0761],[14.9203,44.7385],[15.3763,44.3179],[15.1745,44.2433],[16.0155,43.5073],[18.8821,42.2815],[19.5401,41.7201],[19.3191,40.7273],[19.4061,40.2509],[19.9601,39.9151],[20.2177,39.3403],[21.1201,38.3103],[21.6701,36.8451],[22.4901,36.4101],[23.1543,36.4225],[22.7751,37.3051],[23.4101,37.4101],[23.1151,37.9201],[24.0401,37.6551],[24.0251,38.2201],[22.9731,38.9709],[23.3501,39.1901],[22.8497,39.6593],[22.6263,40.2565],[22.8141,40.4761],[23.3431,39.9611],[23.9001,39.9621],[24.4081,40.1251],[23.7149,40.6871],[24.9259,40.9471],[26.0569,40.8241],[26.3581,40.1521],[27.6191,40.9999],[28.8065,41.0549],[28.9885,41.2999],[28.1155,41.6229],[27.6739,42.5779],[28.0391,43.2933],[28.5581,43.7075],[28.8379,44.9139],[29.1417,44.8203],[29.6265,45.0355],[29.6033,45.2933],[30.7489,46.5831],[31.6753,46.7063],[31.7441,46.3335],[33.2987,46.0807],[33.5881,45.8517],[32.4543,45.3275],[33.5469,45.0349],[33.3265,44.5649],[33.8825,44.3615],[35.2401,44.9401],[36.3347,45.1133],[36.5301,45.4701],[35.5101,45.4101],[35.0209,45.6513],[34.9623,46.2733],[35.8237,46.6459],[36.7599,46.6987],[37.4251,47.0223],[39.1213,47.2635],[39.1477,47.0447],[37.6737,46.6367],[38.2331,46.2409],[37.4033,45.4045],[36.6755,45.2447],[37.5391,44.6573],[38.6801,44.2801],[40.3215,43.1287],[40.8755,43.0137],[41.4535,42.6451],[41.7033,41.9631],[41.5541,41.5357],[40.3735,41.0137],[39.5127,41.1029],[38.3477,40.9487],[35.1677,42.0403],[33.5133,42.0191],[32.3481,41.7363],[31.1459,41.0877],[29.2401,41.2201],[28.8201,40.4601],[27.2801,40.4201],[26.1709,39.4637],[26.8047,38.9859],[26.3183,38.2081],[27.0489,37.6535],[27.6413,36.6589],[28.7329,36.6769],[29.7001,36.1443],[30.3911,36.2631],[30.6217,36.6779],[31.6997,36.6443],[32.5093,36.1075],[34.0269,36.2201],[34.7145,36.7955],[35.5511,36.5655],[36.1609,36.6507],[35.7821,36.2751],[36.1499,35.8215],[35.9051,35.4101],[35.9985,34.6449],[34.9555,32.8275],[34.5565,31.5489],[33.7735,30.9675],[32.1925,31.2603],[31.9605,30.9337],[31.6881,31.4297],[30.9769,31.5559],[30.0951,31.4735],[28.9135,30.8701],[26.4953,31.5857],[25.1649,31.5693],[24.9211,31.8995],[23.2369,32.1915],[22.8959,32.6385],[21.5431,32.8433],[20.8545,32.7069],[20.1341,32.2383],[19.8203,31.7519],[20.0533,30.9859],[19.0865,30.2665],[18.0211,30.7635],[15.7139,31.3763],[15.2457,32.2651],[13.9187,32.7121],[13.0833,32.8789],[12.6633,32.7929],[11.4889,33.1371],[11.1085,33.2933],[10.8569,33.7687],[10.3397,33.7859],[10.1497,34.3307],[10.8079,34.8335],[10.9395,35.6991],[10.5933,35.9475],[10.6001,36.4101],[11.1001,36.9001],[11.0289,37.0921],[10.1807,36.7241],[10.2101,37.2301],[9.5101,37.3501],[8.4211,36.9465],[7.7371,36.8857],[7.3305,37.1185],[6.2619,37.1107],[5.3201,36.7165],[4.8157,36.8651],[1.4669,36.6057],[0.5039,36.3013],[-0.1274,35.8887],[-1.2086,35.7149],[-2.1699,35.1685],[-3.6401,35.3999],[-4.591,35.3307],[-5.1938,35.7553],[-5.93,35.7601],[-6.9125,34.1105],[-8.6574,33.2403],[-9.3007,32.5647],[-9.8147,31.1777],[-9.5648,29.9337],[-10.3996,29.0987],[-11.6889,28.1487],[-12.6188,28.0383],[-13.1399,27.6401],[-13.7738,26.6189],[-14.4399,26.2545],[-14.8009,25.6363],[-14.8246,25.1035],[-15.0893,24.5203],[-15.426,24.3591],[-15.9826,23.7235],[-16.3264,23.0179],[-16.2619,22.6793],[-16.5891,22.1583],[-16.9732,21.8857],[-17.0634,20.9999],[-16.5363,20.5679],[-16.2778,20.0925],[-16.3776,19.5939],[-16.1463,18.1085],[-16.2705,17.1671],[-16.5497,16.6739],[-16.463,16.1351],[-16.7007,15.6215],[-17.1852,14.9195],[-17.625,14.7297],[-17.1261,14.3735],[-16.7137,13.5951],[-16.8415,13.1515],[-16.6138,12.1709],[-16.3089,11.9587],[-16.0852,11.5247],[-15.6642,11.4585],[-14.8395,10.8767],[-14.5797,10.2145],[-14.074,9.8863],[-13.2465,8.9031],[-12.949,7.7987],[-12.4281,7.2629],[-11.4388,6.7859],[-9.0048,4.8325],[-7.9741,4.3559],[-7.5189,4.3383],[-5.8344,4.9937],[-4.6499,5.1683],[-2.8561,4.9945],[-1.9647,4.7105],[1.0601,5.9289],[2.6917,6.2589],[4.3257,6.2707],[5.0337,5.6119],[5.3629,4.8881],[5.8983,4.2625],[6.6981,4.2407],[7.0827,4.4647],[7.4621,4.4121],[8.5003,4.7721],[8.4889,4.4957],[8.7449,4.3523],[8.9481,3.9041],[9.4045,3.7345],[9.7953,3.0735],[9.3057,1.1609],[9.4929,1.0101],[8.7981,-1.1113],[9.4053,-2.1443],[11.9151,-5.0379],[12.3225,-6.1001],[12.2275,-6.2944],[12.7283,-6.9271],[13.2365,-8.5626],[12.8755,-9.1669],[13.3873,-10.3736],[13.6865,-10.7311],[13.6337,-12.0386],[12.5001,-13.5477],[11.6401,-16.6731],[11.7949,-18.0691],[12.6087,-19.0453],[13.3525,-20.8728],[14.2577,-22.1112],[14.4081,-23.853],[15.2105,-27.0909],[15.6019,-27.8212],[16.3451,-28.5767],[18.2217,-31.6616],[18.2479,-32.4291],[17.9253,-32.6112],[18.2501,-33.2814],[18.3775,-34.1365],[18.4247,-33.9978],[18.8553,-34.4443],[19.1933,-34.4626],[19.6165,-34.8191],[20.0713,-34.7951],[20.6891,-34.4172],[22.5743,-33.8641],[23.5941,-33.7945],[24.6779,-33.9872],[25.1729,-33.7969],[25.7807,-33.9446],[25.9097,-33.667],[27.4647,-33.227],[28.2197,-32.7719],[30.0557,-31.1402],[31.3257,-29.402],[32.2035,-28.7524],[32.4623,-28.301],[32.9161,-26.2159],[32.6603,-26.1485],[32.5747,-25.7273],[33.0133,-25.3575],[35.0407,-24.4783],[35.4587,-24.1226],[35.6075,-23.7065],[35.3719,-23.5353],[35.5627,-22.09],[35.3859,-22.14],[35.1761,-21.2543],[34.7019,-20.497],[34.7865,-19.784],[37.4111,-17.5863],[39.4527,-16.7209],[40.0893,-16.1007],[40.7755,-14.6917],[40.5997,-14.2019],[40.4785,-10.7654],[40.3167,-10.3171],[39.9497,-10.0984],[39.1865,-8.4855],[39.1947,-7.7039],[39.4401,-6.84],[38.7997,-6.4756],[38.7405,-5.9089],[39.2023,-4.6767],[39.6049,-4.3465],[39.8001,-3.6811],[40.1213,-3.2777],[40.2631,-2.5731],[40.6379,-2.4998],[40.8849,-2.0825],[41.5851,-1.6832],[42.0417,-0.9192],[43.1361,0.2923],[46.5649,2.8553],[47.7409,4.2195],[49.4527,6.8047],[51.0453,10.6409],[51.1113,12.0247],[50.7321,12.0219],[50.2589,11.6797],[49.2679,11.4305],[48.3789,11.3755],[46.6455,10.8165],[44.6143,10.4423],[44.1179,10.4457],[43.4707,11.2777],[42.7159,11.7357],[43.2865,11.9749],[43.3179,12.3901],[41.1793,14.4911],[39.2661,15.9227],[38.4101,17.9983],[37.4819,18.6141],[37.1147,19.8081],[36.9695,20.8375],[37.1887,21.0189],[36.8663,22.0001],[35.5261,23.1025],[35.4937,23.7525],[35.6925,23.9267],[34.1047,26.1423],[32.7349,28.7053],[32.3205,29.7605],[32.4233,29.8511],[33.1369,28.4177],[33.9215,27.6487],[34.1545,27.8233],[34.9227,29.5013],[34.6323,28.0585],[35.1303,28.0635],[36.6397,25.8263],[36.9317,25.6031],[37.4837,24.2855],[38.4929,23.6885],[39.0663,22.5797],[39.1395,21.2919],[39.8017,20.3389],[40.2477,20.1747],[40.9393,19.4865],[41.2215,18.6717],[41.7545,17.8331],[42.2709,17.4747],[42.3481,17.0759],[42.6497,16.7747],[42.8051,15.2621],[42.6049,15.2133],[43.2515,13.7677],[43.2229,13.2209],[43.4831,12.6369],[44.9897,12.6997],[45.6251,13.2911],[47.3545,13.5923],[47.9389,14.0073],[48.6793,14.0033],[49.5747,14.7087],[52.1683,15.5975],[52.3853,16.3825],[54.2393,17.0451],[54.7911,16.9507],[55.2749,17.2283],[55.2701,17.6323],[55.6615,17.8843],[56.2835,17.8761],[56.5123,18.0871],[56.6097,18.5743],[57.2343,18.9481],[57.6945,18.9447],[57.6659,19.7361],[57.8265,20.2431],[58.0343,20.4815],[58.4881,20.4291],[59.8063,22.3105],[59.8081,22.5337],[59.4501,22.6603],[58.7293,23.5657],[57.4035,23.8787],[56.8453,24.2417],[56.3969,24.9247],[56.2611,25.7147],[56.4857,26.3091],[56.3621,26.3959],[54.0081,24.1219],[52.5771,24.1775],[51.7945,24.0199],[51.7575,24.2941],[51.5795,24.2455],[51.3897,24.6275],[51.6067,25.2157],[51.5891,25.8011],[51.2865,26.1147],[51.0135,26.0071],[50.7439,25.4825],[50.8101,24.7549],[50.1133,25.9441],[50.1525,26.6897],[49.4709,27.1101],[49.2997,27.4613],[48.8077,27.6897],[48.0939,29.3063],[48.1833,29.5345],[47.9745,29.9759],[48.5681,29.9269],[48.9413,30.3171],[49.5769,29.9857],[50.1151,30.1479],[51.5209,27.8657],[52.4837,27.5809],[53.4931,26.8125],[54.7151,26.4807],[55.7237,26.9647],[56.4921,27.1433],[56.9709,26.9661],[57.3973,25.7399],[61.4975,25.0783],[66.3729,25.4253],[67.1455,24.6637],[67.4437,23.9449],[68.1767,23.6921],[69.3497,22.8433],[69.6449,22.4507],[69.1641,22.0893],[70.4705,20.8773],[71.1753,20.7575],[72.6307,21.3561],[72.8245,20.4195],[72.8209,19.2083],[73.5343,15.9907],[74.4439,14.6173],[74.8649,12.7419],[75.7465,11.3083],[76.5931,8.8993],[77.5399,7.9655],[77.9413,8.2529],[78.2781,8.9331],[79.1897,9.2167],[78.8855,9.5461],[79.3405,10.3089],[79.8581,10.3573],[79.8625,12.0563],[80.2863,13.0063],[80.0251,15.1365],[80.3249,15.8993],[80.7921,15.9521],[82.1913,16.5567],[82.1929,17.0167],[83.9411,18.3021],[85.0603,19.4787],[86.4993,20.1517],[87.0331,20.7433],[86.9757,21.4955],[88.8889,21.6907],[89.0321,22.0557],[89.7021,21.8571],[89.8475,22.0391],[90.2729,21.8365],[90.5871,22.3929],[90.4961,22.8051],[91.4171,22.7651],[91.8349,22.1829],[92.3685,20.6709],[93.0783,19.8553],[93.6633,19.7271],[93.5411,19.3665],[94.3249,18.2135],[94.5335,17.2773],[94.1889,16.0381],[95.3693,15.7145],[97.1647,16.9287],[97.5971,16.1007],[98.1037,13.6405],[98.5097,13.1225],[98.4283,12.0331],[98.7645,11.4413],[98.4573,10.6753],[98.5535,9.9331],[98.1501,8.3501],[98.3397,7.7945],[98.5039,8.3823],[99.5197,7.3435],[99.6907,6.8483],[100.0859,6.4645],[100.3063,6.0407],[100.1967,5.3125],[100.5575,4.7673],[100.6955,3.9391],[101.2737,3.2703],[101.3907,2.7609],[103.5197,1.2263],[104.2289,1.2931],[104.2479,1.6313],[103.8547,2.5155],[103.5025,2.7911],[103.3321,3.7267],[103.3813,4.8551],[102.9617,5.5245],[101.6231,6.7407],[101.0173,6.8569],[100.4593,7.4297],[100.2797,8.2953],[99.8739,9.2079],[99.2225,9.2393],[99.1537,9.9631],[100.0187,12.3071],[100.0979,13.4069],[100.9785,13.4127],[100.8319,12.6271],[101.6871,12.6459],[102.5851,12.1867],[103.4973,10.6327],[104.3345,10.4867],[105.0763,9.9185],[104.7953,9.2411],[105.1583,8.5997],[106.4051,9.5309],[107.2209,10.3645],[109.2001,11.6669],[109.3353,13.4261],[108.8771,15.2767],[108.2695,16.0797],[107.3619,16.6975],[105.6621,19.0583],[105.8817,19.7521],[106.7151,20.6969],[108.5229,21.7153],[109.8645,21.3951],[109.6277,21.0083],[109.8899,20.2825],[110.4441,20.3411],[110.7855,21.3973],[111.8437,21.5505],[113.2411,22.0515],[113.8069,22.5483],[114.1525,22.2239],[114.7639,22.6681],[115.8907,22.7829],[118.6569,24.5475],[121.1257,28.1357],[121.6845,28.2255],[122.0921,29.8325],[121.5035,30.1429],[121.2643,30.6763],[121.8919,30.9493],[121.9081,31.6923],[120.6205,33.3767],[120.2275,34.3605],[119.1513,34.9099],[119.6647,35.6099],[120.6371,36.1115],[121.1043,36.6513],[122.5201,36.9307],[122.3579,37.4545],[121.7113,37.4811],[120.8235,37.8705],[119.7029,37.1565],[118.9117,37.4485],[118.8783,37.8973],[118.0597,38.0615],[117.5327,38.7377],[118.0427,39.2043],[119.0235,39.2523],[119.6397,39.8981],[121.6405,40.9465],[122.1687,40.4225],[121.3769,39.7503],[121.5861,39.3609],[121.0547,38.8975],[122.1315,39.1705],[122.8677,39.6379],[124.2657,39.9285],[125.3211,39.5515],[125.3867,39.3879],[125.1329,38.8487],[125.2219,38.6659],[124.7123,38.1083],[125.2401,37.8573],[125.2753,37.6691],[125.6891,37.9401],[126.1747,37.7497],[126.8603,36.8939],[126.1175,36.7255],[126.5593,35.6847],[126.3739,34.9347],[126.4857,34.3901],[127.3865,34.4757],[128.1859,34.8905],[129.0915,35.0825],[129.4683,35.6321],[129.4605,36.7843],[129.2129,37.4325],[128.3497,38.6123],[127.3855,39.2135],[127.5335,39.7569],[128.6335,40.1899],[129.7053,40.8829],[129.6675,41.6011],[129.9659,41.9413],[130.4001,42.2801],[130.7801,42.2201],[130.9359,42.5527],[132.2781,43.2845],[132.9063,42.7985],[133.5369,42.8115],[134.8695,43.3983],[138.2197,46.3079],[138.5547,46.9997],[140.0621,48.4467],[140.5131,50.0455],[140.5975,51.2397],[141.3793,52.2389],[141.3453,53.0897],[139.9015,54.1897],[138.8047,54.2547],[138.1647,53.7551],[137.1935,53.9773],[136.7017,54.6037],[135.1263,54.7297],[142.1979,59.0401],[145.4873,59.3365],[148.5449,59.1645],[149.7837,59.6557],[151.3381,59.5041],[151.2657,58.7809],[155.0439,59.1451],[154.2181,59.7583],[156.7207,61.4345],[159.3023,61.7741],[160.1215,60.5443],[162.6579,61.6425],[163.2585,62.4663],[164.4737,62.5507],[163.6697,61.1409],[161.8721,60.3431],[158.3643,58.0557],[156.8105,57.8321],[156.7583,57.3647],[155.9145,56.7679],[155.4337,55.3811],[156.4201,51.7001],[156.7899,51.0111],[158.2313,51.9427],[158.5309,52.9587],[160.0217,53.2027],[160.3689,54.3445],[162.1175,54.8553],[161.7015,55.2857],[162.1297,56.1223],[163.0579,56.1593],[163.1919,57.6151],[162.0531,57.8391],[162.0173,58.2433],[163.2171,59.2111],[163.5393,59.8687],[164.8769,59.7317],[165.8401,60.1601],[166.2951,59.7887],[168.9005,60.5735],[170.3309,59.8819],[170.6985,60.3363],[173.6801,61.6527],[177.3643,62.5219],[179.2283,62.3041],[179.4865,62.5691],[179.3705,62.9827],[178.9083,63.2521],[178.3131,64.0759],[177.4113,64.6083],[178.7073,64.5349],[180.0,64.9796],[180.0,-16.0671],[178.5968,-16.6392],[178.7251,-17.012],[180.0,-16.5552],[180.0,-84.7134],[175.9857,-84.159],[173.2241,-84.4137],[172.2839,-84.0414],[169.4048,-83.8259],[168.8957,-83.336],[166.6041,-83.0225],[163.7053,-82.3954],[161.6293,-81.69],[161.12,-81.2785],[159.7882,-80.9454],[160.7479,-80.2007],[160.9242,-79.7305],[161.7664,-79.1622],[163.6662,-79.123],[166.9958,-78.7507],[166.6041,-78.3196],[164.7435,-78.1825],[163.4899,-77.0656],[163.5682,-76.2426],[164.2342,-75.4588],[165.6444,-74.773],[166.0948,-74.381],[167.3875,-74.1655],[167.9751,-73.8128],[169.2873,-73.656],[171.0892,-72.0884],[171.2068,-71.6965],[170.5017,-71.4026],[167.3091,-70.8343],[162.6869,-70.7364],[161.5705,-70.5796],[160.8067,-70.2269],[159.6707,-69.9917],[159.181,-69.5998],[156.8111,-69.3843],[154.2846,-68.5613],[153.6382,-68.8945],[152.5022,-68.8748],[148.8396,-68.385],[146.6461,-67.8951],[145.9997,-67.6012],[146.1956,-67.2289],[145.4904,-66.9153],[143.0618,-66.7978],[137.4603,-66.9546],[136.618,-66.7782],[135.8738,-66.0336],[135.6975,-65.5829],[135.0708,-65.3086],[134.7574,-66.21],[130.7815,-66.4255],[128.8033,-66.7586],[127.0014,-66.5627],[125.1602,-66.7194],[123.2213,-66.4843],[122.3204,-66.5627],[120.871,-67.1897],[119.8329,-67.2681],[118.5795,-67.1701],[116.6992,-66.6606],[115.6024,-66.6998],[114.3881,-66.0728],[113.6047,-65.8768],[112.8604,-66.0923],[111.744,-66.1316],[110.2358,-66.6998],[108.0814,-66.9546],[106.1816,-66.9349],[104.2426,-65.9748],[102.8324,-65.5633],[99.7182,-67.2485],[98.6802,-67.1113],[95.7815,-67.3857],[94.1754,-67.1113],[89.6706,-67.1505],[88.8284,-66.9546],[87.9863,-66.2099],[87.477,-66.8762],[86.7524,-67.1505],[85.6555,-67.0917],[83.7753,-67.3073],[82.7764,-67.2093],[81.4838,-67.5424],[80.9353,-67.8755],[79.1139,-68.3262],[78.4284,-68.6984],[77.6449,-69.4627],[73.8649,-69.8742],[73.0814,-70.7168],[71.9063,-71.3242],[71.0249,-72.0884],[69.8693,-72.2648],[68.7138,-72.1668],[67.9499,-71.8533],[68.9292,-71.0695],[69.0663,-70.6775],[67.9499,-70.6972],[67.8127,-70.3053],[69.5559,-69.6782],[69.6735,-69.2276],[69.7126,-68.9728],[68.89,-67.9343],[66.9119,-67.8559],[64.0523,-67.4052],[62.3875,-68.0127],[61.4278,-67.9539],[59.9393,-67.4052],[58.7445,-67.2877],[57.256,-66.6802],[57.1581,-66.2491],[56.355,-65.9748],[54.5336,-65.818],[51.7915,-66.2491],[50.9493,-66.5235],[50.7535,-66.8762],[49.9309,-67.1113],[48.9907,-67.0917],[47.4434,-67.7188],[46.5033,-67.6012],[44.1139,-68.2674],[41.9594,-68.6005],[40.0204,-69.1099],[39.6679,-69.5411],[38.6494,-69.7762],[37.2,-69.1687],[36.162,-69.2471],[35.3002,-69.012],[34.9085,-68.6593],[33.8704,-68.5026],[32.7541,-69.3843],[31.9902,-69.6586],[27.0937,-70.4621],[23.6662,-70.5208],[22.5694,-70.6972],[21.453,-70.0701],[19.2594,-69.8938],[15.9493,-70.0309],[15.1268,-70.4032],[14.735,-70.0309],[13.4228,-69.9722],[12.4043,-70.2465],[11.9538,-70.6384],[10.8178,-70.8343],[9.5251,-70.0113],[8.4871,-70.1485],[7.7429,-69.8938],[7.1357,-70.2465],[6.2739,-70.4621],[0.8682,-71.3046],[-0.2286,-71.6377],[-0.6595,-71.2262],[-1.7955,-71.1674],[-4.3417,-71.4614],[-5.5364,-71.4026],[-5.791,-71.0303],[-6.8682,-70.9323],[-7.3775,-71.3242],[-7.4166,-71.6965],[-8.6114,-71.6573],[-9.101,-71.3242],[-10.2958,-71.2654],[-11.0204,-71.5398],[-11.5101,-72.0101],[-12.2935,-72.4019],[-15.4469,-73.1465],[-16.1128,-73.4601],[-16.4653,-73.8716],[-15.4077,-74.1067],[-15.7015,-74.4986],[-17.523,-75.1257],[-22.4586,-76.1054],[-28.8828,-76.6737],[-29.7837,-77.0656],[-32.2124,-77.6535],[-35.3265,-78.1237],[-35.777,-78.3392],[-35.9141,-79.0839],[-35.6399,-79.4561],[-29.6858,-79.2602],[-29.6858,-79.6325],[-28.5498,-80.3379],[-38.2448,-81.3373],[-40.7714,-81.3569],[-42.162,-81.6508],[-42.8084,-82.0819],[-47.2739,-81.7096],[-49.7613,-81.7292],[-53.6198,-82.2582],[-58.2225,-83.2184],[-59.6914,-82.3759],[-63.256,-81.7488],[-68.1916,-81.3177],[-73.2449,-80.4163],[-75.3601,-80.2595],[-76.6332,-79.8872],[-76.8486,-79.5149],[-78.0238,-79.1818],[-77.9259,-78.3784],[-76.4961,-78.1237],[-74.7725,-78.2216],[-73.6561,-77.9081],[-74.2829,-77.5554],[-75.3993,-77.2811],[-76.927,-77.1048],[-77.2404,-76.7129],[-70.6007,-76.6345],[-69.7977,-76.223],[-65.861,-75.6351],[-64.3528,-75.2628],[-63.2952,-74.577],[-61.9634,-74.4398],[-60.8274,-73.6952],[-60.6903,-73.1662],[-61.3758,-72.0101],[-61.5129,-71.089],[-61.8067,-70.7168],[-62.2767,-70.3837],[-63.1973,-69.2276],[-64.7837,-68.6789],[-65.6651,-67.9539],[-65.5084,-67.5816],[-63.7457,-66.5038],[-62.8056,-66.4255],[-62.1201,-66.1903],[-62.5901,-65.8572],[-62.6489,-65.4849],[-62.5118,-65.093],[-62.0221,-64.7991],[-60.6119,-64.3092],[-59.7893,-64.2112],[-59.0451,-64.368],[-57.5957,-63.8585],[-57.2236,-63.5254],[-57.8111,-63.2707],[-58.5946,-63.3882],[-59.8873,-63.9565],[-61.4149,-64.27],[-62.0417,-64.5836],[-63.0014,-64.6423],[-64.1765,-65.1714],[-64.5683,-65.6025],[-67.2515,-66.8762],[-67.7412,-67.3268],[-67.4278,-68.1498],[-67.5845,-68.5417],[-68.4463,-69.3255],[-68.5442,-69.7174],[-68.4855,-70.1093],[-67.2515,-71.6377],[-67.134,-72.0492],[-67.3691,-72.4803],[-67.9566,-72.7939],[-68.9359,-73.0094],[-72.8335,-73.4013],[-74.89,-73.8716],[-76.2219,-73.9695],[-76.9074,-73.6364],[-77.9259,-73.4209],[-79.2969,-73.5189],[-80.2958,-73.127],[-81.4709,-73.852],[-85.1922,-73.4797],[-86.0148,-73.0878],[-87.2683,-73.1858],[-88.424,-73.0094],[-89.227,-72.5587],[-90.0887,-73.3229],[-91.4206,-73.4013],[-92.439,-73.1662],[-96.3366,-73.6168],[-97.688,-73.558],[-98.1189,-73.2053],[-99.1374,-72.9114],[-103.6813,-72.6175],[-103.1133,-73.7344],[-102.5453,-74.1067],[-101.2527,-74.1851],[-100.1167,-74.8709],[-100.6455,-75.302],[-104.8761,-74.9493],[-107.5593,-75.1845],[-110.0663,-74.7925],[-111.2611,-74.4203],[-112.2991,-74.7142],[-113.9443,-73.7148],[-116.2163,-74.2439],[-117.4698,-74.0283],[-119.7026,-74.479],[-125.4021,-74.5182],[-128.242,-74.3223],[-130.9253,-74.479],[-132.2572,-74.3027],[-133.7457,-74.4398],[-135.2146,-74.3027],[-138.8576,-74.9689],[-141.6388,-75.0865],[-144.322,-75.5372],[-144.9096,-75.204],[-146.2023,-75.3804],[-146.4961,-75.7332],[-146.1435,-76.1054],[-146.1044,-76.4778],[-147.6125,-76.5757],[-151.3338,-77.3987],[-152.9202,-77.4967],[-153.7428,-77.0656],[-156.9746,-77.3008],[-158.3651,-76.8892],[-158.0518,-78.0257],[-155.9757,-78.6919],[-155.3294,-79.0643],[-149.5319,-79.3582],[-146.7703,-79.9264],[-146.4177,-80.3379],[-147.2207,-80.671],[-150.6483,-81.3373],[-152.0977,-81.0042],[-154.4088,-81.1609],[-156.8374,-81.1021],[-155.2902,-81.4157],[-154.5263,-81.7684],[-152.8615,-82.0427],[-152.6656,-82.4542],[-153.4099,-83.238],[-153.5862,-83.6887],[-150.9029,-83.9042],[-150.0607,-84.2961],[-146.8291,-84.5313],[-142.8923,-84.5705],[-143.1077,-85.0408],[-148.5331,-85.609],[-150.9421,-85.2955],[-155.1923,-85.0996],[-158.0714,-85.3739],[-161.9298,-85.1387],[-167.0221,-84.5705],[-169.9512,-83.8846],[-172.8891,-84.061],[-174.3825,-84.5343],[-175.9341,-84.1016],[-177.2568,-84.4529],[-179.0587,-84.1394],[-180.0,-84.7134],[-180.0,-16.5552],[-179.7933,-16.0209],[-180.0,-16.0671],[-180.0,64.9797],[-179.4327,65.4041],[-179.8838,65.8746],[-178.6861,66.1121],[-178.9033,65.7404],[-178.3599,65.3905],[-177.2227,65.5202],[-176.2072,65.3567],[-175.9835,64.9229],[-174.6539,64.6313],[-173.8918,64.2826],[-172.9553,64.2527],[-172.555,64.4608],[-172.5303,65.4379],[-170.8911,65.5414],[-169.8996,65.9772],[-171.8573,66.9131],[-174.5718,67.0622],[-174.3398,66.3356],[-175.0143,66.5844],[-174.9283,67.2059],[-180.0,68.9636],[-180.0,70.8322],[-178.6938,70.893],[-177.6636,71.1328],[-177.5779,71.2695],[-179.0243,71.5555],[-180.0,71.5157],[-180.0,90.0],[180.0,90.0],[180.0,71.5157]],[[143.6039,73.2124],[143.4828,73.4752],[142.0621,73.8576],[140.8117,73.7651],[139.8631,73.3698],[143.6039,73.2124]],[[145.0863,75.5626],[141.4716,76.0929],[138.8311,76.1368],[137.5118,75.9492],[136.9744,75.2617],[138.9554,74.6115],[140.6138,74.8477],[144.3,74.82],[145.0863,75.5626]],[[150.7317,75.0841],[146.3585,75.4968],[146.1192,75.173],[147.9775,74.7784],[149.5759,74.6889],[150.7317,75.0841]],[[24.7241,77.8539],[23.2813,78.0795],[22.8843,78.4549],[20.8119,78.2546],[21.4161,77.935],[20.726,77.677],[22.4903,77.4449],[24.7241,77.8539]],[[18.2518,79.7018],[16.9909,80.0509],[15.5226,80.0161],[15.1428,79.6743],[13.7185,79.6604],[13.1708,80.0105],[10.4445,79.6524],[11.2223,78.8693],[13.1706,78.0249],[14.6696,77.7357],[13.7626,77.3803],[15.9132,76.7705],[17.1182,76.8094],[17.5944,77.638],[18.4717,77.8267],[19.0274,78.5626],[21.5438,78.9561],[18.2518,79.7018]],[[99.9398,78.8809],[100.1867,79.7801],[97.8839,80.747],[95.9409,81.2504],[93.7777,81.0246],[91.1811,80.3415],[92.5454,80.1438],[93.3129,79.4265],[94.9726,79.0447],[97.7579,78.7562],[99.9398,78.8809]],[[25.4476,80.4073],[22.9193,80.6571],[21.9079,80.3577],[20.456,80.5982],[17.368,80.3189],[18.4623,79.8599],[19.8973,79.8424],[20.0752,79.5668],[23.0245,79.4],[25.9247,79.5178],[27.4075,80.0564],[25.4476,80.4073]],[[-27.1005,83.5197],[-35.0879,83.6451],[-38.6221,83.549],[-39.8975,83.1802],[-43.4064,83.2252],[-46.7638,82.628],[-46.9007,82.1998],[-44.523,81.6607],[-50.3906,82.4388],[-53.0433,81.8883],[-54.1344,82.1996],[-57.2074,82.1907],[-62.6512,81.7704],[-62.2344,81.3211],[-63.6893,81.214],[-67.1513,80.5158],[-68.023,80.1172],[-65.3239,79.7581],[-65.7107,79.3944],[-73.1594,78.4327],[-73.297,78.0442],[-71.0429,77.6359],[-66.764,77.376],[-68.7767,77.3231],[-71.4026,77.0086],[-68.5044,76.0614],[-61.2686,76.1024],[-58.5852,75.5173],[-58.5968,75.0986],[-57.3236,74.7103],[-54.7182,72.5862],[-55.8347,71.6544],[-55.0,71.4065],[-54.0042,71.5472],[-51.3901,70.5698],[-54.3588,70.8213],[-54.75,70.2893],[-54.6834,69.61],[-53.4563,69.2836],[-50.8712,69.9291],[-51.0804,69.1478],[-51.4754,68.7296],[-52.9804,68.3576],[-53.9691,67.189],[-53.3016,66.8365],[-53.6617,66.0996],[-52.2766,65.1767],[-52.1401,64.2784],[-51.6332,63.6269],[-49.9004,62.3834],[-49.2331,61.4068],[-48.2629,60.8584],[-46.2636,60.8533],[-44.7875,60.0368],[-43.3784,60.0977],[-42.4167,61.9009],[-42.8194,62.6823],[-41.1887,63.4825],[-40.6828,64.139],[-40.669,64.84],[-39.8122,65.4585],[-36.3528,65.9789],[-34.202,66.6797],[-32.8111,67.7355],[-31.7766,68.1208],[-27.7474,68.4705],[-22.349,70.1295],[-26.3628,70.2265],[-25.2013,70.7523],[-25.5434,71.4309],[-23.536,70.471],[-21.7536,70.6637],[-22.1328,71.469],[-23.443,72.0802],[-24.793,72.3302],[-24.2783,72.5979],[-22.2995,72.1841],[-22.3131,72.6293],[-23.5659,73.3066],[-20.7623,73.4644],[-20.4345,73.8171],[-21.5942,74.2238],[-19.3728,74.2956],[-20.6682,75.1559],[-19.599,75.2484],[-19.8341,76.0981],[-21.6794,76.628],[-20.035,76.9443],[-18.4728,76.9857],[-19.6735,77.6386],[-19.705,78.7513],[-17.7303,80.1291],[-20.0462,80.1771],[-16.85,80.35],[-16.2853,80.58],[-12.2085,81.2915],[-12.7702,81.7189],[-15.7682,81.9125],[-20.6236,81.5246],[-23.1696,81.1527],[-22.0717,81.7345],[-22.9033,82.0932],[-24.8445,81.787],[-27.8567,82.1318],[-31.3965,82.0215],[-31.9,82.2],[-22.6918,82.3417],[-20.8454,82.7267],[-27.1005,83.5197]],[[51.1362,80.5473],[51.5229,80.6997],[50.0398,80.9189],[48.5228,80.5146],[48.3185,80.784],[44.847,80.5898],[47.0725,80.5594],[46.5028,80.2472],[47.5861,80.0102],[48.7549,80.1755],[48.8944,80.3396],[51.1362,80.5473]],[[57.5357,70.7205],[55.6228,71.5406],[55.4193,72.3713],[58.4771,74.3091],[61.5835,75.2609],[68.1806,76.2336],[68.8522,76.5448],[68.1571,76.9397],[66.211,76.8098],[64.4984,76.4391],[61.17,76.2519],[55.6319,75.0814],[55.9025,74.6275],[53.5083,73.7498],[54.4276,73.6275],[52.4442,72.7747],[52.4783,72.2294],[51.4558,72.0149],[51.6019,71.4748],[53.412,71.2067],[53.6774,70.7627],[57.5357,70.7205]],[[-14.5087,66.4559],[-16.1678,66.5268],[-17.7986,65.9939],[-19.0568,66.2766],[-20.5763,65.7321],[-22.1349,66.4105],[-23.6505,66.2625],[-24.3262,65.6112],[-22.2274,65.3786],[-22.1844,65.085],[-23.955,64.8911],[-21.7785,64.4021],[-22.763,63.9602],[-18.6562,63.4964],[-14.9098,64.3641],[-13.6097,65.1267],[-14.7396,65.8087],[-14.5087,66.4559]],[[-90.5471,69.4977],[-92.4069,69.7001],[-91.5196,70.1913],[-92.8781,71.3187],[-93.8899,71.7601],[-95.2088,71.9205],[-96.3911,71.1949],[-96.4713,70.0899],[-95.3041,69.6857],[-94.2328,69.0691],[-94.685,68.0639],[-95.4894,68.0907],[-96.1258,67.2935],[-96.1199,68.2395],[-97.6695,68.5787],[-98.5586,68.4039],[-98.4432,67.7817],[-101.4543,67.6469],[-103.2211,68.0979],[-104.3379,68.0181],[-105.3428,68.5613],[-106.15,68.8001],[-108.1672,68.6539],[-108.813,68.3117],[-107.7924,67.8875],[-108.8802,67.3815],[-109.9461,67.9811],[-110.7979,67.8061],[-113.4972,67.6883],[-115.3048,67.9027],[-113.8979,68.3989],[-115.2469,68.9059],[-116.2264,68.8415],[-117.6026,69.0113],[-119.9428,69.3779],[-121.4723,69.7979],[-122.6834,69.8555],[-123.0611,69.5637],[-124.2896,69.3997],[-124.4248,70.1585],[-125.7563,69.4807],[-127.4471,70.3773],[-128.1382,70.4839],[-128.3615,70.0129],[-129.1077,69.7793],[-129.7947,70.1937],[-131.4313,69.9445],[-132.9292,69.5053],[-134.4146,69.6275],[-135.6257,69.3151],[-136.5036,68.8981],[-137.5464,68.9901],[-139.1205,69.4711],[-143.5894,70.1525],[-144.92,69.9901],[-149.72,70.5301],[-150.74,70.4301],[-152.27,70.6001],[-152.21,70.8301],[-153.9,70.8901],[-154.3442,70.6965],[-155.0678,71.1479],[-156.5808,71.3579],[-158.1197,70.8247],[-159.0392,70.8917],[-161.9089,70.3333],[-162.9305,69.8581],[-163.1686,69.3711],[-164.4308,68.9155],[-166.2047,68.8831],[-166.7644,68.3589],[-165.3902,68.0429],[-163.7197,67.1165],[-162.4897,66.7355],[-161.6778,66.1161],[-163.7885,66.0773],[-163.6525,66.5767],[-164.4747,66.5767],[-168.1105,65.6701],[-166.845,65.0889],[-166.4253,64.6867],[-164.9608,64.4471],[-163.5464,64.5591],[-162.7578,64.3387],[-162.453,64.5595],[-160.7777,64.7887],[-161.518,64.4029],[-160.9583,64.2229],[-160.7725,63.7661],[-161.5344,63.4559],[-162.2605,63.5419],[-163.0672,63.0595],[-163.7533,63.2195],[-164.5625,63.1465],[-164.9192,62.6331],[-165.7344,62.0751],[-166.1214,61.5001],[-165.3508,61.0739],[-165.3464,60.5075],[-163.8183,59.7981],[-162.518,59.9897],[-161.8741,59.6337],[-162.055,59.2669],[-161.9688,58.6717],[-161.355,58.6709],[-160.3553,59.0711],[-159.9812,58.5727],[-159.7116,58.9315],[-159.0586,58.4243],[-158.5172,58.7879],[-158.1947,58.6159],[-157.0417,58.9189],[-157.5503,58.3283],[-157.7228,57.5701],[-160.0705,56.4181],[-160.5636,56.0081],[-161.8042,55.8951],[-164.9422,54.5723],[-164.7856,54.4043],[-163.0694,54.6899],[-160.2897,55.6437],[-159.6033,55.5667],[-158.4333,55.9941],[-158.1172,56.4637],[-156.5561,56.9801],[-156.3083,57.4229],[-154.2325,58.1465],[-153.2875,58.8647],[-154.0191,59.3503],[-152.5783,60.0617],[-151.8958,60.7273],[-150.6211,61.2845],[-150.3469,61.0337],[-151.4097,60.7259],[-151.8594,59.7451],[-151.7163,59.1559],[-149.7278,59.7057],[-148.018,59.9783],[-148.2243,60.6731],[-147.1144,60.8847],[-143.9588,59.9993],[-142.5744,60.0845],[-139.8678,59.5379],[-137.8,58.5001],[-136.628,58.2123],[-134.078,58.1231],[-133.5392,57.1789],[-132.25,56.3701],[-131.9672,55.4979],[-130.5361,54.8027],[-130.5149,54.2877],[-129.3052,53.5617],[-129.1297,52.7555],[-127.8503,52.3297],[-127.9927,51.7159],[-127.4356,50.8307],[-125.6246,50.4167],[-122.84,49.0001],[-122.34,47.3601],[-122.5873,47.0961],[-123.12,48.0401],[-124.5661,48.3797],[-124.6872,48.1845],[-124.0796,46.8647],[-123.8989,45.5235],[-124.1421,43.7085],[-124.5328,42.7661],[-124.2137,41.9997],[-124.1788,41.1421],[-124.398,40.3133],[-123.8651,39.7671],[-123.7271,38.9517],[-122.512,37.7835],[-122.5475,37.5519],[-121.7146,36.1617],[-120.7443,35.1569],[-120.6228,34.6085],[-120.3678,34.4471],[-119.4388,34.3485],[-119.081,34.0781],[-118.5199,34.0279],[-118.4106,33.7409],[-117.9439,33.6213],[-117.2959,33.0463],[-116.7215,31.6357],[-115.5187,29.5563],[-114.9318,29.2795],[-114.162,28.5661],[-114.1993,28.1151],[-114.5703,27.7415],[-115.0551,27.7227],[-114.4657,27.1421],[-113.5967,26.6395],[-113.4646,26.7683],[-112.3007,26.0121],[-112.149,25.4703],[-112.182,24.7385],[-110.295,23.4311],[-110.0313,22.8231],[-109.4334,23.1857],[-109.4091,23.3647],[-110.1728,24.2657],[-110.655,24.2987],[-110.71,24.8261],[-111.2846,25.7327],[-111.6165,26.6629],[-112.7616,27.7803],[-112.9623,28.4253],[-113.14,28.4113],[-113.2719,28.7549],[-114.6739,30.1627],[-114.9367,31.3935],[-114.7764,31.7997],[-114.2057,31.5241],[-113.8719,31.5677],[-113.1487,31.1711],[-113.1638,30.7869],[-112.2718,29.2669],[-112.2282,28.9545],[-111.1789,27.9413],[-110.641,27.8599],[-110.3917,27.1621],[-109.2916,26.4429],[-109.4441,25.8249],[-109.2602,25.5807],[-108.4019,25.1723],[-106.0287,22.7737],[-105.2658,21.4221],[-105.2707,21.0763],[-105.5006,20.8169],[-105.3977,20.5317],[-105.7314,20.4341],[-105.493,19.9469],[-104.992,19.3163],[-103.9175,18.7487],[-103.501,18.2923],[-101.9185,17.9161],[-100.8295,17.1711],[-96.5574,15.6535],[-94.6916,16.2011],[-93.3594,15.6155],[-92.2277,14.5389],[-91.2324,13.9279],[-90.6086,13.9099],[-89.8124,13.5207],[-88.4833,13.1639],[-87.9041,13.1491],[-87.7931,13.3845],[-87.4894,13.2975],[-87.3166,12.9847],[-87.5575,13.0647],[-87.6685,12.9099],[-85.7125,11.0885],[-85.9417,10.8953],[-85.6593,10.7543],[-85.7974,10.1349],[-85.6607,9.9333],[-85.1109,9.5571],[-84.9114,9.7961],[-84.9756,10.0867],[-84.7134,9.9081],[-84.6476,9.6155],[-83.6326,9.0515],[-83.7115,8.6569],[-83.5084,8.4469],[-82.8509,8.0739],[-82.82,8.2909],[-81.7213,8.1089],[-81.5195,7.7067],[-81.1897,7.6479],[-81.0595,7.8179],[-80.8864,7.2205],[-80.4211,7.2715],[-80.0036,7.5475],[-80.4807,8.0903],[-80.3826,8.2985],[-79.7605,8.5845],[-79.5578,8.9325],[-79.1203,8.9961],[-78.182,8.3193],[-78.4291,8.0521],[-78.2149,7.5123],[-77.4767,6.6911],[-77.3188,5.8453],[-77.5332,5.5829],[-77.3076,4.6681],[-77.4963,4.0877],[-77.1277,3.8497],[-77.9315,2.6967],[-78.4276,2.6297],[-78.6621,2.2673],[-78.6178,1.7665],[-78.9909,1.6913],[-78.8553,1.3809],[-80.0906,0.7685],[-80.0208,0.3605],[-80.5833,-0.9067],[-80.9336,-1.0574],[-80.7648,-1.965],[-80.9677,-2.2469],[-80.3687,-2.6852],[-79.9865,-2.2207],[-79.7702,-2.6575],[-80.3025,-3.4048],[-81.0996,-4.0364],[-81.4109,-4.7367],[-80.9263,-5.6905],[-81.25,-6.1368],[-79.7605,-7.1943],[-77.1062,-12.2227],[-76.2592,-13.535],[-76.4234,-13.8232],[-76.0092,-14.6493],[-73.4445,-16.3594],[-71.462,-17.3634],[-71.3752,-17.7738],[-70.3725,-18.3479],[-70.1644,-19.7564],[-70.0912,-21.3933],[-70.9051,-27.6404],[-71.4898,-28.8614],[-71.37,-30.0957],[-71.6687,-30.9206],[-71.4385,-32.4189],[-71.8617,-33.9091],[-73.1667,-37.1238],[-73.588,-37.1563],[-73.5055,-38.2829],[-73.2176,-39.2586],[-73.6771,-39.9422],[-74.3319,-43.225],[-73.7013,-43.3658],[-73.3889,-42.1175],[-72.7177,-42.3833],[-73.2403,-44.4549],[-74.3517,-44.103],[-74.6921,-45.764],[-75.6444,-46.6476],[-74.1266,-46.9392],[-75.1827,-47.7119],[-75.608,-48.6737],[-75.4797,-50.3783],[-74.9766,-51.0434],[-75.26,-51.6293],[-74.9468,-52.2627],[-72.5579,-53.5314],[-71.4298,-53.8564],[-71.0063,-53.8332],[-70.8451,-52.8992],[-69.4613,-52.2919],[-68.15,-52.35],[-68.8155,-51.7711],[-69.1385,-50.7325],[-68.7287,-50.2642],[-67.8161,-49.8697],[-67.1662,-48.6973],[-65.9851,-48.1333],[-65.641,-47.2361],[-66.597,-47.0339],[-67.5805,-46.3017],[-67.2938,-45.5519],[-66.5099,-45.0396],[-65.5652,-45.0368],[-65.3288,-44.5013],[-65.1818,-43.4953],[-64.3788,-42.8735],[-63.458,-42.5631],[-63.7559,-42.0437],[-64.3034,-42.359],[-64.9786,-42.058],[-65.118,-41.0643],[-64.7321,-40.8026],[-63.7705,-41.1668],[-62.7458,-41.0287],[-62.146,-40.6769],[-62.3305,-40.1726],[-62.1258,-39.4241],[-62.3359,-38.8277],[-61.2374,-38.9284],[-59.2318,-38.7202],[-57.7491,-38.1839],[-56.7882,-36.9015],[-56.7375,-36.4131],[-57.3623,-35.9774],[-57.2258,-35.288],[-58.4954,-34.4315],[-58.427,-33.9095],[-57.8178,-34.4625],[-57.1397,-34.4305],[-56.2152,-34.8598],[-55.674,-34.7527],[-54.9358,-34.9526],[-53.8064,-34.3968],[-53.3736,-33.7683],[-52.7121,-33.1966],[-52.2561,-32.2453],[-50.6969,-30.9844],[-49.5873,-29.2245],[-48.8884,-28.6741],[-48.4747,-27.1759],[-48.641,-26.6237],[-48.4955,-25.877],[-47.649,-24.8852],[-46.4721,-24.089],[-45.3521,-23.7968],[-44.6478,-23.352],[-43.0747,-22.9677],[-41.9883,-22.9701],[-41.7541,-22.3706],[-40.9447,-21.9373],[-40.7747,-20.9045],[-39.7608,-19.5991],[-39.5835,-18.2622],[-39.2673,-17.8677],[-38.8823,-15.667],[-38.9532,-13.7934],[-38.6739,-13.0577],[-38.4239,-13.0381],[-37.6836,-12.1712],[-37.0465,-11.0407],[-35.1282,-8.9964],[-34.73,-7.3432],[-35.2354,-5.4649],[-35.5978,-5.1495],[-36.4529,-5.1094],[-37.2232,-4.8209],[-38.5003,-3.7006],[-39.9786,-2.873],[-41.4726,-2.912],[-43.4187,-2.3831],[-44.5816,-2.6913],[-44.4176,-2.1377],[-44.9057,-1.5517],[-47.8249,-0.5816],[-48.5844,-1.2378],[-48.6205,-0.2354],[-50.3882,-0.0784],[-50.6993,0.2231],[-49.9471,1.0463],[-49.974,1.7365],[-50.5088,1.9015],[-51.3171,4.2035],[-51.6578,4.1563],[-51.8233,4.5659],[-52.8821,5.4099],[-53.958,5.7565],[-55.0332,6.0253],[-55.8418,5.9531],[-55.9493,5.7729],[-57.1474,5.9731],[-58.0781,6.8091],[-58.4549,6.8329],[-58.4829,7.3477],[-59.1017,7.9993],[-60.1501,8.6029],[-60.6712,8.5803],[-60.8305,9.3813],[-61.5887,9.8731],[-62.3885,9.9483],[-62.7301,10.4203],[-61.8809,10.7157],[-64.318,10.6415],[-64.3294,10.3897],[-64.8904,10.0773],[-65.6552,10.2009],[-66.2278,10.6487],[-68.1941,10.5547],[-68.2333,10.8857],[-68.883,11.4435],[-69.5843,11.4597],[-69.9432,12.1623],[-70.2938,11.8469],[-70.1552,11.3755],[-71.4006,10.9691],[-71.3501,10.2119],[-71.04,9.8601],[-71.2646,9.1373],[-71.6956,9.0723],[-72.0741,9.8657],[-71.633,10.4465],[-71.6208,10.9695],[-71.947,11.4233],[-71.36,11.5401],[-71.1374,12.1131],[-71.3998,12.3761],[-71.7541,12.4373],[-72.2382,11.9557],[-73.4147,11.2271],[-74.1972,11.3105],[-74.2767,11.1021],[-74.9069,11.0831],[-75.4804,10.6191],[-75.6746,9.4433],[-76.0863,9.3369],[-76.8366,8.6387],[-77.3533,8.6705],[-78.5009,9.4205],[-79.5733,9.6117],[-79.9146,9.3127],[-81.4392,8.7863],[-81.7141,9.0321],[-82.2076,8.9957],[-82.1871,9.2075],[-83.4023,10.3955],[-83.8089,11.1031],[-83.6261,12.3209],[-83.4733,12.4191],[-83.5198,13.5677],[-83.1821,14.3107],[-83.2842,14.6767],[-83.1472,14.9959],[-83.4104,15.2709],[-84.3682,15.8351],[-84.9837,15.9959],[-85.444,15.8857],[-86.0019,16.0055],[-86.9032,15.7567],[-87.9018,15.8645],[-88.1211,15.6887],[-88.9306,15.8873],[-88.3554,16.5309],[-88.1068,18.3487],[-88.2963,18.3533],[-88.3,18.5001],[-88.0906,18.5167],[-87.8372,18.2599],[-87.4367,19.4725],[-87.621,19.6465],[-87.3833,20.2555],[-86.8459,20.8499],[-86.812,21.3315],[-87.0519,21.5435],[-88.5439,21.4937],[-90.2786,20.9999],[-90.7718,19.2841],[-91.4079,18.8761],[-92.0373,18.7047],[-94.4257,18.1443],[-94.839,18.5627],[-95.9009,18.8281],[-96.2921,19.3205],[-96.5255,19.8909],[-97.1893,20.6355],[-97.8724,22.4443],[-97.7029,24.2723],[-97.1386,25.8679],[-97.33,26.2101],[-97.37,27.3801],[-97.14,27.8301],[-96.594,28.3075],[-95.6003,28.7387],[-94.69,29.4801],[-93.8484,29.7137],[-93.2264,29.7839],[-92.4991,29.5523],[-91.6267,29.6771],[-90.8802,29.1487],[-90.1546,29.1175],[-89.7793,29.3071],[-89.4082,29.1597],[-89.2176,29.2911],[-89.43,29.4887],[-89.4137,29.8943],[-89.6049,30.1763],[-89.1805,30.3161],[-86.4,30.4001],[-85.773,30.1527],[-85.1088,29.6363],[-84.1,30.0901],[-83.7096,29.9367],[-82.93,29.1001],[-82.65,28.5501],[-82.8553,27.8863],[-81.71,25.8701],[-81.33,25.6401],[-81.1721,25.2013],[-80.68,25.0801],[-80.381,25.2063],[-80.1315,25.8169],[-80.0565,26.8801],[-80.53,28.0401],[-80.5356,28.4721],[-81.3137,30.0355],[-81.4904,30.7301],[-81.3363,31.4405],[-80.3013,32.5093],[-79.2035,33.1585],[-79.0606,33.4941],[-78.5543,33.8613],[-78.0549,33.9255],[-77.3976,34.5121],[-76.3631,34.8085],[-75.7275,35.5507],[-75.9718,36.8973],[-76.2587,36.9665],[-76.3016,37.9181],[-76.96,38.2329],[-76.3293,38.0833],[-76.5427,38.7177],[-76.35,39.1501],[-76.2328,38.3193],[-75.722,37.9371],[-75.9402,37.2169],[-75.0567,38.4041],[-75.0835,38.7813],[-75.32,38.9601],[-75.5281,39.4985],[-74.9804,39.1965],[-74.906,38.9395],[-74.1784,39.7093],[-73.9624,40.4277],[-74.2567,40.4735],[-73.9523,40.7507],[-73.982,40.6281],[-73.3449,40.6301],[-71.945,40.9301],[-72.2412,41.1195],[-73.71,40.9311],[-72.8764,41.2207],[-69.965,41.6371],[-69.8849,41.9229],[-70.185,42.1451],[-70.08,41.7801],[-70.495,41.8051],[-70.825,42.3351],[-70.69,43.0301],[-70.1161,43.6841],[-66.9646,44.8097],[-67.1374,45.1375],[-64.4255,45.2921],[-66.1617,44.4651],[-66.1234,43.6187],[-65.3641,43.5453],[-64.2466,44.2655],[-61.0398,45.2653],[-59.8028,45.9205],[-60.4486,46.2827],[-60.5181,47.0079],[-61.5207,45.8839],[-63.1733,45.7391],[-64.4721,46.2385],[-65.1155,48.0709],[-64.171,48.7425],[-65.0562,49.2329],[-66.5524,49.1331],[-68.65,48.3001],[-70.2552,46.9861],[-71.1045,46.8217],[-68.5111,49.0685],[-67.2363,49.5115],[-66.399,50.2289],[-63.8625,50.2911],[-61.7236,50.0805],[-60.0331,50.2429],[-58.7748,51.0643],[-57.1269,51.4197],[-55.6833,52.1467],[-55.7563,53.2705],[-56.1581,53.6475],[-56.9369,53.7803],[-57.3332,54.6265],[-57.9751,54.9455],[-59.5696,55.2041],[-60.4685,55.7755],[-61.7986,56.3395],[-61.3965,56.9675],[-64.5835,60.3357],[-65.2452,59.8707],[-66.2018,58.7673],[-67.6498,58.2121],[-68.3745,58.8011],[-69.2879,58.9573],[-69.6203,60.2213],[-69.5904,61.0615],[-71.3737,61.1371],[-71.677,61.5253],[-73.8399,62.4439],[-74.6682,62.1811],[-77.4106,62.5505],[-78.1068,62.3197],[-77.7727,60.7579],[-77.3367,59.8527],[-78.5169,58.8047],[-77.3022,58.0521],[-76.6231,57.2027],[-76.5414,56.5343],[-77.0956,55.8375],[-78.2287,55.1365],[-79.8296,54.6677],[-79.1242,54.1415],[-78.6019,52.5621],[-79.143,51.5339],[-79.9129,51.2085],[-81.4007,52.1579],[-82.125,53.2771],[-82.4362,54.2823],[-82.2728,55.1483],[-85.0118,55.3027],[-87.3242,55.9991],[-88.0398,56.4717],[-89.0395,56.8517],[-90.8977,57.2847],[-92.297,57.0871],[-93.215,58.7821],[-94.6845,58.9489],[-94.6293,60.1103],[-94.2415,60.8987],[-93.157,62.0247],[-91.9334,62.8351],[-90.77,62.9603],[-90.704,63.6103],[-89.9144,64.0327],[-88.4829,64.0991],[-87.3232,64.7757],[-86.0676,66.0563],[-85.7694,66.5583],[-84.7354,66.2573],[-83.3445,66.4117],[-81.3865,67.1109],[-81.2593,67.5973],[-81.9643,68.1325],[-81.2202,68.6657],[-81.2804,69.1621],[-82.6225,69.6583],[-85.5219,69.8821],[-85.5766,68.7845],[-86.3061,67.9215],[-87.3501,67.1987],[-88.3175,67.8735],[-88.0196,68.6151],[-89.2151,69.2587],[-90.5515,68.4751],[-90.5471,69.4977]],[[-86.5622,73.1574],[-85.8262,73.8038],[-88.4082,73.5379],[-89.4366,73.1295],[-90.2052,72.2351],[-89.8882,71.2226],[-88.4677,71.2182],[-89.5134,70.762],[-88.6817,70.4107],[-84.9447,69.9666],[-81.3055,69.7432],[-79.4925,69.8718],[-78.9572,70.1669],[-78.1686,69.8265],[-77.2874,69.7695],[-76.2286,69.1478],[-76.8691,68.8947],[-74.8433,68.5546],[-73.3116,68.0694],[-72.9261,67.7269],[-72.6512,67.2846],[-73.9449,66.3106],[-74.2939,65.8118],[-73.9598,65.4548],[-77.8973,65.3092],[-78.5559,64.5729],[-77.71,64.2295],[-74.8185,64.3891],[-74.8344,64.6791],[-71.8863,63.68],[-72.2354,63.3978],[-71.0234,62.9107],[-68.8774,62.3301],[-66.1656,61.9309],[-66.3283,62.2801],[-68.7832,63.7457],[-65.0138,62.6742],[-64.6694,63.3929],[-65.3202,64.3827],[-68.1413,65.6898],[-68.015,66.2627],[-66.7212,66.388],[-65.1489,65.426],[-63.9184,64.9987],[-62.1632,66.1603],[-61.852,66.8621],[-63.4249,66.9285],[-64.8623,67.8475],[-66.4499,68.0672],[-68.8051,68.7202],[-66.969,69.1861],[-67.915,70.1219],[-68.7861,70.525],[-71.2,70.92],[-72.2422,71.5569],[-74.0991,71.3308],[-74.2286,71.7671],[-77.8246,72.7496],[-78.7706,72.3522],[-80.7489,72.0619],[-80.6001,72.7165],[-82.3156,73.751],[-84.8501,73.3403],[-85.7744,72.5341],[-86.5622,73.1574]],[[-76.34,73.1027],[-78.0644,73.6519],[-80.3531,73.7597],[-80.8339,73.6932],[-80.8761,73.3332],[-79.4863,72.7422],[-78.3917,72.8767],[-76.2514,72.8264],[-76.34,73.1027]],[[-81.8982,62.7108],[-81.877,62.9046],[-83.2505,62.9141],[-83.9937,62.4528],[-83.7746,62.1823],[-83.0686,62.1592],[-81.8982,62.7108]],[[-79.2658,62.1587],[-79.52,62.3637],[-79.9294,62.3856],[-80.3621,62.0165],[-80.0996,61.7181],[-79.6575,61.6331],[-79.2658,62.1587]],[[-85.1613,65.6573],[-85.8838,65.7388],[-86.3528,64.0358],[-87.222,63.5412],[-85.8668,63.6373],[-85.5234,63.0524],[-83.1088,64.1019],[-82.5472,63.6517],[-80.991,63.4112],[-80.1035,63.726],[-80.8174,64.0575],[-81.5534,63.9796],[-81.642,64.4551],[-84.464,65.3718],[-84.9758,65.2175],[-85.1613,65.6573]],[[-75.8659,67.1489],[-75.216,67.4442],[-75.1145,68.0104],[-75.8952,68.2872],[-76.8117,68.1486],[-77.2364,67.5881],[-76.9869,67.0987],[-75.8659,67.1489]],[[-100.3564,73.8439],[-101.54,73.36],[-100.4384,72.7059],[-102.48,72.83],[-102.5,72.51],[-100.0148,71.7383],[-99.3229,71.3564],[-98.3597,71.2728],[-96.72,71.66],[-96.54,72.56],[-98.0536,72.9905],[-97.12,73.47],[-97.38,73.76],[-99.1639,73.6334],[-100.3564,73.8439]],[[-93.1963,72.772],[-92.004,72.9662],[-90.5098,73.8567],[-92.42,74.1],[-94.5037,74.1349],[-95.4958,73.8624],[-96.0183,73.4374],[-96.0337,72.9403],[-95.4099,72.0619],[-94.269,72.0246],[-93.1963,72.772]],[[-120.46,71.4],[-120.46,71.82],[-119.22,72.52],[-115.5108,73.4752],[-117.5556,74.1858],[-120.1098,74.2413],[-121.5379,74.4489],[-124.9178,74.2928],[-123.94,73.68],[-125.929,71.8687],[-123.62,71.34],[-123.0922,70.9016],[-120.46,71.4]],[[-114.1672,73.1215],[-115.1891,73.3146],[-117.8664,72.7059],[-119.402,71.5586],[-117.6557,71.2952],[-116.1131,71.3092],[-118.4324,70.9092],[-117.9048,70.5406],[-114.35,70.6],[-112.4161,70.3664],[-117.34,69.96],[-116.1079,69.1682],[-115.22,69.28],[-113.855,69.0074],[-113.3132,68.5355],[-109.0,68.78],[-105.96,69.18],[-102.4302,68.7528],[-102.0933,69.1196],[-102.7312,69.504],[-101.0893,69.5845],[-100.9808,70.0243],[-104.4648,70.993],[-105.4025,72.6726],[-106.5226,73.076],[-107.5165,73.236],[-108.3964,73.0895],[-107.686,72.0655],[-108.1883,71.6509],[-109.0065,72.6334],[-109.9203,72.9611],[-111.0504,72.4504],[-112.441,72.9554],[-114.6663,72.6528],[-114.1672,73.1215]],[[-104.5,73.42],[-105.26,73.64],[-106.6,73.6],[-106.94,73.46],[-105.38,72.76],[-104.5,73.42]],[[-95.6477,69.1077],[-96.5574,69.68],[-98.2183,70.1435],[-99.7974,69.4],[-98.4318,68.9507],[-97.6174,69.06],[-96.2695,68.757],[-95.6477,69.1077]],[[-108.2114,76.2017],[-108.5486,76.6783],[-109.5811,76.7942],[-110.4973,76.4298],[-109.0671,75.4732],[-110.8142,75.5492],[-112.5906,76.1413],[-115.4049,76.4789],[-116.346,76.199],[-117.7104,75.2222],[-116.3122,75.0434],[-111.7942,75.1625],[-113.8714,74.7203],[-113.7438,74.3943],[-112.2231,74.417],[-109.7,74.85],[-106.3135,75.0053],[-105.705,75.4795],[-105.881,75.9694],[-106.9289,76.0128],[-107.8194,75.8455],[-108.2114,76.2017]],[[-98.5,76.72],[-98.577,76.5886],[-99.9835,76.6463],[-101.4897,76.3054],[-102.5655,76.3366],[-102.5021,75.5638],[-100.8629,75.6408],[-100.8837,75.0574],[-99.8087,74.8974],[-98.16,75.0],[-97.7044,75.7434],[-97.7356,76.2566],[-98.5,76.72]],[[-94.6841,77.0979],[-96.7451,77.1614],[-97.1214,76.7511],[-95.9625,76.4414],[-93.8938,76.3192],[-92.8899,75.8827],[-92.4224,74.8378],[-89.7647,74.5156],[-88.1504,74.3923],[-83.2289,74.564],[-81.9488,74.4425],[-80.4578,74.6573],[-79.8339,74.9231],[-80.0575,75.3368],[-81.1285,75.714],[-84.7896,75.6992],[-86.3792,75.4824],[-89.1871,75.6102],[-90.9697,76.074],[-90.7418,76.4496],[-91.605,76.7785],[-93.5739,76.7763],[-94.6841,77.0979]],[[-68.5,83.1063],[-72.8315,83.2332],[-75.7188,83.064],[-79.3066,83.1306],[-82.42,82.86],[-83.18,82.32],[-84.26,82.6],[-85.5,82.6523],[-86.9702,82.2796],[-91.587,81.8943],[-91.3679,81.5531],[-90.2,81.26],[-89.3666,80.8557],[-87.599,80.5163],[-81.8482,80.4644],[-83.4087,80.1],[-86.9318,80.2515],[-86.5073,79.7362],[-85.0949,79.3454],[-85.3787,78.9969],[-87.152,78.7587],[-87.9619,78.3718],[-86.34,78.18],[-84.9763,77.5387],[-87.65,77.9702],[-88.26,77.9],[-87.7674,77.1783],[-89.6161,76.9521],[-89.4907,76.4724],[-86.1118,76.299],[-83.1744,76.454],[-80.5613,76.1781],[-77.8891,76.778],[-77.9109,77.022],[-79.6196,76.9834],[-79.7595,77.2097],[-78.3627,77.5086],[-77.8885,77.8999],[-76.3435,78.183],[-75.3934,78.5258],[-76.2205,79.0191],[-75.5292,79.1977],[-76.9077,79.3231],[-73.88,79.4302],[-73.2428,79.6342],[-71.18,79.8],[-69.4697,80.6168],[-65.4803,81.5066],[-67.6575,81.5014],[-61.8939,82.3616],[-61.85,82.6286],[-63.68,82.9],[-68.5,83.1063]],[[-116.1986,77.6453],[-119.1039,77.5122],[-121.1575,76.8645],[-122.8549,76.1165],[-121.5,75.9],[-117.1061,76.53],[-116.3358,76.877],[-116.1986,77.6453]],[[-110.1869,77.697],[-109.8545,77.9963],[-111.2644,78.153],[-112.7246,78.0511],[-113.5343,77.7322],[-112.0512,77.4092],[-110.1869,77.697]],[[-100.0602,78.3248],[-100.8252,78.8005],[-105.4923,79.3016],[-105.4196,78.9183],[-104.2104,78.6774],[-105.1761,78.3803],[-102.9498,78.3432],[-101.3039,78.019],[-99.6709,77.9075],[-100.0602,78.3248]],[[-109.6631,78.602],[-111.5,78.85],[-112.5259,78.5506],[-112.5421,78.4079],[-110.8813,78.4069],[-109.6631,78.602]],[[-87.02,79.66],[-87.81,80.32],[-91.1329,80.7234],[-92.4098,81.2574],[-94.7354,81.2065],[-94.2984,80.9773],[-95.3234,80.9073],[-96.7097,80.1578],[-96.0761,79.705],[-94.974,79.3725],[-93.1452,79.3801],[-93.9357,79.1137],[-93.9512,78.751],[-92.8767,78.3433],[-90.8044,78.2153],[-89.0354,78.2872],[-87.1876,79.0393],[-85.8144,79.3369],[-87.02,79.66]],[[-95.8303,78.0569],[-95.5593,78.4183],[-96.7544,78.7658],[-98.632,78.8719],[-98.5529,78.4581],[-98.1243,78.0829],[-97.3098,77.8506],[-95.8303,78.0569]],[[-93.84,77.52],[-93.7207,77.6343],[-94.4226,77.82],[-96.4363,77.8346],[-96.1697,77.5551],[-93.84,77.52]],[[-93.6128,74.98],[-93.9777,75.2965],[-94.8508,75.6472],[-96.2886,75.3778],[-96.8209,74.9276],[-95.6087,74.6669],[-94.1569,74.5923],[-93.6128,74.98]],[[-3.005,58.635],[-5.01,58.63],[-5.7868,57.8188],[-6.15,56.785],[-5.645,56.275],[-5.5864,55.3111],[-5.048,55.784],[-4.7191,55.5085],[-5.0825,55.0616],[-4.8442,54.791],[-3.63,54.615],[-2.945,53.985],[-3.0921,53.4044],[-4.58,53.495],[-4.77,52.84],[-4.2223,52.3014],[-5.2673,51.9914],[-4.9844,51.5935],[-3.4149,51.426],[-4.31,51.21],[-5.7766,50.1597],[-5.245,49.96],[-4.5425,50.3418],[-3.6174,50.2284],[-2.9563,50.6969],[-2.49,50.5],[-0.7875,50.775],[0.5503,50.7657],[1.4499,51.2894],[1.0506,51.8068],[1.56,52.1],[1.6815,52.7395],[0.47,52.93],[-0.4305,54.4644],[-1.115,54.625],[-2.085,55.91],[-3.119,55.9738],[-2.22,56.87],[-1.9593,57.6848],[-4.0738,57.553],[-3.005,58.635]],[[-56.134,50.687],[-55.407,51.5883],[-55.871,51.6321],[-56.7387,51.2874],[-57.3587,50.7183],[-58.3918,49.1256],[-59.2316,48.5232],[-58.7966,48.2515],[-59.4195,47.8995],[-59.266,47.6033],[-56.2508,47.6325],[-55.2912,47.3896],[-55.9975,46.9197],[-55.4008,46.885],[-54.2405,47.7523],[-53.9619,47.6252],[-54.1789,46.8071],[-53.0692,46.6555],[-52.6481,47.5355],[-53.0861,48.6878],[-53.786,48.5168],[-53.4765,49.2491],[-54.4738,49.5567],[-54.9351,49.313],[-55.8224,49.5871],[-55.4715,49.9358],[-56.1431,50.1501],[-56.7959,49.8123],[-56.134,50.687]],[[-63.6645,46.55],[-64.0149,47.036],[-64.3926,46.7275],[-64.1428,46.3926],[-62.8743,45.9682],[-62.5039,46.0334],[-62.0121,46.4431],[-63.6645,46.55]],[[-61.8063,49.1051],[-61.8356,49.2885],[-62.8583,49.7064],[-64.1732,49.9572],[-64.5191,49.873],[-63.5893,49.4007],[-61.8063,49.1051]],[[-6.7889,52.2601],[-6.033,53.1532],[-6.1979,53.8676],[-5.6619,54.5546],[-6.7338,55.1729],[-7.5722,55.1316],[-9.6885,53.8814],[-9.1663,52.8646],[-9.9771,51.8205],[-8.5616,51.6693],[-6.7889,52.2601]],[[-77.0,26.59],[-77.79,27.04],[-77.34,26.53],[-77.3564,26.0073],[-77.1726,25.8792],[-77.0,26.59]],[[-77.82,26.58],[-77.85,26.84],[-78.98,26.79],[-78.91,26.42],[-77.82,26.58]],[[-77.5347,23.7597],[-77.54,24.34],[-77.89,25.17],[-78.1909,25.2103],[-78.4085,24.5756],[-78.0341,24.2861],[-77.78,23.71],[-77.5347,23.7597]],[[-79.6795,22.7653],[-80.6188,23.106],[-82.2682,23.1886],[-83.7782,22.7881],[-84.9749,21.896],[-84.547,21.8012],[-84.0522,21.9106],[-83.9088,22.1546],[-83.4945,22.1685],[-82.7759,22.6882],[-81.795,22.637],[-82.17,22.3871],[-81.8209,22.1921],[-80.5175,22.0371],[-79.285,21.5592],[-78.7199,21.5981],[-78.4828,21.0286],[-78.1373,20.7399],[-77.4927,20.6731],[-77.0851,20.4134],[-77.7555,19.8555],[-74.9616,19.9234],[-74.2966,20.0504],[-74.178,20.2846],[-74.9339,20.6939],[-75.6711,20.7351],[-75.5982,21.0166],[-76.5238,21.2068],[-78.3474,22.5122],[-79.2815,22.3992],[-79.6795,22.7653]],[[-72.5797,19.8715],[-73.1898,19.9157],[-73.415,19.6396],[-72.7841,19.4836],[-72.7916,19.1016],[-72.3349,18.6684],[-72.6949,18.4458],[-74.3699,18.6649],[-74.458,18.3425],[-73.9224,18.031],[-73.4546,18.2179],[-72.3725,18.215],[-71.7083,18.045],[-71.6577,17.7576],[-71.4002,17.5986],[-71.0,18.2833],[-70.6693,18.4269],[-70.5171,18.1843],[-69.9529,18.4283],[-69.1649,18.4226],[-68.6893,18.2051],[-68.3179,18.6122],[-68.8094,18.9791],[-69.2543,19.0152],[-69.2221,19.3132],[-69.7693,19.2933],[-69.9508,19.648],[-70.8067,19.8803],[-71.5873,19.8849],[-71.7124,19.7145],[-72.5797,19.8715]],[[-65.591,18.228],[-65.7713,18.4267],[-66.2824,18.5148],[-67.1007,18.5206],[-67.2424,18.3745],[-67.1842,17.9466],[-65.8472,17.9759],[-65.591,18.228]],[[-76.9026,17.8682],[-76.1997,17.8869],[-76.3654,18.1607],[-76.8966,18.4009],[-77.7974,18.5242],[-78.2177,18.4545],[-78.3377,18.226],[-77.2063,17.7011],[-76.9026,17.8682]],[[-60.935,10.11],[-60.895,10.855],[-61.105,10.89],[-61.68,10.76],[-61.66,10.365],[-61.95,10.09],[-60.935,10.11]],[[143.5618,-13.7637],[143.5221,-12.8344],[143.1586,-12.3257],[143.1159,-11.9056],[142.8668,-11.7847],[142.7973,-11.1574],[142.5153,-10.6682],[142.1437,-11.0427],[141.687,-12.4076],[141.8427,-12.7415],[141.6509,-12.9447],[141.5199,-13.6981],[141.7022,-15.0449],[141.2741,-16.3889],[140.8755,-17.3691],[140.2152,-17.7108],[139.2606,-17.3716],[139.1085,-17.0627],[138.3032,-16.8076],[137.0654,-15.8708],[135.5002,-14.9977],[135.4287,-14.7154],[136.0776,-13.7243],[135.9618,-13.3245],[136.3054,-13.2912],[136.9516,-12.352],[136.4925,-11.8572],[136.2584,-12.0493],[135.8827,-11.9623],[135.2985,-12.2486],[134.6786,-11.9412],[134.3931,-12.0424],[133.5508,-11.7865],[133.0196,-11.3764],[132.3572,-11.1285],[131.8247,-11.2738],[132.5572,-11.603],[132.5753,-12.114],[131.7351,-12.3025],[131.2235,-12.1836],[130.6178,-12.5364],[130.1835,-13.1075],[130.3395,-13.3574],[129.8886,-13.6187],[129.4096,-14.4207],[129.6215,-14.9698],[128.3597,-14.8692],[127.8046,-14.2769],[127.0659,-13.818],[126.1428,-14.096],[126.1251,-14.3473],[125.6858,-14.2307],[125.6701,-14.5101],[125.1673,-14.6804],[124.3797,-15.5671],[124.2583,-16.3279],[123.8171,-16.1113],[123.5032,-16.5965],[123.8593,-17.069],[123.4338,-17.2686],[123.0126,-16.4052],[122.3128,-17.255],[122.2417,-18.1976],[120.8562,-19.6837],[119.8052,-19.9765],[119.2525,-19.9529],[118.8361,-20.2633],[117.4415,-20.7469],[117.1663,-20.6236],[116.7116,-20.7017],[114.6478,-21.8295],[114.2253,-22.5175],[114.1498,-21.7559],[113.7366,-22.4755],[113.8434,-23.06],[113.3935,-24.3848],[114.2162,-25.7863],[114.2329,-26.2984],[113.9369,-25.9112],[113.441,-25.6213],[113.7784,-26.549],[113.339,-26.1165],[114.0489,-27.3348],[114.1736,-28.1181],[114.6165,-28.5164],[115.04,-29.4611],[114.997,-30.0307],[115.1609,-30.6016],[115.6896,-31.6124],[115.8016,-32.2051],[115.7147,-33.2596],[115.5451,-33.4873],[115.0486,-33.6234],[115.0268,-34.1965],[116.6251,-35.0251],[118.025,-35.0647],[119.0073,-34.4641],[119.2989,-34.5094],[119.8937,-33.9761],[121.2992,-33.821],[122.1831,-34.0034],[123.6597,-33.8902],[124.0289,-33.4838],[124.2216,-32.9595],[126.1487,-32.216],[127.1029,-32.2823],[129.5358,-31.5904],[131.3263,-31.4958],[132.2881,-31.9826],[132.9908,-32.0112],[134.2739,-32.6172],[134.0859,-32.8481],[135.2392,-33.948],[135.2082,-34.4787],[135.989,-34.8901],[136.3721,-34.0948],[136.9968,-33.7528],[137.8103,-32.9],[137.8901,-33.6405],[137.5039,-34.1303],[137.3524,-34.7073],[136.8294,-35.2605],[137.7192,-35.0768],[138.2076,-34.3847],[138.4495,-35.1273],[138.1207,-35.6123],[139.0828,-35.7328],[139.5741,-36.1384],[139.9922,-37.4029],[140.6386,-38.0193],[143.61,-38.8095],[144.4857,-38.0853],[145.0322,-37.8962],[144.877,-38.4174],[146.3179,-39.0358],[147.3817,-38.2192],[148.3046,-37.8091],[149.4239,-37.7727],[149.9973,-37.4253],[150.0752,-36.4202],[150.3282,-35.6719],[150.7141,-35.1735],[151.7091,-33.0413],[152.45,-32.55],[152.8916,-31.6404],[153.0692,-30.3502],[153.5121,-28.9951],[153.5695,-28.1101],[153.0929,-27.2603],[153.1362,-26.0712],[152.8552,-25.2675],[150.8996,-23.4622],[150.7273,-22.4024],[150.4829,-22.5561],[150.0774,-22.1228],[149.6783,-22.3425],[149.2894,-21.2605],[148.7175,-20.6335],[148.8484,-20.3912],[146.3875,-18.9583],[146.0637,-18.2801],[146.1603,-17.7617],[145.8889,-16.9069],[145.637,-16.7849],[145.4853,-16.2857],[145.272,-15.4282],[145.3747,-14.985],[144.5637,-14.1712],[143.9221,-14.5483],[143.5618,-13.7637]],[[167.1077,-14.9339],[166.6291,-14.6265],[166.7932,-15.6688],[167.27,-15.74],[167.1077,-14.9339]],[[167.8449,-16.4663],[167.2168,-15.8918],[167.18,-16.16],[167.5152,-16.5978],[167.8449,-16.4663]],[[178.3736,-17.3399],[178.1256,-17.5048],[177.6709,-17.3811],[177.285,-17.7246],[177.3815,-18.1643],[177.9327,-18.288],[178.5527,-18.1506],[178.7181,-17.6285],[178.3736,-17.3399]],[[167.12,-22.16],[165.02,-20.46],[164.46,-20.12],[164.0296,-20.1056],[164.168,-20.4447],[165.4744,-21.6796],[166.74,-22.4],[167.12,-22.16]],[[174.612,-36.1564],[174.3294,-35.2655],[173.5513,-35.0062],[173.007,-34.4507],[172.636,-34.5291],[173.0542,-35.2371],[174.319,-36.5348],[174.697,-37.3811],[174.7435,-38.0278],[174.5748,-38.7977],[173.8523,-39.1466],[173.824,-39.5089],[174.9002,-39.9089],[175.2276,-40.4592],[174.651,-41.2818],[175.0679,-41.4259],[175.2396,-41.6883],[176.0124,-41.2896],[177.0329,-39.8799],[176.94,-39.4497],[177.207,-39.1458],[177.9705,-39.1663],[178.5171,-37.6954],[178.0104,-37.5798],[177.4388,-37.9612],[176.7632,-37.8813],[175.9585,-37.5554],[175.8089,-36.7989],[175.3576,-36.5262],[175.3366,-37.2091],[174.612,-36.1564]],[[173.0204,-40.9191],[172.7986,-40.494],[172.0972,-40.9561],[171.9487,-41.5144],[171.5697,-41.7674],[171.1251,-42.5128],[170.5249,-43.0317],[168.9494,-43.9358],[168.3038,-44.124],[167.0464,-45.1109],[166.5091,-45.8527],[166.6769,-46.2199],[167.7637,-46.2902],[168.4114,-46.6199],[169.3323,-46.6412],[170.6167,-45.9089],[171.4529,-44.2425],[172.3086,-43.8657],[173.0801,-43.8533],[172.7112,-43.3723],[174.2485,-41.77],[174.2476,-41.3492],[173.9584,-40.9267],[173.2472,-41.332],[173.0204,-40.9191]],[[145.398,-40.7925],[144.7438,-40.704],[144.7181,-41.1626],[145.2951,-42.0336],[145.4319,-42.6938],[146.0484,-43.5497],[146.8703,-43.6346],[147.5646,-42.9377],[147.9141,-43.2115],[148.0173,-42.407],[148.3599,-42.0624],[148.2891,-40.8754],[147.6893,-40.8083],[146.3641,-41.1377],[145.398,-40.7925]],[[50.0565,-13.5558],[49.809,-12.8953],[49.1947,-12.0406],[48.8635,-12.4879],[48.8451,-13.0892],[48.2938,-13.7841],[47.869,-13.6639],[48.0052,-14.0912],[47.7051,-14.5943],[46.3122,-15.78],[44.4465,-16.2162],[44.3125,-16.8505],[43.9631,-17.4099],[44.043,-18.3314],[44.4644,-19.4355],[44.3743,-20.0724],[43.8964,-20.8305],[43.8937,-21.1633],[43.4333,-21.3365],[43.2542,-22.0574],[43.3457,-22.7769],[43.6978,-23.5741],[43.7638,-24.4607],[44.0397,-24.9883],[45.4095,-25.6014],[47.0958,-24.9416],[49.4356,-17.9531],[49.4986,-17.106],[49.7746,-16.875],[49.8633,-16.451],[49.6726,-15.7102],[49.8606,-15.4143],[50.2003,-16.0003],[50.3771,-15.7061],[50.4765,-15.2265],[50.2174,-14.7588],[50.0565,-13.5558]],[[162.119,-10.4827],[161.9174,-10.4467],[161.3198,-10.2048],[161.7,-10.82],[162.3986,-10.8264],[162.119,-10.4827]],[[134.1434,-1.1519],[133.9855,-0.7802],[132.3801,-0.3695],[131.8675,-0.6955],[130.5196,-0.9377],[130.9428,-1.4325],[131.8362,-1.6172],[132.2324,-2.2125],[133.6962,-2.2145],[133.78,-2.4798],[133.0668,-2.4604],[131.9898,-2.8206],[132.7538,-3.3118],[132.7569,-3.7463],[132.984,-4.113],[133.3677,-4.0248],[133.6629,-3.5389],[135.1646,-4.4629],[135.9893,-4.5465],[137.9278,-5.3934],[138.4079,-6.2328],[138.6686,-7.3202],[138.0391,-7.5979],[137.6145,-8.4117],[138.8815,-8.3809],[139.1278,-8.096],[140.1434,-8.2972],[141.0339,-9.1179],[142.6284,-9.3268],[143.4139,-8.9831],[143.2864,-8.2455],[144.7442,-7.6301],[146.0485,-8.0674],[146.5679,-8.9426],[147.913,-10.1304],[149.7823,-10.3933],[150.0284,-10.6525],[150.6906,-10.5827],[150.8016,-10.2937],[149.7388,-9.8729],[150.0387,-9.6843],[149.2666,-9.5144],[149.3068,-9.0714],[148.7341,-9.1047],[148.0846,-8.0441],[147.1919,-7.388],[146.9709,-6.7217],[147.8911,-6.614],[147.6481,-6.0837],[145.9819,-5.4656],[145.8298,-4.8765],[144.584,-3.8614],[141.0002,-2.6002],[139.9267,-2.4091],[138.3297,-1.7027],[137.4407,-1.7035],[136.2933,-2.307],[135.4576,-3.3678],[134.4226,-2.7692],[134.1434,-1.1519]],[[153.14,-4.5],[153.02,-3.98],[152.24,-3.24],[150.94,-2.5],[150.662,-2.7415],[151.3843,-3.0354],[152.406,-3.7897],[152.8273,-4.7664],[153.14,-4.5]],[[151.9828,-5.4781],[152.3187,-4.8677],[152.3387,-4.313],[152.1368,-4.1488],[151.5379,-4.1678],[151.6479,-4.7571],[150.8075,-5.4558],[150.2369,-5.5322],[150.1398,-5.0013],[149.9963,-5.0261],[149.8456,-5.5055],[149.2984,-5.5837],[148.4018,-5.4378],[148.3189,-5.7471],[149.71,-6.3165],[150.2412,-6.3178],[151.3014,-5.8407],[151.4591,-5.5603],[151.9828,-5.4781]],[[155.88,-6.82],[156.02,-6.54],[154.76,-5.34],[154.6525,-5.0424],[154.5141,-5.1391],[154.7292,-5.9008],[155.167,-6.5359],[155.6,-6.92],[155.88,-6.82]],[[157.5384,-7.3478],[157.14,-7.0216],[156.5428,-6.5993],[156.4914,-6.7659],[156.902,-7.1769],[157.3394,-7.4048],[157.5384,-7.3478]],[[159.875,-8.3373],[159.64,-8.02],[158.82,-7.56],[158.36,-7.32],[158.2111,-7.4219],[159.9174,-8.5383],[159.875,-8.3373]],[[161.68,-9.6],[160.92,-8.32],[160.58,-8.32],[160.7883,-8.9175],[161.5294,-9.7843],[161.68,-9.6]],[[160.8522,-9.8729],[160.363,-9.4003],[159.7029,-9.2429],[159.64,-9.64],[159.8494,-9.794],[160.8522,-9.8729]],[[124.436,-10.14],[125.0885,-9.3932],[127.3359,-8.3973],[126.9572,-8.2733],[125.0862,-8.6569],[124.9687,-8.8928],[123.98,-9.29],[123.46,-10.24],[123.58,-10.36],[124.436,-10.14]],[[120.7156,-10.2396],[120.7755,-9.9697],[119.9003,-9.3613],[118.9678,-9.558],[120.295,-10.2586],[120.7156,-10.2396]],[[117.9,-8.0957],[117.632,-8.4493],[117.0837,-8.4572],[116.7401,-9.0329],[119.1265,-8.7058],[118.8785,-8.2807],[118.2606,-8.3624],[117.9,-8.0957]],[[122.9035,-8.0942],[122.0074,-8.4606],[121.3417,-8.5367],[120.7151,-8.237],[119.9209,-8.4449],[119.9244,-8.8104],[121.2545,-8.9337],[122.757,-8.6498],[122.9035,-8.0942]],[[108.6235,-6.7777],[108.4868,-6.422],[107.265,-5.955],[106.0516,-5.8959],[105.3655,-6.8514],[106.2806,-6.9249],[106.4541,-7.3549],[108.2778,-7.7667],[108.6937,-7.6416],[111.5221,-8.3021],[113.4647,-8.3489],[114.5645,-8.7518],[115.7055,-8.3708],[114.4789,-7.7765],[112.9788,-7.5942],[112.6148,-6.946],[110.7596,-6.4652],[110.5392,-6.8774],[108.6235,-6.7777]],[[134.7246,-6.2144],[134.727,-5.7376],[134.4996,-5.445],[134.1128,-6.1425],[134.2101,-6.8952],[134.7246,-6.2144]],[[105.8177,-5.8524],[105.8574,-4.3055],[106.1086,-3.0618],[105.6221,-2.4288],[104.8879,-2.3404],[104.5395,-1.7824],[104.37,-1.0848],[104.0108,-1.0592],[103.4376,-0.7119],[103.8384,0.1045],[103.0768,0.5614],[102.4983,1.3987],[101.658,2.0837],[100.6414,2.0994],[97.4849,5.2463],[95.293,5.4798],[95.3809,4.9708],[96.424,3.8689],[97.1769,3.3088],[97.6996,2.4532],[98.6014,1.8235],[99.2637,0.1831],[100.142,-0.6503],[101.3991,-2.7998],[102.5843,-4.2203],[103.8682,-5.0373],[104.7104,-5.8733],[105.8177,-5.8524]],[[117.8756,1.8276],[118.0483,2.2877],[117.3132,3.2344],[117.882,4.1376],[118.6183,4.4782],[118.4397,4.9665],[119.1107,5.0161],[119.1819,5.4078],[117.6891,5.9875],[117.6434,6.4222],[117.1296,6.9281],[116.7251,6.9248],[116.2207,6.1432],[114.6,4.9],[112.9956,3.1024],[111.3701,2.6973],[111.1689,1.8506],[110.3961,1.6638],[109.6633,2.0065],[109.0691,1.3419],[108.9527,0.4154],[109.0919,-0.4595],[109.5719,-1.3149],[110.0709,-1.5929],[110.2238,-2.934],[111.7033,-2.9944],[112.0681,-3.4784],[113.257,-3.1188],[113.7557,-3.4392],[114.4687,-3.4957],[114.8648,-4.107],[116.0009,-3.657],[116.1481,-4.0127],[116.5338,-2.4835],[116.56,-1.4877],[117.5216,-0.8037],[117.4783,0.1025],[117.8119,0.7842],[118.9967,0.9022],[117.8756,1.8276]],[[125.2405,1.4198],[125.066,1.6433],[124.0775,0.9171],[122.9276,0.8752],[121.6668,1.0139],[120.8858,1.3092],[120.0357,0.5665],[119.3234,-1.3531],[119.181,-2.1471],[118.7678,-2.802],[119.0783,-3.487],[119.4988,-3.4944],[119.6536,-4.4594],[119.3669,-5.3799],[119.7965,-5.6734],[120.4307,-5.5282],[120.3055,-2.9316],[120.9724,-2.6276],[120.8982,-3.6021],[121.6192,-4.1885],[121.4895,-4.5746],[121.7382,-4.8513],[122.7196,-4.4642],[122.2364,-5.2829],[122.6285,-5.6346],[123.1623,-5.3406],[123.171,-4.6837],[122.2719,-3.5295],[122.4546,-3.1861],[121.5083,-1.9045],[122.3885,-1.5169],[122.8227,-0.931],[123.2584,-1.0762],[123.3406,-0.6157],[121.4758,-0.956],[120.9359,-1.4089],[120.0409,-0.5197],[120.1831,0.2372],[122.7231,0.4311],[123.6855,0.2356],[124.437,0.4279],[125.2405,1.4198]],[[128.6882,1.1324],[128.5946,1.5408],[128.0042,1.6285],[127.9324,2.1746],[127.6005,1.8107],[127.3995,1.0117],[127.6965,-0.2666],[128.1,-0.9],[128.38,-0.78],[127.968,-0.2521],[128.1202,0.3564],[128.636,0.2585],[128.6882,1.1324]],[[130.4713,-3.0938],[129.371,-2.8022],[128.1359,-2.8437],[127.8989,-3.3934],[129.9905,-3.4463],[130.8348,-3.8585],[130.4713,-3.0938]],[[127.2492,-3.4591],[127.0007,-3.1293],[125.989,-3.1773],[126.1838,-3.6074],[126.8749,-3.791],[127.2492,-3.4591]],[[126.3768,8.4147],[126.2227,9.2861],[125.4121,9.7603],[125.4714,8.987],[124.7646,8.9604],[124.6015,8.5142],[123.8412,8.2403],[123.4877,8.693],[122.3124,8.035],[121.9199,7.1921],[122.0855,6.8994],[122.8255,7.4574],[123.2961,7.4189],[123.6102,7.8335],[124.2437,7.3606],[123.9387,6.8851],[124.2198,6.1614],[125.3965,5.581],[125.6832,6.0497],[125.3639,6.7865],[125.8314,7.2937],[126.1968,6.2743],[126.5374,7.1894],[126.3768,8.4147]],[[118.5046,9.3164],[119.6897,10.5543],[119.5115,11.3697],[118.9873,10.3763],[117.6645,9.0669],[117.1743,8.3675],[118.5046,9.3164]],[[121.8835,11.8918],[122.0384,11.4158],[122.0026,10.441],[123.1008,11.1659],[123.1202,11.5837],[122.4838,11.5822],[121.8835,11.8918]],[[125.5026,12.1627],[125.2271,12.5357],[124.2668,12.5578],[124.878,11.7942],[124.891,11.4156],[124.3025,11.4954],[124.4591,10.8899],[124.7602,10.838],[124.8018,10.1347],[125.2774,10.3587],[125.0119,11.3115],[125.7835,11.0461],[125.5026,12.1627]],[[123.9824,10.2788],[124.0779,11.2327],[123.3378,10.2674],[123.4988,10.9406],[122.9474,10.8819],[122.8371,10.2612],[122.3801,9.7134],[122.9959,9.0222],[123.9824,10.2788]],[[121.5274,13.0696],[121.1801,13.4297],[120.3234,13.4664],[121.2622,12.2056],[121.5274,13.0696]],[[121.3213,18.5041],[120.7159,18.5052],[120.39,17.5991],[120.2865,16.0346],[119.8838,16.3637],[120.0704,14.9709],[120.5641,14.3963],[120.6933,14.7567],[120.9918,14.5254],[120.6794,14.271],[120.6286,13.8577],[121.1264,13.6367],[122.0346,13.7845],[122.6714,13.1858],[122.9287,13.5529],[123.298,13.0275],[124.0774,12.5367],[124.1813,12.9975],[123.8551,13.2378],[123.9503,13.7821],[122.7013,14.3365],[122.2589,14.2182],[121.7288,14.3284],[121.5051,15.1248],[121.6628,15.931],[122.2523,16.2624],[122.5157,17.0935],[122.1743,17.8103],[122.337,18.2249],[122.246,18.4789],[121.9376,18.2186],[121.3213,18.5041]],[[110.3392,18.6784],[110.5706,19.2559],[111.0101,19.6959],[110.7866,20.0775],[110.2116,20.1013],[109.1191,19.821],[108.6262,19.3679],[108.6552,18.5077],[109.4752,18.1977],[110.3392,18.6784]],[[70.28,-49.71],[70.56,-49.255],[70.525,-49.065],[69.58,-48.94],[68.935,-48.625],[68.72,-49.2425],[68.745,-49.775],[70.28,-49.71]],[[-58.55,-51.1],[-59.15,-51.5],[-60.0,-51.25],[-61.2,-51.85],[-60.7,-52.3],[-59.85,-51.85],[-59.4,-52.2],[-58.05,-51.9],[-57.75,-51.55],[-58.55,-51.1]],[[-68.6341,-52.6362],[-69.3456,-52.5183],[-70.2675,-52.9312],[-70.5918,-53.6158],[-71.1077,-54.0743],[-74.6625,-52.8375],[-73.2852,-53.9575],[-72.2639,-54.4951],[-71.0057,-55.0538],[-69.9581,-55.1984],[-69.2321,-55.4991],[-68.1486,-55.6118],[-67.291,-55.3012],[-66.9599,-54.8968],[-66.45,-55.25],[-65.5,-55.2],[-65.05,-54.7],[-66.45,-54.45],[-67.75,-53.85],[-68.6341,-52.6362]],[[-155.5421,19.0835],[-154.8074,19.5087],[-155.2245,19.993],[-155.8611,20.2672],[-155.8501,19.9773],[-156.0735,19.7029],[-155.9367,19.0594],[-155.6882,18.9162],[-155.5421,19.0835]],[[-156.0793,20.644],[-155.9957,20.764],[-156.2571,20.9174],[-156.7106,20.9268],[-156.4145,20.5724],[-156.0793,20.644]],[[-156.7582,21.1768],[-157.2503,21.2196],[-157.3252,21.0978],[-156.7893,21.0687],[-156.7582,21.1768]],[[-157.6528,21.3222],[-158.0252,21.717],[-158.2927,21.5791],[-158.1267,21.3124],[-157.6528,21.3222]],[[-159.3451,21.982],[-159.3657,22.2149],[-159.8005,22.0653],[-159.4637,21.883],[-159.3451,21.982]],[[-123.51,48.51],[-123.9225,49.0625],[-124.9208,49.4753],[-125.755,50.295],[-128.3584,50.7706],[-128.4446,50.5391],[-128.0593,49.995],[-127.03,49.815],[-126.85,49.53],[-125.955,49.18],[-125.655,48.825],[-124.0129,48.3708],[-123.51,48.51]],[[-132.71,54.04],[-133.18,54.17],[-133.2397,53.8511],[-133.0546,53.4115],[-131.5778,52.1824],[-131.179,52.1804],[-132.0495,52.9846],[-131.75,54.12],[-132.71,54.04]],[[-153.0063,57.1158],[-152.1411,57.5911],[-152.5648,57.9014],[-153.2287,57.969],[-154.671,57.4612],[-154.5164,56.9927],[-154.0051,56.7347],[-153.0063,57.1158]],[[-165.5792,59.91],[-165.6744,60.2936],[-166.4678,60.3842],[-167.4553,60.2131],[-166.1928,59.7544],[-165.5792,59.91]],[[-171.7317,63.7825],[-171.7911,63.4058],[-171.5531,63.3178],[-170.6714,63.3758],[-169.5294,62.9769],[-168.6894,63.2975],[-170.4911,63.695],[-171.1144,63.5922],[-171.7317,63.7825]],[[105.0755,78.3069],[105.3724,78.7133],[102.0864,79.3464],[101.2649,79.234],[99.4381,77.921],[105.0755,78.3069]],[[-68.4513,-70.9558],[-69.7244,-69.251],[-70.2533,-68.8787],[-71.1738,-69.0355],[-71.7418,-69.5058],[-71.781,-70.6815],[-72.0747,-71.191],[-73.2303,-71.1518],[-75.0126,-71.6613],[-74.9539,-72.0728],[-74.19,-72.3667],[-71.8985,-72.0923],[-72.3881,-72.4843],[-71.0759,-72.5038],[-68.7843,-72.1707],[-68.3338,-71.4065],[-68.4513,-70.9558]],[[-98.9815,-71.9333],[-101.704,-71.7178],[-102.3307,-71.8942],[-101.8019,-72.3057],[-100.7835,-72.5016],[-96.2003,-72.5212],[-96.7879,-71.953],[-97.8847,-72.0705],[-98.9815,-71.9333]],[[-125.5596,-73.4814],[-126.5585,-73.2462],[-127.2831,-73.4618],[-125.9122,-73.7361],[-124.0319,-73.8733],[-125.5596,-73.4814]],[[-121.2115,-73.501],[-122.4062,-73.3246],[-122.6217,-73.6578],[-121.6228,-74.0105],[-120.2322,-74.0888],[-119.2921,-73.8341],[-118.7241,-73.4814],[-119.9189,-73.6577],[-121.2115,-73.501]],[[-159.2082,-79.4971],[-159.4824,-79.0463],[-161.2451,-78.3802],[-163.1058,-78.2233],[-163.7129,-78.5957],[-162.4398,-79.2815],[-161.1276,-79.6342],[-159.2082,-79.4971]],[[-45.1548,-78.0471],[-46.6629,-77.8315],[-48.6606,-78.047],[-50.9913,-79.6146],[-51.8531,-79.9477],[-53.988,-80.222],[-54.1643,-80.6335],[-52.852,-80.9667],[-50.4821,-81.0254],[-46.5062,-80.5944],[-43.3333,-80.0261],[-43.4899,-79.0856],[-43.9208,-78.4781],[-45.1548,-78.0471]],[[-59.5721,-80.0402],[-60.6101,-79.6287],[-61.8832,-80.3929],[-66.29,-80.2558],[-65.7417,-80.5888],[-64.4881,-80.9219],[-60.1597,-81.0003],[-59.5721,-80.0402]],[[121.1756,22.7909],[121.9512,24.9976],[121.495,25.2955],[120.6947,24.5385],[120.1062,23.5563],[120.2201,22.8149],[120.7471,21.9706],[121.1756,22.7909]],[[140.9764,37.1421],[140.9595,38.174],[141.8846,39.1809],[141.9143,39.9916],[141.369,41.3786],[140.3058,41.195],[139.8834,40.5633],[140.0548,39.4388],[139.4264,38.216],[137.3906,36.8274],[136.7238,37.305],[135.6775,35.5271],[134.6083,35.7316],[132.6177,35.4334],[131.8842,34.7497],[130.8785,34.2327],[130.3539,33.6042],[129.4085,33.2961],[129.8147,32.6103],[130.4477,32.3195],[130.2024,31.4182],[130.6863,31.0296],[131.3328,31.4504],[132.0,33.15],[130.9861,33.8858],[132.1568,33.9049],[133.3403,34.3759],[135.0794,34.5965],[135.121,33.8491],[135.793,33.4648],[137.2176,34.6063],[138.9755,34.6676],[140.2533,35.1381],[140.7741,35.8429],[140.5998,36.344],[140.9764,37.1421]],[[134.6384,34.1492],[133.9041,34.3649],[133.493,33.9446],[132.9244,34.0603],[132.3712,33.4636],[132.3631,32.9894],[133.0149,32.7046],[133.2803,33.2896],[133.793,33.522],[134.2034,33.2012],[134.7664,33.8063],[134.6384,34.1492]],[[143.9102,44.1741],[143.1429,44.5104],[141.9676,45.5515],[141.3805,43.3888],[140.3121,43.3333],[139.8175,42.5638],[139.9551,41.5696],[141.0673,41.5846],[141.6115,42.6788],[143.1838,41.9952],[144.0597,42.9884],[145.5431,43.2621],[145.3208,44.3847],[144.6134,43.9609],[143.9102,44.1741]],[[143.648,50.7476],[143.2353,51.7567],[143.2608,52.7408],[142.6548,54.3659],[142.2097,54.2255],[142.6069,53.7621],[141.6825,53.302],[141.5941,51.9354],[142.18,50.9523],[142.1358,49.6152],[141.9044,48.8592],[142.0184,47.7801],[141.9069,46.8059],[142.092,45.9668],[142.7477,46.7408],[143.5053,46.1379],[143.5335,46.8367],[142.5587,47.8616],[143.1739,49.3066],[144.6541,48.9764],[143.648,50.7476]],[[81.218,6.1971],[81.6373,6.4818],[81.788,7.5231],[80.8388,9.2684],[80.1478,9.8241],[79.6952,8.2008],[79.8725,6.7635],[80.3484,5.9684],[81.218,6.1971]],[[15.5204,38.2312],[13.7412,38.035],[12.5709,38.1264],[12.431,37.6129],[15.1,36.62],[15.3099,37.1342],[15.1602,37.444],[15.5204,38.2312]],[[23.7,35.705],[23.515,35.28],[24.735,35.085],[24.725,34.92],[26.165,35.005],[26.29,35.3],[25.745,35.18],[25.7692,35.354],[24.2467,35.368],[23.7,35.705]],[[34.5765,35.6716],[33.6672,35.3732],[32.947,35.3867],[32.8025,35.1455],[32.2567,35.1032],[32.4903,34.7017],[32.9798,34.5719],[34.0049,34.9781],[33.9008,35.2458],[34.5765,35.6716]],[[9.21,41.21],[8.71,40.9],[8.16,40.95],[8.3883,40.3783],[8.4283,39.1718],[8.8069,38.9066],[9.2148,39.2405],[9.6695,39.1774],[9.81,40.5],[9.21,41.21]],[[9.56,42.1525],[9.39,43.01],[8.746,42.6281],[8.5442,42.2565],[8.7757,41.5836],[9.2298,41.38],[9.56,42.1525]],[[12.69,55.61],[12.3709,56.1114],[10.9039,55.78],[11.0435,55.3649],[12.09,54.8],[12.69,55.61]]]}}]} \ No newline at end of file