{ "info": { "author": "G to_tha K to_tha W", "author_email": "gewatson@digitalglobe.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# IMDiddler\nA tool for editing IMD files either from local or s3\nCan be deployed/invoked as a lambda or command line.\nIMD file order is preserved. IMD edits can be in arbitrary order\n\n### Editing Specifier\nThe edit to the imd is specified by a json string which maps the key/value pairs and simply replaces \nan existing key/value pair in the IMD file with the key/value pair in the json string. There's no limit on how\nlong you make the edit specifiers you can edit one or all the items in an IMD with a single specifier.\nIt is a simple overlaying operation. The one special consideration is for the 'BEGIN_GROUP/END_GROUP' pair, discussed below.\nOne can specify any of the types in the IMD. The following edits are for each of the individual types \n#####String\n ```javascript\n'{\"version\": \"\\\\\"28.4\\\\\";\"}'\n```\n#####Integer\n ```javascript\n'{\"numRows\": 6932;\"}'\n```\n#####Date\n ```javascript\n'{\"generationTime\": 2017-08-01T03:39:53.000000Z;\"}'\n```\nYou get the idea...\n\n####Groups\nIMDs contain a BEGIN_GROUP= and END_GROUP= for bands, images and products. The naming scheme is the disambiguator.\nYou can edit the contents of a group by specifying the name of the group within the IMD as a key and then a sub-dictionary\nof key/value pairs to be applied within the group. The following edits the \"IMAGE_1\" group in the IMD, replacing the satellite name.\n```javascript\n'\"IMAGE_1\": {\"satId\": \"\\\\\"WV09\\\\\";\"}}'\n```\n\n### Invocation\nThe code can be invoked either via the command line or as a lambda. \n\n#### Command line\n```commandline\npython imd_handler.py \n```\nThe input file is a file URI, self explanatory (any valid path, read/write access required)\n```commandline\nfile:///Volumes/GKW/Sibinacocha2017/1cc99383-29fd-470a-a3ac-22431193b65a/103001006A803400/056848496010_01/056848496010_01_P001_MUL/17MAY12150511-M1BS-056848496010_01_P001.IMD\n```\n\nThe s3 Object is an S3 URI specifying the bucket and path for the name ie:\n```commandline\ns3://727281582563-deliveries/production/I00000070198_01/I00000070198_01_P001_MUL/18APR05102137-M1BS_R1C1-I00000070198_01_P001.IMD\n```\n\n#### As a lambda\nIt's deployed as IMDiddler. The event dictionary/payload should look like:\n\n```json\n{\n \"file_uri\": \"\"\n \"edit\" : \n {\n \"\" : \"\"\n }\n}\n```\n\n#####Lambda Example payload\n```json\n{\n \"file_uri\" : \"s3://727281582563-deliveries/production/I00000070198_01/I00000070198_01_P001_MUL/18APR05102137-M1BS_R1C1-I00000070198_01_P001.IMD\"\n \"edit\" : \n {\n \"version\": \"\\\"28.4\\\";\",\n \"IMAGE_1\": {\"satId\": \"\\\"WV09;\\\"\"}\n }\n}\n```\n\n#####Nota Bene:\n IMD Files contain quoted strings which means that the edits performed must also contain the quotes. \n This means that the JSON quote escapement mechanism must be used for string types. Other types (float, int, date) do not\n need this.\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/DigitalGlobe/IMDiddler", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "imd-handler", "package_url": "https://pypi.org/project/imd-handler/", "platform": "", "project_url": "https://pypi.org/project/imd-handler/", "project_urls": { "Homepage": "https://github.com/DigitalGlobe/IMDiddler" }, "release_url": "https://pypi.org/project/imd-handler/0.0.422/", "requires_dist": null, "requires_python": "", "summary": "Set of stuff for ingesting, discovery, editing and storing DG IMD files", "version": "0.0.422" }, "last_serial": 4288479, "releases": { "0.0.419": [ { "comment_text": "", "digests": { "md5": "b4245c44596611ca0f6283c044cabdc7", "sha256": "876fc3e50e6058cc3d2104b0b466694cb95cf257bf15f5bfef2bd060eb76b612" }, "downloads": -1, "filename": "imd_handler-0.0.419-py3-none-any.whl", "has_sig": false, "md5_digest": "b4245c44596611ca0f6283c044cabdc7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5845, "upload_time": "2018-09-17T22:29:51", "url": "https://files.pythonhosted.org/packages/ce/dd/f7b3431bc5af1bf60cb9ce0a1fe7d304c7198cca25ed27390accaa0eb998/imd_handler-0.0.419-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c3d8d6c09cc7265465ca6dbe6e719ed9", "sha256": "0cf8aa26c903f52d5a44d13e3b0456f23177e602a1a1bbd64fae91d4c4512e27" }, "downloads": -1, "filename": "imd_handler-0.0.419.tar.gz", "has_sig": false, "md5_digest": "c3d8d6c09cc7265465ca6dbe6e719ed9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4813, "upload_time": "2018-09-17T22:29:52", "url": "https://files.pythonhosted.org/packages/08/e5/0102497ceccfb3923cfb7545ddcb148574d3ddfa31edc06db8e662636107/imd_handler-0.0.419.tar.gz" } ], "0.0.420": [ { "comment_text": "", "digests": { "md5": "3d5d7e80fe061754371a7fcf494c5278", "sha256": "6de4efe46978a458d6947246645ac7ae070ff5413b3a0239d84889f536a9d510" }, "downloads": -1, "filename": "imd_handler-0.0.420-py3-none-any.whl", "has_sig": false, "md5_digest": "3d5d7e80fe061754371a7fcf494c5278", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5844, "upload_time": "2018-09-18T17:23:47", "url": "https://files.pythonhosted.org/packages/69/61/ef4092fe19ca6e5094da23a9ad159f5672c86173cf469e0b0777be7f501a/imd_handler-0.0.420-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "06c0f35c9a2b16eced10e04a875e5ce1", "sha256": "a69ec8b9452f2062887914d7efdc027bd6ed149885bf9deb59a78dd9f81a921c" }, "downloads": -1, "filename": "imd_handler-0.0.420.tar.gz", "has_sig": false, "md5_digest": "06c0f35c9a2b16eced10e04a875e5ce1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4814, "upload_time": "2018-09-18T17:23:48", "url": "https://files.pythonhosted.org/packages/a8/37/3f26b07983daa00e9d7e7561832df27f4f50f4fc35ecea8d6c810bdf12e7/imd_handler-0.0.420.tar.gz" } ], "0.0.421": [ { "comment_text": "", "digests": { "md5": "fdb439e6aad17da7dc93ff87fa007382", "sha256": "b6d92421c145b30e0b14e30341dcfda823f053a903a4c23048f5bb6c0469c4dc" }, "downloads": -1, "filename": "imd_handler-0.0.421-py3-none-any.whl", "has_sig": false, "md5_digest": "fdb439e6aad17da7dc93ff87fa007382", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5868, "upload_time": "2018-09-18T17:37:22", "url": "https://files.pythonhosted.org/packages/d5/ad/862545483af22ce4f41b973c2b1609251b8deddbb4671307ac20c82861ed/imd_handler-0.0.421-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "438ab78de3b392f324b51d5a3807ebdc", "sha256": "cc362b18a80a244c22c34de7cfda8cee6e9533b10446a5ab67a8e862fca9788f" }, "downloads": -1, "filename": "imd_handler-0.0.421.tar.gz", "has_sig": false, "md5_digest": "438ab78de3b392f324b51d5a3807ebdc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4830, "upload_time": "2018-09-18T17:37:23", "url": "https://files.pythonhosted.org/packages/69/dd/d3f9638bc4aa8f5df421dfd3946425f0f5bc2c1d3be57c35ac77e6375355/imd_handler-0.0.421.tar.gz" } ], "0.0.422": [ { "comment_text": "", "digests": { "md5": "f8f608047d08ba6cb3298f7954194168", "sha256": "a7f18072d262133ee5998f332e014463a26a7c5a6490896176f098a72ce5513d" }, "downloads": -1, "filename": "imd_handler-0.0.422-py3-none-any.whl", "has_sig": false, "md5_digest": "f8f608047d08ba6cb3298f7954194168", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5880, "upload_time": "2018-09-19T13:36:51", "url": "https://files.pythonhosted.org/packages/eb/e8/e2a1ab49273087bb43e5ce3826d7fd34f6aea7808654c7ce6ac1ccda591e/imd_handler-0.0.422-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f0793d7d2060513afa95b6ff3b14e9b", "sha256": "1ecd85013af065b6cb6b63ad70bf561eb1853a06f6a8ea2929bd2e33a7f3a9fc" }, "downloads": -1, "filename": "imd_handler-0.0.422.tar.gz", "has_sig": false, "md5_digest": "4f0793d7d2060513afa95b6ff3b14e9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4837, "upload_time": "2018-09-19T13:36:52", "url": "https://files.pythonhosted.org/packages/ad/0b/438a6fe9eb0eb1bf7c00452664f83946071f0a31046525c49fec381fca9b/imd_handler-0.0.422.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f8f608047d08ba6cb3298f7954194168", "sha256": "a7f18072d262133ee5998f332e014463a26a7c5a6490896176f098a72ce5513d" }, "downloads": -1, "filename": "imd_handler-0.0.422-py3-none-any.whl", "has_sig": false, "md5_digest": "f8f608047d08ba6cb3298f7954194168", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5880, "upload_time": "2018-09-19T13:36:51", "url": "https://files.pythonhosted.org/packages/eb/e8/e2a1ab49273087bb43e5ce3826d7fd34f6aea7808654c7ce6ac1ccda591e/imd_handler-0.0.422-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f0793d7d2060513afa95b6ff3b14e9b", "sha256": "1ecd85013af065b6cb6b63ad70bf561eb1853a06f6a8ea2929bd2e33a7f3a9fc" }, "downloads": -1, "filename": "imd_handler-0.0.422.tar.gz", "has_sig": false, "md5_digest": "4f0793d7d2060513afa95b6ff3b14e9b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4837, "upload_time": "2018-09-19T13:36:52", "url": "https://files.pythonhosted.org/packages/ad/0b/438a6fe9eb0eb1bf7c00452664f83946071f0a31046525c49fec381fca9b/imd_handler-0.0.422.tar.gz" } ] }