{ "info": { "author": "Damon Burgett", "author_email": "damon@mapbox.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "rio-mucho\n=========\n\nParallel processing wrapper for rasterio\n\n|PyPI| |Build Status| |Coverage Status|\n\nInstall\n-------\n\nFrom pypi:\n\n``pip install rio-mucho``\n\nFrom github (usually for a branch / dev):\n\n``pip install pip install git+ssh://git@github.com/mapbox/rio-mucho.git@#egg=riomucho``\n\nDevelopment:\n\n::\n\n git clone git@github.com:mapbox/rio-mucho.git\n cd rio-mucho\n pip install -e .\n\nUsage\n-----\n\n.. code:: python\n\n with riomucho.RioMucho([{inputs}], {output}, {run function},\n windows={windows},\n global_args={global arguments}, \n options={options to write}) as rios:\n\n rios.run({processes})\n\nArguments\n~~~~~~~~~\n\n``inputs``\n^^^^^^^^^^\n\nAn list of file paths to open and read.\n\n``output``\n^^^^^^^^^^\n\nWhat file to write to.\n\n``run_function``\n^^^^^^^^^^^^^^^^\n\nA function to be applied to each window chunk. This should have input\narguments of:\n\n1. A data input, which can be one of:\n\n- A list of numpy arrays of shape (x,y,z), one for each file as\n specified in input file list ``mode=\"simple_read\" [default]``\n- A numpy array of shape ({*n* input files x *n* band count}, {window\n rows}, {window cols}) ``mode=array_read\"``\n- A list of open sources for reading ``mode=\"manual_read\"``\n\n2. A ``rasterio`` window tuple\n3. A ``rasterio`` window index (``ij``)\n4. A global arguments object that you can use to pass in global\n arguments\n\nThis should return:\n\n1. An output array of ({count}, {window rows}, {window cols}) shape, and\n of the correct data type for writing\n\n.. code:: python\n\n def basic_run({data}, {window}, {ij}, {global args}):\n ## do something\n return {out}\n\nKeyword arguments\n~~~~~~~~~~~~~~~~~\n\n``windows={windows}``\n^^^^^^^^^^^^^^^^^^^^^\n\nA list of ``rasterio`` (window, ij) tuples to operate on.\n``[Default = src[0].block_windows()]``\n\n``global_args={global arguments}``\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nSince this is working in parallel, any other objects / values that you\nwant to be accessible in the ``run_function``. ``[Default = {}]``\n\n.. code:: python\n\n global_args = {\n 'divide_value': 2\n }\n\n``options={keyword args}``\n^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nThe options to pass to the writing output. ``[Default = srcs[0].meta``\n\nExample\n-------\n\n.. code:: python\n\n import riomucho, rasterio, numpy\n\n def basic_run(data, window, ij, g_args):\n ## do something\n out = np.array(\n [d[0] /= global_args['divide'] for d in data]\n )\n return out\n\n # get windows from an input\n with rasterio.open('/tmp/test_1.tif') as src:\n ## grabbing the windows as an example. Default behavior is identical.\n windows = [[window, ij] for ij, window in src.block_windows()]\n options = src.meta\n # since we are only writing to 2 bands\n options.update(count=2)\n\n global_args = {\n 'divide': 2\n }\n\n processes = 4\n\n # run it\n with riomucho.RioMucho(['input1.tif','input2.tif'], 'output.tif', basic_run,\n windows=windows,\n global_args=global_args, \n options=options) as rm:\n\n rm.run(processes)\n\nUtility functions\n-----------------\n\n\\`riomucho.utils.array\\_stack([array, array, array,...])\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nGiven a list of ({depth}, {rows}, {cols}) numpy arrays, stack into a\nsingle (l{list length \\* each image depth}, {rows}, {cols}) array. This\nis useful for handling variation between ``rgb`` inputs of a single\nfile, or separate files for each.\n\nOne RGB file\n^^^^^^^^^^^^\n\n.. code:: python\n\n files = ['rgb.tif']\n open_files = [rasterio.open(f) for f in files]\n rgb = `riomucho.utils.array_stack([src.read() for src in open_files])\n\nSeparate RGB files\n^^^^^^^^^^^^^^^^^^\n\n.. code:: python\n\n files = ['r.tif', 'g.tif', 'b.tif']\n open_files = [rasterio.open(f) for f in files]\n rgb = `riomucho.utils.array_stack([src.read() for src in open_files])\n\n.. |PyPI| image:: https://img.shields.io/pypi/v/rio-mucho.svg?maxAge=2592000?style=plastic\n :target: \n.. |Build Status| image:: https://travis-ci.org/mapbox/rio-mucho.svg?branch=master\n :target: https://travis-ci.org/mapbox/rio-mucho\n.. |Coverage Status| image:: https://coveralls.io/repos/mapbox/rio-mucho/badge.svg?branch=master&service=github\n :target: https://coveralls.io/github/mapbox/rio-mucho?branch=master\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/mapbox/rio-mucho", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "rio-mucho", "package_url": "https://pypi.org/project/rio-mucho/", "platform": "", "project_url": "https://pypi.org/project/rio-mucho/", "project_urls": { "Homepage": "https://github.com/mapbox/rio-mucho" }, "release_url": "https://pypi.org/project/rio-mucho/1.0.0/", "requires_dist": [ "numpy", "rasterio (~=1.0)", "pytest; extra == 'test'", "pytest-cov; extra == 'test'", "coveralls; extra == 'test'" ], "requires_python": "", "summary": "Windowed multiprocessing wrapper for rasterio", "version": "1.0.0" }, "last_serial": 4083934, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "d48b340330cb4cc6e203ccb8c5262701", "sha256": "9efca675f1b1cb2b898dae836eede3fca106f8802b6681ceae9b0b6bcd322774" }, "downloads": -1, "filename": "rio-mucho-0.0.1.tar.gz", "has_sig": false, "md5_digest": "d48b340330cb4cc6e203ccb8c5262701", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4340, "upload_time": "2015-06-30T19:00:29", "url": "https://files.pythonhosted.org/packages/13/13/951b200616c832ec884b9e64e629913e3c7c114a4c9e8cdfe100a9c87485/rio-mucho-0.0.1.tar.gz" } ], "0.0.1dev": [ { "comment_text": "", "digests": { "md5": "d76f7fa685efd6e09092e56672d58112", "sha256": "6fd16a96b146a106ee0d537964a441e84bdeb141257e303cab23912d9e328d71" }, "downloads": -1, "filename": "rio-mucho-0.0.1dev.tar.gz", "has_sig": false, "md5_digest": "d76f7fa685efd6e09092e56672d58112", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3241, "upload_time": "2015-06-26T19:07:25", "url": "https://files.pythonhosted.org/packages/7f/af/0ca8e964dbf756ac9f8246eb84cb3f99d8b0f1068ea9db29bc130f1d18a5/rio-mucho-0.0.1dev.tar.gz" } ], "0.0.2.dev0": [ { "comment_text": "", "digests": { "md5": "56d54a858c917b9b79e027e1916527f1", "sha256": "059e61115d4e36f7b6bff3de6a58f8b252f7aafe5d969a9688ff061e4b121a75" }, "downloads": -1, "filename": "rio-mucho-0.0.2.dev0.tar.gz", "has_sig": false, "md5_digest": "56d54a858c917b9b79e027e1916527f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4355, "upload_time": "2015-06-30T16:38:36", "url": "https://files.pythonhosted.org/packages/ac/51/707491e62e32e96df21a06c4c3f608a8e83d70654f91516b961e3da9c964/rio-mucho-0.0.2.dev0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "0ba87943823592a0b7d855302c9e1745", "sha256": "68e355f82902557d7e83fb447cc9163aea1f98bcaee2b59771a05091688dc1aa" }, "downloads": -1, "filename": "rio-mucho-0.1.1.tar.gz", "has_sig": false, "md5_digest": "0ba87943823592a0b7d855302c9e1745", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4388, "upload_time": "2015-07-07T01:41:59", "url": "https://files.pythonhosted.org/packages/b6/c0/b9149e533998df578334f19aa10d75b4b42e38a2c88b9858ae8dfcc1bf8a/rio-mucho-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a3895d50511304a40bac6a249abadb48", "sha256": "dd1036ef900dff6906f85e12e4aef9dcc4cc0a97b9dd68c9917f9c613be8d6a0" }, "downloads": -1, "filename": "rio-mucho-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a3895d50511304a40bac6a249abadb48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4689, "upload_time": "2016-06-22T19:03:43", "url": "https://files.pythonhosted.org/packages/48/c6/40674462ed357a5e97e149a88c78610bf7a7daeff6420bb1e47c285e0dfe/rio-mucho-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "778883c3b6ee2defedd29749f3f932f9", "sha256": "97eab26b10fce30fcebad88f1786868024315fa193af5ab51f5df5b56953ac8d" }, "downloads": -1, "filename": "rio-mucho-0.2.1.tar.gz", "has_sig": false, "md5_digest": "778883c3b6ee2defedd29749f3f932f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4760, "upload_time": "2016-06-22T20:56:27", "url": "https://files.pythonhosted.org/packages/95/3c/317366a7eaa28992100d243296cb6f7c5f97e28045066dfca05807146e20/rio-mucho-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "4812eb288137c494c2ed065b256e5ec8", "sha256": "d854e74ade0bc23d7197eb4f3533b2b370bf23c7e8b1751264a81ced1bf316e8" }, "downloads": -1, "filename": "rio-mucho-0.2.2.tar.gz", "has_sig": false, "md5_digest": "4812eb288137c494c2ed065b256e5ec8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4780, "upload_time": "2016-08-25T00:48:55", "url": "https://files.pythonhosted.org/packages/03/3a/e86fd12889635278c13684b4146f22f2bfaf50f4aa34e0b84965c64f56a0/rio-mucho-0.2.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "aea8b22bca13ab4ab3b882f169809843", "sha256": "156eb911521969e4a795ab438e02c9ac5bf5b441806fa78e556f0d1ea113a27c" }, "downloads": -1, "filename": "rio_mucho-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "aea8b22bca13ab4ab3b882f169809843", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5808, "upload_time": "2018-07-19T22:44:40", "url": "https://files.pythonhosted.org/packages/bb/fb/827facf90243f739f79bf670c6b1555a3739054c669231a6ea13da8b1ba6/rio_mucho-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5288688e5b47bedb88e584fc0c57d0db", "sha256": "4677aca0613b35b1eb6dcdf314eafc23b707c42e54e9af89a87c86df5ae1ba6c" }, "downloads": -1, "filename": "rio_mucho-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5288688e5b47bedb88e584fc0c57d0db", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5807, "upload_time": "2018-07-19T22:45:04", "url": "https://files.pythonhosted.org/packages/8a/ba/e9a23efc6a8ffe6b2340c9f1040cd26a730754c75a58061c9302c66156fa/rio_mucho-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4caee5bc4f42bcd5bb459027840d29d0", "sha256": "606f662e4cc0c7efb98dd7a1eb4df9d93022a305d187b6c02574c4542593b590" }, "downloads": -1, "filename": "rio-mucho-1.0.0.tar.gz", "has_sig": false, "md5_digest": "4caee5bc4f42bcd5bb459027840d29d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5756, "upload_time": "2018-07-19T22:44:41", "url": "https://files.pythonhosted.org/packages/02/23/89ef962469c7942e26c3c5e904b209997b7313dea01c99ed6fa8607e077b/rio-mucho-1.0.0.tar.gz" } ], "1.0rc1": [ { "comment_text": "", "digests": { "md5": "1f6b07c5841875cbab0c1264af490e71", "sha256": "9290923b8ed801442466ce4a6d9baa4b780ca656f6689182178b7bfe5c088c71" }, "downloads": -1, "filename": "rio_mucho-1.0rc1-py2-none-any.whl", "has_sig": false, "md5_digest": "1f6b07c5841875cbab0c1264af490e71", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5823, "upload_time": "2018-07-12T19:22:56", "url": "https://files.pythonhosted.org/packages/a9/c2/f95ee41375fdf1eaf068053618108e0bc2d7e77ecf0b1c83a63e11c141e3/rio_mucho-1.0rc1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb8e959e06870482ae4c8fe3cf78bf34", "sha256": "532c620939f90d935d1ca96bc99dd230e7e6389a35370e0a9b40e7245e40c17a" }, "downloads": -1, "filename": "rio_mucho-1.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "fb8e959e06870482ae4c8fe3cf78bf34", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5822, "upload_time": "2018-07-12T19:23:08", "url": "https://files.pythonhosted.org/packages/2c/7b/c093ca37d82f93cdad1ee773bbb8b305485f0f972eb83b340154ae868a21/rio_mucho-1.0rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8debfb20a2bf11794ba17e849d86c324", "sha256": "1f74d6e5c42500925945c3f478270c4a8723914cbdcbff7c470a683fb962a885" }, "downloads": -1, "filename": "rio-mucho-1.0rc1.tar.gz", "has_sig": false, "md5_digest": "8debfb20a2bf11794ba17e849d86c324", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5751, "upload_time": "2018-07-12T19:22:57", "url": "https://files.pythonhosted.org/packages/0a/99/bc2d1a8982311a02658befe420d13b5f4dfbf92577f2e89a74b38890a31d/rio-mucho-1.0rc1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "aea8b22bca13ab4ab3b882f169809843", "sha256": "156eb911521969e4a795ab438e02c9ac5bf5b441806fa78e556f0d1ea113a27c" }, "downloads": -1, "filename": "rio_mucho-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "aea8b22bca13ab4ab3b882f169809843", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 5808, "upload_time": "2018-07-19T22:44:40", "url": "https://files.pythonhosted.org/packages/bb/fb/827facf90243f739f79bf670c6b1555a3739054c669231a6ea13da8b1ba6/rio_mucho-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5288688e5b47bedb88e584fc0c57d0db", "sha256": "4677aca0613b35b1eb6dcdf314eafc23b707c42e54e9af89a87c86df5ae1ba6c" }, "downloads": -1, "filename": "rio_mucho-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5288688e5b47bedb88e584fc0c57d0db", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5807, "upload_time": "2018-07-19T22:45:04", "url": "https://files.pythonhosted.org/packages/8a/ba/e9a23efc6a8ffe6b2340c9f1040cd26a730754c75a58061c9302c66156fa/rio_mucho-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4caee5bc4f42bcd5bb459027840d29d0", "sha256": "606f662e4cc0c7efb98dd7a1eb4df9d93022a305d187b6c02574c4542593b590" }, "downloads": -1, "filename": "rio-mucho-1.0.0.tar.gz", "has_sig": false, "md5_digest": "4caee5bc4f42bcd5bb459027840d29d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5756, "upload_time": "2018-07-19T22:44:41", "url": "https://files.pythonhosted.org/packages/02/23/89ef962469c7942e26c3c5e904b209997b7313dea01c99ed6fa8607e077b/rio-mucho-1.0.0.tar.gz" } ] }