{
"info": {
"author": "Aaron Schroeder",
"author_email": "aaron@trailzealot.com",
"bugtrack_url": null,
"classifiers": [
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.6"
],
"description": "# spatialfriend\n\n> Python library for calculating geospatial data from gps coordinates.\n\n[](https://www.python.org/downloads/release/python-360/)\n[](http://badges.mit-license.org)\n\n---\n\n## Table of Contents\n\n- [Motivation](#motivation)\n- [The Elevation Profile Smoothing Algorithm](#the-elevation-profile-smoothing-algorithm)\n- [Dependencies and Installation](#dependencies-and-installation)\n- [Example](#example)\n- [Project Status](#project-status)\n- [References](#references)\n- [Contact](#contact)\n- [License](#license)\n\n---\n\n## Motivation\n\nDetermining one's elevation on Earth's surface has become a lot easier thanks\nto high-accuracy consumer GPS products and digital elevation models (DEMs) of\nEarth's topography. Still, there are errors in GPS location and in every Earth\nsurface model. When working with elevation and position time series, for example\ncalculating instantaneous slopes during a trail running workout, stricter \nrequirements are placed on the data. Even with a perfectly accurate DEM,\ninaccurate GPS data can yield totally unreasonable elevation profiles and path\nslopes, documenting work or elevation gain that the runner did not actually do.\nThe same can be said for a perfectly accurate GPS trace on an inaccurate DEM.\n\nThe goal of this project is to take GPS data of all resolutions, and return\ngeospatial data and calculations that actually match the athlete's experience.\nNo more unreasonably steep slopes or noisy data in your elevation profile \nmaking running power calculations meaningless. No more adding to your\nworkout's distance because your GPS was drifting around while you were \nwaiting at a stoplight. No more wondering if those elevation measurements\nyou read on GPS device or barometric altimeter are accurate. No more apples to\noranges data comparisons because of differences between devices or datasets. \n\nThis package is all about being able to hit record on that device, head\nout for your run/hike/bike ride, and forget about it. Bring that messy\nactivity file and we will process the data once it is all done.\n\n---\n\n## The Elevation Profile Smoothing Algorithm\n\n---\n\n## Example\n```python\nimport spatialfriend as sf\n\n```\n\n---\n\n## Dependencies and Installation\n\n### Base Installation\n\n[GeoPy](https://github.com/geopy/geopy),\n[Google Maps](https://github.com/googlemaps/google-maps-services-python),\n[NumPy](http://www.numpy.org/), [Pandas](http://pandas.pydata.org/), \nand [SciPy](https://www.scipy.org/) are required for the base installation.\n\n`pip install spatialfriend` to install.\n\n### Extra: Elevaton values from `.img` files\n\nIn addition to providing access to the Google Maps Elevation query service,\nspatialfriend allows querying of user-owned `.img` files that contain \nelevation data. Such files are available from \n[the National Map's download page](https://viewer.nationalmap.gov/basic/).\n\n[GDAL](https://pypi.org/project/GDAL/) and [utm](https://github.com/Turbo87/utm)\nare required for this extra feature.\n\n`pip install spatialfriend[img]` to install.\n\n### Extra: Elevation values from the National Map\n\nspatialfriend allows querying of the National Map's \n[Elevation Point Query Service](https://nationalmap.gov/epqs/). This \nservice exposes data from the National Map's 1/3 arc-second Digital \nElevation Model. 1/3 arc-second refers to the data's horizontal \nresolution in terms of degrees; this equates to roughly 30 meters.\n\n[requests](https://pypi.org/project/requests/) and \n[urllib3](https://github.com/urllib3/urllib3) are required for this \nextra feature.\n\n`pip install spatialfriend[tnm]` to install.\n\n---\n\n## Project Status\n\n### Complete\n\n- Create Python package.\n\n- Implement a series of tests to ensure functionality as development progresses.\n\n### Current Activities\n\n- Streamline input so user can be more hands-off.\n\n#### Benchmarking and Optimization\n\n- Benchmark algorithm performance (speed, accuracy, and consistency):\n - Generate dummy series of (distance, elevation) data to check\n smoothing algorithm.\n - Generate series of GPS points to compare elevation datasets with\n and without smoothing.\n\n### Future Work\n\n- Implement an algorithm to smooth GPS position and speed data. \n Most GPS-enabled activity trackers filter their speed and distance\n timeseries to remove measurement noise. I want to try and figure out\n how they do it, then replicate their techniques, and compare the\n smoothed position data.\n\n---\n\n## References\n\n\n\n---\n\n## Contact\n\nReach out to me at one of the following places!\n\n- Website: trailzealot.com\n- LinkedIn: linkedin.com/in/aarondschroeder\n- Twitter: @trailzealot\n- Instagram: @trailzealot\n- GitHub: github.com/aaron-schroeder\n\n---\n\n## License\n\n[](http://badges.mit-license.org)\n\nThis project is licensed under the MIT License. See\n[LICENSE](https://github.com/aaron-schroeder/spatialfriend/blob/master/LICENSE)\nfile for details.\n\n---\n\n\n\n\n",
"description_content_type": "text/markdown",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/aaron-schroeder/spatialfriend",
"keywords": "",
"license": "MIT License",
"maintainer": "",
"maintainer_email": "",
"name": "spatialfriend",
"package_url": "https://pypi.org/project/spatialfriend/",
"platform": "",
"project_url": "https://pypi.org/project/spatialfriend/",
"project_urls": {
"Homepage": "https://github.com/aaron-schroeder/spatialfriend"
},
"release_url": "https://pypi.org/project/spatialfriend/0.0.10/",
"requires_dist": [
"geopy (>=1.20.0)",
"googlemaps (>=3.0)",
"numpy (>=1.14)",
"pandas (>=0.24)",
"scipy (>=1.1)",
"GDAL (>=2.1.4) ; extra == 'img'",
"utm (>=0.4.2) ; extra == 'img'",
"requests (>=2.22) ; extra == 'tnm'",
"urllib3 (>=1.25.6) ; extra == 'tnm'"
],
"requires_python": "",
"summary": "Python library for calculating geospatial data from gps coordinates.",
"version": "0.0.10"
},
"last_serial": 5956363,
"releases": {
"0.0.1": [
{
"comment_text": "",
"digests": {
"md5": "a1747770d832bd61f0ab94a415d580d5",
"sha256": "8b82c15a8f9f78c8cd7ed4360304441f40675ab5b9a464658575b99694570d16"
},
"downloads": -1,
"filename": "spatialfriend-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a1747770d832bd61f0ab94a415d580d5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9994,
"upload_time": "2019-10-08T12:09:43",
"url": "https://files.pythonhosted.org/packages/10/fc/1b9e14848bef93216ff8e059cb14a3d646d595d2cbe5cf22650175a296e1/spatialfriend-0.0.1-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "ba99add7950c3a617212b80a7bac5bf5",
"sha256": "2d683c3b7bff776f46730e2dc0ec218a0e9fbb5bfe38d328c0a5ee013f298566"
},
"downloads": -1,
"filename": "spatialfriend-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "ba99add7950c3a617212b80a7bac5bf5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9053,
"upload_time": "2019-10-08T12:09:50",
"url": "https://files.pythonhosted.org/packages/c4/4a/72cb3c065bb2749ae35ad75c8e8b9a6615fe1ce3b5c037b33c1fc3c293a1/spatialfriend-0.0.1.tar.gz"
}
],
"0.0.10": [
{
"comment_text": "",
"digests": {
"md5": "7fd38ddaf95a09393b612d63fb40875e",
"sha256": "5edc57fac6352401048903b5e88cec19bae8f12f696f6c575b620a7d4205b4d4"
},
"downloads": -1,
"filename": "spatialfriend-0.0.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7fd38ddaf95a09393b612d63fb40875e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10512,
"upload_time": "2019-10-10T18:59:39",
"url": "https://files.pythonhosted.org/packages/26/68/b21c428e79e6ef90a7e49a176f2b929a3b683d51908122db2e2d7d284be8/spatialfriend-0.0.10-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9db582ff381580f20cf2d4b40ae1f583",
"sha256": "27e931529c6213f53bb4b06ac36006a47d5b345462e91121ed8ca935a17fd389"
},
"downloads": -1,
"filename": "spatialfriend-0.0.10.tar.gz",
"has_sig": false,
"md5_digest": "9db582ff381580f20cf2d4b40ae1f583",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9561,
"upload_time": "2019-10-10T18:59:40",
"url": "https://files.pythonhosted.org/packages/d2/c9/fa7f482f886031f6ce6a1e3f5c205f9626c44727bfb0509f524d8de2e6ae/spatialfriend-0.0.10.tar.gz"
}
],
"0.0.2": [
{
"comment_text": "",
"digests": {
"md5": "52d23bae62d7041bf48438c4ff6ef593",
"sha256": "a1961fc93b03932608fab557fcd0df27979a738b6a22177626b086dc86798909"
},
"downloads": -1,
"filename": "spatialfriend-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "52d23bae62d7041bf48438c4ff6ef593",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9664,
"upload_time": "2019-10-08T12:09:45",
"url": "https://files.pythonhosted.org/packages/c9/80/9a09424c2401dc7787efdf0b493d6c18dcba0d53688a3c027cccd28ec203/spatialfriend-0.0.2-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "e8708e550ad39d9a6d9e615827e1f7fe",
"sha256": "9881e7b567fd380cbe32e11ffcd61ccc0424900d0fc66fde89c67683f393aefb"
},
"downloads": -1,
"filename": "spatialfriend-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "e8708e550ad39d9a6d9e615827e1f7fe",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8693,
"upload_time": "2019-10-08T12:09:51",
"url": "https://files.pythonhosted.org/packages/66/ea/ee9cc660bb15086dd012a79b82e4561772948a7e603430601f1843b08ec2/spatialfriend-0.0.2.tar.gz"
}
],
"0.0.3": [
{
"comment_text": "",
"digests": {
"md5": "05b77239c6aa00788393a2dca489d6d3",
"sha256": "b8e300975af518bb2a23c9563a9a023684755da9ebc164757f1f6558f1ac8090"
},
"downloads": -1,
"filename": "spatialfriend-0.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "05b77239c6aa00788393a2dca489d6d3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9666,
"upload_time": "2019-10-08T01:01:54",
"url": "https://files.pythonhosted.org/packages/4e/01/74e64a2348238e02857993598e9cd06dc818c16c1278d86d24758a6fe2b7/spatialfriend-0.0.3-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "3736101d186bedce07a24847f5deea4a",
"sha256": "48a4d08f3ca5dc2186517319e496378c506e1dcd0d28b19fbd77744454a11734"
},
"downloads": -1,
"filename": "spatialfriend-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "3736101d186bedce07a24847f5deea4a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8686,
"upload_time": "2019-10-08T01:01:56",
"url": "https://files.pythonhosted.org/packages/f7/7f/6d81fcfaf9449ec5673b765a48d2557a4b9e5bf9a64bad51376cd6c7bdf4/spatialfriend-0.0.3.tar.gz"
}
],
"0.0.4": [
{
"comment_text": "",
"digests": {
"md5": "2ce2b87f0a17a4bb5ba35f53751ecf03",
"sha256": "ae8f0297527d0a1a9a210507af54597056261a4dd098835274a83390daf78a83"
},
"downloads": -1,
"filename": "spatialfriend-0.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2ce2b87f0a17a4bb5ba35f53751ecf03",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10360,
"upload_time": "2019-10-08T12:09:48",
"url": "https://files.pythonhosted.org/packages/23/ca/93556dd1cf14cd157fcc3cd9861858667e10ff7334a82239b16a2d93d69a/spatialfriend-0.0.4-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "939d574abc5508703ec1235162112da3",
"sha256": "e9ae9e5055f08440edd562a06893e1203af66a46ecbd376fd79a6cd3e581d8e6"
},
"downloads": -1,
"filename": "spatialfriend-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "939d574abc5508703ec1235162112da3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9325,
"upload_time": "2019-10-08T12:09:54",
"url": "https://files.pythonhosted.org/packages/4b/07/d70021dc75557eee0b811624e9ee26b414f5637bb0eaac467d16c0bed515/spatialfriend-0.0.4.tar.gz"
}
],
"0.0.5": [
{
"comment_text": "",
"digests": {
"md5": "66e9625794392e494a6556c7250a8653",
"sha256": "21ecff66298821da346f51bfa656b61acf97390c40fafaea9b5ec89b817d0d9c"
},
"downloads": -1,
"filename": "spatialfriend-0.0.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "66e9625794392e494a6556c7250a8653",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10363,
"upload_time": "2019-10-08T12:16:49",
"url": "https://files.pythonhosted.org/packages/92/f3/513dffdebc373c1dd6af8b46df3931eeac18b795fbc55b38ca91e9913826/spatialfriend-0.0.5-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f858c4ea84846ef6431d3b59442a2712",
"sha256": "d52430ae37fc3aec3a28a2018254c5a5cdebfb6e2f229773c81d1a82aef1a749"
},
"downloads": -1,
"filename": "spatialfriend-0.0.5.tar.gz",
"has_sig": false,
"md5_digest": "f858c4ea84846ef6431d3b59442a2712",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9327,
"upload_time": "2019-10-08T12:16:50",
"url": "https://files.pythonhosted.org/packages/f4/0d/658ab77774fe7fb3a2b989ef4ffe4ae9b6dbb836fc3dc425d331fc7196e7/spatialfriend-0.0.5.tar.gz"
}
],
"0.0.6": [
{
"comment_text": "",
"digests": {
"md5": "7b2d82a34fce2312cab8909dba91bb40",
"sha256": "64f20db12397f4f85fc7611f2079e2e8b6ddaca4d65751cc7df27015e2fb3b39"
},
"downloads": -1,
"filename": "spatialfriend-0.0.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7b2d82a34fce2312cab8909dba91bb40",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10538,
"upload_time": "2019-10-08T12:21:53",
"url": "https://files.pythonhosted.org/packages/26/66/55e8fb2e5171224626460f3f4c0b929007653ecfa272abc8663c185ca578/spatialfriend-0.0.6-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "f52d81b1691b11307adf35f1961254d8",
"sha256": "7c68e0f6d561f0858188b37fbe5d39d3adb4238bf3c3c9ef9f890458bad80077"
},
"downloads": -1,
"filename": "spatialfriend-0.0.6.tar.gz",
"has_sig": false,
"md5_digest": "f52d81b1691b11307adf35f1961254d8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9346,
"upload_time": "2019-10-08T12:21:55",
"url": "https://files.pythonhosted.org/packages/b3/ab/9df9f57a72133fdd44cdda471ec25205b73444938a05ab8fd520cd97c768/spatialfriend-0.0.6.tar.gz"
}
],
"0.0.7": [
{
"comment_text": "",
"digests": {
"md5": "b7b96a4e61e6359328b5a9dfb7b56f32",
"sha256": "fe4011961929a4a918a8cf4876a3c604c45ffa9b6d31f5ebd61d2def138b10ef"
},
"downloads": -1,
"filename": "spatialfriend-0.0.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b7b96a4e61e6359328b5a9dfb7b56f32",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 11021,
"upload_time": "2019-10-08T21:15:24",
"url": "https://files.pythonhosted.org/packages/9b/65/817cfaa521fabf4a6c71ad942feb05bec9c75c09bb48bbc61cd63c3ac7b6/spatialfriend-0.0.7-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "2c32acc665989f3642ac3d41ab6d11fd",
"sha256": "e314563ed14f6ee5cafc97d57a8749f84ed423bb904186fd2af6cdde9a70b51a"
},
"downloads": -1,
"filename": "spatialfriend-0.0.7.tar.gz",
"has_sig": false,
"md5_digest": "2c32acc665989f3642ac3d41ab6d11fd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9613,
"upload_time": "2019-10-08T21:15:25",
"url": "https://files.pythonhosted.org/packages/04/4c/f3dc62aa2a295aae62b4c912cd469b6627a4d75ed324eb35435c16616fd4/spatialfriend-0.0.7.tar.gz"
}
],
"0.0.8": [
{
"comment_text": "",
"digests": {
"md5": "595980b9510e75a514aeb7693df88ef7",
"sha256": "4449876f2c77990ac6a8da832f5f82058faa356388f1df15cb84bba1038ce18b"
},
"downloads": -1,
"filename": "spatialfriend-0.0.8-py3-none-any.whl",
"has_sig": false,
"md5_digest": "595980b9510e75a514aeb7693df88ef7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10772,
"upload_time": "2019-10-09T14:50:44",
"url": "https://files.pythonhosted.org/packages/0b/1f/591e119133fa7ba0426ba9693580d3db37a086d43be54b5b4898976bcea7/spatialfriend-0.0.8-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6bab9c97c77a64e1ece0b00b5c19e032",
"sha256": "a8f82268cc0fbf77ace73af9e327c0a0a125ee2cb4d311e71fe12f8ddaaf6898"
},
"downloads": -1,
"filename": "spatialfriend-0.0.8.tar.gz",
"has_sig": false,
"md5_digest": "6bab9c97c77a64e1ece0b00b5c19e032",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9624,
"upload_time": "2019-10-09T14:50:46",
"url": "https://files.pythonhosted.org/packages/51/b5/95290ff90b74ee0f272f63616cc2bb720379ddeff7da6169186f3ed495a2/spatialfriend-0.0.8.tar.gz"
}
],
"0.0.9": [
{
"comment_text": "",
"digests": {
"md5": "cc96003423d1a0c561649a4bea8aacbe",
"sha256": "e252f69b7f936017cac5ddbcdc2f9f52073342040216405cfd78e404249f5998"
},
"downloads": -1,
"filename": "spatialfriend-0.0.9-py3-none-any.whl",
"has_sig": false,
"md5_digest": "cc96003423d1a0c561649a4bea8aacbe",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10491,
"upload_time": "2019-10-10T15:09:41",
"url": "https://files.pythonhosted.org/packages/0a/fd/4477e474f322d0c3d80e0a9f23e5e7129243a1122ff330dd073f6851e269/spatialfriend-0.0.9-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "6cacba268789991e7a8936f983f9b4fd",
"sha256": "e07d93104eb7529572ecb80155ff5f813791c245eb17b6382fcfd8e38ce03b83"
},
"downloads": -1,
"filename": "spatialfriend-0.0.9.tar.gz",
"has_sig": false,
"md5_digest": "6cacba268789991e7a8936f983f9b4fd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9559,
"upload_time": "2019-10-10T15:09:43",
"url": "https://files.pythonhosted.org/packages/5d/ff/3ebb2de8efc8e5a69100e0ea363916c9113e3a403497f27a0ef5ba616f90/spatialfriend-0.0.9.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "7fd38ddaf95a09393b612d63fb40875e",
"sha256": "5edc57fac6352401048903b5e88cec19bae8f12f696f6c575b620a7d4205b4d4"
},
"downloads": -1,
"filename": "spatialfriend-0.0.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7fd38ddaf95a09393b612d63fb40875e",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10512,
"upload_time": "2019-10-10T18:59:39",
"url": "https://files.pythonhosted.org/packages/26/68/b21c428e79e6ef90a7e49a176f2b929a3b683d51908122db2e2d7d284be8/spatialfriend-0.0.10-py3-none-any.whl"
},
{
"comment_text": "",
"digests": {
"md5": "9db582ff381580f20cf2d4b40ae1f583",
"sha256": "27e931529c6213f53bb4b06ac36006a47d5b345462e91121ed8ca935a17fd389"
},
"downloads": -1,
"filename": "spatialfriend-0.0.10.tar.gz",
"has_sig": false,
"md5_digest": "9db582ff381580f20cf2d4b40ae1f583",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9561,
"upload_time": "2019-10-10T18:59:40",
"url": "https://files.pythonhosted.org/packages/d2/c9/fa7f482f886031f6ce6a1e3f5c205f9626c44727bfb0509f524d8de2e6ae/spatialfriend-0.0.10.tar.gz"
}
]
}