reductus
Web-based, visual dataflow data reduction for neutron scattering instruments
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
5 of 14 committers (35.7%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.0%) to scientific vocabulary
Last synced: 10 months ago
·
JSON representation
Repository
Web-based, visual dataflow data reduction for neutron scattering instruments
Basic Info
Statistics
- Stars: 9
- Watchers: 7
- Forks: 11
- Open Issues: 90
- Releases: 6
Created over 15 years ago
· Last pushed 11 months ago
Metadata Files
Readme
License
Citation
README.rst
============================
Neutron Scattering Reduction
============================
.. image:: https://img.shields.io/pypi/v/reductus.svg
:target: https://pypi.org/project/reductus/
.. image:: https://img.shields.io/pypi/pyversions/reductus.svg
:target: https://pypi.org/project/reductus/
.. image:: https://travis-ci.org/reductus/reductus.svg?branch=master
:target: https://travis-ci.org/reductus/reductus
This project provides tools for data reduction for neutron and xray scattering.
reflred
A python package for loading, modifying and saving reflectivity data sets.
ospecred
A python package for loading, modifying and saving off-specular reflectivity data sets.
sansred
A python package for loading, modifying and saving small-angle neutron scattering (SANS) data sets.
web_gui
RPC access to reduction libraries, with javascript frontend (stateless)
To load data from a local store in web reduction, go to
menu->data->add source->local (must be running the server locally,
with the local datastore enabled in config)
Installation and use
--------------------
Method 1: pip install
~~~~~~~~~~~~~~~~~~~~~~
::
pip install "reductus[all]"
Then start the server with::
reductus
For the very latest development version use the following::
pip install "git+https://github.com/reductus/reductus.git#egg=reductus[all]"
Method 2: Docker Compose
~~~~~~~~~~~~~~~~~~~~~~~~
This is the easiest way to get started. Clone the repo, the change directories
into the repository and run::
docker-compose build
docker-compose up -d
This will result in a trio of docker containers being spun up, one with a web
server for the interface ('web_gui'), one with the backend calculation RPC
server ('reductus') and one with the Redis cache.
Files in ./web_gui/testdata/ will be mapped into the server at /data, for
testing the local file handling. Changes to the python code can be
incorporated into the containers by stopping them, then repeating the build
and up commands above.
To stop::
docker-compose stop
To access the client, if using the new Docker beta navigate to
http://localhost:8000/web_gui/web_reduction_filebrowser.html On Windows 7,
if using docker-machine, you will have to get the IP of the default docker
install and use that instead of localhost, e.g. ::
docker-machine ip default
*In my case it was http://192.168.99.100:8000/webreduce/index.html*
Method 3: Run from repo (development)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Clone the repo, then install in "editable" mode (might be a good idea to make
a virtualenv first)::
python -m pip install -e .
python -m pip install -r requirements.txt
web_gui/run.py
or without install (and with headless flag)::
PYTHONPATH=. python -m web_gui.run -x
Browse to the URL indicated (probably http://localhost:8002/).
Change the server as needed then restart. The debug mode flag (-d) may make
the restart unnecessary in some cases. Use headless (-x) to avoid starting
a new browser tab each time. The development server is only accessible from
localhost unless the "external" option is used (--external).
To debug external javascript packages (e.g., treejs or d3-science), you
will need to clone the repo and link it into web_gui/webreduce/js, then
update web_gui/webreduce/js/libraries.js to point to the local version rather
than the version on the web.
Update times on the browser may be very slow, particularly when accessing
the NCNR data source. To speed things up, copy `configurations/default.py`
to `configurations/config.py` and modify it to use `"force_IPV4": True`.
You can also set "auto-reload newer files" to false (unchecked) in the
web client. It is not a sticky setting at the moment, so it gets reset
to checked every time you reload the client page. You can set the default
as `check_mtimes: false` in `web_gui/webreduce/js/menu.js`.
Method 4: Run from repo (production)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
After testing your fixes you can check that they work in the production server.
Install node.js and build javascript packages. This step is outlined
in .github/workflows/client_build.yml. If you have changed an external
javascript package you will need to update
web_gui/webreduce/js/libraries_production.js with the path to the
development version, much like you did for the development server.
::
cd web_gui/webreduce
npm install
rm -rf dist
npm run build
cd ../..
Then start the server with::
cd web_gui
python run.py
and visit the page http://localhost:8002/webreduce/dist/index.html
Owner
- Name: reductus
- Login: reductus
- Kind: organization
- Repositories: 2
- Profile: https://github.com/reductus
GitHub Events
Total
- Create event: 13
- Release event: 5
- Issues event: 8
- Delete event: 1
- Issue comment event: 12
- Push event: 71
- Pull request review comment event: 15
- Pull request review event: 16
- Pull request event: 12
Last Year
- Create event: 13
- Release event: 5
- Issues event: 8
- Delete event: 1
- Issue comment event: 12
- Push event: 71
- Pull request review comment event: 15
- Pull request review event: 16
- Pull request event: 12
Committers
Last synced: over 3 years ago
All Time
- Total Commits: 2,213
- Total Committers: 14
- Avg Commits per committer: 158.071
- Development Distribution Score (DDS): 0.3
Top Committers
| Name | Commits | |
|---|---|---|
| Brian Ben Maranville | b****e@n****v | 1,548 |
| Paul Kienzle | p****e@n****v | 421 |
| pkienzle | p****e@a****c | 163 |
| Paul Kienzle | p****e@n****v | 23 |
| div099 | d****m@g****m | 16 |
| Paul Kienzle | p****e@g****m | 13 |
| David Hoogerheide | d****e@n****v | 10 |
| dependabot[bot] | 4****]@u****m | 8 |
| Hoogerheide | d****h@N****V | 3 |
| ziwen | z****n@a****c | 3 |
| github-actions | g****s@g****m | 2 |
| Brian Maranville | B****e | 1 |
| jkrycka | j****a@a****c | 1 |
| Lila | l****a@n****l | 1 |
Committer Domains (Top 20 + Academic)
nist.gov: 5
github.com: 1
Issues and Pull Requests
Last synced: 11 months ago
All Time
- Total issues: 71
- Total pull requests: 48
- Average time to close issues: 6 months
- Average time to close pull requests: 28 days
- Total issue authors: 8
- Total pull request authors: 5
- Average comments per issue: 1.62
- Average comments per pull request: 1.25
- Merged pull requests: 31
- Bot issues: 0
- Bot pull requests: 15
Past Year
- Issues: 6
- Pull requests: 13
- Average time to close issues: 4 days
- Average time to close pull requests: about 1 month
- Issue authors: 3
- Pull request authors: 3
- Average comments per issue: 1.5
- Average comments per pull request: 0.54
- Merged pull requests: 6
- Bot issues: 0
- Bot pull requests: 5
Top Authors
Issue Authors
- pkienzle (32)
- bmaranville (18)
- hoogerheide (12)
- krzywon (4)
- martintb (2)
- pquartermanngc (1)
- alexander-grutter (1)
- SaFE-APIOpt (1)
Pull Request Authors
- bmaranville (16)
- dependabot[bot] (16)
- pkienzle (10)
- hoogerheide (4)
- krzywon (3)
Top Labels
Issue Labels
wish list (1)
Pull Request Labels
dependencies (16)
javascript (4)
github_actions (2)
Dependencies
requirements.txt
pypi
- diskcache *
- docutils *
- flask *
- h5py *
- importlib_resources *
- lz4 *
- msgpack *
- numdifftools *
- numpy *
- pillow *
- pytest *
- python-dateutil *
- pytz *
- requests *
- scipy *
- setuptools *
- simplejson *
- typing *
- uncertainties *
- werkzeug *
setup.py
pypi
- docutils *
- importlib_resources *
- numpy *
- pytz *
- scipy *
- uncertainties *
.github/workflows/client_build.yml
actions
- actions/checkout v2 composite
- actions/setup-node v1 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- johnwbyrd/update-release v1.0.0 composite
.github/workflows/sdist_update.yml
actions
- actions/checkout v2 composite
- actions/download-artifact v2 composite
- actions/setup-python v2 composite
- actions/upload-artifact v2 composite
- johnwbyrd/update-release v1.0.0 composite
.github/workflows/test.yml
actions
- actions/checkout v2 composite
- actions/setup-python v2 composite
.github/workflows/webworker_build.yml
actions
- actions/checkout v3 composite
- actions/deploy-pages v1 composite
- actions/setup-node v3 composite
- actions/setup-python v4 composite
- actions/upload-pages-artifact v1.0.7 composite
docker-compose/Dockerfile
docker
- httpd alpine build
docker-compose/gevent/Dockerfile
docker
- python 3.5 build
docker-compose.yml
docker
- redis latest
web_gui/webreduce/package-lock.json
npm
- esbuild 0.13.15 development
- esbuild-android-arm64 0.13.15 development
- esbuild-darwin-64 0.13.15 development
- esbuild-darwin-arm64 0.13.15 development
- esbuild-freebsd-64 0.13.15 development
- esbuild-freebsd-arm64 0.13.15 development
- esbuild-linux-32 0.13.15 development
- esbuild-linux-64 0.13.15 development
- esbuild-linux-arm 0.13.15 development
- esbuild-linux-arm64 0.13.15 development
- esbuild-linux-mips64le 0.13.15 development
- esbuild-linux-ppc64le 0.13.15 development
- esbuild-netbsd-64 0.13.15 development
- esbuild-openbsd-64 0.13.15 development
- esbuild-plugin-alias 0.2.1 development
- esbuild-sunos-64 0.13.15 development
- esbuild-windows-32 0.13.15 development
- esbuild-windows-64 0.13.15 development
- esbuild-windows-arm64 0.13.15 development
- @mdi/font 6.5.95
- @widgetjs/tree 1.8.2
- @zip.js/zip.js 2.3.19
- argparse 2.0.1
- charenc 0.0.2
- commander 2.20.3
- crypt 0.0.2
- d3 5.16.0
- d3-array 1.2.4
- d3-axis 1.0.12
- d3-brush 1.1.6
- d3-chord 1.0.6
- d3-collection 1.0.7
- d3-color 1.4.1
- d3-contour 1.3.2
- d3-dispatch 1.0.6
- d3-drag 1.2.5
- d3-dsv 1.2.0
- d3-ease 1.0.7
- d3-fetch 1.2.0
- d3-force 1.2.1
- d3-format 1.4.5
- d3-geo 1.12.1
- d3-hierarchy 1.1.9
- d3-interpolate 1.4.0
- d3-path 1.0.9
- d3-polygon 1.0.6
- d3-quadtree 1.0.7
- d3-random 1.1.2
- d3-scale 2.2.2
- d3-scale-chromatic 1.5.0
- d3-science 0.2.14
- d3-selection 1.4.2
- d3-shape 1.3.7
- d3-time 1.1.0
- d3-time-format 2.3.0
- d3-timer 1.0.10
- d3-transition 1.3.2
- d3-voronoi 1.1.4
- d3-zoom 1.8.3
- format-thousands 1.1.1
- github-buttons 2.21.1
- iconv-lite 0.4.24
- idb 7.0.0
- js-yaml 4.1.0
- messagepack 1.1.12
- node-fetch 2.6.7
- opencollective-postinstall 2.0.3
- promise-worker 2.0.1
- roboto-fontface 0.10.0
- rw 1.3.3
- safer-buffer 2.1.2
- sha1 1.1.1
- sortablejs 1.10.2
- split.js 1.6.5
- tr46 0.0.3
- tslib 1.14.1
- vue 2.6.14
- vue-github-button 1.3.0
- vue-github-buttons 3.1.0
- vue-material 1.0.0-beta-15
- vue-toc 0.0.1
- vuedraggable 2.24.3
- webidl-conversions 3.0.1
- whatwg-url 5.0.0
web_gui/webreduce/package.json
npm
- esbuild ^0.13.15 development
- esbuild-plugin-alias ^0.2.1 development
- @mdi/font ^6.5.95
- @widgetjs/tree https://github.com/bmaranville/treejs#v0.0.2
- @zip.js/zip.js ^2.3.19
- d3 ^5.16.0
- d3-science https://github.com/usnistgov/d3-science#v0.2.14
- idb ^7.0.0
- js-yaml ^4.1.0
- messagepack ^1.1.11
- promise-worker ^2.0.1
- roboto-fontface ^0.10.0
- sha1 ^1.1.1
- split.js ^1.6.5
- vue ^2.6.11
- vue-material ^1.0.0-beta-15
- vuedraggable ^2.24.0