{ "info": { "author": "Tony Allan", "author_email": "tony@apms.com.au", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "# Australian Weather Data (using bom.gov.au)\nAccess to the Australian [Bureau of Meteorology](https://bom.gov.au/) weather data.\n\n[![Actions Status](https://github.com/tonyallan/weather-au/workflows/build/badge.svg)](https://github.com/tonyallan/weather-au/actions)\n![PyPI](https://img.shields.io/pypi/v/weather-au)\n\nCurrently a work in progress subject to breaking changes!\n\n\n\n## Purpose\n\nThe purpose of these modules is to fetch weather data from various Australian Bureau of Meteorology websites.\n\n\n\n## Weather API\n\nFetches data from the API's at `api.weather.bom.gov.au` (e.g. [Parkville 3-hourly forecast](https://api.weather.bom.gov.au/v1/locations/r1r143/forecasts/3-hourly)).\n\nThis information has been reverse engineered from the [beta website](https://weather.bom.gov.au/) with no information about future access arrangements, content or availability.\n\n\n### Example using `WeatherApi`\n```python3\nimport sys\nfrom weather_au import api\n\nw = api.WeatherApi(search='parkville+vic', debug=0)\n\nlocation = w.location()\n\n# check if the search produced a result (other methods will also return None if the search fails).\nif location is None:\n sys.exit('Search failed for location ' + loc)\n\nprint(f\"\\nLocation: {location['name']} {location['state']}, timezone:{location['timezone']}\\n\")\n\nfor warn in w.warnings():\n print(f\"Warning short title: {warn['short_title']}\")\n\n warning = w.warning(id=warn['id'])\n print(f\"Warning title: {warning['title']}\")\n\nobservations = w.observations()\nprint(f\"\\nObservations (temp): {observations['temp']:2}\")\n\nforecast_rain = w.forecast_rain()\nprint(f\"Forecast Rain: amount:{forecast_rain['amount']}, chance:{forecast_rain['chance']}\")\n\nprint('\\n3 Hourly:')\nfor f in w.forecasts_3hourly():\n print(f\"{f['time']} temp:{f['temp']:2}, {f['icon_descriptor']}\")\n```\n\n\n### Example using `Summary`\n```python3\nfrom weather_au import summary\n\nprint(summary.Summary(search='parkville+vic'))\n```\n\n\n\n## XML and Scraping\n\nModules:\n\n- `observations` - fetch XML formatted data from the BOM FTP server.\n- `uv_index` - fetch the UV data from the XML encoded state based IDZ00107-IDZ00113 products.\n- `place` - scrape data from location based [pages](http://www.bom.gov.au/places/vic/parkville/).\n\nWhere possible WeatherApi, should be used as it uses an API rather than scraping the web page.\n\n\n### Sample for Parkville in Melbourne Vic Australia\n\n```python3\nfrom weather import place, observations, uv_index\n\n# Parse http://www.bom.gov.au/places/vic/parkville\nplace_data = place.Place('vic', 'parkville')\nprint(place_data.acknowedgment)\n\nstation_id = place_data.station_id()\nprint('Station ID',station_id)\n\nair_temperature = place_data.air_temperature()\nprint('Air Temperature', air_temperature)\n\nforecast = place_data.forecast()\nprint('Forecast', forecast)\n\n\nuv_data = uv_index.UvIndex('Vic')\nprint('\\n' + uv_data.acknowedgment)\n\nlocation_name = 'Melbourne'\nuv_message = uv_data.uv_message(uv_data.get_aac(location_name))\n\nprint('UV Message for', location_name, uv_message)\n```\n\n\n\n## Disclaimer\n\nThis project is not related to or endorsed by the Australian Bureau of Meteorology (BOM). \n\nFrom the BOM [copyright notice](http://reg.bom.gov.au/other/copyright.shtml): Where no terms of use are associated with a set of material, then you may download, use and copy that material for personal use, or use within your organisation but you may not supply that material to any other person or use it for any commercial purpose.\n\n\n\n## Usage\n\nAdditional examples are in the `examples` folder.\n\n\n\n## URL's\n\n- Base for anon FTP data `ftp://ftp.bom.gov.au/anon/gen/`\n- Capital City Observations - VIC - Melbourne (Olympic Park) `http://www.bom.gov.au/fwo/IDV60901/IDV60901.95936.json`\n - where `IDV60901` is the product, and\n - `95936` is the weather station id.\n- Weather Observations - VIC - Melbourne (Olympic Park) `http://www.bom.gov.au/fwo/IDV60910/IDV60910.95936.json`\n- `http://www.bom.gov.au/places/vic/parkville/`\n\n\n\n## Resources\n\n1. [New weather page](https://weather.bom.gov.au/)\n1. [FTP public products](http://www.bom.gov.au/catalogue/anon-ftp.shtml)\n1. [Weather Data Services](http://www.bom.gov.au/catalogue/data-feeds.shtml)\n1. [How to use BOM API for weather, tide and swell](https://stackoverflow.com/questions/39534018/how-to-use-bom-api-for-weather-tide-and-swell)\n1. [Github has a number of projects using bom.gov.au data](https://github.com/search?q=bom.gov.au)\n1. [256 km Melbourne Radar Loop](http://www.bom.gov.au/products/IDR022.loop.shtml)\n1. [Catalogue of RSS Feeds](http://www.bom.gov.au/rss/)\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/tonyallan/weather-au", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "weather-au", "package_url": "https://pypi.org/project/weather-au/", "platform": "", "project_url": "https://pypi.org/project/weather-au/", "project_urls": { "Homepage": "https://github.com/tonyallan/weather-au" }, "release_url": "https://pypi.org/project/weather-au/0.0.7/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Australian Weather Data (from bom.gov.au)", "version": "0.0.7", "yanked": false, "yanked_reason": null }, "last_serial": 6111042, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "be70f1a39dd1964b1540c1a094bee84f", "sha256": "00f5dbc8a577055092a79a6716dab71b1587d638b83e5e69a4824a5ad6b91832" }, "downloads": -1, "filename": "weather_au-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "be70f1a39dd1964b1540c1a094bee84f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16695, "upload_time": "2019-09-07T14:48:16", "upload_time_iso_8601": "2019-09-07T14:48:16.291911Z", "url": "https://files.pythonhosted.org/packages/3c/f9/2325abddf0266a15e4d0812bd247034e7fed7e648ee40daf987099d21ebb/weather_au-0.0.1-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "61ddd013434b3b594136a70230fd055c", "sha256": "f651aff12d775711da315e3347adf28e857c27923f10dc3d7c6a72afc6d0ddb3" }, "downloads": -1, "filename": "weather-au-0.0.1.tar.gz", "has_sig": false, "md5_digest": "61ddd013434b3b594136a70230fd055c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3646, "upload_time": "2019-09-07T14:48:18", "upload_time_iso_8601": "2019-09-07T14:48:18.555936Z", "url": "https://files.pythonhosted.org/packages/7e/f9/af0669d4d650c7b3736b2f2690d8d1509b17ae8e1dca7bb15987f5a6fb08/weather-au-0.0.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "f6227c585e73a72738652860fe2b0c8d", "sha256": "1ece678e1cc8f6d01c1e4790cac7055015e02490987972f4298e1f5a1d5e7e45" }, "downloads": -1, "filename": "weather_au-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f6227c585e73a72738652860fe2b0c8d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 17927, "upload_time": "2019-09-08T08:09:09", "upload_time_iso_8601": "2019-09-08T08:09:09.635462Z", "url": "https://files.pythonhosted.org/packages/1b/d1/adc1f9d2d32d84018b4b0a5d79be33e9b73341133c6174ae605484070cd4/weather_au-0.0.2-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "6b4c325600c21160d0deb48e59281026", "sha256": "fda4f7e28ee48becd7db16655bc26d4f1b93186541794e26b4cc1c332b387226" }, "downloads": -1, "filename": "weather-au-0.0.2.tar.gz", "has_sig": false, "md5_digest": "6b4c325600c21160d0deb48e59281026", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4590, "upload_time": "2019-09-08T08:09:11", "upload_time_iso_8601": "2019-09-08T08:09:11.045387Z", "url": "https://files.pythonhosted.org/packages/b9/ff/41a9c86cbc974c2f0a86cf084288117b5e222f314476a5ce197f69d8eb26/weather-au-0.0.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "2cd96bff84947f3c804edfa9606450bb", "sha256": "123b7e93d8c74399bf1eba351d608016b349d84012e86f085d72238dc1a4c3e7" }, "downloads": -1, "filename": "weather_au-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "2cd96bff84947f3c804edfa9606450bb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 17952, "upload_time": "2019-09-08T08:49:41", "upload_time_iso_8601": "2019-09-08T08:49:41.281464Z", "url": "https://files.pythonhosted.org/packages/59/56/deb21ab2954e036adf10bcc981e86876cb82bd4f92aa14d8d6ce6a8d28cf/weather_au-0.0.3-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "2e850a5983a59f57c7f3d35ebe78c30a", "sha256": "c71ec6edacc09d70a2519f4b7264134851d551fcf94a160d6dda0a2ec0687b40" }, "downloads": -1, "filename": "weather-au-0.0.3.tar.gz", "has_sig": false, "md5_digest": "2e850a5983a59f57c7f3d35ebe78c30a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 4617, "upload_time": "2019-09-08T08:49:42", "upload_time_iso_8601": "2019-09-08T08:49:42.892580Z", "url": "https://files.pythonhosted.org/packages/28/f4/026789d6f7337e16f88c6e2403a47bb8898cc24ffda8cdb32277e8916c09/weather-au-0.0.3.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "202d4313d45efe2b99abec7661db0361", "sha256": "242343992b869123ca7217288508b545536274da01910eec09fecd33ffe1ba2f" }, "downloads": -1, "filename": "weather_au-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "202d4313d45efe2b99abec7661db0361", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 18638, "upload_time": "2019-09-08T13:14:45", "upload_time_iso_8601": "2019-09-08T13:14:45.244937Z", "url": "https://files.pythonhosted.org/packages/f8/73/d869490fb522c24106204a70863fa62f96535e1ece620212323f7b437f61/weather_au-0.0.4-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "737b663aa0ca07a89f1e232fd7c712c3", "sha256": "b8a4a280014cdb9cdcf92d48911753038b5c313396b2834c71fc5afb579a35f3" }, "downloads": -1, "filename": "weather-au-0.0.4.tar.gz", "has_sig": false, "md5_digest": "737b663aa0ca07a89f1e232fd7c712c3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5082, "upload_time": "2019-09-08T13:14:46", "upload_time_iso_8601": "2019-09-08T13:14:46.537930Z", "url": "https://files.pythonhosted.org/packages/1d/f4/13af195db469cd0ce3987d003538bfe0cb3da3c3d7bc299e277d1392eed0/weather-au-0.0.4.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "c7f18e8c0ee34cf1fd2e5868ecdafbad", "sha256": "b64eafa985d53159c30111ffd5d49e45ab3932a541208ed58faa5ec9c0928a3f" }, "downloads": -1, "filename": "weather_au-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "c7f18e8c0ee34cf1fd2e5868ecdafbad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 26465, "upload_time": "2019-10-24T04:55:46", "upload_time_iso_8601": "2019-10-24T04:55:46.617891Z", "url": "https://files.pythonhosted.org/packages/07/39/3dad9976502a06a4a753ad086366eb4f53e017010f7e98d07ac7b8af4d61/weather_au-0.0.5-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "79ee452ecd142781552b747eec1eb42c", "sha256": "cab444e9c667067edd7b4f6ebd8ed3cb81fcc7d693ed8f25cbe6832992307728" }, "downloads": -1, "filename": "weather-au-0.0.5.tar.gz", "has_sig": false, "md5_digest": "79ee452ecd142781552b747eec1eb42c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10001, "upload_time": "2019-10-24T04:55:49", "upload_time_iso_8601": "2019-10-24T04:55:49.699924Z", "url": "https://files.pythonhosted.org/packages/6d/fd/b1860af2d233a553e258424bc0761eb9f5bf48cdb2a066e2130a0fc917cf/weather-au-0.0.5.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "907513fb98c8f85f40aa007b984ea59f", "sha256": "b156e8f0a35c92ea44af7997cf26e61481b03cc82f01fe9a08bd52a2feda667c" }, "downloads": -1, "filename": "weather_au-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "907513fb98c8f85f40aa007b984ea59f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 26962, "upload_time": "2019-11-10T07:45:23", "upload_time_iso_8601": "2019-11-10T07:45:23.436751Z", "url": "https://files.pythonhosted.org/packages/db/8a/f55dd8f316d269690a7ac266d38705e4886e89d8dc937d26622ca634ae26/weather_au-0.0.6-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "623293c68f2db492ffaac3b7eda5bb24", "sha256": "625132533196c56d434c7656aea93bb699cdab66c93f8a01597bdad2b4ab9642" }, "downloads": -1, "filename": "weather-au-0.0.6.tar.gz", "has_sig": false, "md5_digest": "623293c68f2db492ffaac3b7eda5bb24", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10716, "upload_time": "2019-11-10T07:45:27", "upload_time_iso_8601": "2019-11-10T07:45:27.593959Z", "url": "https://files.pythonhosted.org/packages/d1/b5/ef918f8aa229fbeb1437ee1d2785187d20562e11dc90d07ae7ac60c0aabc/weather-au-0.0.6.tar.gz", "yanked": false, "yanked_reason": null } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "673a004f1a9f84d0c080901b273415a0", "sha256": "da86c1c463fa93b9c5383bcffd96174b0065bb2f8e1586233cc307062696f399" }, "downloads": -1, "filename": "weather_au-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "673a004f1a9f84d0c080901b273415a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 27148, "upload_time": "2019-11-10T09:02:26", "upload_time_iso_8601": "2019-11-10T09:02:26.319795Z", "url": "https://files.pythonhosted.org/packages/14/66/64b84695fca1ba8b4f07c1ebefb52327c3144dd492a58ea78d43d68028af/weather_au-0.0.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e3d87726debd2ce9a5ae9e4900267b83", "sha256": "68057ab011cfe1fb2bb9741e8317533c8f6bf649d0cd728ec7434c77d6b042c9" }, "downloads": -1, "filename": "weather-au-0.0.7.tar.gz", "has_sig": false, "md5_digest": "e3d87726debd2ce9a5ae9e4900267b83", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10981, "upload_time": "2019-11-10T09:02:31", "upload_time_iso_8601": "2019-11-10T09:02:31.936876Z", "url": "https://files.pythonhosted.org/packages/21/1e/2085da1363ce9a1b72e5e40658ea2e9e8d889467e254bd7aa97748060816/weather-au-0.0.7.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "673a004f1a9f84d0c080901b273415a0", "sha256": "da86c1c463fa93b9c5383bcffd96174b0065bb2f8e1586233cc307062696f399" }, "downloads": -1, "filename": "weather_au-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "673a004f1a9f84d0c080901b273415a0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 27148, "upload_time": "2019-11-10T09:02:26", "upload_time_iso_8601": "2019-11-10T09:02:26.319795Z", "url": "https://files.pythonhosted.org/packages/14/66/64b84695fca1ba8b4f07c1ebefb52327c3144dd492a58ea78d43d68028af/weather_au-0.0.7-py3-none-any.whl", "yanked": false, "yanked_reason": null }, { "comment_text": "", "digests": { "md5": "e3d87726debd2ce9a5ae9e4900267b83", "sha256": "68057ab011cfe1fb2bb9741e8317533c8f6bf649d0cd728ec7434c77d6b042c9" }, "downloads": -1, "filename": "weather-au-0.0.7.tar.gz", "has_sig": false, "md5_digest": "e3d87726debd2ce9a5ae9e4900267b83", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 10981, "upload_time": "2019-11-10T09:02:31", "upload_time_iso_8601": "2019-11-10T09:02:31.936876Z", "url": "https://files.pythonhosted.org/packages/21/1e/2085da1363ce9a1b72e5e40658ea2e9e8d889467e254bd7aa97748060816/weather-au-0.0.7.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }