{ "info": { "author": "Ludwig Schwardt", "author_email": "ludwig@ska.ac.za", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Astronomy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "katdal\n======\n\nThis package serves as a data access library to interact with the chunk stores\nand HDF5 files produced by the MeerKAT radio telescope and its predecessors\n(KAT-7 and Fringe Finder), which are collectively known as *MeerKAT Visibility\nFormat (MVF)* data sets. It uses memory carefully, allowing data sets to be\ninspected and partially loaded into memory. Data sets may be concatenated and\nsplit via a flexible selection mechanism. In addition, it provides a script to\nconvert these data sets to CASA MeasurementSets.\n\nQuick Tutorial\n--------------\n\nOpen any data set through a single function to obtain a data set object:\n\n.. code:: python\n\n import katdal\n d = katdal.open('1234567890.h5')\n\nThe ``open`` function automatically determines the version and storage location\nof the data set. The versions roughly map to the various instruments::\n\n - v1 : Fringe Finder (HDF5 file)\n - v2 : KAT-7 (HDF5 file)\n - v3 : MeerKAT (HDF5 file)\n - v4 : MeerKAT (RDB file + chunk store based on objects in Ceph)\n\nEach MVFv4 data set is split into a Redis dump (aka *RDB*) file containing the\nmetadata in the form of a *telescope state* database, and a *chunk store*\ncontaining the visibility data split into many small blocks or chunks (typically\nserved by a Ceph object store over the network). The RDB file is the main entry\npoint to the data set and it can be accessed directly from the MeerKAT SDP\narchive if you have the appropriate permissions:\n\n.. code:: python\n\n # This is just for illustration - the real URL looks a bit different\n d = katdal.open('https://archive/1234567890/1234567890_sdp_l0.rdb?token=AsD3')\n\nMultiple data sets (even of different versions) may also be concatenated\ntogether (as long as they have the same dump rate):\n\n.. code:: python\n\n d = katdal.open(['1234567890.h5', '1234567891.h5'])\n\nInspect the contents of the data set by printing the object:\n\n.. code:: python\n\n print(d)\n\nHere is a typical output::\n\n ===============================================================================\n Name: 1313067732.h5 (version 2.0)\n ===============================================================================\n Observer: someone Experiment ID: 2118d346-c41a-11e0-b2df-a4badb44fe9f\n Description: 'Track on Hyd A,Vir A, 3C 286 and 3C 273'\n Observed from 2011-08-11 15:02:14.072 SAST to 2011-08-11 15:19:47.810 SAST\n Dump rate: 1.00025 Hz\n Subarrays: 1\n ID Antennas Inputs Corrprods\n 0 ant1,ant2,ant3,ant4,ant5,ant6,ant7 14 112\n Spectral Windows: 1\n ID CentreFreq(MHz) Bandwidth(MHz) Channels ChannelWidth(kHz)\n 0 1822.000 400.000 1024 390.625\n -------------------------------------------------------------------------------\n Data selected according to the following criteria:\n subarray=0\n ants=['ant1', 'ant2', 'ant3', 'ant4', 'ant5', 'ant6', 'ant7']\n spw=0\n -------------------------------------------------------------------------------\n Shape: (1054 dumps, 1024 channels, 112 correlation products) => Size: 967.049 MB\n Antennas: *ant1,ant2,ant3,ant4,ant5,ant6,ant7 Inputs: 14 Autocorr: yes Crosscorr: yes\n Channels: 1024 (index 0 - 1023, 2021.805 MHz - 1622.195 MHz), each 390.625 kHz wide\n Targets: 4 selected out of 4 in catalogue\n ID Name Type RA(J2000) DEC(J2000) Tags Dumps ModelFlux(Jy)\n 0 Hyd A radec 9:18:05.28 -12:05:48.9 333 33.63\n 1 Vir A radec 12:30:49.42 12:23:28.0 251 166.50\n 2 3C 286 radec 13:31:08.29 30:30:33.0 230 12.97\n 3 3C 273 radec 12:29:06.70 2:03:08.6 240 39.96\n Scans: 8 selected out of 8 total Compscans: 1 selected out of 1 total\n Date Timerange(UTC) ScanState CompScanLabel Dumps Target\n 11-Aug-2011/13:02:14 - 13:04:26 0:slew 0: 133 0:Hyd A\n 13:04:27 - 13:07:46 1:track 0: 200 0:Hyd A\n 13:07:47 - 13:08:37 2:slew 0: 51 1:Vir A\n 13:08:38 - 13:11:57 3:track 0: 200 1:Vir A\n 13:11:58 - 13:12:27 4:slew 0: 30 2:3C 286\n 13:12:28 - 13:15:47 5:track 0: 200 2:3C 286\n 13:15:48 - 13:16:27 6:slew 0: 40 3:3C 273\n 13:16:28 - 13:19:47 7:track 0: 200 3:3C 273\n\nThe first segment of the printout displays the static information of the data\nset, including observer, dump rate and all the available subarrays and spectral\nwindows in the data set. The second segment (between the dashed lines) highlights\nthe active selection criteria. The last segment displays dynamic information\nthat is influenced by the selection, including the overall visibility array\nshape, antennas, channel frequencies, targets and scan info.\n\nThe data set is built around the concept of a three-dimensional visibility array\nwith dimensions of time, frequency and correlation product. This is reflected in\nthe *shape* of the dataset:\n\n.. code:: python\n\n d.shape\n\nwhich returns ``(1054, 1024, 112)``, meaning 1054 dumps by 1024 channels by 112\ncorrelation products.\n\nLet's select a subset of the data set:\n\n.. code:: python\n\n d.select(scans='track', channels=slice(200, 300), ants='ant4')\n print(d)\n\nThis results in the following printout::\n\n ===============================================================================\n Name: /Users/schwardt/Downloads/1313067732.h5 (version 2.0)\n ===============================================================================\n Observer: siphelele Experiment ID: 2118d346-c41a-11e0-b2df-a4badb44fe9f\n Description: 'track on Hyd A,Vir A, 3C 286 and 3C 273 for Lud'\n Observed from 2011-08-11 15:02:14.072 SAST to 2011-08-11 15:19:47.810 SAST\n Dump rate: 1.00025 Hz\n Subarrays: 1\n ID Antennas Inputs Corrprods\n 0 ant1,ant2,ant3,ant4,ant5,ant6,ant7 14 112\n Spectral Windows: 1\n ID CentreFreq(MHz) Bandwidth(MHz) Channels ChannelWidth(kHz)\n 0 1822.000 400.000 1024 390.625\n -------------------------------------------------------------------------------\n Data selected according to the following criteria:\n channels=slice(200, 300, None)\n subarray=0\n scans='track'\n ants='ant4'\n spw=0\n -------------------------------------------------------------------------------\n Shape: (800 dumps, 100 channels, 4 correlation products) => Size: 2.560 MB\n Antennas: ant4 Inputs: 2 Autocorr: yes Crosscorr: no\n Channels: 100 (index 200 - 299, 1943.680 MHz - 1905.008 MHz), each 390.625 kHz wide\n Targets: 4 selected out of 4 in catalogue\n ID Name Type RA(J2000) DEC(J2000) Tags Dumps ModelFlux(Jy)\n 0 Hyd A radec 9:18:05.28 -12:05:48.9 200 31.83\n 1 Vir A radec 12:30:49.42 12:23:28.0 200 159.06\n 2 3C 286 radec 13:31:08.29 30:30:33.0 200 12.61\n 3 3C 273 radec 12:29:06.70 2:03:08.6 200 39.32\n Scans: 4 selected out of 8 total Compscans: 1 selected out of 1 total\n Date Timerange(UTC) ScanState CompScanLabel Dumps Target\n 11-Aug-2011/13:04:27 - 13:07:46 1:track 0: 200 0:Hyd A\n 13:08:38 - 13:11:57 3:track 0: 200 1:Vir A\n 13:12:28 - 13:15:47 5:track 0: 200 2:3C 286\n 13:16:28 - 13:19:47 7:track 0: 200 3:3C 273\n\nCompared to the first printout, the static information has remained the same\nwhile the dynamic information now reflects the selected subset. There are many\npossible selection criteria, as illustrated below:\n\n.. code:: python\n\n d.select(timerange=('2011-08-11 13:10:00', '2011-08-11 13:15:00'), targets=[1, 2])\n d.select(spw=0, subarray=0)\n d.select(ants='ant1,ant2', pol='H', scans=(0,1,2), freqrange=(1700e6, 1800e6))\n\nSee the docstring of ``DataSet.select`` for more detailed information (i.e.\ndo ``d.select?`` in IPython). Take note that only one subarray and one spectral\nwindow must be selected.\n\nOnce a subset of the data has been selected, you can access the data and\ntimestamps on the data set object:\n\n.. code:: python\n\n vis = d.vis[:]\n timestamps = d.timestamps[:]\n\nNote the ``[:]`` indexing, as the ``vis`` and ``timestamps`` properties are\nspecial ``LazyIndexer`` objects that only give you the actual data when\nyou use indexing, in order not to inadvertently load the entire array into memory.\n\nFor the example dataset and no selection the ``vis`` array will have a shape of\n``(1054, 1024, 112)``. The time dimension is labelled by ``d.timestamps``, the\nfrequency dimension by ``d.channel_freqs`` and the correlation product dimension\nby ``d.corr_products``.\n\nAnother key concept in the data set object is that of *sensors*. These are named\ntime series of arbitrary data that are either loaded from the data set\n(*actual* sensors) or calculated on the fly (*virtual* sensors). Both variants\nare accessed through the *sensor cache* (available as ``d.sensor``) and cached\nthere after the first access. The data set object also provides convenient\nproperties to expose commonly-used sensors, as shown in the plot example below:\n\n.. code:: python\n\n import matplotlib.pyplot as plt\n plt.plot(d.az, d.el, 'o')\n plt.xlabel('Azimuth (degrees)')\n plt.ylabel('Elevation (degrees)')\n\nOther useful attributes include ``ra``, ``dec``, ``lst``, ``mjd``, ``u``,\n``v``, ``w``, ``target_x`` and ``target_y``. These are all one-dimensional\nNumPy arrays that dynamically change length depending on the active selection.\n\nAs in katdal's predecessor (scape) there is a ``DataSet.scans`` generator\nthat allows you to step through the scans in the data set. It returns the\nscan index, scan state and target object on each iteration, and updates\nthe active selection on the data set to include only the current scan.\nIt is also possible to iterate through the compound scans with the\n``DataSet.compscans`` generator, which yields the compound scan index, label\nand first target on each iteration for convenience. These two iterators may also\nbe used together to traverse the data set structure:\n\n.. code:: python\n\n for compscan, label, target in d.compscans():\n plt.figure()\n for scan, state, target in d.scans():\n if state in ('scan', 'track'):\n plt.plot(d.ra, d.dec, 'o')\n plt.xlabel('Right ascension (J2000 degrees)')\n plt.ylabel('Declination (J2000 degrees)')\n plt.title(target.name)\n\nFinally, all the targets (or fields) in the data set are stored in a catalogue\navailable at ``d.catalogue``, and the original HDF5 file is still accessible via\na back door installed at ``d.file`` in the case of a single-file data set (v3\nor older). On a v4 data set, ``d.source`` provides access to the underlying\ntelstate for metadata and the chunk store for data.\n\n\nHistory\n=======\n\n0.14 (2019-10-02)\n-----------------\n* Make L2 product by applying self-calibration corrections (#253 - #256)\n* Speed up uvw calculations (#252, #262)\n* Produce documentation on readthedocs.org (#244, #245, #247, #250, #261)\n* Clean up mvftoms and fix REST_FREQUENCY in SOURCE sub-table (#258)\n* Support katstore64 API (#265)\n* Improve chunk store: detect short reads, speed up handling of lost data (#259, #260)\n* Use katpoint 0.9 and dask 1.2.1 features (#262, #243)\n\n0.13 (2019-05-09)\n-----------------\n* Load RDB files straight from archive (#233, #241)\n* Retrieve raw sensor data from CAM katstore (#234)\n* Work around one-CBF-dump offset issue (#238)\n* Improved MS output: fixed RECEPTOR_ANGLE (#230), added WEIGHT_SPECTRUM (#231)\n* Various optimisations to applycal (#224), weights (#226), S3 reads (#229)\n* Use katsdptelstate 0.8 and dask 1.1 features (#228, #233, #240)\n\n0.12 (2019-02-12)\n-----------------\n* Optionally make L1 product by applying calibration corrections (#194 - #198)\n* Let default reference antenna in v4 datasets be \"array\" antenna (#202, #220)\n* Use katsdptelstate v0.7: generic encodings, memory backend (#196, #201, #212)\n* Prepare for multi-dump chunks (#213, #214, #216, #217, #219)\n* Allow L1 flags to be ignored (#209, #210)\n* Deal with deprecated dask features (#204, #215)\n* Remove RADOS chunk store (it's all via S3 from here on)\n\n0.11 (2018-10-15)\n-----------------\n* Python 3 support via python-future (finally!)\n* Load L1 flags if available (#164)\n* Reduced memory usage (#165) and speedups (#155, #169, #170, #171, #182)\n* S3 chunk store now uses requests directly instead of via botocore (#166)\n* Let lazy indexer use oindex semantics like in the past (#180)\n* Fix concatenated data sets (#161)\n* Fix IPython / Jupyter tab completion for sensor cache (#176)\n\n0.10.1 (2018-05-18)\n-------------------\n* Restore NumPy 1.14 support (all data flagged otherwise)\n\n0.10 (2018-05-17)\n-----------------\n* Rally around the MeerKAT Visibility Format (MVF)\n* First optimised converter from MVF v4 to MS: mvftoms\n* Latest v4 fixes (synthetic timestamps, autodetection, NPY files in Ceph)\n* Flag and zero missing chunks\n* Now requires katsdptelstate (released), dask, h5py 2.3 and Python 2.7\n* Restore S3 unit tests and NumPy 1.11 (on Ubuntu 16.04) support\n\n0.9.5 (2018-02-22)\n------------------\n* New HDF5 v3.9 file format in anticipation of v4 (affects obs_params)\n* Fix receiver serial numbers in recent MeerKAT data sets\n* Add dask support to ChunkStore\n* katdal.open() works on v4 RDB files\n\n0.9 (2018-01-16)\n----------------\n* New ChunkStore and telstate-based parser for future v4 format\n* Use python-casacore (>=2.2.1) to create Measurement Sets instead of blank.ms\n* Read new-style noise diode sensor names, serial numbers and L0 stream metadata\n* Select multiple polarisations (useful for cross-pol)\n* Relax the \"expected number of dumps\" check to avoid spurious warnings\n* Fix NumPy 1.14 warnings\n\n0.8 (2017-08-08)\n----------------\n* Fix upside-down MeerKAT images\n* SensorData rework to load gain solutions and access telstate efficiently\n* Improve mapping of sensor events onto dumps, especially for long (8 s) dumps\n* Fix NumPy 1.13 warnings and errors\n* Support UHF receivers\n\n0.7.1 (2017-01-19)\n------------------\n\n* Fix MODEL_DATA / CORRECTED_DATA shapes in h5toms\n* Produce calibration solution tables in h5toms and improve error messages\n* Autodetect receiver band on older RTS files\n\n0.7 (2016-12-14)\n----------------\n\n* Support weights in file and improve vis / weights / flags API\n* Support multiple receivers and improve centre frequency extraction\n* Speed up h5toms by ordering visibilities by time\n* Fix band selection and corr products for latest SDP (cam2telstate)\n* Allow explicit MS names in h5toms\n\n0.6 (2016-09-16)\n----------------\n\n* Initial release of katdal", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ska-sa/katdal", "keywords": "meerkat ska", "license": "Modified BSD", "maintainer": "", "maintainer_email": "", "name": "katdal", "package_url": "https://pypi.org/project/katdal/", "platform": "OS Independent", "project_url": "https://pypi.org/project/katdal/", "project_urls": { "Homepage": "https://github.com/ska-sa/katdal" }, "release_url": "https://pypi.org/project/katdal/0.14/", "requires_dist": null, "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2", "summary": "Karoo Array Telescope data access library for interacting with data sets in the MeerKAT Visibility Format (MVF)", "version": "0.14" }, "last_serial": 5918445, "releases": { "0.10": [ { "comment_text": "", "digests": { "md5": "0ba7e588afa2fcbb728f049f4bb526dd", "sha256": "6e795e4e4fc5fd2e91a6b29e1bc9da2e7cace6c70d7670648b4ced75b8723bd1" }, "downloads": -1, "filename": "katdal-0.10-py2-none-any.whl", "has_sig": true, "md5_digest": "0ba7e588afa2fcbb728f049f4bb526dd", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 163350, "upload_time": "2018-05-17T14:30:10", "url": "https://files.pythonhosted.org/packages/67/e6/3b60c704d13e6b0a8856dbe8e6eb177cbe4bfaff5c54f8f3154387bcc524/katdal-0.10-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84979f8ac24847cad5f6c896885f1095", "sha256": "579dbe41a41701117c4f26b8d0824c9a925e9c82441496c575d19a482b8185ae" }, "downloads": -1, "filename": "katdal-0.10.tar.gz", "has_sig": true, "md5_digest": "84979f8ac24847cad5f6c896885f1095", "packagetype": "sdist", "python_version": "source", "requires_python": "~=2.7", "size": 138660, "upload_time": "2018-05-17T14:29:51", "url": "https://files.pythonhosted.org/packages/48/79/2375510309b53b4bc728d0e7b552d3c958ff4fe34fb49f694e23c0e0153c/katdal-0.10.tar.gz" } ], "0.10.1": [ { "comment_text": "", "digests": { "md5": "f7e5adeaf75f18315c1272c302e77f51", "sha256": "b4deacdf57dd16e0d078c8ce69f0195c7dfdfad8ad4020c2330c44406fafea1b" }, "downloads": -1, "filename": "katdal-0.10.1-py2-none-any.whl", "has_sig": true, "md5_digest": "f7e5adeaf75f18315c1272c302e77f51", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": "~=2.7", "size": 163172, "upload_time": "2018-05-18T14:19:19", "url": "https://files.pythonhosted.org/packages/43/9e/5ff56171c32929decbb29b882adb2dd890f07fd51f47ce2c5871b89986f5/katdal-0.10.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d3625b560a562f0b36b3f43475487878", "sha256": "7f5ad55f30a040ac1f97ba5d260eb52a5f4c6771b8633a296c5dcaccae0571ee" }, "downloads": -1, "filename": "katdal-0.10.1.tar.gz", "has_sig": true, "md5_digest": "d3625b560a562f0b36b3f43475487878", "packagetype": "sdist", "python_version": "source", "requires_python": "~=2.7", "size": 138384, "upload_time": "2018-05-18T14:19:04", "url": "https://files.pythonhosted.org/packages/1a/97/b129fcd4821b0d0763efd3276a48c6da73112b612a47b4d2775eae0875b0/katdal-0.10.1.tar.gz" } ], "0.11": [ { "comment_text": "", "digests": { "md5": "4b10ad8240b2be4cdc6dd3bf89d9e8a9", "sha256": "b1c763bf8316b6d2f6b4c26561ff9f0bfcee5fb189d4e41a70eb9050125e0778" }, "downloads": -1, "filename": "katdal-0.11-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "4b10ad8240b2be4cdc6dd3bf89d9e8a9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2", "size": 190548, "upload_time": "2018-10-15T08:47:58", "url": "https://files.pythonhosted.org/packages/a4/ae/c58deacdd02b5a13acb1ffb0280ffedf88c1eb5129307dac49130fff3bd3/katdal-0.11-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a941c0b13021f688d3ca2f37e55e2cd", "sha256": "5f4e46a277ea1db54d13edff32710f3000b6a97b327a73703c40a51e4314895f" }, "downloads": -1, "filename": "katdal-0.11.tar.gz", "has_sig": true, "md5_digest": "5a941c0b13021f688d3ca2f37e55e2cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2", "size": 163818, "upload_time": "2018-10-15T08:46:42", "url": "https://files.pythonhosted.org/packages/33/1a/a328b1b5ff75555455fc83682d973d7ad0cacf5a76810e5bcc4ee6b68394/katdal-0.11.tar.gz" } ], "0.12": [ { "comment_text": "", "digests": { "md5": "b9a7b01f79f413c746a76ddcad327d86", "sha256": "6f992fb851db0a3f8b08e2cad5decd64245b160e17e5b667a5d3b5776b298a05" }, "downloads": -1, "filename": "katdal-0.12-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "b9a7b01f79f413c746a76ddcad327d86", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2", "size": 198464, "upload_time": "2019-02-12T15:40:21", "url": "https://files.pythonhosted.org/packages/a2/a5/703a4adf28d211469d7695c0a464418d8679cec4741e939d02f5500e1b0b/katdal-0.12-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "596288dc56757cfc83219b228d573517", "sha256": "1325101309338981e1808c0ee802a2591860695b6a049f17f57d4178a9873207" }, "downloads": -1, "filename": "katdal-0.12.tar.gz", "has_sig": true, "md5_digest": "596288dc56757cfc83219b228d573517", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2", "size": 173695, "upload_time": "2019-02-12T15:40:12", "url": "https://files.pythonhosted.org/packages/7d/56/1f8f6f08b16ff0394d2c3ff1f748b7819c0b331cb2c93b93f95fd7e1ef3f/katdal-0.12.tar.gz" } ], "0.13": [ { "comment_text": "", "digests": { "md5": "dcaa9dea0c5a39a704d746a67c0c5034", "sha256": "3b20ffe24ea41191dcf806195ed62d8042b0c453727f2541c96c6b0131e58eff" }, "downloads": -1, "filename": "katdal-0.13-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "dcaa9dea0c5a39a704d746a67c0c5034", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2", "size": 205132, "upload_time": "2019-05-09T14:37:56", "url": "https://files.pythonhosted.org/packages/fa/bf/abb9a2a65aace30982bb590105cc0a095450a23b2b2af2b30938a1ea2ebc/katdal-0.13-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7523d0627f37834248faf682d6c828d1", "sha256": "56a504dfe251b4d15b502445a29598d969850b2fde0da4b9f3c49ee25356c359" }, "downloads": -1, "filename": "katdal-0.13.tar.gz", "has_sig": true, "md5_digest": "7523d0627f37834248faf682d6c828d1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2", "size": 178325, "upload_time": "2019-05-09T14:37:39", "url": "https://files.pythonhosted.org/packages/79/ca/2b99e814943feab32b0d7bd7550248eab6507e6d7ecd9ef96baf225dcf3d/katdal-0.13.tar.gz" } ], "0.14": [ { "comment_text": "", "digests": { "md5": "aa66dfb230e508e03a5d9917af0ad0d2", "sha256": "d8a76c616a54c8d280c5d66157089f0a1af4e297528d38d66c588d86fbe5e766" }, "downloads": -1, "filename": "katdal-0.14-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "aa66dfb230e508e03a5d9917af0ad0d2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2", "size": 207788, "upload_time": "2019-10-02T15:09:42", "url": "https://files.pythonhosted.org/packages/81/6d/e6be4f21328a04ec7f58976f6edfcb121e6fd7fe929e3cf3026ce46926d7/katdal-0.14-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b9a4c225c7820015410d254cfa577cd", "sha256": "8886d0e869bda319d2294ccc1ebaa944ada4626f6f62e57e645b032109112970" }, "downloads": -1, "filename": "katdal-0.14.tar.gz", "has_sig": true, "md5_digest": "6b9a4c225c7820015410d254cfa577cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2", "size": 183771, "upload_time": "2019-10-02T15:09:14", "url": "https://files.pythonhosted.org/packages/c9/69/32f1f35f63e8ff5b4249d0873a4dc80aec2688562e255595b82c9754517b/katdal-0.14.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "3d9733f6e5632b6c22f2cdc0e31813bd", "sha256": "42ff0db14e849edc3f36ae4a2bd7735b7dfa9450646e985791430d60a458ada0" }, "downloads": -1, "filename": "katdal-0.6-py2-none-any.whl", "has_sig": true, "md5_digest": "3d9733f6e5632b6c22f2cdc0e31813bd", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 107354, "upload_time": "2016-09-16T15:25:16", "url": "https://files.pythonhosted.org/packages/1d/66/4abedceb7afa7c655fabef4490e3c1e1116c4510325e2a0f7fff1486d2bc/katdal-0.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78d44e8c5cf35576d1e57002dd1fd811", "sha256": "63118b8b2d37094cc55df73778ed95dde70ccfb30e800041407420122850aff5" }, "downloads": -1, "filename": "katdal-0.6.tar.gz", "has_sig": true, "md5_digest": "78d44e8c5cf35576d1e57002dd1fd811", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 105776, "upload_time": "2016-09-16T15:25:30", "url": "https://files.pythonhosted.org/packages/17/90/2f75534574eeaa19c41d42b42f30f5584138f497596ea690b57a5747bf2d/katdal-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "9967908609c44ac7344f7f3b6b3d3271", "sha256": "7dbda4a0aa657752acb312a377bb2302df0d58f6bf6bc2129e82a7b7d78c5050" }, "downloads": -1, "filename": "katdal-0.7-py2-none-any.whl", "has_sig": true, "md5_digest": "9967908609c44ac7344f7f3b6b3d3271", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 110515, "upload_time": "2016-12-14T20:23:33", "url": "https://files.pythonhosted.org/packages/cd/cb/d2851fc9daafd0587391b5556b05eedf26afe25786bb7818dbd7cb20b05b/katdal-0.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "92d534fa3016ed958166a11c94f05d99", "sha256": "790e6bf4778193445b012c86d1aecf53c49ec32eed951f2893d75e5c95ddeabf" }, "downloads": -1, "filename": "katdal-0.7.tar.gz", "has_sig": true, "md5_digest": "92d534fa3016ed958166a11c94f05d99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93421, "upload_time": "2016-12-14T20:23:45", "url": "https://files.pythonhosted.org/packages/2b/59/258059dd09ff0d04a366949484093807ceab9c22cf1b69ab91c6f546d056/katdal-0.7.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "013455fe1977d4ff0e39b3490ce59f04", "sha256": "a836f5f9557346c3e308d47af0bf37f40468fafaf5b742f844d7517dd8fd9229" }, "downloads": -1, "filename": "katdal-0.7.1-py2-none-any.whl", "has_sig": true, "md5_digest": "013455fe1977d4ff0e39b3490ce59f04", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 113868, "upload_time": "2017-01-19T20:35:39", "url": "https://files.pythonhosted.org/packages/bb/01/2df9022c03a754d1aa2189e287ad4fd4b433430380247937edaff92487c3/katdal-0.7.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "42cbbcc3c2e2d68f6e520324d0bc1de8", "sha256": "9b57cbc10a578e01dfb20214b4699c1c7eafce22c6bacdfa3c936e2f45647339" }, "downloads": -1, "filename": "katdal-0.7.1.tar.gz", "has_sig": true, "md5_digest": "42cbbcc3c2e2d68f6e520324d0bc1de8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 96982, "upload_time": "2017-01-19T20:35:14", "url": "https://files.pythonhosted.org/packages/89/47/1378110f16cfb60ee4f8f8c75e1d107be46363c6a4079dd6d57e4cdf8186/katdal-0.7.1.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "4e3974a707156fc07169cfeefac6125f", "sha256": "916011673b0bca1c3b71d58f726e8d72f46a5f202535ed4395243f82f4acefec" }, "downloads": -1, "filename": "katdal-0.8-py2-none-any.whl", "has_sig": true, "md5_digest": "4e3974a707156fc07169cfeefac6125f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 121055, "upload_time": "2017-08-08T10:18:09", "url": "https://files.pythonhosted.org/packages/bc/1f/a36c6ce69a096dbb91e90a6a91be42e8fb6f5124e631728217c873bde14d/katdal-0.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1982961608bedbdcb29141f079fb640", "sha256": "5ca4f31e3aa52459fd4a474564b21fca9d4f80b6d2f81daf851ea43780d20626" }, "downloads": -1, "filename": "katdal-0.8.tar.gz", "has_sig": true, "md5_digest": "d1982961608bedbdcb29141f079fb640", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 104434, "upload_time": "2017-08-08T10:17:45", "url": "https://files.pythonhosted.org/packages/01/07/a0fe0a63530fec1e93b1588b40a9f3232700297a464c3d6c675b5e5e368f/katdal-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "566cd140b67ddfddda81677540344dcd", "sha256": "9bf6ecd68e439dfa1ace31716b103a36e77ccdcfaa468b3d0e2a0d930ba2e146" }, "downloads": -1, "filename": "katdal-0.9-py2-none-any.whl", "has_sig": true, "md5_digest": "566cd140b67ddfddda81677540344dcd", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 149516, "upload_time": "2018-01-16T13:11:58", "url": "https://files.pythonhosted.org/packages/0e/3d/7a0469600617fd8203f145336f59f8272d142ea65f5ecb91fe94e425b1a5/katdal-0.9-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c405ec9b099c62be31c5065feb38407b", "sha256": "c1d268505ca6346662e949dd004e074a0dcda9cac35dfd66b81b1c9c078fb482" }, "downloads": -1, "filename": "katdal-0.9.tar.gz", "has_sig": true, "md5_digest": "c405ec9b099c62be31c5065feb38407b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 122777, "upload_time": "2018-01-16T13:11:12", "url": "https://files.pythonhosted.org/packages/f0/d0/582951a889d432f624feb2b796caa5ada48686af44673988ef848d64f038/katdal-0.9.tar.gz" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "a6a716894e20536811f75e142cd35f46", "sha256": "f0a8654cc6253f2717e984445e57d0c7e08c105c47afc10b31800f1e660a8f6b" }, "downloads": -1, "filename": "katdal-0.9.5-py2-none-any.whl", "has_sig": true, "md5_digest": "a6a716894e20536811f75e142cd35f46", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 155950, "upload_time": "2018-02-22T09:03:03", "url": "https://files.pythonhosted.org/packages/5d/5a/8356ffdaae4dd0171de989f1d898ab76de53a8f43c4e93572f4d43ffd8c1/katdal-0.9.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d8c6ddeda35c1a725f4cace391548805", "sha256": "384b8dbdd6dd0ae26ad67e0697983471f6977b328e791b8aad0400d5fb3b0e7e" }, "downloads": -1, "filename": "katdal-0.9.5.tar.gz", "has_sig": true, "md5_digest": "d8c6ddeda35c1a725f4cace391548805", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 129215, "upload_time": "2018-02-22T09:02:36", "url": "https://files.pythonhosted.org/packages/cd/1f/1aa5d487dc3e28d180cabdc2fd0ce158455e557bdbe1a2ec1cf57c23434a/katdal-0.9.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "aa66dfb230e508e03a5d9917af0ad0d2", "sha256": "d8a76c616a54c8d280c5d66157089f0a1af4e297528d38d66c588d86fbe5e766" }, "downloads": -1, "filename": "katdal-0.14-py2.py3-none-any.whl", "has_sig": true, "md5_digest": "aa66dfb230e508e03a5d9917af0ad0d2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2", "size": 207788, "upload_time": "2019-10-02T15:09:42", "url": "https://files.pythonhosted.org/packages/81/6d/e6be4f21328a04ec7f58976f6edfcb121e6fd7fe929e3cf3026ce46926d7/katdal-0.14-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b9a4c225c7820015410d254cfa577cd", "sha256": "8886d0e869bda319d2294ccc1ebaa944ada4626f6f62e57e645b032109112970" }, "downloads": -1, "filename": "katdal-0.14.tar.gz", "has_sig": true, "md5_digest": "6b9a4c225c7820015410d254cfa577cd", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7,!=3.0,!=3.1,!=3.2", "size": 183771, "upload_time": "2019-10-02T15:09:14", "url": "https://files.pythonhosted.org/packages/c9/69/32f1f35f63e8ff5b4249d0873a4dc80aec2688562e255595b82c9754517b/katdal-0.14.tar.gz" } ] }