Opened 8 years ago

Closed 8 years ago

#331 closed defect (fixed)

vHW crashes under certain conditions

Reported by: demeler Owned by: gegorbet
Priority: normal Milestone: future
Component: ultrascan3 Version:
Keywords: review Cc:

Description

This is probably an ill-conditioned dataset with an unhandled exception. We should try to deal with this:

Load experiment "Ewa-abs" in the ultrascan demo database (stored under 'Borries Demeler'). Program always crashes after choosing the first two noise files.

Attachments (2)

ewa-abs-01.png (101.9 KB) - added by gegorbet 8 years ago.
ewa-abs-02.png (92.9 KB) - added by gegorbet 8 years ago.

Download all attachments as: .zip

Change History (6)

Changed 8 years ago by gegorbet

Changed 8 years ago by gegorbet

comment:1 follow-up: Changed 8 years ago by gegorbet

  • Status changed from new to assigned

I am unclear on just what conditions are being described. If I load the 2/A/280 ewa-abs triple, the only one with two noises, I get no crash and get a reasonable extrapolation.

If I load the first triple, 1/A/280, there is only one noise and it is horrible. A crash does occur.

Perhaps vHW needs a fix to gracefully report such problematic noise and abort, but it seems to me the central issue is to determine how such a noise gets generated. Maybe a desktop 2DSA run could be used to determine if editing or parameterization could generate a usable model and noise.

comment:2 in reply to: ↑ 1 Changed 8 years ago by demeler

Replying to gegorbet:

I am unclear on just what conditions are being described. If I load the 2/A/280 ewa-abs triple, the only one with two noises, I get no crash and get a reasonable extrapolation.

If I load the first triple, 1/A/280, there is only one noise and it is horrible. A crash does occur.

Perhaps vHW needs a fix to gracefully report such problematic noise and abort, but it seems to me the central issue is to determine how such a noise gets generated. Maybe a desktop 2DSA run could be used to determine if editing or parameterization could generate a usable model and noise.

In this case, the problem certainly was with the noise calculation in 2DSA (performed on the backend). And that is worth investigating as well. Clearly, the answer is unreasonable. Looking at the noisefile in detail, I notice that there are large oscillations in the noise amplitudes that clearly exceed the magnitude of the data.
Here is an excerpt:

        <d v="2.24362"/>
        <d v="-7.09795"/>
        <d v="9.44754"/>
        <d v="-4.31826"/>
        <d v="-6.07467"/>
        <d v="30.7666"/>
        <d v="-60.1262"/>
        <d v="43.8297"/>
        <d v="-22.9039"/>
        <d v="-14.9996"/>
        <d v="120.016"/>
        <d v="-99.3548"/>
        <d v="104.031"/>
        <d v="-139.295"/>
        <d v="37.3027"/>
        <d v="-9.53702"/>
        <d v="-65.0981"/>
        <d v="169.602"/>
        <d v="-200.108"/>
        <d v="177.131"/>
        <d v="-43.8075"/>
        <d v="-86.4758"/>
        <d v="190.141"/>
        <d v="-146.862"/>

These large-amplitude oscillations are a clear indication something went wrong, and it is also obvious how this would crash a particular analysis. As a first guard against such a crash I think a very quick way to check if a noise dataset has such problems is to calculate the min/max values in the noise file and, if subtracted from each other, do not exceed the min/max of the edited data range. In this case, the min/max difference of the noise is about 390, while the actual data min/max difference is only about 1.0. So there is a clear signal that the dataset is problematic and the user should at least be warned that the program may not run if the noise is loaded. You could abort with:

Attention: The amplitude range of the noise file exceeds the amplitude of the experimental data - are you sure you want to load this noise file?

comment:3 follow-up: Changed 8 years ago by gegorbet

  • Keywords review added

Fixes were made to various modules so that analysis programs now handle unusual noise files like in the Ewa-abs example. When a noise or pair of noises is chosen in the noise loader, the noise values are compared to the range of values in the experiment data. When the noise range exceeds the data range, a dialog is opened that reports the unusual values and allows the noise choice to be canceled.

Review-ready.

comment:4 in reply to: ↑ 3 Changed 8 years ago by demeler

  • Resolution set to fixed
  • Status changed from assigned to closed

Replying to gegorbet:

Fixes were made to various modules so that analysis programs now handle unusual noise files like in the Ewa-abs example. When a noise or pair of noises is chosen in the noise loader, the noise values are compared to the range of values in the experiment data. When the noise range exceeds the data range, a dialog is opened that reports the unusual values and allows the noise choice to be canceled.

Review-ready.

Works perfectly now. Will close ticket.

Note: See TracTickets for help on using tickets.