Files
Jungfraujoch/JFJOCH_PROCESS.html
T
2026-06-25 21:18:12 +00:00

11 lines
63 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html> <html lang=en data-content_root="./"> <meta charset=utf-8 /> <meta name=viewport content="width=device-width, initial-scale=1.0" /><meta name=viewport content="width=device-width, initial-scale=1" /> <meta name=viewport content="width=device-width,initial-scale=1"> <meta http-equiv=x-ua-compatible content="ie=edge"> <meta name="lang:clipboard.copy" content="Copy to clipboard"> <meta name="lang:clipboard.copied" content="Copied to clipboard"> <meta name="lang:search.language" content=en > <meta name="lang:search.pipeline.stopwords" content=True > <meta name="lang:search.pipeline.trimmer" content=True > <meta name="lang:search.result.none" content="No matching documents"> <meta name="lang:search.result.one" content="1 matching document"> <meta name="lang:search.result.other" content="# matching documents"> <meta name="lang:search.tokenizer" content="[\s\-]+"> <link href="https://fonts.gstatic.com/" rel=preconnect crossorigin> <link href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,500,700|Roboto:300,400,400i,700&display=fallback" rel=stylesheet > <style> body, input { font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif } code, kbd, pre { font-family: "Roboto Mono", "Courier New", Courier, monospace } </style> <link rel=stylesheet href="_static/stylesheets/application.css"/> <link rel=stylesheet href="_static/stylesheets/application-palette.css"/> <link rel=stylesheet href="_static/stylesheets/application-fixes.css"/> <link rel=stylesheet href="_static/fonts/material-icons.css"/> <meta name=theme-color content="#3f51b5"> <script src="_static/javascripts/modernizr.js"></script> <title>jfjoch_process &#8212; Jungfraujoch 1.0.0-rc.155 documentation</title> <link rel=stylesheet type="text/css" href="_static/pygments.css?v=83e35b93" /> <link rel=stylesheet type="text/css" href="_static/material.css?v=79c92029" /> <script src="_static/documentation_options.js?v=502bdfb1"></script> <script src="_static/doctools.js?v=9bcbadda"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <link rel=icon href="_static/jfjoch.png"/> <link rel=index title=Index href=genindex.html /> <link rel=search title=Search href=search.html /> <link rel=next title=jfjoch_viewer href=JFJOCH_VIEWER.html /> <link rel=prev title=jfjoch_writer href=JFJOCH_WRITER.html /> <body dir=ltr data-md-color-primary=indigo data-md-color-accent=lime> <svg class=md-svg > <defs data-children-count=0 > <svg xmlns="http://www.w3.org/2000/svg" width=500 height=500 viewBox="0 0 500 500" id=__gitlab ><path fill=currentColor d="M93.667 473.347l90.684-279.097H2.983l90.684 279.097z" transform="translate(156.198 1.16)"/><path fill=currentColor d="M221.333 473.345L130.649 194.25H3.557l217.776 279.095z" transform="translate(28.531 1.16)" opacity=.7 /><path fill=currentColor d="M32 195.155L4.441 279.97a18.773 18.773 0 0 0 6.821 20.99l238.514 173.29L32 195.155z" transform="translate(.089 .256)" opacity=.5 /><path fill=currentColor d="M2.667-84.844h127.092L75.14-252.942c-2.811-8.649-15.047-8.649-17.856 0L2.667-84.844z" transform="translate(29.422 280.256)"/><path fill=currentColor d="M2.667 473.345L93.351 194.25h127.092L2.667 473.345z" transform="translate(247.198 1.16)" opacity=.7 /><path fill=currentColor d="M221.334 195.155l27.559 84.815a18.772 18.772 0 0 1-6.821 20.99L3.557 474.25l217.777-279.095z" transform="translate(246.307 .256)" opacity=.5 /><path fill=currentColor d="M130.667-84.844H3.575l54.618-168.098c2.811-8.649 15.047-8.649 17.856 0l54.618 168.098z" transform="translate(336.974 280.256)"/></svg> </defs> </svg> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer > <input class=md-toggle data-md-toggle=search type=checkbox id=__search > <label class=md-overlay data-md-component=overlay for=__drawer ></label> <a href="#JFJOCH_PROCESS" tabindex=1 class=md-skip > Skip to content </a> <header class=md-header data-md-component=header > <nav class="md-header-nav md-grid"> <div class="md-flex navheader"> <div class="md-flex__cell md-flex__cell--shrink"> <a href=index.html title="Jungfraujoch 1.0.0-rc.155 documentation" class="md-header-nav__button md-logo"> <i class=md-icon >&#xe30d</i> </a> </div> <div class="md-flex__cell md-flex__cell--shrink"> <label class="md-icon md-icon--menu md-header-nav__button" for=__drawer ></label> </div> <div class="md-flex__cell md-flex__cell--stretch"> <div class="md-flex__ellipsis md-header-nav__title" data-md-component=title > <span class=md-header-nav__topic >PSI Jungfraujoch</span> <span class=md-header-nav__topic > jfjoch_process </span> </div> </div> <div class="md-flex__cell md-flex__cell--shrink"> <label class="md-icon md-icon--search md-header-nav__button" for=__search ></label> <div class=md-search data-md-component=search role=dialog > <label class=md-search__overlay for=__search ></label> <div class=md-search__inner role=search > <form class=md-search__form action=search.html method=get name=search > <input type=text class=md-search__input name=q placeholder=""Search"" autocapitalize=off autocomplete=off spellcheck=false data-md-component=query data-md-state=active > <label class="md-icon md-search__icon" for=__search ></label> <button type=reset class="md-icon md-search__icon" data-md-component=reset tabindex=-1 > &#xE5CD; </button> </form> <div class=md-search__output > <div class=md-search__scrollwrap data-md-scrollfix> <div class=md-search-result data-md-component=result > <div class=md-search-result__meta > Type to start searching </div> <ol class=md-search-result__list ></ol> </div> </div> </div> </div> </div> </div> <div class="md-flex__cell md-flex__cell--shrink"> <div class=md-header-nav__source > <a href="https://gitea.psi.ch/mx/jungfraujoch" title="Go to repository" class=md-source data-md-source=github > <div class=md-source__icon > <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" width=28 height=28 > <use xlink:href="#__gitlab" width=24 height=24 ></use> </svg> </div> <div class=md-source__repository > Jungfraujoch </div> </a> </div> </div> <script src="_static/javascripts/version_dropdown.js"></script> <script> var json_loc = ""versions.json"", target_loc = "../", text = "Versions"; $( document ).ready( add_version_dropdown(json_loc, target_loc, text)); </script> </div> </nav> </header> <div class=md-container > <nav class=md-tabs data-md-component=tabs > <div class="md-tabs__inner md-grid"> <ul class=md-tabs__list > <li class=md-tabs__item ><a href=index.html class=md-tabs__link >Jungfraujoch 1.0.0-rc.155 documentation</a> </ul> </div> </nav> <main class=md-main > <div class="md-main__inner md-grid" data-md-component=container > <div class="md-sidebar md-sidebar--primary" data-md-component=navigation > <div class=md-sidebar__scrollwrap > <div class=md-sidebar__inner > <nav class="md-nav md-nav--primary" data-md-level=0 > <label class="md-nav__title md-nav__title--site" for=__drawer > <a href=index.html title="Jungfraujoch 1.0.0-rc.155 documentation" class="md-nav__button md-logo"> <i class=md-icon >&#xe30d</i> </a> <a href=index.html title="Jungfraujoch 1.0.0-rc.155 documentation">PSI Jungfraujoch</a> </label> <div class=md-nav__source > <a href="https://gitea.psi.ch/mx/jungfraujoch" title="Go to repository" class=md-source data-md-source=github > <div class=md-source__icon > <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" width=28 height=28 > <use xlink:href="#__gitlab" width=24 height=24 ></use> </svg> </div> <div class=md-source__repository > Jungfraujoch </div> </a> </div> <ul class=md-nav__list > <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >General</span></span> <li class=md-nav__item > <a href=ACKNOWLEDGEMENT.html class=md-nav__link >Acknowledgements</a> <li class=md-nav__item > <a href=LICENSE.html class=md-nav__link >License</a> <li class=md-nav__item > <a href=DETECTORS.html class=md-nav__link >Supported detectors</a> <li class=md-nav__item > <a href="DETECTORS.html#dectris-detectors" class=md-nav__link >DECTRIS detectors</a> <li class=md-nav__item > <a href=HARDWARE.html class=md-nav__link >Hardware requirements</a> <li class=md-nav__item > <a href=SOFTWARE.html class=md-nav__link >Software requirements</a> <li class=md-nav__item > <a href=VERSIONING.html class=md-nav__link >Semantic versioning</a> <li class=md-nav__item > <a href=DEPLOYMENT.html class=md-nav__link >Deployment</a> <li class=md-nav__item > <a href=REPOSITORIES.html class=md-nav__link >Linux package repositories</a> <li class=md-nav__item > <a href=CHANGELOG.html class=md-nav__link >Changelog</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >Software</span></span> <li class=md-nav__item > <a href=JFJOCH_BROKER.html class=md-nav__link >jfjoch_broker</a> <li class=md-nav__item > <a href=JFJOCH_WRITER.html class=md-nav__link >jfjoch_writer</a> <li class=md-nav__item > <input class="md-toggle md-nav__toggle" data-md-toggle=toc type=checkbox id=__toc > <label class="md-nav__link md-nav__link--active" for=__toc > jfjoch_process </label> <a href="#" class="md-nav__link md-nav__link--active">jfjoch_process</a> <nav class="md-nav md-nav--secondary"> <ul class=md-nav__list data-md-scrollfix=""> </ul> </nav> <ul class=md-nav__list > <li class=md-nav__item > <a href="#where-it-fits-among-the-three-analysis-tools" class=md-nav__link >Where it fits among the three analysis tools</a> <li class=md-nav__item > <a href="#hardware" class=md-nav__link >Hardware</a> <li class=md-nav__item > <a href="#input-and-output" class=md-nav__link >Input and output</a> <li class=md-nav__item > <a href="#re-scaling-and-re-merging-jfjoch-scale" class=md-nav__link >Re-scaling and re-merging (<code class="docutils literal notranslate"><span class=pre >jfjoch_scale</span></code>)</a> <li class=md-nav__item > <a href="#quick-start" class=md-nav__link >Quick start</a> <li class=md-nav__item > <a href="#command-line-options" class=md-nav__link >Command-line options</a> </ul> <li class=md-nav__item > <a href=JFJOCH_VIEWER.html class=md-nav__link >jfjoch_viewer</a> <li class=md-nav__item > <a href=SOFTWARE_INTEGRATION.html class=md-nav__link >Integration with MX data processing software</a> <li class=md-nav__item > <a href=TOOLS.html class=md-nav__link >Tools</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >FPGA</span></span> <li class=md-nav__item > <a href=FPGA.html class=md-nav__link >FPGA smartNIC</a> <li class=md-nav__item > <a href=FPGA_LICENSE.html class=md-nav__link >FPGA license</a> <li class=md-nav__item > <a href=FPGA_DESIGN.html class=md-nav__link >FPGA data flow</a> <li class=md-nav__item > <a href=FPGA_NETWORK.html class=md-nav__link >FPGA network</a> <li class=md-nav__item > <a href=FPGA_PCIE_DRIVER.html class=md-nav__link >FPGA PCIe driver</a> <li class=md-nav__item > <a href=FPGA_SETTINGS.html class=md-nav__link >FPGA advanced reference</a> <li class=md-nav__item > <a href=FPGA_DATA_ANALYSIS.html class=md-nav__link >FPGA data analysis</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >Reference</span></span> <li class=md-nav__item > <a href=DETECTOR_GEOMETRY.html class=md-nav__link >Detector geometry</a> <li class=md-nav__item > <a href=CPU_DATA_ANALYSIS.html class=md-nav__link >CPU-side crystallographic data analysis (Jungfraujoch)</a> <li class=md-nav__item > <a href=OPENAPI.html class=md-nav__link >OpenAPI</a> <li class=md-nav__item > <a href=OPENAPI_SPECS.html class=md-nav__link >OpenAPI specification</a> <li class=md-nav__item > <a href=CBOR.html class=md-nav__link >CBOR messages</a> <li class=md-nav__item > <a href=HDF5.html class=md-nav__link >HDF5 / NeXus data format</a> <li class=md-nav__item > <a href=IMAGE_STREAM.html class=md-nav__link >Data streams</a> <li class=md-nav__item > <a href=PIXEL_MASK.html class=md-nav__link >Pixel mask</a> <li class=md-nav__item > <a href=WEB_FRONTEND.html class=md-nav__link >Web frontend</a> <li class=md-nav__item > <a href=TESTS.html class=md-nav__link >Tests</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >OpenAPI Python client</span></span> <li class=md-nav__item > <a href="python_client/README.html" class=md-nav__link >jfjoch-client</a> <li class=md-nav__item > <a href="python_client/README.html#license-clarification" class=md-nav__link >License Clarification</a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html" class=md-nav__link >jfjoch_client.DefaultApi</a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#cancel-post" class=md-nav__link ><strong>cancel_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-azim-int-get" class=md-nav__link ><strong>config_azim_int_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-azim-int-put" class=md-nav__link ><strong>config_azim_int_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-dark-mask-get" class=md-nav__link ><strong>config_dark_mask_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-dark-mask-put" class=md-nav__link ><strong>config_dark_mask_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-detector-get" class=md-nav__link ><strong>config_detector_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-detector-put" class=md-nav__link ><strong>config_detector_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-file-writer-get" class=md-nav__link ><strong>config_file_writer_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-file-writer-put" class=md-nav__link ><strong>config_file_writer_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-conversion-post" class=md-nav__link ><strong>config_image_format_conversion_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-get" class=md-nav__link ><strong>config_image_format_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-put" class=md-nav__link ><strong>config_image_format_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-raw-post" class=md-nav__link ><strong>config_image_format_raw_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-indexing-get" class=md-nav__link ><strong>config_indexing_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-indexing-put" class=md-nav__link ><strong>config_indexing_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-instrument-get" class=md-nav__link ><strong>config_instrument_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-instrument-put" class=md-nav__link ><strong>config_instrument_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-internal-generator-image-put" class=md-nav__link ><strong>config_internal_generator_image_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-internal-generator-image-tiff-put" class=md-nav__link ><strong>config_internal_generator_image_tiff_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-mask-get" class=md-nav__link ><strong>config_mask_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-mask-tiff-get" class=md-nav__link ><strong>config_mask_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-roi-get" class=md-nav__link ><strong>config_roi_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-roi-put" class=md-nav__link ><strong>config_roi_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-select-detector-get" class=md-nav__link ><strong>config_select_detector_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-select-detector-put" class=md-nav__link ><strong>config_select_detector_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-spot-finding-get" class=md-nav__link ><strong>config_spot_finding_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-spot-finding-put" class=md-nav__link ><strong>config_spot_finding_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-get" class=md-nav__link ><strong>config_user_mask_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-put" class=md-nav__link ><strong>config_user_mask_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-tiff-get" class=md-nav__link ><strong>config_user_mask_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-tiff-put" class=md-nav__link ><strong>config_user_mask_tiff_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-metadata-get" class=md-nav__link ><strong>config_zeromq_metadata_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-metadata-put" class=md-nav__link ><strong>config_zeromq_metadata_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-preview-get" class=md-nav__link ><strong>config_zeromq_preview_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-preview-put" class=md-nav__link ><strong>config_zeromq_preview_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#deactivate-post" class=md-nav__link ><strong>deactivate_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#detector-status-get" class=md-nav__link ><strong>detector_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#fpga-status-get" class=md-nav__link ><strong>fpga_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-clear-post" class=md-nav__link ><strong>image_buffer_clear_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-image-cbor-get" class=md-nav__link ><strong>image_buffer_image_cbor_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-image-jpeg-get" class=md-nav__link ><strong>image_buffer_image_jpeg_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-image-tiff-get" class=md-nav__link ><strong>image_buffer_image_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-start-cbor-get" class=md-nav__link ><strong>image_buffer_start_cbor_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-status-get" class=md-nav__link ><strong>image_buffer_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-pusher-status-get" class=md-nav__link ><strong>image_pusher_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#initialize-post" class=md-nav__link ><strong>initialize_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#pedestal-post" class=md-nav__link ><strong>pedestal_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#preview-pedestal-tiff-get" class=md-nav__link ><strong>preview_pedestal_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#preview-plot-bin-get" class=md-nav__link ><strong>preview_plot_bin_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#preview-plot-get" class=md-nav__link ><strong>preview_plot_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#result-scan-get" class=md-nav__link ><strong>result_scan_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#start-post" class=md-nav__link ><strong>start_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#statistics-calibration-get" class=md-nav__link ><strong>statistics_calibration_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#statistics-data-collection-get" class=md-nav__link ><strong>statistics_data_collection_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#statistics-get" class=md-nav__link ><strong>statistics_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#status-get" class=md-nav__link ><strong>status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#trigger-post" class=md-nav__link ><strong>trigger_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#version-get" class=md-nav__link ><strong>version_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#wait-till-done-post" class=md-nav__link ><strong>wait_till_done_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#wait-until-running-post" class=md-nav__link ><strong>wait_until_running_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#xfel-event-code-get" class=md-nav__link ><strong>xfel_event_code_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#xfel-pulse-id-get" class=md-nav__link ><strong>xfel_pulse_id_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/AzimIntSettings.html" class=md-nav__link >AzimIntSettings</a> <li class=md-nav__item > <a href="python_client/docs/BrokerStatus.html" class=md-nav__link >BrokerStatus</a> <li class=md-nav__item > <a href="python_client/docs/CalibrationStatisticsInner.html" class=md-nav__link >CalibrationStatisticsInner</a> <li class=md-nav__item > <a href="python_client/docs/ColorScale.html" class=md-nav__link >ColorScale</a> <li class=md-nav__item > <a href="python_client/docs/DarkMaskSettings.html" class=md-nav__link >DarkMaskSettings</a> <li class=md-nav__item > <a href="python_client/docs/DatasetSettings.html" class=md-nav__link >DatasetSettings</a> <li class=md-nav__item > <a href="python_client/docs/DatasetSettingsUnitCell.html" class=md-nav__link >DatasetSettingsUnitCell</a> <li class=md-nav__item > <a href="python_client/docs/DatasetSettingsXrayFluorescenceSpectrum.html" class=md-nav__link >DatasetSettingsXrayFluorescenceSpectrum</a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html" class=md-nav__link >jfjoch_client.DefaultApi</a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#cancel-post" class=md-nav__link ><strong>cancel_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-azim-int-get" class=md-nav__link ><strong>config_azim_int_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-azim-int-put" class=md-nav__link ><strong>config_azim_int_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-dark-mask-get" class=md-nav__link ><strong>config_dark_mask_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-dark-mask-put" class=md-nav__link ><strong>config_dark_mask_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-detector-get" class=md-nav__link ><strong>config_detector_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-detector-put" class=md-nav__link ><strong>config_detector_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-file-writer-get" class=md-nav__link ><strong>config_file_writer_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-file-writer-put" class=md-nav__link ><strong>config_file_writer_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-conversion-post" class=md-nav__link ><strong>config_image_format_conversion_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-get" class=md-nav__link ><strong>config_image_format_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-put" class=md-nav__link ><strong>config_image_format_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-image-format-raw-post" class=md-nav__link ><strong>config_image_format_raw_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-indexing-get" class=md-nav__link ><strong>config_indexing_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-indexing-put" class=md-nav__link ><strong>config_indexing_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-instrument-get" class=md-nav__link ><strong>config_instrument_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-instrument-put" class=md-nav__link ><strong>config_instrument_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-internal-generator-image-put" class=md-nav__link ><strong>config_internal_generator_image_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-internal-generator-image-tiff-put" class=md-nav__link ><strong>config_internal_generator_image_tiff_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-mask-get" class=md-nav__link ><strong>config_mask_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-mask-tiff-get" class=md-nav__link ><strong>config_mask_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-roi-get" class=md-nav__link ><strong>config_roi_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-roi-put" class=md-nav__link ><strong>config_roi_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-select-detector-get" class=md-nav__link ><strong>config_select_detector_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-select-detector-put" class=md-nav__link ><strong>config_select_detector_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-spot-finding-get" class=md-nav__link ><strong>config_spot_finding_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-spot-finding-put" class=md-nav__link ><strong>config_spot_finding_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-get" class=md-nav__link ><strong>config_user_mask_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-put" class=md-nav__link ><strong>config_user_mask_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-tiff-get" class=md-nav__link ><strong>config_user_mask_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-user-mask-tiff-put" class=md-nav__link ><strong>config_user_mask_tiff_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-metadata-get" class=md-nav__link ><strong>config_zeromq_metadata_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-metadata-put" class=md-nav__link ><strong>config_zeromq_metadata_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-preview-get" class=md-nav__link ><strong>config_zeromq_preview_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#config-zeromq-preview-put" class=md-nav__link ><strong>config_zeromq_preview_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#deactivate-post" class=md-nav__link ><strong>deactivate_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#detector-status-get" class=md-nav__link ><strong>detector_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#fpga-status-get" class=md-nav__link ><strong>fpga_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-clear-post" class=md-nav__link ><strong>image_buffer_clear_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-image-cbor-get" class=md-nav__link ><strong>image_buffer_image_cbor_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-image-jpeg-get" class=md-nav__link ><strong>image_buffer_image_jpeg_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-image-tiff-get" class=md-nav__link ><strong>image_buffer_image_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-start-cbor-get" class=md-nav__link ><strong>image_buffer_start_cbor_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-buffer-status-get" class=md-nav__link ><strong>image_buffer_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#image-pusher-status-get" class=md-nav__link ><strong>image_pusher_status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#initialize-post" class=md-nav__link ><strong>initialize_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#pedestal-post" class=md-nav__link ><strong>pedestal_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#preview-pedestal-tiff-get" class=md-nav__link ><strong>preview_pedestal_tiff_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#preview-plot-bin-get" class=md-nav__link ><strong>preview_plot_bin_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#preview-plot-get" class=md-nav__link ><strong>preview_plot_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#result-scan-get" class=md-nav__link ><strong>result_scan_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#start-post" class=md-nav__link ><strong>start_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#statistics-calibration-get" class=md-nav__link ><strong>statistics_calibration_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#statistics-data-collection-get" class=md-nav__link ><strong>statistics_data_collection_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#statistics-get" class=md-nav__link ><strong>statistics_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#status-get" class=md-nav__link ><strong>status_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#trigger-post" class=md-nav__link ><strong>trigger_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#version-get" class=md-nav__link ><strong>version_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#wait-till-done-post" class=md-nav__link ><strong>wait_till_done_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#wait-until-running-post" class=md-nav__link ><strong>wait_until_running_post</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#xfel-event-code-get" class=md-nav__link ><strong>xfel_event_code_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/DefaultApi.html#xfel-pulse-id-get" class=md-nav__link ><strong>xfel_pulse_id_get</strong></a> <li class=md-nav__item > <a href="python_client/docs/Detector.html" class=md-nav__link >Detector</a> <li class=md-nav__item > <a href="python_client/docs/DetectorList.html" class=md-nav__link >DetectorList</a> <li class=md-nav__item > <a href="python_client/docs/DetectorListDetectorsInner.html" class=md-nav__link >DetectorListDetectorsInner</a> <li class=md-nav__item > <a href="python_client/docs/DetectorListElement.html" class=md-nav__link >DetectorListElement</a> <li class=md-nav__item > <a href="python_client/docs/DetectorModule.html" class=md-nav__link >DetectorModule</a> <li class=md-nav__item > <a href="python_client/docs/DetectorModuleDirection.html" class=md-nav__link >DetectorModuleDirection</a> <li class=md-nav__item > <a href="python_client/docs/DetectorPowerState.html" class=md-nav__link >DetectorPowerState</a> <li class=md-nav__item > <a href="python_client/docs/DetectorSelection.html" class=md-nav__link >DetectorSelection</a> <li class=md-nav__item > <a href="python_client/docs/DetectorSettings.html" class=md-nav__link >DetectorSettings</a> <li class=md-nav__item > <a href="python_client/docs/DetectorState.html" class=md-nav__link >DetectorState</a> <li class=md-nav__item > <a href="python_client/docs/DetectorStatus.html" class=md-nav__link >DetectorStatus</a> <li class=md-nav__item > <a href="python_client/docs/DetectorTiming.html" class=md-nav__link >DetectorTiming</a> <li class=md-nav__item > <a href="python_client/docs/DetectorType.html" class=md-nav__link >DetectorType</a> <li class=md-nav__item > <a href="python_client/docs/ErrorMessage.html" class=md-nav__link >ErrorMessage</a> <li class=md-nav__item > <a href="python_client/docs/FileWriterFormat.html" class=md-nav__link >FileWriterFormat</a> <li class=md-nav__item > <a href="python_client/docs/FileWriterSettings.html" class=md-nav__link >FileWriterSettings</a> <li class=md-nav__item > <a href="python_client/docs/FpgaStatusInner.html" class=md-nav__link >FpgaStatusInner</a> <li class=md-nav__item > <a href="python_client/docs/GeomRefinementAlgorithm.html" class=md-nav__link >GeomRefinementAlgorithm</a> <li class=md-nav__item > <a href="python_client/docs/GridPlot.html" class=md-nav__link >GridPlot</a> <li class=md-nav__item > <a href="python_client/docs/GridPlots.html" class=md-nav__link >GridPlots</a> <li class=md-nav__item > <a href="python_client/docs/GridScan.html" class=md-nav__link >GridScan</a> <li class=md-nav__item > <a href="python_client/docs/GridScanResult.html" class=md-nav__link >GridScanResult</a> <li class=md-nav__item > <a href="python_client/docs/GridScanResultImagesInner.html" class=md-nav__link >GridScanResultImagesInner</a> <li class=md-nav__item > <a href="python_client/docs/ImageBufferStatus.html" class=md-nav__link >ImageBufferStatus</a> <li class=md-nav__item > <a href="python_client/docs/ImageFormatSettings.html" class=md-nav__link >ImageFormatSettings</a> <li class=md-nav__item > <a href="python_client/docs/ImagePusherStatus.html" class=md-nav__link >ImagePusherStatus</a> <li class=md-nav__item > <a href="python_client/docs/ImagePusherType.html" class=md-nav__link >ImagePusherType</a> <li class=md-nav__item > <a href="python_client/docs/IndexingAlgorithm.html" class=md-nav__link >IndexingAlgorithm</a> <li class=md-nav__item > <a href="python_client/docs/IndexingSettings.html" class=md-nav__link >IndexingSettings</a> <li class=md-nav__item > <a href="python_client/docs/InstrumentMetadata.html" class=md-nav__link >InstrumentMetadata</a> <li class=md-nav__item > <a href="python_client/docs/JfjochBrokerApi.html" class=md-nav__link >jfjoch_client.JfjochBrokerApi</a> <li class=md-nav__item > <a href="python_client/docs/JfjochBrokerApi.html#config-zeromq-metadata-put" class=md-nav__link ><strong>config_zeromq_metadata_put</strong></a> <li class=md-nav__item > <a href="python_client/docs/JfjochSettings.html" class=md-nav__link >JfjochSettings</a> <li class=md-nav__item > <a href="python_client/docs/JfjochSettingsSsl.html" class=md-nav__link >JfjochSettingsSsl</a> <li class=md-nav__item > <a href="python_client/docs/JfjochStatistics.html" class=md-nav__link >JfjochStatistics</a> <li class=md-nav__item > <a href="python_client/docs/MeasurementStatistics.html" class=md-nav__link >MeasurementStatistics</a> <li class=md-nav__item > <a href="python_client/docs/PcieDevicesInner.html" class=md-nav__link >PcieDevicesInner</a> <li class=md-nav__item > <a href="python_client/docs/PixelMaskStatistics.html" class=md-nav__link >PixelMaskStatistics</a> <li class=md-nav__item > <a href="python_client/docs/Plot.html" class=md-nav__link >Plot</a> <li class=md-nav__item > <a href="python_client/docs/PlotTypeEnum.html" class=md-nav__link >PlotTypeEnum</a> <li class=md-nav__item > <a href="python_client/docs/PlotUnitX.html" class=md-nav__link >PlotUnitX</a> <li class=md-nav__item > <a href="python_client/docs/Plots.html" class=md-nav__link >Plots</a> <li class=md-nav__item > <a href="python_client/docs/PreviewSettings.html" class=md-nav__link >PreviewSettings</a> <li class=md-nav__item > <a href="python_client/docs/RoiAzimList.html" class=md-nav__link >RoiAzimList</a> <li class=md-nav__item > <a href="python_client/docs/RoiAzimuthal.html" class=md-nav__link >RoiAzimuthal</a> <li class=md-nav__item > <a href="python_client/docs/RoiBox.html" class=md-nav__link >RoiBox</a> <li class=md-nav__item > <a href="python_client/docs/RoiBoxList.html" class=md-nav__link >RoiBoxList</a> <li class=md-nav__item > <a href="python_client/docs/RoiCircle.html" class=md-nav__link >RoiCircle</a> <li class=md-nav__item > <a href="python_client/docs/RoiCircleList.html" class=md-nav__link >RoiCircleList</a> <li class=md-nav__item > <a href="python_client/docs/RoiDefinitions.html" class=md-nav__link >RoiDefinitions</a> <li class=md-nav__item > <a href="python_client/docs/RotationAxis.html" class=md-nav__link >RotationAxis</a> <li class=md-nav__item > <a href="python_client/docs/ScanResult.html" class=md-nav__link >ScanResult</a> <li class=md-nav__item > <a href="python_client/docs/ScanResultImagesInner.html" class=md-nav__link >ScanResultImagesInner</a> <li class=md-nav__item > <a href="python_client/docs/SpotFindingSettings.html" class=md-nav__link >SpotFindingSettings</a> <li class=md-nav__item > <a href="python_client/docs/StandardDetectorGeometry.html" class=md-nav__link >StandardDetectorGeometry</a> <li class=md-nav__item > <a href="python_client/docs/TcpSettings.html" class=md-nav__link >TcpSettings</a> <li class=md-nav__item > <a href="python_client/docs/UnitCell.html" class=md-nav__link >UnitCell</a> <li class=md-nav__item > <a href="python_client/docs/ZeromqMetadataSettings.html" class=md-nav__link >ZeromqMetadataSettings</a> <li class=md-nav__item > <a href="python_client/docs/ZeromqPreviewSettings.html" class=md-nav__link >ZeromqPreviewSettings</a> <li class=md-nav__item > <a href="python_client/docs/ZeromqSettings.html" class=md-nav__link >ZeromqSettings</a> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=toc > <div class=md-sidebar__scrollwrap > <div class=md-sidebar__inner > <nav class="md-nav md-nav--secondary"> <ul class=md-nav__list data-md-scrollfix=""> </ul> </nav> </div> </div> </div> <div class=md-content > <article class="md-content__inner md-typeset" role=main > <section class="tex2jax_ignore mathjax_ignore" id=jfjoch-process > <h1 id=jfjoch-process--page-root >jfjoch_process<a class=headerlink href="#jfjoch-process--page-root" title="Link to this heading"></a></h1> <p><code class="docutils literal notranslate"><span class=pre >jfjoch_process</span></code> is the <strong>offline</strong> crystallographic data-analysis tool of Jungfraujoch. It takes an existing HDF5 dataset, runs the full analysis pipeline — spot finding, indexing, geometry refinement, Bragg integration and (optionally) scaling and merging — and writes the results to a <code class="docutils literal notranslate"><span class=pre >_process.h5</span></code> file, plus reflection files (<code class="docutils literal notranslate"><span class=pre >.mtz</span></code>/<code class="docutils literal notranslate"><span class=pre >.cif</span></code>/<code class="docutils literal notranslate"><span class=pre >.hkl</span></code>) when merging is requested.</p> <p>It runs the <em>same</em> analysis code as the online and interactive tools, just driven from the command line over a file rather than a live detector stream.</p> <blockquote> <div><p><strong>Note.</strong> <code class="docutils literal notranslate"><span class=pre >jfjoch_process</span></code> is under very active development. This page describes the tool and its options at a high level; the authoritative, always-current list of options is the programs own usage message — run <code class="docutils literal notranslate"><span class=pre >jfjoch_process</span></code> with no arguments.</p> </div></blockquote> <section id=where-it-fits-among-the-three-analysis-tools > <h2 id=where-it-fits-among-the-three-analysis-tools >Where it fits among the three analysis tools<a class=headerlink href="#where-it-fits-among-the-three-analysis-tools" title="Link to this heading"></a></h2> <table> <thead> <tr class=row-odd ><th class=head ><p>Tool</p> <th class=head ><p>Mode</p> <th class=head ><p>Driven by</p> <th class=head ><p>Output</p> <tr class=row-even ><td><p><a class="reference internal" href=JFJOCH_BROKER.html ><span class="std std-doc"><code class="docutils literal notranslate"><span class=pre >jfjoch_broker</span></code></span></a></p> <td><p>Online, real-time streaming analysis on FPGA + GPU</p> <td><p>HTTP/REST + ZeroMQ</p> <td><p>Live results and statistics, images streamed to <a class="reference internal" href=JFJOCH_WRITER.html ><span class="std std-doc"><code class="docutils literal notranslate"><span class=pre >jfjoch_writer</span></code></span></a></p> <tr class=row-odd ><td><p><a class="reference internal" href=JFJOCH_VIEWER.html ><span class="std std-doc"><code class="docutils literal notranslate"><span class=pre >jfjoch_viewer</span></code></span></a></p> <td><p>Interactive, on-screen exploration</p> <td><p>Qt desktop application</p> <td><p>Displayed on screen (results not saved to disk)</p> <tr class=row-even ><td><p><strong><code class="docutils literal notranslate"><span class=pre >jfjoch_process</span></code></strong></p> <td><p><strong>Offline batch processing of a stored dataset</strong></p> <td><p><strong>Command-line interface</strong></p> <td><p><strong><code class="docutils literal notranslate"><span class=pre >_process.h5</span></code>, and <code class="docutils literal notranslate"><span class=pre >.mtz</span></code>/<code class="docutils literal notranslate"><span class=pre >.cif</span></code>/<code class="docutils literal notranslate"><span class=pre >.hkl</span></code> when merging</strong></p> </table> <p>Use <code class="docutils literal notranslate"><span class=pre >jfjoch_process</span></code> to re-analyse data after acquisition, to experiment with processing parameters, or to produce merged intensities for downstream structure solution.</p> </section> <section id=hardware > <h2 id=hardware >Hardware<a class=headerlink href="#hardware" title="Link to this heading"></a></h2> <p>As with the rest of Jungfraujoch, <strong>serious performance requires an NVIDIA GPU</strong>. The CUDA build provides the GPU fast-feedback indexer (<code class="docutils literal notranslate"><span class=pre >ffbidx</span></code>) and the GPU FFT indexer (<code class="docutils literal notranslate"><span class=pre >fft</span></code>); without CUDA only the CPU <code class="docutils literal notranslate"><span class=pre >fftw</span></code> indexer is available. Spot finding, integration and scaling run on the CPU and scale with the thread count (<code class="docutils literal notranslate"><span class=pre >-N</span></code>).</p> </section> <section id=input-and-output > <h2 id=input-and-output >Input and output<a class=headerlink href="#input-and-output" title="Link to this heading"></a></h2> <p><strong>Input</strong> is a single Jungfraujoch HDF5 master file (NXmx-based). If the dataset already contains stored spot lists, two-pass rotation indexing can reuse them instead of re-running spot finding on the first pass.</p> <p><strong>Output</strong> (controlled by <code class="docutils literal notranslate"><span class=pre >-o,</span> <span class=pre >--output-prefix</span></code>, default <code class="docutils literal notranslate"><span class=pre >output</span></code>):</p> <ul class=simple > <li><p><code class="docutils literal notranslate"><span class=pre >&lt;prefix&gt;_process.h5</span></code> — NXmx-compliant HDF5 with derived metadata (spots, indexing, integration, azimuthal integration, per-image statistics). See <a class="reference internal" href=HDF5.html ><span class="std std-doc">HDF5 / NeXus data format</span></a> for the layout.</p> <li><p>When merging (<code class="docutils literal notranslate"><span class=pre >-M</span></code>, or whenever a <code class="docutils literal notranslate"><span class=pre >--reference-mtz</span></code> is supplied), the merged reflections are written as <code class="docutils literal notranslate"><span class=pre >&lt;prefix&gt;.mtz</span></code> (default), or <code class="docutils literal notranslate"><span class=pre >&lt;prefix&gt;.cif</span></code> / <code class="docutils literal notranslate"><span class=pre >&lt;prefix&gt;.hkl</span></code> depending on <code class="docutils literal notranslate"><span class=pre >--scaling-output</span></code>. No-reference scaling additionally emits per-iteration <code class="docutils literal notranslate"><span class=pre >&lt;prefix&gt;_iterN_scale.dat</span></code>.</p> </ul> <p>Merged statistics (⟨I/σ⟩, CC1/2, completeness, …), the error model and timing are printed to the console.</p> </section> <section id=re-scaling-and-re-merging-jfjoch-scale > <h2 id=re-scaling-and-re-merging-jfjoch-scale >Re-scaling and re-merging (<code class="docutils literal notranslate"><span class=pre >jfjoch_scale</span></code>)<a class=headerlink href="#re-scaling-and-re-merging-jfjoch-scale" title="Link to this heading"></a></h2> <p>The companion tool <code class="docutils literal notranslate"><span class=pre >jfjoch_scale</span></code> re-scales and merges the <em>already-integrated</em> reflections stored in one or more <code class="docutils literal notranslate"><span class=pre >_process.h5</span></code> files, without re-running spot finding or integration. Use it to re-merge quickly with a different space group, partiality model, resolution limit or reference MTZ, or to combine several processed runs into one set of merged intensities.</p> </section> <section id=quick-start > <h2 id=quick-start >Quick start<a class=headerlink href="#quick-start" title="Link to this heading"></a></h2> <section id=rotation-data > <h3 id=rotation-data >Rotation data<a class=headerlink href="#rotation-data" title="Link to this heading"></a></h3> <p>Two-pass rotation indexing, rotation partiality, scale and merge in space group 96:</p> <div class="highlight-default notranslate"><div class=highlight ><pre><span></span><span class=n >jfjoch_process</span> <span class=n >rotation_master</span><span class=o >.</span><span class=n >h5</span> \
<span class=o >-</span><span class=n >o</span> <span class=n >lyso_rot</span> <span class=o >-</span><span class=n >N</span> <span class=mi >16</span> \
<span class=o >-</span><span class=n >R</span> <span class=o >-</span><span class=n >S</span> <span class=mi >96</span> \
<span class=o >-</span><span class=n >M</span> <span class=o >-</span><span class=n >P</span> <span class=n >rot</span>
</pre></div> </div> <p><code class="docutils literal notranslate"><span class=pre >-R</span></code> runs the two-pass rotation indexer (index the sweep once, then process every frame against that lattice); <code class="docutils literal notranslate"><span class=pre >-P</span> <span class=pre >rot</span></code> selects the rotation partiality model; <code class="docutils literal notranslate"><span class=pre >-M</span></code> scales and merges. For strong rotation data the de-novo FFT indexer often indexes more frames — add <code class="docutils literal notranslate"><span class=pre >-X</span> <span class=pre >fft</span></code> (and drop <code class="docutils literal notranslate"><span class=pre >-C</span></code> to let it find the cell from scratch).</p> </section> <section id=still-serial-data > <h3 id=still-serial-data >Still / serial data<a class=headerlink href="#still-serial-data" title="Link to this heading"></a></h3> <p>Known-cell indexing of independent stills with the GPU fast-feedback indexer, then merge against a reference structure:</p> <div class="highlight-default notranslate"><div class=highlight ><pre><span></span><span class=n >jfjoch_process</span> <span class=n >serial_master</span><span class=o >.</span><span class=n >h5</span> \
<span class=o >-</span><span class=n >o</span> <span class=n >lyso_serial</span> <span class=o >-</span><span class=n >N</span> <span class=mi >16</span> \
<span class=o >-</span><span class=n >X</span> <span class=n >ffbidx</span> <span class=o >-</span><span class=n >C</span> <span class=mi >79</span><span class=p >,</span><span class=mi >79</span><span class=p >,</span><span class=mi >38</span><span class=p >,</span><span class=mi >90</span><span class=p >,</span><span class=mi >90</span><span class=p >,</span><span class=mi >90</span> <span class=o >-</span><span class=n >S</span> <span class=mi >96</span> \
<span class=o >--</span><span class=n >spot</span><span class=o >-</span><span class=n >sigma</span> <span class=mi >4</span> \
<span class=o >-</span><span class=n >M</span> <span class=o >-</span><span class=n >z</span> <span class=n >reference</span><span class=o >.</span><span class=n >mtz</span> <span class=o >-</span><span class=n >r</span> <span class=n >pixelrefine</span> \
<span class=o >--</span><span class=n >scaling</span><span class=o >-</span><span class=n >high</span><span class=o >-</span><span class=n >resolution</span> <span class=mf >1.8</span>
</pre></div> </div> <p><code class="docutils literal notranslate"><span class=pre >ffbidx</span></code> requires a known cell (<code class="docutils literal notranslate"><span class=pre >-C</span></code>) and is the indexer of choice for sparse serial stills. <code class="docutils literal notranslate"><span class=pre >-r</span> <span class=pre >pixelrefine</span></code> selects the experimental reference-driven still integrator (needs <code class="docutils literal notranslate"><span class=pre >--reference-mtz</span></code>). For weak serial data, tightening spot finding with <code class="docutils literal notranslate"><span class=pre >--spot-sigma</span> <span class=pre >4</span></code> typically raises the indexing rate substantially.</p> </section> </section> <section id=command-line-options > <h2 id=command-line-options >Command-line options<a class=headerlink href="#command-line-options" title="Link to this heading"></a></h2> <p>General:</p> <table> <thead> <tr class=row-odd ><th class=head ><p>Option</p> <th class=head ><p>Description</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >-o,</span> <span class=pre >--output-prefix</span> <span class=pre >&lt;txt&gt;</span></code></p> <td><p>Output file prefix (default: <code class="docutils literal notranslate"><span class=pre >output</span></code>)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >-N,</span> <span class=pre >--threads</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Number of worker threads (default: 1)</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >-s,</span> <span class=pre >--start-image</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>First image to process (default: 0)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >-e,</span> <span class=pre >--end-image</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Last image to process (default: all)</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >-t,</span> <span class=pre >--stride</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Process every <em>n</em>-th image (default: 1)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >-v,</span> <span class=pre >--verbose</span></code></p> <td><p>Verbose output</p> </table> <p>Spot finding:</p> <table> <thead> <tr class=row-odd ><th class=head ><p>Option</p> <th class=head ><p>Description</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >--spot-sigma</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Noise sigma level for spot finding (default: 3.0)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >--spot-threshold</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Photon-count threshold for spot finding (default: 10)</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >--spot-high-resolution</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>High-resolution limit for spot finding, Å (default: 1.5)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >--max-spots</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Maximum spot count (default: 250)</p> </table> <p>Indexing:</p> <table> <thead> <tr class=row-odd ><th class=head ><p>Option</p> <th class=head ><p>Description</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >-X,</span> <span class=pre >--indexing-algorithm</span> <span class=pre >&lt;txt&gt;</span></code></p> <td><p><code class="docutils literal notranslate"><span class=pre >FFBIDX</span></code> | <code class="docutils literal notranslate"><span class=pre >FFT</span></code> | <code class="docutils literal notranslate"><span class=pre >FFTW</span></code> | <code class="docutils literal notranslate"><span class=pre >Auto</span></code> | <code class="docutils literal notranslate"><span class=pre >None</span></code></p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >-C,</span> <span class=pre >--unit-cell</span> <span class=pre >&lt;cell&gt;</span></code></p> <td><p>Reference unit cell <code class="docutils literal notranslate"><span class=pre >"a,b,c,alpha,beta,gamma"</span></code> (required by <code class="docutils literal notranslate"><span class=pre >ffbidx</span></code>)</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >-S,</span> <span class=pre >--space-group</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Space group number (used for indexing and scaling)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >-r,</span> <span class=pre >--refine</span> <span class=pre >&lt;txt&gt;</span></code></p> <td><p>Geometry refinement: <code class="docutils literal notranslate"><span class=pre >none</span></code> | <code class="docutils literal notranslate"><span class=pre >orientation</span></code> | <code class="docutils literal notranslate"><span class=pre >beam_and_lattice</span></code> (default) | <code class="docutils literal notranslate"><span class=pre >pixelrefine</span></code></p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >-R,</span> <span class=pre >--two-pass-rotation[=num]</span></code></p> <td><p>Two-pass offline rotation indexing (optional image count, default 30)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >--single-pass-rotation[=num]</span></code></p> <td><p>Online-like single-pass rotation indexing (optional min angular range, deg)</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >--redo-rotation-spots</span></code></p> <td><p>Redo spot finding for the two-pass rotation first pass</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >--force-rotation-lattice</span> <span class=pre >&lt;vec&gt;</span></code></p> <td><p>Force rotation lattice (9 floats, Å), skipping the first pass</p> </table> <p>Indexer choice in brief: <code class="docutils literal notranslate"><span class=pre >ffbidx</span></code> (GPU) refines toward a <strong>known cell</strong> and is best for sparse serial stills; <code class="docutils literal notranslate"><span class=pre >fft</span></code> (GPU) / <code class="docutils literal notranslate"><span class=pre >fftw</span></code> (CPU) index <strong>de novo</strong> and suit strong rotation data. See the <a class="reference internal" href=CPU_DATA_ANALYSIS.html ><span class="std std-doc">CPU/GPU data-analysis reference</span></a> for the algorithms.</p> <p>Scaling and merging:</p> <table> <thead> <tr class=row-odd ><th class=head ><p>Option</p> <th class=head ><p>Description</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >-M,</span> <span class=pre >--scale-merge</span></code></p> <td><p>Scale and merge</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >-P,</span> <span class=pre >--partiality</span> <span class=pre >&lt;txt&gt;</span></code></p> <td><p>Partiality model: <code class="docutils literal notranslate"><span class=pre >fixed</span></code> (default) | <code class="docutils literal notranslate"><span class=pre >rot</span></code> | <code class="docutils literal notranslate"><span class=pre >unity</span></code></p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >-A,</span> <span class=pre >--anomalous</span></code></p> <td><p>Anomalous mode (keep Friedel pairs separate)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >-B,</span> <span class=pre >--refine-bfactor</span></code></p> <td><p>Refine a per-image B-factor</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >-w,</span> <span class=pre >--wedge[=num]</span></code></p> <td><p>Refine the per-image rotation wedge (optional starting value)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >--scaling-high-resolution</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>High-resolution limit for scaling, Å (default: no limit)</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >--min-partiality</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Minimum partiality to accept a reflection (default: 0.02)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >--reject-outliers</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Per-observation outlier rejection, N σ from the per-reflection median (default: off)</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >--reject-delta-cchalf</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Drop images with ΔCC1/2 below mean N·stddev (default: off)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >--min-image-cc</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Per-image CC limit, percent (default: no limit)</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >--scaling-iterations</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Scaling iterations with no reference data (default: 3)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >--scaling-output</span> <span class=pre >&lt;txt&gt;</span></code></p> <td><p>Reflection output format: <code class="docutils literal notranslate"><span class=pre >mtz</span></code> (default) | <code class="docutils literal notranslate"><span class=pre >cif</span></code> | <code class="docutils literal notranslate"><span class=pre >txt</span></code></p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >-z,</span> <span class=pre >--reference-mtz</span> <span class=pre >&lt;file&gt;</span></code></p> <td><p>Reference MTZ (enables reference-driven scaling)</p> </table> <p>Pixel refinement (experimental; select with <code class="docutils literal notranslate"><span class=pre >-r</span> <span class=pre >pixelrefine</span></code>, requires <code class="docutils literal notranslate"><span class=pre >--reference-mtz</span></code>):</p> <table> <thead> <tr class=row-odd ><th class=head ><p>Option</p> <th class=head ><p>Description</p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >--bandwidth</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Relative X-ray bandwidth FWHM (e.g. <code class="docutils literal notranslate"><span class=pre >0.01</span></code> for a 1% DMM); default from file or 0 (monochromatic)</p> <tr class=row-odd ><td><p><code class="docutils literal notranslate"><span class=pre >--integration-radius</span> <span class=pre >&lt;r&gt;</span></code></p> <td><p>Signal-box radius <code class="docutils literal notranslate"><span class=pre >r1</span></code>, or <code class="docutils literal notranslate"><span class=pre >r1,r2,r3</span></code> (px). One value ⇒ <code class="docutils literal notranslate"><span class=pre >r2=r1+2</span></code>, <code class="docutils literal notranslate"><span class=pre >r3=r1+4</span></code></p> <tr class=row-even ><td><p><code class="docutils literal notranslate"><span class=pre >--profile-multiplier</span> <span class=pre >&lt;num&gt;</span></code></p> <td><p>Scale the measured tangential profile width (default: 6; XDS-style generous aperture)</p> </table> </section> </section> </article> </div> </div> </main> </div> <footer class=md-footer > <div class=md-footer-nav > <nav class="md-footer-nav__inner md-grid"> <a href=JFJOCH_WRITER.html title=jfjoch_writer class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel=prev > <div class="md-flex__cell md-flex__cell--shrink"> <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i> </div> <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> <span class=md-flex__ellipsis > <span class=md-footer-nav__direction > "Previous" </span> jfjoch_writer </span> </div> </a> <a href=JFJOCH_VIEWER.html title=jfjoch_viewer class="md-flex md-footer-nav__link md-footer-nav__link--next" rel=next > <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"><span class=md-flex__ellipsis > <span class=md-footer-nav__direction > "Next" </span> jfjoch_viewer </span> </div> <div class="md-flex__cell md-flex__cell--shrink"><i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i> </div> </a> </nav> </div> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-footer-copyright > <div class=md-footer-copyright__highlight > &#169; Copyright 2024, Paul Scherrer Institute. </div> Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 8.1.3. and <a href="https://github.com/bashtage/sphinx-material/">Material for Sphinx</a> </div> </div> </div> </footer> <script src="_static/javascripts/application.js"></script> <script>app.initialize({version: "1.0.4", url: {base: ".."}})</script>