{ "info": { "author": "Julian Hammer", "author_email": "julian.hammer@fau.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "Intended Audience :: System Administrators", "Intended Audience :: Telecommunications Industry", "License :: OSI Approved :: GNU Affero General Public License v3", "Operating System :: MacOS", "Operating System :: POSIX", "Operating System :: Unix", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Topic :: Internet", "Topic :: Utilities" ], "description": "# RIPE-Atlas-sbucket\nSpatial Bucketing of RIPE Atlas Probes on Map Projections\n\nThis tool selects probes based on spatial distribution on an arbitrary map projection. Some tweaking might be required for non-mercartor like projections.\n\n## Installation\n```\npip install sbucket\n```\n\n## Usage\n```\nusage: sbucket [-h] [--data DATA] [--projection PROJECTION]\n [--maxiter MAXITER] [--country COUNTRY [COUNTRY ...]]\n [--verbose]\n count\n\nSpatial bucketing of RIPE Atlas probes.\n\npositional arguments:\n count number of probes to be returned\n\noptional arguments:\n -h, --help show this help message and exit\n --data DATA, -d DATA dump of probe metadata, if not given data is retrieved\n from atlas.ripe.net\n --projection PROJECTION, -p PROJECTION\n projection to use for spatial distribution, has to be\n supported by pyproj (default: merc)\n --maxiter MAXITER, -m MAXITER\n maximum number of iterations to be performed (default:\n 100)\n --country COUNTRY [COUNTRY ...], -c COUNTRY [COUNTRY ...]\n Allowed countries. If not set: world-wide.\n --verbose, -v\n```\n\n## Example\n```\n$ sbucket.py 100\n[11689, 15655, 52, 1114, 168, 628, 86, 21451, 16100, 24, 13237, 11, 4096, 303, 176, 33, 4920, 683, 1190, 2810, 14449, 449, 239, 6107, 12505, 17601, 1002, 4814, 74, 1118, 78, 243, 212, 1046, 3466, 16632, 21126, 3585, 227, 126, 73, 12811, 77, 2917, 483, 446, 2062, 3, 253, 3168, 2250, 11061, 3053, 329, 1147, 3461, 2001, 524, 1042, 3579, 93, 75, 4089, 20255, 3646, 4985, 12848, 11691, 165, 3924, 516, 11744, 4776, 1016, 4000, 2564, 97, 14446, 1069, 40, 603, 13028, 645, 521, 20092, 332, 18357, 18641, 1154, 12372, 1133, 234, 1149, 4153, 2456, 15297, 13805, 2218, 18437, 4919, 470, 10688, 1165, 1003]\n$\n```\n\nWithout sbucket selection (world-wide 500 probes): \n![alt text](https://github.com/cod3monk/RIPE-Atlas-sbucket/raw/master/without-sbucket.png \"Map without sbucket.\")\n\nThe distribution is biased, because it prefers areas with a high density of probes. Here you can see the global distribution of probes by country code:\n![alt text](https://github.com/cod3monk/RIPE-Atlas-sbucket/raw/master/WW500-probes-per-country.png \"Probe Numbers by Country (WW500).\")\n\nWith sbucket selection (world-wide 500 probes): \n![alt text](https://github.com/cod3monk/RIPE-Atlas-sbucket/raw/master/with-sbucket.png \"Map with sbucket.\")\n\nAfter application of the spacial bucket algorithm this distribution has a much longer tail (thus includes more countries) and small countries with high probe density are moved down and large countries are moved up the ladder:\n![alt text](https://github.com/cod3monk/RIPE-Atlas-sbucket/raw/master/SB500-probes-per-country.png \"Probe Numbers by Country (WW500).\")\n\n## Algorithm\nIt tries to find a grid with roughly square cells where the number of cells by iterating over grid sizes. It stops after a grid was found which yields the number of probes (with a 5% error margin) OR a maximum number of iterations have been performed.\n\nIf the number of probes is bellow the targeted count, the cell number is increased (vertically and horizontally) by 50%, otherwise it is reduce by 10%.\n\nWithin one cell a random probe is selected.\n\n## Known Problems\n * Selection might yield more or less probes then expected, no guarantees here, but it works well for larger numbers (>20).\n * The grid is set between 85 degrees north and east, this might be a problem with other projections than mercartor", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/cod3monk/RIPE-Atlas-sbucket", "keywords": "", "license": "AGPLv3", "maintainer": null, "maintainer_email": null, "name": "sbucket", "package_url": "https://pypi.org/project/sbucket/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/sbucket/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/cod3monk/RIPE-Atlas-sbucket" }, "release_url": "https://pypi.org/project/sbucket/0.1.4/", "requires_dist": null, "requires_python": null, "summary": "Spatial Bucketing of RIPE Atlas Probes on Map Projections.", "version": "0.1.4" }, "last_serial": 1483064, "releases": { "0": [], "0.1.0": [ { "comment_text": "", "digests": { "md5": "578bef9b265ac01529185e306a53cb97", "sha256": "f4e137e9de806f90de4cad9076797fe9daa9f94afa19904dbc134b0f247dc062" }, "downloads": -1, "filename": "sbucket-0.1.0.tar.gz", "has_sig": false, "md5_digest": "578bef9b265ac01529185e306a53cb97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3979, "upload_time": "2015-03-29T10:51:48", "url": "https://files.pythonhosted.org/packages/4a/e8/0a255315337341279b39846eca4c23048036e809a4e53d14dc3e2fbdf839/sbucket-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "61c48eee8402267c50af44e7755fa8df", "sha256": "cb4c24defce499169527e0cce98dbbbc3b8f7b7e53945401ac16c3c32098b41b" }, "downloads": -1, "filename": "sbucket-0.1.1.tar.gz", "has_sig": false, "md5_digest": "61c48eee8402267c50af44e7755fa8df", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3984, "upload_time": "2015-03-29T12:23:40", "url": "https://files.pythonhosted.org/packages/1a/22/467c16a3ef1204897ff2c5a080b4de2412b2b1e45ada7bfdb3e9bed81830/sbucket-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "9600d0d054418c670e8f45b6bcb08888", "sha256": "a31abad5705264e8baa2cab95beb2627c09cdf892721fbf8b3fe8f4094ed052c" }, "downloads": -1, "filename": "sbucket-0.1.2.tar.gz", "has_sig": false, "md5_digest": "9600d0d054418c670e8f45b6bcb08888", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3986, "upload_time": "2015-03-29T13:20:23", "url": "https://files.pythonhosted.org/packages/a0/eb/bccbae0b64646b78ba5307db4e3df657c90c35b1131d14ae92706674b61a/sbucket-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "349fa69248f4db7bff0c86e7c73eb08c", "sha256": "4b8ab2d716af02ad8dd61b025aeb76d5e74a747b6f5906b4d67cd7cf58cca336" }, "downloads": -1, "filename": "sbucket-0.1.3.tar.gz", "has_sig": false, "md5_digest": "349fa69248f4db7bff0c86e7c73eb08c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15998, "upload_time": "2015-03-29T13:22:22", "url": "https://files.pythonhosted.org/packages/6b/e3/4b1a334e67fc50af3e22cee900c948250fd9343283b797da3d415f132c5b/sbucket-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "a78e999941a6f248c75c9e0205fbed64", "sha256": "8329ccc50002acb2d83792d38af99696aecc7287b4e12e582c15d57d71e88707" }, "downloads": -1, "filename": "sbucket-0.1.4.tar.gz", "has_sig": false, "md5_digest": "a78e999941a6f248c75c9e0205fbed64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17525, "upload_time": "2015-03-30T11:25:11", "url": "https://files.pythonhosted.org/packages/c9/74/a9b32d6902404c5165286b8492f49fb95f1945217020f703961ad46f6213/sbucket-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a78e999941a6f248c75c9e0205fbed64", "sha256": "8329ccc50002acb2d83792d38af99696aecc7287b4e12e582c15d57d71e88707" }, "downloads": -1, "filename": "sbucket-0.1.4.tar.gz", "has_sig": false, "md5_digest": "a78e999941a6f248c75c9e0205fbed64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17525, "upload_time": "2015-03-30T11:25:11", "url": "https://files.pythonhosted.org/packages/c9/74/a9b32d6902404c5165286b8492f49fb95f1945217020f703961ad46f6213/sbucket-0.1.4.tar.gz" } ] }