Created
March 22, 2017 08:35
-
-
Save FMassin/54f2c17bd378dfde00d1153f2ff3cd82 to your computer and use it in GitHub Desktop.
Make a OSM tile buffer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [], | |
"source": [ | |
"import urllib3\n", | |
"import os\n", | |
"\n", | |
"\n", | |
"url =\"http://services.arcgisonline.com/arcgis/rest/services/NatGeo_World_Map/MapServer/tile\"\n", | |
"path = \"/Users/fmassin/Documents/osmtiles/\"\n", | |
"http = urllib3.PoolManager()\n", | |
"\n", | |
"for l in range(0,6):\n", | |
" for y in range(0,2**l):\n", | |
" for x in range(0,2**l):\n", | |
" tile = url+\"/\"+str(l)+\"/\"+str(y)+\"/\"+str(x)\n", | |
" directory = path+\"/\"+str(l)+\"/\"+str(x)\n", | |
" file = directory+\"/\"+str(y)+\".jpg\"\n", | |
" \n", | |
" r = http.request('GET', tile, preload_content=False)\n", | |
"\n", | |
" flag = 0\n", | |
" os.makedirs( directory, exist_ok=True );\n", | |
" with open(file, 'wb') as out:\n", | |
" while True:\n", | |
" data = r.read()\n", | |
" if not data:\n", | |
" break\n", | |
" \n", | |
" out.write(data)\n", | |
" flag = 1\n", | |
" r.release_conn()" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": false | |
}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"/Users/fmassin/Documents/osmtiles/7/67/47.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/68/47.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/69/47.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/70/47.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/71/47.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/67/48.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/68/48.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/69/48.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/70/48.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/71/48.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/67/49.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/68/49.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/69/49.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/70/49.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/71/49.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/30/58.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/31/58.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/32/58.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/30/59.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/31/59.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/30/60.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/31/60.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/30/61.png\n", | |
"/Users/fmassin/Documents/osmtiles/7/31/61.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/64/118.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/65/118.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/66/118.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/67/118.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/68/118.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/64/119.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/65/119.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/66/119.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/67/119.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/68/119.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/64/120.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/65/120.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/66/120.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/67/120.png\n", | |
"/Users/fmassin/Documents/osmtiles/8/68/120.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/131/237.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/132/237.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/133/237.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/134/237.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/135/237.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/131/238.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/132/238.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/133/238.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/134/238.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/135/238.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/131/239.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/132/239.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/133/239.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/134/239.png\n", | |
"/Users/fmassin/Documents/osmtiles/9/135/239.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/264/475.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/265/475.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/266/475.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/267/475.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/268/475.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/269/475.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/264/476.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/265/476.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/266/476.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/267/476.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/268/476.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/269/476.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/264/477.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/265/477.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/266/477.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/267/477.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/268/477.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/269/477.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/264/478.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/265/478.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/266/478.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/267/478.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/268/478.png\n", | |
"/Users/fmassin/Documents/osmtiles/10/269/478.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/531/953.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/532/953.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/533/953.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/534/953.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/535/953.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/536/953.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/531/954.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/532/954.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/533/954.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/534/954.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/535/954.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/536/954.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/531/955.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/532/955.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/533/955.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/534/955.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/535/955.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/536/955.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/531/956.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/532/956.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/533/956.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/534/956.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/535/956.png\n", | |
"/Users/fmassin/Documents/osmtiles/11/536/956.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1065/1909.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1066/1909.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1067/1909.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1068/1909.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1069/1909.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1070/1909.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1065/1910.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1066/1910.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1067/1910.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1068/1910.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1069/1910.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1070/1910.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1065/1911.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1066/1911.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1067/1911.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1068/1911.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1069/1911.png\n", | |
"/Users/fmassin/Documents/osmtiles/12/1070/1911.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2133/3819.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2134/3819.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2135/3819.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2133/3820.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2134/3820.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2135/3820.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2136/3820.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2137/3820.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2133/3821.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2134/3821.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2135/3821.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2136/3821.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2137/3821.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2133/3822.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2134/3822.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2135/3822.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2136/3822.png\n", | |
"/Users/fmassin/Documents/osmtiles/13/2137/3822.png\n", | |
"/Users/fmassin/Documents/osmtiles/14/4269/7641.png\n", | |
"/Users/fmassin/Documents/osmtiles/14/4269/7642.png\n", | |
"/Users/fmassin/Documents/osmtiles/14/4269/7643.png\n" | |
] | |
}, | |
{ | |
"ename": "KeyboardInterrupt", | |
"evalue": "", | |
"output_type": "error", | |
"traceback": [ | |
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", | |
"\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", | |
"\u001b[0;32m<ipython-input-5-b8b301173354>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 9\u001b[0;31m \u001b[0mdirectory\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpath\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;34m\"/\"\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ml\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;34m\"/\"\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 10\u001b[0m \u001b[0mtest\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdirectory\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;34m\"/\"\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m+\u001b[0m\u001b[0;34m\".png\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", | |
"\u001b[0;31mKeyboardInterrupt\u001b[0m: " | |
] | |
} | |
], | |
"source": [ | |
"url2 =\"http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer/tile\"\n", | |
"path = \"/Users/fmassin/Documents/osmtiles\"\n", | |
"http = urllib3.PoolManager()\n", | |
"\n", | |
"for l in range(7,15):\n", | |
" for y in range(0,2**l):\n", | |
" for x in range(0,2**l): \n", | |
" \n", | |
" directory = path+\"/\"+str(l)+\"/\"+str(x)\n", | |
" test = directory+\"/\"+str(y)+\".png\"\n", | |
" \n", | |
" if os.path.isfile(test) is True:\n", | |
" print(test)\n", | |
" \n", | |
" tile = url2+\"/\"+str(l)+\"/\"+str(y)+\"/\"+str(x)\n", | |
" file = directory+\"/\"+str(y)+\".jpg\"\n", | |
" \n", | |
" r = http.request('GET', tile, preload_content=False)\n", | |
"\n", | |
" flag = 0\n", | |
" with open(file, 'wb') as out:\n", | |
" while True:\n", | |
" data = r.read()\n", | |
" if not data:\n", | |
" break\n", | |
"\n", | |
" out.write(data)\n", | |
" flag = 1\n", | |
" r.release_conn()\n", | |
" \n", | |
" tile = url+\"/\"+str(l)+\"/\"+str(y)+\"/\"+str(x)\n", | |
" \n", | |
" r = http.request('GET', tile, preload_content=False)\n", | |
"\n", | |
" flag = 0\n", | |
" with open(file, 'wb') as out:\n", | |
" while True:\n", | |
" data = r.read()\n", | |
" if not data:\n", | |
" break\n", | |
"\n", | |
" out.write(data)\n", | |
" flag = 1\n", | |
" r.release_conn()" | |
] | |
} | |
], | |
"metadata": { | |
"anaconda-cloud": {}, | |
"kernelspec": { | |
"display_name": "Python [default]", | |
"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.5.2" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 1 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment