{ "info": { "author": "Mattias Jakobsson", "author_email": "mattias.jakobsson@smhi.se", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Scientific/Engineering :: Atmospheric Science" ], "description": "# Pupygrib\n\nPupygrib (pronounced *puppy grib* and short for PUre PYthon GRIB) is a\nlight-weight pure Python GRIB reader. It's purpose is to extract data\nfrom GRIB files with as little effort as possible. The user can then\nfreely choose how to further process the data (*read: pupygrib will\nnot help you*).\n\n\n## Features\n\nThis project is in the alpha phase, which means that many planned\nfeatures are missing and implemented features are not well tested. It\nalso means that the API may change in future version. The implemented\nfeatures are:\n\n* Iterate over and extract the raw fields from GRIB edition 1 messages\n in a file.\n* Extract simply packed grid-point data values from GRIB edition 1\n messages.\n* Extract the coordinates for these values if they are on a\n latitude/longitude grid.\n\nThe planned features are:\n\n* Be able to easily identify (filter) the messages.\n* Be able to extract the data values for other packings.\n* Be able to extract the coordinates of other grid types.\n* Support for GRIB edition 2.\n\n\n## Requirements\n\n* [Python](https://www.python.org) 3.6 or later.\n* [Numpy](http://www.numpy.org) (1.12-1.17 are tested).\n\n\n## Installation\n\n```console\n$ pip install pupygrib\n```\n\n\n## Usage\n\nTo use pupygrib, you will need a good understanding of the GRIB\nformat, especially since table lookups are not yet implemented. ECMWF\nprovides an overview of GRIB\n[edition 1](http://apps.ecmwf.int/codes/grib/format/grib1/overview)\nand\n[edition 2](http://apps.ecmwf.int/codes/grib/format/grib2/overview)\nthat can be used as references.\n\nIterate over the messages in a GRIB file and extract the coordinates\nand values:\n\n``` python\n>>> import pupygrib\n>>> with open('tests/data/regular_latlon_surface.grib1', 'rb') as stream:\n... for i, msg in enumerate(pupygrib.read(stream), 1):\n... lons, lats = msg.get_coordinates()\n... values = msg.get_values()\n... print(\"Message {}: {:.3f} {}\".format(i, values.mean(), lons.shape))\n...\nMessage 1: 291.585 (31, 16)\n\n```\n\nAccess a section of a GRIB message and print its fields:\n\n``` python\n>>> with open('tests/data/regular_latlon_surface.grib1', 'rb') as stream:\n... msg, = pupygrib.read(stream)\n>>> sorted(msg[0].fieldnames) # fieldnames is a set, so we can't trust the order\n['editionNumber', 'identifier', 'totalLength']\n>>> msg[0].totalLength\n1100\n>>> msg[3] is None # the bit-map section is not included in this message\nTrue\n\n```\n\n\n## Development\n\nPull requests (against the `develop` branch) are most welcome! I do\nask that you add test cases and update the documentation (this README\nfor now) for any new features. Run the code through the\nauto-formatter [black](https://black.readthedocs.io/en/stable/) and\nmake sure that all checks (coding style, unit tests, and the\n[manifest](MANIFEST.in)) pass without any warnings or errors. The\neasiest way to do this is to install the requirements in\n[requirements/dev.txt](requirements/dev.txt) and run [tox][]:\n\n```console\n$ pip install -r requirements/dev.txt\n$ tox\n```\n\n[tox]: http://tox.readthedocs.org/\n\n\n## License\n\nPupygrib is being developed by\n[Mattias Jakobsson](mailto:mattias.jakobsson@smhi.se) at\n[SMHI](http://www.smhi.se). It is released under the\n[GNU General Public License v3](LICENSE.txt) or later (GPLv3+).\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://gitlab.com/gorilladev/pupygrib", "keywords": "grib grid data meteorology", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "pupygrib", "package_url": "https://pypi.org/project/pupygrib/", "platform": "", "project_url": "https://pypi.org/project/pupygrib/", "project_urls": { "Homepage": "https://gitlab.com/gorilladev/pupygrib" }, "release_url": "https://pypi.org/project/pupygrib/0.5.0/", "requires_dist": [ "numpy" ], "requires_python": "~=3.6", "summary": "A light-weight pure Python GRIB reader", "version": "0.5.0" }, "last_serial": 5951902, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "4b36de9b3f7fafb8161675553309fae8", "sha256": "b445a35924b8793ff66f79b28fd4a2eb542f312badd370ea516c9fd4f3c96dd4" }, "downloads": -1, "filename": "pupygrib-0.1.0-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4b36de9b3f7fafb8161675553309fae8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 16389, "upload_time": "2016-10-21T08:50:58", "url": "https://files.pythonhosted.org/packages/42/83/69f8fa9c13f96c96654d4b3c55cccf62ad1a6e3f1abff4b75a3ef253b5dc/pupygrib-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ebb474f5aaba647ad022c7a953dbf1f9", "sha256": "d803347eea01f1c5cf4bebdbf762500b1e447592664072b82ef024a0ccd1d409" }, "downloads": -1, "filename": "pupygrib-0.1.0.tar.gz", "has_sig": true, "md5_digest": "ebb474f5aaba647ad022c7a953dbf1f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74069, "upload_time": "2016-10-21T08:51:01", "url": "https://files.pythonhosted.org/packages/9a/31/ef8bb7a02248e911b0ce1d9bd60cdf1c429ffe612c810fd86ab7bb728412/pupygrib-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "ef21f79fe71cb80cbc353c54c6585df9", "sha256": "14dbb5f2acd233585f4af77cebe2bdbb34f074b8ca9d3638ee85f8ef1c5ea9a9" }, "downloads": -1, "filename": "pupygrib-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ef21f79fe71cb80cbc353c54c6585df9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13980, "upload_time": "2018-06-07T21:12:56", "url": "https://files.pythonhosted.org/packages/4a/02/0be1c380c25c1674386de0d35da086201bf5a84c23df9f63a28c4e470013/pupygrib-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "738af8f3d90c6090b77b59293e02691a", "sha256": "9628c2558d6d529d6a18358facfe95036f307f9799c3f803c118adcc3a6275c4" }, "downloads": -1, "filename": "pupygrib-0.2.0.tar.gz", "has_sig": false, "md5_digest": "738af8f3d90c6090b77b59293e02691a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74329, "upload_time": "2018-06-07T21:12:58", "url": "https://files.pythonhosted.org/packages/9f/17/6e52f93d47a5bf00c8b9d619e1cfd3dbfa37e874772b5a9d99d222288fcf/pupygrib-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "5bf0c893faf297d2aaa8233af5c762eb", "sha256": "779b6ce396e0557442df70980aec50e7b3f31d286699c3a91a9cabf70ac87489" }, "downloads": -1, "filename": "pupygrib-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5bf0c893faf297d2aaa8233af5c762eb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13986, "upload_time": "2018-08-02T14:43:37", "url": "https://files.pythonhosted.org/packages/46/08/39c71c6e0e8b7e4ab39ce8b72ee3382f350e0b35d718137cf120ae427f5a/pupygrib-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "65752bee51734d4346e2966e4a089b23", "sha256": "8fb7bf67bbeeba526dd03baa8a0a486204e3e96ad24d552177c3027a17e81b27" }, "downloads": -1, "filename": "pupygrib-0.3.0.tar.gz", "has_sig": false, "md5_digest": "65752bee51734d4346e2966e4a089b23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74992, "upload_time": "2018-08-02T14:43:38", "url": "https://files.pythonhosted.org/packages/d1/e3/8242633cbaa28d88665fd054c78826c0be3c758fc1ea767ab2520cd6f771/pupygrib-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "8cccedcf3fb8a7a356d5bb050bfe983b", "sha256": "3048d984dae85925c725dbb8ed2580d8076ff5c0d35a2e2228188b01638634f6" }, "downloads": -1, "filename": "pupygrib-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8cccedcf3fb8a7a356d5bb050bfe983b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": "~=3.6", "size": 25823, "upload_time": "2019-06-30T19:15:35", "url": "https://files.pythonhosted.org/packages/0a/0d/a949b8641b305c35b19c11699fdb03af3609f8da9924bfc9c835a1512ea9/pupygrib-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "26c29d7ff839b2840c9d61d8603530df", "sha256": "0af52a20fe7208d941799d54595d413e043884cdbe3db81e4e10f25eaf834ecf" }, "downloads": -1, "filename": "pupygrib-0.4.0.tar.gz", "has_sig": false, "md5_digest": "26c29d7ff839b2840c9d61d8603530df", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 587390, "upload_time": "2019-06-30T19:15:37", "url": "https://files.pythonhosted.org/packages/f5/a2/517c89e8e9e577ee8a51ff8da48ab92b83599152674023cde277b6059a03/pupygrib-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "20d4af82130a0a0b69889a28a080d4d5", "sha256": "a1e2c27edbe5cefba260211d1a3bf05630c5058059ae163492ff3be7f5b54530" }, "downloads": -1, "filename": "pupygrib-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "20d4af82130a0a0b69889a28a080d4d5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.6", "size": 25818, "upload_time": "2019-07-02T06:50:17", "url": "https://files.pythonhosted.org/packages/88/0b/b1d9a54244a2f5b4a18b12ce02dd41e02290fb6ffe57ab7b749c44b56eee/pupygrib-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4adc76a1095c16a7a3faef59eee88dae", "sha256": "2de47b6c7da9fe01a6a20561a77c038a5385ba30945e016690efa9d3bbfa7c11" }, "downloads": -1, "filename": "pupygrib-0.4.1.tar.gz", "has_sig": false, "md5_digest": "4adc76a1095c16a7a3faef59eee88dae", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 587381, "upload_time": "2019-07-02T06:50:18", "url": "https://files.pythonhosted.org/packages/f0/78/fb126900ff0165634f77b75a760d5c267b6e2fe7c09e4a735e7176ac4173/pupygrib-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "081aebd16d4925fdee55f435071cf84e", "sha256": "8271ed31b64feb6947bf427ccd4b05d94111b90568764c492f2fa040d40eb9e7" }, "downloads": -1, "filename": "pupygrib-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "081aebd16d4925fdee55f435071cf84e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.6", "size": 25976, "upload_time": "2019-10-09T20:32:41", "url": "https://files.pythonhosted.org/packages/c3/d6/fc96bae219d576b38f0340001ec5befcfee260b35235bef050568807173d/pupygrib-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5cd51e121d2d2f51842aa2f55449935d", "sha256": "99ed028de2584d74320eda97177927adabed2b515de1b44bcc93957fe792679a" }, "downloads": -1, "filename": "pupygrib-0.5.0.tar.gz", "has_sig": false, "md5_digest": "5cd51e121d2d2f51842aa2f55449935d", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 587835, "upload_time": "2019-10-09T20:32:43", "url": "https://files.pythonhosted.org/packages/89/24/403506d2b35414d19843a5cc21d3cf1bb4fa28bd48dae516149adef27c69/pupygrib-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "081aebd16d4925fdee55f435071cf84e", "sha256": "8271ed31b64feb6947bf427ccd4b05d94111b90568764c492f2fa040d40eb9e7" }, "downloads": -1, "filename": "pupygrib-0.5.0-py3-none-any.whl", "has_sig": false, "md5_digest": "081aebd16d4925fdee55f435071cf84e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.6", "size": 25976, "upload_time": "2019-10-09T20:32:41", "url": "https://files.pythonhosted.org/packages/c3/d6/fc96bae219d576b38f0340001ec5befcfee260b35235bef050568807173d/pupygrib-0.5.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5cd51e121d2d2f51842aa2f55449935d", "sha256": "99ed028de2584d74320eda97177927adabed2b515de1b44bcc93957fe792679a" }, "downloads": -1, "filename": "pupygrib-0.5.0.tar.gz", "has_sig": false, "md5_digest": "5cd51e121d2d2f51842aa2f55449935d", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 587835, "upload_time": "2019-10-09T20:32:43", "url": "https://files.pythonhosted.org/packages/89/24/403506d2b35414d19843a5cc21d3cf1bb4fa28bd48dae516149adef27c69/pupygrib-0.5.0.tar.gz" } ] }