{ "info": { "author": "Michael Hirsch, Ph.D.", "author_email": "scivision@users.noreply.github.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Science/Research", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Topic :: Scientific/Engineering :: Atmospheric Science" ], "description": "[![image](https://zenodo.org/badge/51016067.svg)](https://zenodo.org/badge/latestdoi/51016067)\n\n[![Actions Status](https://github.com/space-physics/dascutils/workflows/ci_python/badge.svg)](https://github.com/space-physics/dascutils/actions)\n\n[![PyPi versions](https://img.shields.io/pypi/pyversions/dascutils.svg)](https://pypi.python.org/pypi/dascutils)\n[![PyPi Download stats](http://pepy.tech/badge/dascutils)](http://pepy.tech/project/dascutils)\n\n\n# DASC all-sky camera utilities\n\nUtilities for plotting, saving, analyzing the Poker Flat Research Range Digital All Sky Camera. (Other locations, too).\n\nThis program handles the corrupted FITS files due to the RAID array failure on 2013 data.\n\nThe raw data FITS are one image per file.\n\n\n## Install\n\nMost people will find it useful to have the example scripts and the tests built into the Git repo.\n\n```sh\ngit clone https://github.com/space-physics/dascutils\n\npip install -e dascutils\n```\n\n## Usage\nMany analysts may use the API directly, like:\n```python\nimport dascutils as du\n\ndata = du.load('tests/PKR_DASC_0558_20151007_082351.743.FITS')\n```\nThis returns a dictionary of [xarray.DataArray](http://xarray.pydata.org/en/stable/generated/xarray.DataArray.html), which is like a \"smart\" Numpy array.\nThe images are index by wavelength if it was specified in the data file, or 'unknown' otherwise.\nThe images are in a 3-D stack: (time, x, y).\n`data.time` is the time of each image.\nalso several metadata parameters are included like the location of the camera.\n\nSave the data using lossless compression to HDF5 by\n\n```python\ndu.save_hdf5(data, \"foo.h5\")\n```\n\nNow we give several examples.\n\n### Download raw DASC files by time\n\nDownload Poker Flat Research Range \"PKR\" October 7, 2015 from 8:23 to 8:54 UTC to `~/data/`:\n\n```sh\npython dascutils/DownloadDASC.py PKR 2015-10-07T08:23 2015-10-07T08:54 ~/data\n```\n\n* `-w` four-letter wavelength in nanometers e.g. 0630\n\nAs usual, we assume UTC and do NOT specify the timezone.\n\n### convert FITS stack to HDF5\n\nIt is very tedious to download large amounts of DASC data in single FITS files.\nWe have tried to make this faster by multi-threading the download, but then the FTP server anti-leeching\nleaves us with broken downloads.\nAs an alternative in general, it's more convenient to have a single HDF5 file for a day rather than 10,000 FITS files.\nConvert a bunch of FITS files to HDF5 like:\n\n```sh\npython dascutils/ConvertDASC_FITS_to_HDF5.py ~/data/2015-10-07 ~/data/2015-10-07.h5\n```\n\n* `-t` start stop times to convert\n\n### Make movies from DASC raw data files\n\nPlay movie of all wavelengths in subplots for files in a directory, for example:\n\n```sh\npython dascutils/PlayMovie.py dascutils/tests/\n```\n\nadditional options include:\n\n* `-t` specify time limits e.g. `-t 2014-01-02T02:30 2014-01-02T02:35`\n* `-w` choose only certain wavelength(s)\n\n### Spatial registration (plate scale)\n\nThe `cal/` directory contains `AZ` and `EL` files corresponding to each pixel.\n\n```python\nimport dascutils as du\n\ndata = du.load('tests/', azelfn='cal/PKR_DASC_20110112')\n```\n\nnow `data` includes data variables `az` and `el`, same shape as the image(s), along with camera position in `lat` `lon` `alt_m`.\n\n* Be sure you know if you're using magnetic north or geographic north, or you'll see a rotation by the declination.\n* Note the date in the filename--perhaps the camera was moved since before or long after that date?\n\n### Map Projection\n\nA common task in auroral and airglow analysis is to project the image to an imaginary alttiude, that is, as if all the brightness were coming from that altitude.\nEach wavelength has a distinctive peak emission altitude due to the energies, kinetic reactions and vertical density profiles involved.\n\nIt takes considerable time to stretch the image stack pixels to fit a project geographic grid, so this is not enabled by default.\nIt will be enabled if the du.load(..., wavelength_altitude_km=) parameter is used.\nSee PlotDASCPixels.py for an example.\n\nSome analyses can be done far more rapidly by just projecting pixel(s) of interest rather than an entire 3-D image stack.", "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/space-physics/dascutils", "keywords": "aurora,scientific camera", "license": "", "maintainer": "", "maintainer_email": "", "name": "dascutils", "package_url": "https://pypi.org/project/dascutils/", "platform": "", "project_url": "https://pypi.org/project/dascutils/", "project_urls": { "Homepage": "https://github.com/space-physics/dascutils" }, "release_url": "https://pypi.org/project/dascutils/2.0.0/", "requires_dist": null, "requires_python": ">= 3.6", "summary": "Utilities for UAF Digital All-Sky Camera: reading and plotting", "version": "2.0.0" }, "last_serial": 5924371, "releases": { "1.2.1": [ { "comment_text": "", "digests": { "md5": "02d56f7b5d1b0ffa473da6b3f929ea2f", "sha256": "7d253708d8b6bc33a0c7a4b89a684fdd61f5c89a01c8cad700c2a4dd57df7ab0" }, "downloads": -1, "filename": "dascutils-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "02d56f7b5d1b0ffa473da6b3f929ea2f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 11541, "upload_time": "2018-05-23T23:10:53", "url": "https://files.pythonhosted.org/packages/f6/47/522c570febf12d5831585b896bc548c9bf81ae97720ca8142e219484a071/dascutils-1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "68f4925c55899575d35f0de16b2e5aee", "sha256": "0df595f6038a0462c26ef18109970a36ca8a70c1b2c6c6d21d2c1e09220acd4e" }, "downloads": -1, "filename": "dascutils-1.2.1.tar.gz", "has_sig": false, "md5_digest": "68f4925c55899575d35f0de16b2e5aee", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8175, "upload_time": "2018-05-23T23:10:54", "url": "https://files.pythonhosted.org/packages/38/fc/699a6a5603c9f5862fb1bad9c2e4b61a994701447f634027c3011f774402/dascutils-1.2.1.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "f2800c40b08491add1e1b52878d07012", "sha256": "99120b97419d6913e53c1b65033f57815a0015368755460da311b61cb74cf911" }, "downloads": -1, "filename": "dascutils-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f2800c40b08491add1e1b52878d07012", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 11767, "upload_time": "2018-05-25T22:29:36", "url": "https://files.pythonhosted.org/packages/84/66/c3e23380b2399d6cd8500659ffeaf3fdbc1f3d359840570cec60dfbc924e/dascutils-1.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f6d5888751be09f5e8054da7ec0ce47e", "sha256": "b6309582355b2d38f86db51f01d11ed2bd8fb17c05d2a4eb40d1093084a0e288" }, "downloads": -1, "filename": "dascutils-1.3.0.tar.gz", "has_sig": false, "md5_digest": "f6d5888751be09f5e8054da7ec0ce47e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 8442, "upload_time": "2018-05-25T22:29:38", "url": "https://files.pythonhosted.org/packages/17/5b/2777207c4869f11f35c1698822ef5e5c928b5a9a769abd6a369604578d57/dascutils-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "a65ae88b7ce34ed10f4e04d1d7618b7a", "sha256": "24b2f229b775d170adf093428de3bbb14fd45d19a62eee7d4be7d9e8c727cd27" }, "downloads": -1, "filename": "dascutils-1.4.0.tar.gz", "has_sig": false, "md5_digest": "a65ae88b7ce34ed10f4e04d1d7618b7a", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 22116, "upload_time": "2018-08-10T20:56:14", "url": "https://files.pythonhosted.org/packages/61/6b/7ceac0b0c3becd7f0060ce880f503c2dc1543dfed1322788048eae5cb971/dascutils-1.4.0.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "a1299ae046495f3a010661fec8973ebd", "sha256": "6b630e4404f814b2abfab2b1617ea140e56e7928b73e687694cbb7759927cc92" }, "downloads": -1, "filename": "dascutils-1.4.2.tar.gz", "has_sig": false, "md5_digest": "a1299ae046495f3a010661fec8973ebd", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 25362, "upload_time": "2018-10-10T19:51:44", "url": "https://files.pythonhosted.org/packages/2d/62/3eed76324a102832909090728bda1248f32e59e9e6e6145c22103b4d4e90/dascutils-1.4.2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "8270cabf61bb6ddce0445eac5a61ab77", "sha256": "4903f1be08a9c8d23e473c359aae2a6f474ee08b74e9c3cf5decdf4cf979dc61" }, "downloads": -1, "filename": "dascutils-1.4.3.tar.gz", "has_sig": false, "md5_digest": "8270cabf61bb6ddce0445eac5a61ab77", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 25348, "upload_time": "2018-12-31T19:09:47", "url": "https://files.pythonhosted.org/packages/f8/cd/a7957a9f7256368b22b68f447c31f2049140b49e04ca037e53072fc0b57f/dascutils-1.4.3.tar.gz" } ], "1.4.4": [ { "comment_text": "", "digests": { "md5": "54cc49f7ef1256071211d6b801c89b1c", "sha256": "b1ca639b666c0a8a75bad2693d0399aebef159389da114933855cc555c5def78" }, "downloads": -1, "filename": "dascutils-1.4.4.tar.gz", "has_sig": false, "md5_digest": "54cc49f7ef1256071211d6b801c89b1c", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 15360, "upload_time": "2019-09-29T20:43:19", "url": "https://files.pythonhosted.org/packages/fc/57/3c555e851aa2ff7c1882444efac250d2af08de01743d04d187453fa1380c/dascutils-1.4.4.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "6c108c2f7c66a0457a81bf3b42f53198", "sha256": "f47009dbea93ec84c866b1ee86bdcc1f1fd75f12fe3aeb0c15066e197fa89962" }, "downloads": -1, "filename": "dascutils-2.0.0.tar.gz", "has_sig": false, "md5_digest": "6c108c2f7c66a0457a81bf3b42f53198", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 15292, "upload_time": "2019-10-03T16:56:50", "url": "https://files.pythonhosted.org/packages/24/ab/c44ab0338e045a39e465b87600f774509c9a56f31fc841ba836d0ae23585/dascutils-2.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6c108c2f7c66a0457a81bf3b42f53198", "sha256": "f47009dbea93ec84c866b1ee86bdcc1f1fd75f12fe3aeb0c15066e197fa89962" }, "downloads": -1, "filename": "dascutils-2.0.0.tar.gz", "has_sig": false, "md5_digest": "6c108c2f7c66a0457a81bf3b42f53198", "packagetype": "sdist", "python_version": "source", "requires_python": ">= 3.6", "size": 15292, "upload_time": "2019-10-03T16:56:50", "url": "https://files.pythonhosted.org/packages/24/ab/c44ab0338e045a39e465b87600f774509c9a56f31fc841ba836d0ae23585/dascutils-2.0.0.tar.gz" } ] }