The Origin Forum
File Exchange
Try Origin for Free
The Origin Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ | Send File to Tech support
 All Forums
 Origin Forum for Programming
 LabTalk Forum
 pkrect is gone

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

Screensize:
UserName:
Password:
Anti-Spam Code:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkUpload FileInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON
Smilies
Smile [:)] Big Smile [:D] Cool [8D] Blush [:I]
Tongue [:P] Evil [):] Wink [;)] Clown [:o)]
Black Eye [B)] Eight Ball [8] Frown [:(] Shy [8)]
Shocked [:0] Angry [:(!] Dead [xx(] Sleepy [|)]
Kisses [:X] Approve [^] Disapprove [V] Question [?]

 
Check here to subscribe to this topic.
   

T O P I C    R E V I E W
marrotx Posted - 09/10/2008 : 09:39:15 AM
Dear OriginLab-Team,

I had written a script in LabTalk using the pkrect-function.

pkrect iy:=[graph1]layer1!plot(1) option:=p rectw:=50 recth:=30;

After updating my origin from version OriginPro 8G SR2 v8.07?? to v.8.0891, my script can't find the pkrect command anymore. I haven't found any comments on renewed commands yet. Unfortunately, every attempt to use other functions were not succesful.
Even the wiki and help files don't contain any information on that.

Can you please give me information on where to find "pkrect" or how to use new functions to get the same result?

Best regards,
marrotx
7   L A T E S T    R E P L I E S    (Newest First)
marrotx Posted - 09/26/2008 : 10:55:59 AM
Thank you...

But obviously, that was not the problem :-(
It does not work either.

I found a second problem:
When I run the script in parts ("run.section..."), the script accepts no commands behind the nlsf.fit() line. The fit works (the parameters are fitted), but nothing afterwards (even no "newbook" or other simple command...).
Do I have to nlsf.end() the fitting session? I found no example where this was necessary.

Best regards,
Marrotx
Echo_Chu Posted - 09/18/2008 : 04:03:03 AM
Hi, marrotx

From your code it looks like you don't want to ouput oleft and oright. If so, it should be set as <optional> such as

pkfind method:=max filter:=num value:=4 npts:=50 oleft:=<optional> oright:=<optional>

Echo
OriginLab Corp
marrotx Posted - 09/12/2008 : 07:03:11 AM
Hi once again,

I now have installed the SR3 patch, nevertheless the help on pkfind is not available. But due to your link this is not the problem anymore.

My script now has the problem that it does not process the pkfind from the script. If I enter the same command (copy+paste) in the command line just after the whole script fails, everything works fine

Here is the script which I'm running after a file import:
(the relevant line is marked red)

rc=1;
resname$=res$(rc);
win -r book1 %(resname$);
wks.col1.name$=channel$(rc);
wks.col2.name$=intensity$(rc);
wks.col1.label$=channel;
wks.col2.label$=intensity;
stats ix:=Col(intensity$(rc));
for(ii=1;ii<stats.n;ii++)
{
if(Col(intensity$(rc))[ii]!=0)
{
first=ii;
ii=stats.n;
}
}
for(ii=stats.n;ii>0;ii--)
{
if(Col(intensity$(rc))[ii]!=0)
{
last=ii;
ii=0;
}
}
range aa = Col(intensity$(rc))[$(first):$(last)];
differentiate iy:=Col(intensity$(rc)) order:=1;
wks.col$(3).name$=differential$(rc);
wks.col$(3).label$=differential;
smooth iy:=Col(differential$(rc))[$(first):$(last)] method:=fft npts:=10 cutoff:=0.1;
wks.col$(4).name$=smoodi$(rc);
wks.col$(4).label$=smootheddifferential;
plotxy iy:=Col(smoodi$(rc)) plot:=200;
win -r Graph1 gedges$(rc);
page.label$="Graph for edge detection";
win -a %(resname$);
wks.addcol();
wks.col5.name$=edges$(rc);
wks.col$(5).label$="peaks of smoothed differential";
win -a %(gedges$(rc));
pkfind iy:=[gedges$(rc)]layer1!plot(1) method:=max filter:=num value:=4 npts:=50 ocenter:=[%(resname$)]%(sheet$)!col(edges$(rc)) oleft:=no oright:=no
p2=col(edges$(rc))[1];
p3=col(edges$(rc))[2];
p4=col(edges$(rc))[3];
p5=col(edges$(rc))[4];
plotxy iy:=aa plot:=200 legend:=1;
win -r graph1 %(resname$);
label -xb channel (a.u.);
label -yl intensity (a.u.);
label -s -n label %(resname$);
nlsf.addfunc(Resolution,D:\OriginLab\FitFunc,10);
nlsf.func$=griderfCu;
nlsf.clearupfitdata();
nlsf.fitdata$ = %(1,@D);
nlsf.tolerance = 1e-9;
nlsf.xBegin=$(first);
nlsf.xEnd=$(last);
nlsf.xPoints=1000;
nlsf.p1=stats.max;
nlsf.p2 = $(p2);
nlsf.p3 = $(p3);
nlsf.p4 = $(p4);
nlsf.p5 = $(p5);
nlsf.p6 = 10;
nlsf.p7 = 10;
nlsf.p8 = 10;
nlsf.p9 = 10;
nlsf.p10 = stats.min;
nlsf.fit(10);
nlsf.report();
resolution=2,35*12,7/((nlsf.p5-nlsf.p3+nlsf.p4-nlsf.p2)/2)*((nlsf.p6+nlsf.p7+nlsf.p8+nlsf.p9)/4);
label -sl -a 500 0 "resolution=$(resolution)";
rc=rc+1;


I'm sorry for all the code, but maybe it will help...

Best regards,
marrotx
marrotx Posted - 09/12/2008 : 03:59:21 AM
Thank you, that's what I wanted to know.
Echo_Chu Posted - 09/11/2008 : 06:05:07 AM
Hi,

It looks like you did not get the SR3 document yet. However, you can refer to this page for the help document of pkfind.

I hope it helps.

Echo
marrotx Posted - 09/11/2008 : 05:13:17 AM
Hello again,

thank you for the fast reply to my question.

Indeed, one attempt to solve my problem was the pkfind-function!
Unfortunately, the documentation for this function is lacking!!!
"help pkfind" in the command line gives no results.
Searching for "pkfind" in the origin help gives the page about "Peaks and Baselines" (one example for the use of pkfind, but nothing more)
The XF script dialog gives another example, but even no documentation.
So, I can find some few examples (wiki.origin) where the functions is used, but no complete documentation about all its features. Here, I read about the "method:=win" for the first time.

Maybe, you can post the documentation here, than I won't have to search other (empty?) sources...

Thank you in advance,
marrotx
Echo_Chu Posted - 09/11/2008 : 01:22:56 AM
Hi, Marrotx,

Sorry that we have remove pkrect from SR3. The x-function is old and we did not thought of someone is using it...

However, you can use pkfind as a replacment in you script. For your script, it is

pkfind iy:=[graph1]layer1!plot(1) method:=win option:=p width:=50 height:=30 smooth:=0

But the result of pkfind is a little different from pkrect. It is indices of original data. You need to do one more step to find out exact value. We are going to add exact value of peak info to pkfind in SR4.

For more reference of pkfind, please type "help pkfind" in command window to check the CHM. Or you can open XF Script Dialog (press F11) to see a script example.

Echo
OriginLab Corp

The Origin Forum © 2020 Originlab Corporation Go To Top Of Page
Snitz Forums 2000