jfjoch_writer: Save integrated reflection count

This commit is contained in:
leonarski_f committed 2026-04-28 20:01:19 +02:00
1 parent 97a5899b73
commit 83fff25724
18 files changed
+35 -6

No files matched your search

+2
View File
@@ -882,6 +882,8 @@ PlotType ConvertPlotType(const std::optional<std::string>& input) {
if (input == "processing_time") return PlotType::ImageProcessingTime;
if (input == "beam_center_x") return PlotType::RefinementBeamX;
if (input == "beam_center_y") return PlotType::RefinementBeamY;
if (input == "integrated_reflections") return PlotType::IntegratedReflections;
throw JFJochException(JFJochExceptionCategory::InputParameterInvalid,
"Plot type not recognized");
}
+1
View File
@@ -115,6 +115,7 @@ components:
- processing_time
- beam_center_x
- beam_center_y
- integrated_reflections
roi:
in: query
name: roi
+3 -3
View File
@@ -867,7 +867,7 @@ User mask is not automatically applied - i.e. pixels with user mask will have a
</div></button></div><div><button class="sc-kzqdkY gnmLmb" disabled=""><strong class="sc-dSIIpw bpEYcE">404<!-- --> </strong><div class="sc-eeDRCY sc-eBMEME sc-dCFHLb gTGgei kekOtA kCaLQd"><p>No calibration recorded so far</p>
</div></button></div></div></div><div class="sc-iGgWBj sc-gsFSXq ibAZSi eDeKjd"><div class="sc-ejfMa-d bNUPQg"><button class="sc-EgOXT cFEcOl"><span type="get" class="sc-eZYNyq qGfV http-verb get">get</span><span class="sc-iEXKAA gUNSDu">/preview/pedestal.tiff</span><svg class="sc-cwHptR iVFMLx" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-dlWCHZ kWacYr"><div class="sc-hHOBiw cndTNO"><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Test Jungfraujoch system</p>
</div><div tabindex="0" role="button"><div class="sc-kWtpeL gEncxT"><span>http://localhost:5232</span>/preview/pedestal.tiff</div></div></div></div></div></div></div></div><div id="/paths/~1preview~1plot/get" data-section-id="/paths/~1preview~1plot/get" class="sc-dcJsrY cqVkUp"><div class="sc-kAyceB hBQWIZ"><div class="sc-fqkvVR oJKYx"><h2 class="sc-jXbUNg fWnwAh"><a class="sc-jlZhew kbdRLs" href="#/paths/~1preview~1plot/get" aria-label="/paths/~1preview~1plot/get"></a>Generate 1D plot from Jungfraujoch<!-- --> </h2><div><h5 class="sc-dAlyuH jbQuod">query<!-- --> Parameters</h5><table class="sc-dAbbOL ccPhmY"><tbody><tr class=""><td class="sc-dLMFU sc-eldPxv hZbWKe jXkfaY" kind="field" title="binning"><span class="sc-gFqAkR eRqgPI"></span><span class="property-name">binning</span></td><td class="sc-fPXMVe bAXEAa"><div><div><span class="sc-Nxspf sc-cfxfcM cXxAXt jrGEaR"></span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr">integer</span></div><div><span class="sc-Nxspf cXxAXt"> <!-- -->Default:<!-- --> </span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">1</span></div> <div><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Binning of frames for the plot (0 = default binning)</p>
</div></div></div></td></tr><tr class=""><td class="sc-dLMFU sc-eldPxv hZbWKe jXkfaY" kind="field" title="type"><span class="sc-gFqAkR eRqgPI"></span><span class="property-name">type</span><div class="sc-Nxspf sc-hRJfrW cXxAXt kYVhSL">required</div></td><td class="sc-fPXMVe bAXEAa"><div><div><span class="sc-Nxspf sc-cfxfcM cXxAXt jrGEaR"></span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr">string</span></div><div><span class="sc-Nxspf cXxAXt"> <!-- -->Enum<!-- -->:</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;bkg_estimate&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;azint&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;azint_1d&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count_low_res&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count_indexed&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count_ice&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;indexing_rate&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;indexing_unit_cell_length&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;indexing_unit_cell_angle&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;profile_radius&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;mosaicity&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;b_factor&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;error_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;saturated_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;image_collection_efficiency&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;receiver_delay&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;receiver_free_send_buf&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;strong_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_sum&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_mean&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_max_count&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_weighted_x&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_weighted_y&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;packets_received&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;max_pixel_value&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;resolution_estimate&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;pixel_sum&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;processing_time&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;beam_center_x&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;beam_center_y&quot;</span> </div> <div><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Type of requested plot</p>
</div></div></div></td></tr><tr class=""><td class="sc-dLMFU sc-eldPxv hZbWKe jXkfaY" kind="field" title="type"><span class="sc-gFqAkR eRqgPI"></span><span class="property-name">type</span><div class="sc-Nxspf sc-hRJfrW cXxAXt kYVhSL">required</div></td><td class="sc-fPXMVe bAXEAa"><div><div><span class="sc-Nxspf sc-cfxfcM cXxAXt jrGEaR"></span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr">string</span></div><div><span class="sc-Nxspf cXxAXt"> <!-- -->Enum<!-- -->:</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;bkg_estimate&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;azint&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;azint_1d&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count_low_res&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count_indexed&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count_ice&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;indexing_rate&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;indexing_unit_cell_length&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;indexing_unit_cell_angle&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;profile_radius&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;mosaicity&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;b_factor&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;error_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;saturated_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;image_collection_efficiency&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;receiver_delay&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;receiver_free_send_buf&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;strong_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_sum&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_mean&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_max_count&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_weighted_x&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_weighted_y&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;packets_received&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;max_pixel_value&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;resolution_estimate&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;pixel_sum&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;processing_time&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;beam_center_x&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;beam_center_y&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;integrated_reflections&quot;</span> </div> <div><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Type of requested plot</p>
</div></div></div></td></tr><tr class=""><td class="sc-dLMFU sc-eldPxv hZbWKe jXkfaY" kind="field" title="fill"><span class="sc-gFqAkR eRqgPI"></span><span class="property-name">fill</span></td><td class="sc-fPXMVe bAXEAa"><div><div><span class="sc-Nxspf sc-cfxfcM cXxAXt jrGEaR"></span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr">number</span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr"> <!-- -->&lt;<!-- -->float<!-- -->&gt;<!-- --> </span></div> <div><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Fill value for elements that were missed during data collection</p>
</div></div></div></td></tr><tr class=""><td class="sc-dLMFU sc-eldPxv hZbWKe jXkfaY" kind="field" title="experimental_coord"><span class="sc-gFqAkR eRqgPI"></span><span class="property-name">experimental_coord</span></td><td class="sc-fPXMVe bAXEAa"><div><div><span class="sc-Nxspf sc-cfxfcM cXxAXt jrGEaR"></span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr">boolean</span></div><div><span class="sc-Nxspf cXxAXt"> <!-- -->Default:<!-- --> </span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">false</span></div> <div><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>If measurement has goniometer axis defined, plot X-axis will represent rotation angle
If measurement has grid scan defined, plot X-axis and Y-axis will represent grid position, Z will be used as the final value
@@ -879,7 +879,7 @@ For still measurement the number is ignored</p>
</div><div tabindex="0" role="button"><div class="sc-kWtpeL gEncxT"><span>http://localhost:5232</span>/preview/plot</div></div></div></div></div><div><h3 class="sc-kpDqfm eBBgSB"> <!-- -->Response samples<!-- --> </h3><div class="sc-bXCLTC dHowgL" data-rttabs="true"><ul class="react-tabs__tab-list" role="tablist"><li class="tab-success react-tabs__tab--selected" role="tab" id="tab_R_9pra_0" aria-selected="true" aria-disabled="false" aria-controls="panel_R_9pra_0" tabindex="0" data-rttab="true">200</li></ul><div class="react-tabs__tab-panel react-tabs__tab-panel--selected" role="tabpanel" id="panel_R_9pra_0" aria-labelledby="tab_R_9pra_0"><div><div class="sc-bbSZdi gCVTxk"><span class="sc-fjvvzt jWReSk">Content type</span><div class="sc-JrDLc iTKzPJ">application/json</div></div><div class="sc-uVWWZ gQROPU"><div class="sc-esYiGF dWQNJI"><div class="sc-koXPp efufqz"><button><div class="sc-fhzFiK kwZDms">Copy</div></button><button> Expand all </button><button> Collapse all </button></div><div tabindex="0" class="sc-eeDRCY gTGgei sc-fXSgeo bnrBiz"><div class="redoc-json"><code><button class="collapser" aria-label="collapse"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable "><span class="property token string">"title"</span>: <span class="token string">&quot;string&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"unit_x"</span>: <span class="token string">&quot;image_number&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"size_x"</span>: <span class="token number">0.1</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"size_y"</span>: <span class="token number">0.1</span><span class="token punctuation">,</span></div></li><li><div class="hoverable "><span class="property token string">"plot"</span>: <button class="collapser" aria-label="collapse"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><button class="collapser" aria-label="expand"></button><span class="token punctuation">{</span><span class="ellipsis"></span><ul class="obj collapsible"><li><div class="hoverable collapsed"><span class="property token string">"title"</span>: <span class="token string">&quot;&quot;</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"x"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token number">0.1</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"y"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token number">0.1</span></div></li></ul><span class="token punctuation">]</span><span class="token punctuation">,</span></div></li><li><div class="hoverable collapsed"><span class="property token string">"z"</span>: <button class="collapser" aria-label="expand"></button><span class="token punctuation">[</span><span class="ellipsis"></span><ul class="array collapsible"><li><div class="hoverable collapsed"><span class="token number">0.1</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></div></li></ul><span class="token punctuation">]</span></div></li></ul><span class="token punctuation">}</span></code></div></div></div></div></div></div></div></div></div></div></div><div id="/paths/~1preview~1plot.bin/get" data-section-id="/paths/~1preview~1plot.bin/get" class="sc-dcJsrY cqVkUp"><div class="sc-kAyceB hBQWIZ"><div class="sc-fqkvVR oJKYx"><h2 class="sc-jXbUNg fWnwAh"><a class="sc-jlZhew kbdRLs" href="#/paths/~1preview~1plot.bin/get" aria-label="/paths/~1preview~1plot.bin/get"></a>Generate 1D plot from Jungfraujoch and send in raw binary format.
Data are provided as (32-bit) float binary array.
This format doesn&#x27;t transmit information about X-axis, only values, so it is of limited use for azimuthal integration.
<!-- --> </h2><div><h5 class="sc-dAlyuH jbQuod">query<!-- --> Parameters</h5><table class="sc-dAbbOL ccPhmY"><tbody><tr class=""><td class="sc-dLMFU sc-eldPxv hZbWKe jXkfaY" kind="field" title="type"><span class="sc-gFqAkR eRqgPI"></span><span class="property-name">type</span><div class="sc-Nxspf sc-hRJfrW cXxAXt kYVhSL">required</div></td><td class="sc-fPXMVe bAXEAa"><div><div><span class="sc-Nxspf sc-cfxfcM cXxAXt jrGEaR"></span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr">string</span></div><div><span class="sc-Nxspf cXxAXt"> <!-- -->Enum<!-- -->:</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;bkg_estimate&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;azint&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;azint_1d&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count_low_res&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count_indexed&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count_ice&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;indexing_rate&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;indexing_unit_cell_length&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;indexing_unit_cell_angle&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;profile_radius&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;mosaicity&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;b_factor&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;error_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;saturated_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;image_collection_efficiency&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;receiver_delay&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;receiver_free_send_buf&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;strong_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_sum&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_mean&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_max_count&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_weighted_x&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_weighted_y&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;packets_received&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;max_pixel_value&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;resolution_estimate&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;pixel_sum&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;processing_time&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;beam_center_x&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;beam_center_y&quot;</span> </div> <div><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Type of requested plot</p>
<!-- --> </h2><div><h5 class="sc-dAlyuH jbQuod">query<!-- --> Parameters</h5><table class="sc-dAbbOL ccPhmY"><tbody><tr class=""><td class="sc-dLMFU sc-eldPxv hZbWKe jXkfaY" kind="field" title="type"><span class="sc-gFqAkR eRqgPI"></span><span class="property-name">type</span><div class="sc-Nxspf sc-hRJfrW cXxAXt kYVhSL">required</div></td><td class="sc-fPXMVe bAXEAa"><div><div><span class="sc-Nxspf sc-cfxfcM cXxAXt jrGEaR"></span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr">string</span></div><div><span class="sc-Nxspf cXxAXt"> <!-- -->Enum<!-- -->:</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;bkg_estimate&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;azint&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;azint_1d&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count_low_res&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count_indexed&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;spot_count_ice&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;indexing_rate&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;indexing_unit_cell_length&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;indexing_unit_cell_angle&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;profile_radius&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;mosaicity&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;b_factor&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;error_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;saturated_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;image_collection_efficiency&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;receiver_delay&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;receiver_free_send_buf&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;strong_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_sum&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_mean&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_max_count&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_pixels&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_weighted_x&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;roi_weighted_y&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;packets_received&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;max_pixel_value&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;resolution_estimate&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;pixel_sum&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;processing_time&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;beam_center_x&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;beam_center_y&quot;</span> <span class="sc-Nxspf sc-ddjGPC cXxAXt jZOCAW">&quot;integrated_reflections&quot;</span> </div> <div><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Type of requested plot</p>
</div></div></div></td></tr><tr class="last "><td class="sc-dLMFU sc-eldPxv hZbWKe jXkfaY" kind="field" title="roi"><span class="sc-gFqAkR eRqgPI"></span><span class="property-name">roi</span></td><td class="sc-fPXMVe bAXEAa"><div><div><span class="sc-Nxspf sc-cfxfcM cXxAXt jrGEaR"></span><span class="sc-Nxspf sc-gFAWRd cXxAXt dYzdDr">string</span><span> <span class="sc-Nxspf sc-fxwrCY cXxAXt eMVOei"> <!-- -->non-empty<!-- --> </span></span></div> <div><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Name of ROI for which plot is requested</p>
</div></div></div></td></tr></tbody></table></div><div><h3 class="sc-fMMURN egoxtT">Responses</h3><div><button class="sc-kzqdkY jgSwKD"><svg class="sc-cwHptR hWEnWx" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-dSIIpw bpEYcE">200<!-- --> </strong><div class="sc-eeDRCY sc-eBMEME sc-dCFHLb gTGgei kekOtA kCaLQd"><p>Everything OK.</p>
</div></button></div><div><button class="sc-kzqdkY bXzzUN"><svg class="sc-cwHptR cSkZlF" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg><strong class="sc-dSIIpw bpEYcE">400<!-- --> </strong><div class="sc-eeDRCY sc-eBMEME sc-dCFHLb gTGgei kekOtA kCaLQd"><p>Input parsing or validation error</p>
@@ -932,7 +932,7 @@ then image might be replaced in the buffer between calling /images and /image.cb
</div></button></div></div></div><div class="sc-iGgWBj sc-gsFSXq ibAZSi eDeKjd"><div class="sc-ejfMa-d bNUPQg"><button class="sc-EgOXT cFEcOl"><span type="get" class="sc-eZYNyq qGfV http-verb get">get</span><span class="sc-iEXKAA gUNSDu">/version</span><svg class="sc-cwHptR iVFMLx" style="margin-right:-25px" version="1.1" viewBox="0 0 24 24" x="0" xmlns="http://www.w3.org/2000/svg" y="0" aria-hidden="true"><polygon points="17.3 8.3 12 13.6 6.7 8.3 5.3 9.7 12 16.4 18.7 9.7 "></polygon></svg></button><div aria-hidden="true" class="sc-dlWCHZ kWacYr"><div class="sc-hHOBiw cndTNO"><div class="sc-eeDRCY sc-eBMEME gTGgei fbXBig"><p>Test Jungfraujoch system</p>
</div><div tabindex="0" role="button"><div class="sc-kWtpeL gEncxT"><span>http://localhost:5232</span>/version</div></div></div></div></div></div></div></div></div><div class="sc-dExYaf gZbfaQ"></div></div></div>
<script>
const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.3","info":{"title":"Jungfraujoch","description":"API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland).\nJungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU.\nJungfraujoch uses FPGA boards to acquire data at high data rates.\n\n# License Clarification\n\nWhile this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply**\nwhen this file is used solely to generate OpenAPI clients or when implementing applications that\ninteract with the API. Generated client code and applications using this API definition are not\nsubject to the GPL license requirements and may be distributed under terms of your choosing.\n\nThis exception is similar in spirit to the Linux Kernel's approach to userspace API headers and\nthe GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that\nuser programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not\nderivative works of the kernel and are not subject to the terms of the GPL.\n\nThis exception is intended to allow wider use of this API specification without imposing GPL\nrequirements on applications that merely interact with the API, regardless of whether they\ncommunicate through network calls or other mechanisms.\n","version":"1.0.0-rc.139","contact":{"name":"Filip Leonarski (Paul Scherrer Institute)","email":"filip.leonarski@psi.ch"},"license":{"name":"GPL-3.0","url":"https://www.gnu.org/licenses/gpl-3.0.html"}},"servers":[{"url":"http://localhost:5232","description":"Test Jungfraujoch system"}],"components":{"parameters":{"binning":{"in":"query","name":"binning","required":false,"schema":{"default":1,"type":"integer"},"description":"Binning of frames for the plot (0 = default binning)"},"experimental_coord":{"in":"query","name":"experimental_coord","required":false,"schema":{"type":"boolean","default":false},"description":"If measurement has goniometer axis defined, plot X-axis will represent rotation angle\nIf measurement has grid scan defined, plot X-axis and Y-axis will represent grid position, Z will be used as the final value\nFor still measurement the number is ignored\n"},"azint_unit":{"in":"query","name":"azint_unit","required":false,"schema":{"type":"string","enum":["Q_recipA","d_A","two_theta_deg"],"default":"Q_recipA"},"description":"Unit used for azim int.\n"},"fill_value":{"in":"query","name":"fill","required":false,"schema":{"type":"number","format":"float"},"description":"Fill value for elements that were missed during data collection\n"},"plot_type":{"in":"query","name":"type","required":true,"description":"Type of requested plot","schema":{"type":"string","enum":["bkg_estimate","azint","azint_1d","spot_count","spot_count_low_res","spot_count_indexed","spot_count_ice","indexing_rate","indexing_unit_cell_length","indexing_unit_cell_angle","profile_radius","mosaicity","b_factor","error_pixels","saturated_pixels","image_collection_efficiency","receiver_delay","receiver_free_send_buf","strong_pixels","roi_sum","roi_mean","roi_max_count","roi_pixels","roi_weighted_x","roi_weighted_y","packets_received","max_pixel_value","resolution_estimate","pixel_sum","processing_time","beam_center_x","beam_center_y"]}},"roi":{"in":"query","name":"roi","required":false,"schema":{"type":"string","minLength":1},"description":"Name of ROI for which plot is requested"},"image_id":{"in":"query","name":"id","required":false,"schema":{"type":"integer","format":"int64","default":-1,"minimum":-2},"description":"Image ID in the image buffer. Special values: -1 - last image in the buffer, -2: last indexed image in the buffer"},"saturation":{"in":"query","name":"saturation","required":false,"schema":{"type":"number","format":"float","minimum":-32767,"maximum":32767},"description":"Saturation value to set contrast in the preview image; if not provided, then autocontrast procedure is used"},"background":{"in":"query","name":"background","required":false,"schema":{"type":"number","format":"float","default":0,"minimum":-32767,"maximum":32767},"description":"Background value to set contrast in the preview image"},"show_spots":{"in":"query","name":"show_spots","schema":{"type":"boolean","default":true},"description":"Show spot finding results on the image"},"show_beam_center":{"in":"query","name":"show_beam_center","schema":{"type":"boolean","default":true},"description":"Show beam center on the image"},"show_roi":{"in":"query","name":"show_roi","schema":{"type":"boolean","default":false},"description":"Show ROI areas on the image"},"jpeg_quality":{"in":"query","name":"jpeg_quality","description":"Quality of JPEG image (100 - highest; 0 - lowest)","schema":{"type":"integer","format":"int64","default":100,"minimum":0,"maximum":100}},"show_user_mask":{"in":"query","name":"show_user_mask","schema":{"type":"boolean","default":false},"description"Line truncated
const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.3","info":{"title":"Jungfraujoch","description":"API to control Jungfraujoch developed by the Paul Scherrer Institute (Switzerland).\nJungfraujoch is a data acquisition and analysis system for pixel array detectors, primarly PSI JUNGFRAU.\nJungfraujoch uses FPGA boards to acquire data at high data rates.\n\n# License Clarification\n\nWhile this API definition is licensed under GPL-3.0, **the GPL copyleft provisions do not apply**\nwhen this file is used solely to generate OpenAPI clients or when implementing applications that\ninteract with the API. Generated client code and applications using this API definition are not\nsubject to the GPL license requirements and may be distributed under terms of your choosing.\n\nThis exception is similar in spirit to the Linux Kernel's approach to userspace API headers and\nthe GCC Runtime Library Exception. The Linux Kernel developers have explicitly stated that\nuser programs that merely use the kernel interfaces (syscalls, ioctl definitions, etc.) are not\nderivative works of the kernel and are not subject to the terms of the GPL.\n\nThis exception is intended to allow wider use of this API specification without imposing GPL\nrequirements on applications that merely interact with the API, regardless of whether they\ncommunicate through network calls or other mechanisms.\n","version":"1.0.0-rc.139","contact":{"name":"Filip Leonarski (Paul Scherrer Institute)","email":"filip.leonarski@psi.ch"},"license":{"name":"GPL-3.0","url":"https://www.gnu.org/licenses/gpl-3.0.html"}},"servers":[{"url":"http://localhost:5232","description":"Test Jungfraujoch system"}],"components":{"parameters":{"binning":{"in":"query","name":"binning","required":false,"schema":{"default":1,"type":"integer"},"description":"Binning of frames for the plot (0 = default binning)"},"experimental_coord":{"in":"query","name":"experimental_coord","required":false,"schema":{"type":"boolean","default":false},"description":"If measurement has goniometer axis defined, plot X-axis will represent rotation angle\nIf measurement has grid scan defined, plot X-axis and Y-axis will represent grid position, Z will be used as the final value\nFor still measurement the number is ignored\n"},"azint_unit":{"in":"query","name":"azint_unit","required":false,"schema":{"type":"string","enum":["Q_recipA","d_A","two_theta_deg"],"default":"Q_recipA"},"description":"Unit used for azim int.\n"},"fill_value":{"in":"query","name":"fill","required":false,"schema":{"type":"number","format":"float"},"description":"Fill value for elements that were missed during data collection\n"},"plot_type":{"in":"query","name":"type","required":true,"description":"Type of requested plot","schema":{"type":"string","enum":["bkg_estimate","azint","azint_1d","spot_count","spot_count_low_res","spot_count_indexed","spot_count_ice","indexing_rate","indexing_unit_cell_length","indexing_unit_cell_angle","profile_radius","mosaicity","b_factor","error_pixels","saturated_pixels","image_collection_efficiency","receiver_delay","receiver_free_send_buf","strong_pixels","roi_sum","roi_mean","roi_max_count","roi_pixels","roi_weighted_x","roi_weighted_y","packets_received","max_pixel_value","resolution_estimate","pixel_sum","processing_time","beam_center_x","beam_center_y","integrated_reflections"]}},"roi":{"in":"query","name":"roi","required":false,"schema":{"type":"string","minLength":1},"description":"Name of ROI for which plot is requested"},"image_id":{"in":"query","name":"id","required":false,"schema":{"type":"integer","format":"int64","default":-1,"minimum":-2},"description":"Image ID in the image buffer. Special values: -1 - last image in the buffer, -2: last indexed image in the buffer"},"saturation":{"in":"query","name":"saturation","required":false,"schema":{"type":"number","format":"float","minimum":-32767,"maximum":32767},"description":"Saturation value to set contrast in the preview image; if not provided, then autocontrast procedure is used"},"background":{"in":"query","name":"background","required":false,"schema":{"type":"number","format":"float","default":0,"minimum":-32767,"maximum":32767},"description":"Background value to set contrast in the preview image"},"show_spots":{"in":"query","name":"show_spots","schema":{"type":"boolean","default":true},"description":"Show spot finding results on the image"},"show_beam_center":{"in":"query","name":"show_beam_center","schema":{"type":"boolean","default":true},"description":"Show beam center on the image"},"show_roi":{"in":"query","name":"show_roi","schema":{"type":"boolean","default":false},"description":"Show ROI areas on the image"},"jpeg_quality":{"in":"query","name":"jpeg_quality","description":"Quality of JPEG image (100 - highest; 0 - lowest)","schema":{"type":"integer","format":"int64","default":100,"minimum":0,"maximum":100}},"show_user_mask":{"in":"query","name":"show_user_mask","schema":{"type":"boolean","defaLine truncated
var container = document.getElementById('redoc');
Redoc.hydrate(__redoc_state, container);
+2
View File
@@ -120,6 +120,8 @@ struct DataMessage {
std::vector<uint64_t> adu_histogram;
std::optional<int64_t> integrated_reflections;
uint64_t timestamp;
uint32_t timestamp_base;
+1 -1
View File
@@ -15,7 +15,7 @@ enum class PlotType {
IndexingUnitCellAngle, ErrorPixels, SaturatedPixels, ImageCollectionEfficiency, ReceiverDelay, ReceiverFreeSendBuf,
ROISum, ROIMean, ROIMaxCount, ROIPixels, ROIWeightedX, ROIWeightedY, PacketsReceived, MaxValue,
ResolutionEstimate, ProfileRadius, Mosaicity, BFactor, PixelSum, StrongPixels,
RefinementBeamX, RefinementBeamY, ImageProcessingTime,
RefinementBeamX, RefinementBeamY, ImageProcessingTime, IntegratedReflections
};
enum class PlotAzintUnit {
+1
View File
@@ -159,6 +159,7 @@ See [DECTRIS documentation](https://github.com/dectris/documentation/tree/main/s
| indexing_unit_cell | object | Indexing result unit cell: a, b, c \[angstrom\] and alpha, beta, gamma \[degree\]; present only if indexed | | X |
| | | Unit cell is redundant to lattice - yet to simplify downstream programs to analyze results, both are provided | | |
| profile_radius | float | Profile radius of the image - describes distance of observed reflections from the Ewald sphere \[Angstrom^-1\] | | |
| integrated_reflections | int64 | Count of integrated reflections | | |
| mosaicity | float | Angular range of spots in image from a rotation scan \[degree\] | | |
| b_factor | float | Estimated B-factor (Angstrom^2) | | |
| compression_time | float | Time spent on compression/decompressing image \[s\] | | |
@@ -699,6 +699,8 @@ namespace {
message.mosaicity_deg = GetCBORFloat(value);
else if (key == "b_factor")
message.b_factor = GetCBORFloat(value);
else if (key == "integrated_reflections")
message.integrated_reflections = GetCBORInt(value);
else if (key == "indexing_unit_cell")
message.indexing_unit_cell = ProcessUnitCellElement(value);
else if (key == "lattice_type")
@@ -702,6 +702,7 @@ void CBORStream2Serializer::SerializeImageInternal(CborEncoder &mapEncoder, cons
CBOR_ENC(mapEncoder, "indexing_lattice", message.indexing_lattice->GetVector());
CBOR_ENC(mapEncoder, "profile_radius", message.profile_radius);
CBOR_ENC(mapEncoder, "mosaicity", message.mosaicity_deg);
CBOR_ENC(mapEncoder, "integrated_reflections", message.integrated_reflections);
CBOR_ENC(mapEncoder, "b_factor", message.b_factor);
CBOR_ENC(mapEncoder, "indexing_time", message.indexing_time_s);
CBOR_ENC(mapEncoder, "processing_time", message.processing_time_s);
@@ -47,6 +47,8 @@ function AxisTypeY(plot: plot_type) : string | ReactNode {
switch (plot) {
case plot_type.IMAGE_COLLECTION_EFFICIENCY:
return "Efficiency";
case plot_type.INTEGRATED_REFLECTIONS:
return "Reflection count";
case plot_type.SPOT_COUNT:
case plot_type.SPOT_COUNT_LOW_RES:
case plot_type.SPOT_COUNT_INDEXED:
@@ -77,6 +77,7 @@ class DataProcessingPlots extends Component<MyProps, MyState> {
<MenuItem value={plot_type.B_FACTOR}>Wilson B-factor</MenuItem>
<MenuItem value={plot_type.BEAM_CENTER_X}>Beam center X (post-indexing geometry refinement)</MenuItem>
<MenuItem value={plot_type.BEAM_CENTER_Y}>Beam center Y (post-indexing geometry refinement)</MenuItem>
<MenuItem value={plot_type.INTEGRATED_REFLECTIONS}>Integrated reflections</MenuItem>
<MenuItem value={plot_type.IMAGE_COLLECTION_EFFICIENCY}>Image collection efficiency</MenuItem>
<MenuItem value={plot_type.PROCESSING_TIME}> Processing time</MenuItem>
<MenuItem value={plot_type.RECEIVER_DELAY}>Receiver delay (internal debugging)</MenuItem>
+1
View File
@@ -39,4 +39,5 @@ export enum plot_type {
PROCESSING_TIME = 'processing_time',
BEAM_CENTER_X = 'beam_center_x',
BEAM_CENTER_Y = 'beam_center_y',
INTEGRATED_REFLECTIONS = 'integrated_reflections',
}
@@ -1031,7 +1031,7 @@ export class DefaultService {
* @throws ApiError
*/
public static getPreviewPlot(
type: 'bkg_estimate' | 'azint' | 'azint_1d' | 'spot_count' | 'spot_count_low_res' | 'spot_count_indexed' | 'spot_count_ice' | 'indexing_rate' | 'indexing_unit_cell_length' | 'indexing_unit_cell_angle' | 'profile_radius' | 'mosaicity' | 'b_factor' | 'error_pixels' | 'saturated_pixels' | 'image_collection_efficiency' | 'receiver_delay' | 'receiver_free_send_buf' | 'strong_pixels' | 'roi_sum' | 'roi_mean' | 'roi_max_count' | 'roi_pixels' | 'roi_weighted_x' | 'roi_weighted_y' | 'packets_received' | 'max_pixel_value' | 'resolution_estimate' | 'pixel_sum' | 'processing_time' | 'beam_center_x' | 'beam_center_y',
type: 'bkg_estimate' | 'azint' | 'azint_1d' | 'spot_count' | 'spot_count_low_res' | 'spot_count_indexed' | 'spot_count_ice' | 'indexing_rate' | 'indexing_unit_cell_length' | 'indexing_unit_cell_angle' | 'profile_radius' | 'mosaicity' | 'b_factor' | 'error_pixels' | 'saturated_pixels' | 'image_collection_efficiency' | 'receiver_delay' | 'receiver_free_send_buf' | 'strong_pixels' | 'roi_sum' | 'roi_mean' | 'roi_max_count' | 'roi_pixels' | 'roi_weighted_x' | 'roi_weighted_y' | 'packets_received' | 'max_pixel_value' | 'resolution_estimate' | 'pixel_sum' | 'processing_time' | 'beam_center_x' | 'beam_center_y' | 'integrated_reflections',
binning: number = 1,
fill?: number,
experimentalCoord: boolean = false,
@@ -1064,7 +1064,7 @@ export class DefaultService {
* @throws ApiError
*/
public static getPreviewPlotBin(
type: 'bkg_estimate' | 'azint' | 'azint_1d' | 'spot_count' | 'spot_count_low_res' | 'spot_count_indexed' | 'spot_count_ice' | 'indexing_rate' | 'indexing_unit_cell_length' | 'indexing_unit_cell_angle' | 'profile_radius' | 'mosaicity' | 'b_factor' | 'error_pixels' | 'saturated_pixels' | 'image_collection_efficiency' | 'receiver_delay' | 'receiver_free_send_buf' | 'strong_pixels' | 'roi_sum' | 'roi_mean' | 'roi_max_count' | 'roi_pixels' | 'roi_weighted_x' | 'roi_weighted_y' | 'packets_received' | 'max_pixel_value' | 'resolution_estimate' | 'pixel_sum' | 'processing_time' | 'beam_center_x' | 'beam_center_y',
type: 'bkg_estimate' | 'azint' | 'azint_1d' | 'spot_count' | 'spot_count_low_res' | 'spot_count_indexed' | 'spot_count_ice' | 'indexing_rate' | 'indexing_unit_cell_length' | 'indexing_unit_cell_angle' | 'profile_radius' | 'mosaicity' | 'b_factor' | 'error_pixels' | 'saturated_pixels' | 'image_collection_efficiency' | 'receiver_delay' | 'receiver_free_send_buf' | 'strong_pixels' | 'roi_sum' | 'roi_mean' | 'roi_max_count' | 'roi_pixels' | 'roi_weighted_x' | 'roi_weighted_y' | 'packets_received' | 'max_pixel_value' | 'resolution_estimate' | 'pixel_sum' | 'processing_time' | 'beam_center_x' | 'beam_center_y' | 'integrated_reflections',
roi?: string,
): CancelablePromise<Blob> {
return __request(OpenAPI, {
+1
View File
@@ -205,6 +205,7 @@ void IndexAndRefine::QuickPredictAndIntegrate(DataMessage &msg,
auto integration_start_time = std::chrono::steady_clock::now();
auto refl_ret = BraggIntegrate2D(outcome.experiment, image, prediction.GetReflections(), nrefl, msg.number);
msg.integrated_reflections = refl_ret.size();
constexpr size_t kMaxReflections = 10000;
if (refl_ret.size() > kMaxReflections) {
+4
View File
@@ -587,6 +587,7 @@ bool JFJochHDF5Reader::LoadImage_i(std::shared_ptr<JFJochReaderDataset> &dataset
{(hsize_t) image_id, 0},
{1, spot_count}
);
auto geom = dataset->experiment.GetDiffractionGeometry();
for (int i = 0; i < spot_count; i++) {
@@ -629,6 +630,9 @@ bool JFJochHDF5Reader::LoadImage_i(std::shared_ptr<JFJochReaderDataset> &dataset
GenerateSpotPlot(message, 1.5);
}
if (source_file->Exists("/entry/MX/integratedReflections"))
message.integrated_reflections = source_file->ReadElement<float>("/entry/MX/integratedReflections", image_id);
if (!dataset->az_int_bin_to_q.empty()) {
if (dataset->azimuthal_bins == 0)
message.az_int_profile = source_file->ReadOptVector<float>(
+5
View File
@@ -105,6 +105,7 @@ void JFJochReceiverPlots::Setup(const DiffractionExperiment &experiment, const A
beam_center_x.Clear(r);
beam_center_y.Clear(r);
pixel_sum.Clear(r);
integrated_reflections.Clear(r);
refinement_time.Clear(r);
spot_finding_time.Clear(r);
@@ -129,6 +130,7 @@ void JFJochReceiverPlots::Add(const DataMessage &msg, const AzimuthalIntegration
saturated_pixels.AddElement(msg.number, msg.saturated_pixel_count);
pixel_sum.AddElement(msg.number, msg.pixel_sum);
strong_pixels.AddElement(msg.number, msg.strong_pixel_count);
integrated_reflections.AddElement(msg.number, msg.integrated_reflections);
packets_received.AddElement(msg.number, msg.packets_received);
image_collection_efficiency.AddElement(msg.number, msg.image_collection_efficiency);
@@ -314,6 +316,9 @@ MultiLinePlot JFJochReceiverPlots::GetPlots(const PlotRequest &request) {
case PlotType::AzInt1D:
ret = GetAzIntProfilePlot(true, request.azint_unit);
break;
case PlotType::IntegratedReflections:
ret = integrated_reflections.GetMeanPlot(nbins, start, incr, request.fill_value);
break;
case PlotType::IndexingUnitCellLength: {
auto a = indexing_uc_a.GetMeanPerBin(nbins, start, incr, request.fill_value);
auto b = indexing_uc_b.GetMeanPerBin(nbins, start, incr, request.fill_value);
+1
View File
@@ -65,6 +65,7 @@ class JFJochReceiverPlots {
StatusVector packets_received;
StatusVector max_value;
StatusVector resolution_estimate;
StatusVector integrated_reflections;
// StatusVector objects are fully thread-safe (protected by internal mutex)
// It is OK to have concurrent access to StatusVector
+4
View File
@@ -93,6 +93,7 @@ void HDF5DataFilePluginMX::OpenFile(HDF5File &data_file, const DataMessage &msg,
spot_count_ice.reserve(images_per_file);
spot_count_indexed.reserve(images_per_file);
spot_count_low_res.reserve(images_per_file);
integrated_reflections.reserve(images_per_file);
}
void HDF5DataFilePluginMX::Write(const DataMessage &msg, uint64_t image_number) {
@@ -151,6 +152,7 @@ void HDF5DataFilePluginMX::Write(const DataMessage &msg, uint64_t image_number)
beam_corr_x[image_number] = msg.beam_corr_x.value_or(NAN);
beam_corr_y[image_number] = msg.beam_corr_y.value_or(NAN);
spot_count_indexed[image_number] = msg.spot_count_indexed.value_or(0);
integrated_reflections[image_number] = msg.integrated_reflections.value_or(0);
if (msg.indexing_lattice) {
auto tmp = msg.indexing_lattice->GetVector();
@@ -228,4 +230,6 @@ void HDF5DataFilePluginMX::WriteFinal(HDF5File &data_file) {
data_file.SaveVector("/entry/MX/bravais_lattice", bravais_lattice.vec());
if (!resolution_estimate.empty())
data_file.SaveVector("/entry/MX/resolutionEstimate", resolution_estimate.vec())->Units("Angstrom");
if (!integrated_reflections.empty())
data_file.SaveVector("/entry/MX/integratedReflections", integrated_reflections.vec());
}
+1
View File
@@ -50,6 +50,7 @@ class HDF5DataFilePluginMX : public HDF5DataFilePlugin {
AutoIncrVector<uint32_t> niggli_class;
AutoIncrVector<std::string> bravais_lattice;
AutoIncrVector<int64_t> integrated_reflections;
public:
explicit HDF5DataFilePluginMX(const StartMessage& msg);