NSLS-II-SRX / profile_collection

NSLS-II SRX beamline IPython startup files for data collection
https://doi.org/10.1016/j.nima.2022.166505
BSD 3-Clause "New" or "Revised" License
3 stars 7 forks source link

Deployment 2021-1.0 checklist #18

Closed mrakitin closed 3 years ago

mrakitin commented 3 years ago

Previsit

Housekeeping

Test deployment

Finish

andrewmkiss commented 3 years ago

@mrakitin I ran my acceptance tests at the beamline. Overall, there is nothing major and I think we can switch to this deployment. If you go into that branch, you will see one change in 90-user, which is simply changing the user cycle. Can be committed or skipped. I did not test databroker v2.

However, I do have a few comments:

dmgav commented 3 years ago

@andrewmkiss As far as I remember, we didn't complete work related to loading data from nanostage because start document did not contain sufficient metadata. As far as I remember, in current implementation the 'slow' axis is always vertical and 'fast' axis is always horizontal. Also, position data is not loaded if one of the scan axes is Z, so maps could be plotted only in pixels coordinates. Also PyXRF will now load data only from 3 detector channels. It can work with arbitrary number of channels, but there is some work that needs to be done. We may also need additional metadata that will allow to consistently identify the number of detector channels.

Also I would like to mention that the sum is also computed using data from only 3 channels, we need to implement support for more detectors in order to be able to use them.

mrakitin commented 3 years ago

@mrakitin I ran my acceptance tests at the beamline. Overall, there is nothing major and I think we can switch to this deployment. If you go into that branch, you will see one change in 90-user, which is simply changing the user cycle. Can be committed or skipped. I did not test databroker v2.

Thanks for the tests, @andrewmkiss. Please commit & push that change.

However, I do have a few comments:

* While loading bsui, we see a message [TerminalIPythonApp] Running file in user namespace...[filepath + name]. And then I have my own (much shorter), Loading file {filename}.... Can we remove this TerminalIPython message?

I think it can be disabled, we need to experiment how to do that. I've created an issue: https://github.com/NSLS-II/nslsii/issues/115.

* We were doing the FlyingMono testing where we enable those PVs. When I did my test of energy.move(), it failed because I could not control the mono/undulator. Is it possible to disable FlyingMono in order to complete an energy.move()? Or maybe we need to look at how we stage/unstage FlyingMono so that it defaults to a disabled stage?

Can you point me to the code? I guess the failure is legitimate due to the PVs are non-writable at that time. I guess it will fail too with the older conda env, so it's not directly relevant to the deployment process. Please create an issue in this repo, so we can spend some development/debugging time later this cycle.

* Our xs3 has too many read attributes. Right now, we have a 4-element detector, and on the IOC there are 16 ROIs for each element. We only allow the user to set 3 ROIs so we have an addition 13x4, 52 rois that are useless (plus the sum for the roi). Can we decrease this so we only have the first 3 ROIs for each element?

Yes, I think the unused ROIs can be disabled. What does xs.channel1.rois.read() show? Come components can be set as "omitted", so they are not captured by databroker. Something like:

for i, cpt in enumerate(xs.channel1.rois.component_names):
    if i < 3:
        getattr(xs.channel1.rois, cpt).kind = 'normal'
    else:
        getattr(xs.channel1.rois, cpt).kind = 'omitted'

(repeat the same for all channels)

mrakitin commented 3 years ago

@andrewmkiss, did my reply answer your questions?

andrewmkiss commented 3 years ago

@andrewmkiss, did my reply answer your questions?

I'll look at this right now. I got distracted with other work.

andrewmkiss commented 3 years ago

@mrakitin Okay, so changes were pushed to deploy-2021-1.0.

With the ROIs, the code was actually in there, but would only be applied if TOUCHBEAMLINE == 1. I have changed it so these will be applied whether or not TOUCHBEAMLINE is 1. **TOUCHBEAMLINE variable was setup so that multiple instances of bluesky could be opened without affecting each other. Basically, we needed bluesky open on a separate machine to get Merlin image data because it had the correct handler configured.

I'll create an issue for the energy/undulator issue.

andrewmkiss commented 3 years ago

25 Undulator Fly-scanning issue created here.

mrakitin commented 3 years ago

@andrewmkiss, thanks for the update. I don't see the aforementioned commit in https://github.com/NSLS-II-SRX/profile_collection/pull/24/commits. If I read it right, the changes were pushed to the branch which has already been merged into master and deleted from GitHub, and then recreated from a local push. I will create a new PR, so that we merge it to master, tag, and use it from there.

andrewmkiss commented 3 years ago

@mrakitin Okay, I pushed my latest changes to github. I tagged it as described above. When I click on the playbooks link, I get an error for page not found.

Also @mrakitin I saw a step in there with ensible. can you deploy the collection-2021-1.0 profile to xf05id1-ws4? This is our backup data collection computer.

mrakitin commented 3 years ago

Thanks, @andrewmkiss! This is done. The new collection conda environment is also om ws4 now.