{"id":15899018,"url":"https://github.com/danporter/py16","last_synced_at":"2026-02-16T11:02:03.512Z","repository":{"id":163825317,"uuid":"69284074","full_name":"DanPorter/Py16","owner":"DanPorter","description":"Data viewer and automated analysis for I16 and other Diamond instruments","archived":false,"fork":false,"pushed_at":"2025-10-20T14:52:03.000Z","size":4905,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-10-20T16:41:00.721Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DanPorter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-26T19:13:59.000Z","updated_at":"2025-10-20T14:52:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"a8882a9f-820b-4ff2-889a-12b2f1ef6766","html_url":"https://github.com/DanPorter/Py16","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/DanPorter/Py16","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanPorter%2FPy16","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanPorter%2FPy16/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanPorter%2FPy16/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanPorter%2FPy16/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DanPorter","download_url":"https://codeload.github.com/DanPorter/Py16/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DanPorter%2FPy16/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29506319,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-16T09:05:14.864Z","status":"ssl_error","status_checked_at":"2026-02-16T08:55:59.364Z","response_time":115,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-06T10:10:34.002Z","updated_at":"2026-02-16T11:02:03.497Z","avatar_url":"https://github.com/DanPorter.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# I16 Data Viewer\n\nPy16 programs for data viewing and analysis of data from beamline I16, Diamond Light Source Ltd.\n\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.3859719.svg)](https://doi.org/10.5281/zenodo.3859719)\n\nBy Dan Porter, 2020, Version 4.9\n\nView scan and meta data from scan files generated at the beamline I16 at Diamond Light Source. Quickly look through scan data, plot the results with automated normalisation and perform analysis such as peak fitting, generation of custom detector regions of interest (ROIs) and conversion of detector images to reciprocal space. Plus much more! Contains a feature rich graphical interface and a large module of automated functions for use in an interactive terminal or through scripting.\n\nThese programs work in almost any python environment, as long as you have numpy, scipy and matplotlib installed and matplotlib initialised in the tkinter backend. The software has been extensivley tested in Python 2.7+ and Python 3.7+.\n\nRequirements: numpy, matplotlib, scipy, tkinter, imageio, h5py\n\nSee Py16Notes.txt for more info and Py16progs.html or Py16GUI.html for documentation\n\nThis software is covered by the Apache 2.0 open source licence, please see file headers for more info.\n\nTo cite this software, please use the following DOI: [10.5281/zenodo.3859719](https://doi.org/10.5281/zenodo.3859719)\n\n# Installation\nDownload the following files and place them in the directory of your choice:\n* [Py16progs.py](Py16Progs.py) - Contains functions to read data files, perform analysis and plot results\n* [Py16GUI.py](Py16GUI.py) - Contains functions to create GUI elements\n\n# Graphical interface\nFrom a terminal/ command prompt containing Py16GUI.py and Py16progs.py:\n```\nipython -i --matplotlib tk Py16GUI.py\n```\nNote that the terminal is still active meaning you can also interact manually with the data, using the Py16progs functions, accessed via 'pp.function'\n\n\n# Interactive Console / Scripting\nExample:\n```\nimport Py16progs as pp\npp.filedir='directory/of/data'\npp.savedir='directory/of/analysis'\n\npp.plotscan(123456) \\# plots the scan number 123456\nd = pp.readscan(123456) \\# creates a data holder object 'd' with scan data\nx,y,dy,varx,vary,ttl,d = pp.getdata(123456) \\# returns x/y data with automatic choice of variables\nhelp(pp.getdata) \\# see the documentation on this function\n```\n\n# Screenshot\n![Py16GUI](Py16GUI_Screenshot.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanporter%2Fpy16","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdanporter%2Fpy16","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdanporter%2Fpy16/lists"}