Data browser updating during all-at-once fit
jcor
prepare_to_fit()
, which calls do_many_fits()
, which does FuncFit /N/W=2 [...]
as described in the manual on page 701.When I call
do_many_fits()
, the data browser doesn't update. But when I call prepare_to_fit()
, the data browser updates repeatedly with the temporary waves created during the all-at-once fits.So (1) can't these waves be made 'free'? and (2) can I freeze the data browser updates without the kililng and reopening it (annoying, because it is then the top window)?
July 13, 2015 at 10:09 am - Permalink
Print "Long routine here..."
modifybrowser expand=getbrowserline("root:test")
Is there a way to minimize (and restore) the browser window from code?
HJ
PS: It needs to be passed to "Execute" in functions...
July 13, 2015 at 12:30 pm - Permalink
That is correct. However, the Data Browser will get events that it would attempt to handle even when your function is running. In time critical applications closing the Data Browser is the best choice.
You can use:
ModifyBrowser Close
This is not really minimizing but has the same effect.
A.G.
WaveMetrics, Inc.
July 13, 2015 at 01:19 pm - Permalink
execute "modifybrowser close"
option (although I try to avoidexecute
).However, restoring the DB is not really easy after the close operation and a program package permanently killing the data browser might drive users insane.
Would "better" control over the DB be something for Igor 7 ?
Back to topic: I am usually working with free coefficient waves and I think (not tested) creation of the temporary waves (actually they are useful for checkup) as free wave before calling
funcfit
should work the same way.HJ
July 13, 2015 at 03:13 pm - Permalink
If you set the Data Browser to remember its position etc., there is no reason you would have a problem restoring it unless you are attempting to restore a Browser window on a screen that is no longer available for IGOR.
The Data Browser in IP7 is part of the application with lots of new bells and whistles.
A.G.
WaveMetrics, Inc.
July 14, 2015 at 11:20 am - Permalink
On my machine (Win7, IP6.37) the data folder are collapsed after reopening and I have to travel through the data structure again...
HJ
July 14, 2015 at 11:58 am - Permalink
The only way to retain the folder representation is using:
A.G.
WaveMetrics, Inc.
July 14, 2015 at 05:13 pm - Permalink
I'll stick to the collapse / expand version and wait for IP7 ;-)
HJ
July 15, 2015 at 02:14 am - Permalink
I don't believe that the Igor 7 Data Browser has any substantial changes with regards to the functionality you are requesting. Though you won't need to use the Execute operation any more, since it's built in.
The update mechanism is somewhat different than the Igor 6 DB, so you may find that the Igor 7 DB performs better or worse in this particular aspect.
July 15, 2015 at 07:50 am - Permalink
So if I can request something for Igor 7, I would request a "DelayUpdate" for the data browser. Or, perhaps easier but too specific, /FREE waves being used during an All-At-Once fit.
July 22, 2015 at 02:25 am - Permalink
It actually worked that way in the beginning. Actually, they weren't really *free* waves, because free waves didn't exist then, but they were an unnamed precursor to free waves. But enough people tried to find the names of the waves in order to do skanky manipulations (our customers are remarkably creative) that I made them ordinary waves with monstrous names. See, when they weren't able to get a name, they called us for tech support. When you get lots of calls like that, you do something about it. In this case it was to make those waves regular waves.
On the other hand, really the kinds of things people were doing shouldn't be done. Perhaps I need to be more creative in detecting and disallowing dangerous behavior, but that seems like WaveMetrics Nanny State.
John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
July 22, 2015 at 08:59 am - Permalink
I think we all just desire
ModifyBrowser RestoreWin
ModifyBrowser MaximizeWin
simulating user clicks on the three corresponding buttons.
"Maximize" only for completeness.
HJ
July 23, 2015 at 03:17 am - Permalink
With the Igor 7 DB at least (and probably also the Igor 6 DB), minimizing the DB won't stop it from updating its representation of Igor's global objects (though it might stop updating of the graph or image of a selected wave displayed in the plot panel).
If you can send an example experiment to support@wavemetrics.com that I can run myself and which demonstrates the problematic updates you are seeing, I can see what happens using Igor 7 and see if there are any changes I can make to improve the Data Browser's performance in the situation.
July 23, 2015 at 08:43 am - Permalink
Some run times with identical data (Exp0042LT):
a) Data browser with expanded data folders: 51.5297 s; 53.977 s; 53.5698 s
b) Data browser with collapsed data folders: 18.2537 s; 18.3133 s, 18.2515 s
c) Data browser with expanded data folders minimized: 29.6672 s; 30.217 s; 29.6042 s
d) Data browser with collapsed data folders minimized: 15.9292 s; 16.0841 s; 15.8868 s
e) Data browser closed: 15.102 s; 14.3829 s; 15.086 s
The run times (mstimer) are consistent. Minimizing the tree structure ("NAC") seems to provide the largest improvement. Result c) is surprising. Although the DB is minimized it still updates and costs a lot of time.
You want to see if the fits (3000 in this case) are particularly bad in some range (Wave ChiSq -- marked blue). Yes I could graph them automatically, but I don't want to; there are enough graphs already :-) (and one needs this only in case the result looks "suspicious")
HJ
July 23, 2015 at 09:28 am - Permalink
Not so surprising. The DB in IP6.x is an XOP. As such it performs its work when it gets idle time from IGOR. As long as the DB window exists (even minimized) it gets its idle messages which give it an opportunity to update its internal structures. If you want it to become dormant you need to close the DB window as I said before.
A.G.
WaveMetrics, Inc.
July 23, 2015 at 10:01 am - Permalink
If you email me at support@wavemetrics.com, I'll send you information on how to upload to our FTP server, if you're interested in doing so.
I did a few tests using Igor 7 and as far as I can tell, nothing in the DB updates while a user function is running. The DB will update once functions stop running, so if you have a lot of data or are displaying large waves in the plot panel, it may still be worthwhile to close the DB. However for cases in which there are lots of waves created/modified while a function is running and then killed before everything is finished, the Igor 7 DB shouldn't update and therefore the performance should be improved compared to Igor 6.
July 23, 2015 at 10:23 am - Permalink
Thanks a lot,
HJ
July 23, 2015 at 12:19 pm - Permalink
I would have expected it to be similar to the run time with the collapsed structure. However, if the internal events are dependent on the expanded folders / visible objects, it is not that surprising.
HJ
July 23, 2015 at 03:39 pm - Permalink