{ "info": { "author": "J. Michelfeit", "author_email": "python@michelfe.it", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Localization" ], "description": "===============\ntimezonefinderL\n===============\n\n\n.. image:: https://img.shields.io/travis/MrMinimal64/timezonefinderL/master.svg\n :target: https://travis-ci.org/MrMinimal64/timezonefinderL\n\n.. image:: https://img.shields.io/pypi/wheel/timezonefinderL.svg\n :target: https://pypi.python.org/pypi/timezonefinderL\n\n.. image:: https://pepy.tech/badge/timezonefinderL\n :alt: Total PyPI downloads\n :target: https://pypi.python.org/pypi/timezonefinderL\n\n.. image:: https://img.shields.io/pypi/v/timezonefinderL.svg\n :target: https://pypi.python.org/pypi/timezonefinderL\n\n\ntimezonefinderL is the faster and lightweight, but inaccurate version of the original `timezonefinder `__.\nUse this package in favour of ``timezonefinder`` when memory usage and speed matter more to you than accuracy.\n\n\nOnly the function ``timezone_at()`` is being supported and ``numba`` cannot be used for precompilation.\nThe commands need to modified:\n\n::\n\n pip install timezonefinderL\n\n\n.. code-block:: python\n\n from timezonefinderL import TimezoneFinder\n\n tf = TimezoneFinder()\n\n longitude, latitude = 13.358, 52.5061\n tf.timezone_at(lng=longitude, lat=latitude) # returns 'Europe/Berlin'\n\n\nFor everything else please refer to the original `Documentation `__.\n\n\nOperating Principle\n-------------------\n\nInstead of storing timezone polygons and checking which polygon a query point is included in, like with the vanilla ``timezonefinder``,\nthis package uses only the precomputed shortcuts to instantly lookup a timezone.\nThe zone which has the highest amount of timezone polygons (not covered surface!) in a shortcut is instantly being returned.\n\nThis requires far less memory and computing time, but of course is not accurate close to the borders of two neighbouring timezones.\n\n\nThe size of the shortcuts (<-> accuracy) is equal to the one used in the vanilla ``timezonefinder`` (1 shortcut per degree longitude, 2 per degree latitude, 260KB binary file size).\nIn order to increase the accuracy (more and smaller shortcut rectangles), increment the parameters ``NR_SHORTCUTS_PER_LNG`` and ``NR_SHORTCUTS_PER_LAT`` in ``global_settings.py`` and compile a new binary shortcut file by running ``file_converter.py``.\n\n\nSpeed Test Results:\n-------------------\n\nobtained on MacBook Pro (15-inch, 2017), 2,8 GHz Intel Core i7\nIt can be seen that ``timezonefinderL`` is roughly one order of magnitude faster than ``timezonefinder``:\n\n::\n\n Speed Tests:\n -------------\n \"realistic points\": points included in a timezone\n\n in memory mode: False\n\n testing 100000 realistic points\n total time: 0.5513s\n avg. points per second: 1.8 * 10^5\n\n testing 100000 random points\n total time: 0.5682s\n avg. points per second: 1.8 * 10^5\n\n\n in memory mode: True\n\n testing 100000 realistic points\n total time: 0.1688s\n avg. points per second: 5.9 * 10^5\n\n\n testing 100000 random points\n total time: 0.1837s\n avg. points per second: 5.4 * 10^5\n\n\n\nContact\n-------\n\nMost certainly there is stuff I missed, things I could have optimized even further etc. I would be really glad to get some feedback on my code.\n\nIf you notice that the tz data is outdated, encounter any bugs, have\nsuggestions, criticism, etc. feel free to **open an Issue**, **add a Pull Requests** on Git or ...\n\ncontact me: *[python] {*-at-*} [michelfe] {-*dot*-} [it]*\n\n\n\nLicense\n-------\n\n``timezonefinder`` is distributed under the terms of the MIT license\n(see LICENSE.txt).\n\n\n\nAlso see:\n`GitHub `__,\n`PyPI `__,\n`GUI and API `__ of the outdated ``timezonefinderL``\n`timezonefinder `__,\n\n\nChangelog\n=========\n\n\n4.0.2 (2019-05-23)\n------------------\n\n* MAJOR UPDATE: only the function ``timezone_at()`` is being supported\n* not based on the simplification of the timezone polygons any more (not easily achievable with the new boundary data set)\n* use the precomputed shortcuts to instantly look up a timezone (\"instant shortcut\", most common zone of the polygons within that shortcut)\n* updated the code to the status of the current ``timezonefinder`` main package ``v4.0.2``\n* data in use now is `timezone-boundary-builder 2019a `__\n* described options for increasing the accuracy in readme\n* dropped python2 support\n\n\n2.0.1 (2017-04-08)\n------------------\n\n* added missing package data entries (2.0.0 didn't include all necessary .bin files)\n\n\n2.0.0 (2017-04-07)\n------------------\n\n* introduction of this version of `timezonefinder `__\n* data has been simplified which affects speed and data size. Around 56% of the coordinates of the timezone polygons have been deleted and around 60% of the polygons (mostly small islands) have been included in the simplified polygons. For any coordinate on landmass the results should stay the same, but accuracy at the shorelines is lost. This eradicates the usefulness of closest_timezone_at() and certain_timezone_at() but the main use case for this package (= determining the timezone of a point on landmass) is improved.\n* file_converter.py has been complemented and modified to perform those simplifications\n* introduction of new function get_geometry() for querying timezones for their geometric shape\n* added shortcuts_unique_id.bin for instantly returning an id if the shortcut corresponding to the coords only contains polygons of one zone\n* data is now stored in separate binaries for ease of debugging and readability\n* polygons are stored sorted after their timezone id and size\n* timezonefinder can now be called directly as a script (experimental with reduced functionality, see readme)\n* optimisations on point in polygon algorithm\n* small simplifications in the helper functions\n* clarification of the readme\n* clarification of the comments in the code\n* referenced the new conda-feedstock in the readme\n* referenced the new timezonefinder API/GUI\n\n\nfor older versions refer to `timezonefinder `__.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/MrMinimal64/timezonefinderL", "keywords": "timezone coordinates latitude longitude location pytzwhere tzwhere", "license": "MIT licence", "maintainer": "", "maintainer_email": "", "name": "timezonefinderL", "package_url": "https://pypi.org/project/timezonefinderL/", "platform": "", "project_url": "https://pypi.org/project/timezonefinderL/", "project_urls": { "Homepage": "https://github.com/MrMinimal64/timezonefinderL" }, "release_url": "https://pypi.org/project/timezonefinderL/4.0.2/", "requires_dist": [ "numpy", "importlib-resources" ], "requires_python": "", "summary": "lightweight python package for finding the timezone of any point on earth (coordinates)", "version": "4.0.2" }, "last_serial": 5435925, "releases": { "2.0.1": [ { "comment_text": "", "digests": { "md5": "f517dd9ffefd55f716a2fbba673987df", "sha256": "50d80408d8ea6e483bf6ca0a5828f9f53a25b8330cff2d8e53b2d42c433553d2" }, "downloads": -1, "filename": "timezonefinderL-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f517dd9ffefd55f716a2fbba673987df", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7119548, "upload_time": "2017-04-08T10:37:01", "url": "https://files.pythonhosted.org/packages/36/42/ed0982bf05e4b6512d270f6eac0364d6d284b304d87a43bb610181c87a85/timezonefinderL-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61bd4d6865fd7ebbc13650f64e8c1bae", "sha256": "f4c81678c41a605f14324c1569bc0285dd10667812d4550f43cad8d44973265f" }, "downloads": -1, "filename": "timezonefinderL-2.0.1.tar.gz", "has_sig": false, "md5_digest": "61bd4d6865fd7ebbc13650f64e8c1bae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7123504, "upload_time": "2017-04-08T10:36:52", "url": "https://files.pythonhosted.org/packages/9c/1a/3214f7dd7d605ff133dd5304e7342717965e65f362298aeadc84aa145d94/timezonefinderL-2.0.1.tar.gz" } ], "4.0.2": [ { "comment_text": "", "digests": { "md5": "d11da142f03c4e214997f9f4c35872d2", "sha256": "37f87f79254acc79999d45f77e29de4bcbda59388cf17622374fa763542c1d93" }, "downloads": -1, "filename": "timezonefinderL-4.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d11da142f03c4e214997f9f4c35872d2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29680, "upload_time": "2019-06-22T23:55:36", "url": "https://files.pythonhosted.org/packages/20/e3/46bb24bf70c48858948ddbe9d674c2a432521c2ce9ab8bc4e5546c01b390/timezonefinderL-4.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c74f18e846a592034f4c6c403e9451a", "sha256": "c41d913d3799f22c231e3006f92d756681e9132143bb67fbd91c561139f44706" }, "downloads": -1, "filename": "timezonefinderL-4.0.2.tar.gz", "has_sig": false, "md5_digest": "6c74f18e846a592034f4c6c403e9451a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37164, "upload_time": "2019-06-22T23:55:38", "url": "https://files.pythonhosted.org/packages/98/39/a0e0fabe78f622ec6ebc678380a7a33126b590e4747958bd14211f092e02/timezonefinderL-4.0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d11da142f03c4e214997f9f4c35872d2", "sha256": "37f87f79254acc79999d45f77e29de4bcbda59388cf17622374fa763542c1d93" }, "downloads": -1, "filename": "timezonefinderL-4.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "d11da142f03c4e214997f9f4c35872d2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29680, "upload_time": "2019-06-22T23:55:36", "url": "https://files.pythonhosted.org/packages/20/e3/46bb24bf70c48858948ddbe9d674c2a432521c2ce9ab8bc4e5546c01b390/timezonefinderL-4.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c74f18e846a592034f4c6c403e9451a", "sha256": "c41d913d3799f22c231e3006f92d756681e9132143bb67fbd91c561139f44706" }, "downloads": -1, "filename": "timezonefinderL-4.0.2.tar.gz", "has_sig": false, "md5_digest": "6c74f18e846a592034f4c6c403e9451a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37164, "upload_time": "2019-06-22T23:55:38", "url": "https://files.pythonhosted.org/packages/98/39/a0e0fabe78f622ec6ebc678380a7a33126b590e4747958bd14211f092e02/timezonefinderL-4.0.2.tar.gz" } ] }