diff options
Diffstat (limited to 'epostunit.pas')
-rw-r--r-- | epostunit.pas | 43 |
1 files changed, 41 insertions, 2 deletions
diff --git a/epostunit.pas b/epostunit.pas index 5865dc1..e051fc0 100644 --- a/epostunit.pas +++ b/epostunit.pas @@ -135,6 +135,7 @@ type function erzeugeLinearesBild(st: boolean; var f: tInputfile; maxThreads: longint): boolean; function erzeugeAscii(st: boolean; var f: tInputfile): boolean; function erzeugeLineout(st: boolean; params: string): boolean; + function erzeugeBinning(st: boolean; params: string): boolean; procedure spiegle(threads: longint); overload; procedure spiegle(threads,tmin,tmax: longint); overload; procedure fft2dNachbearbeitung(threads: longint; nb: tFFTDatenordnung); @@ -1839,7 +1840,7 @@ begin end; warteaufBeendigungDesLeseThreads; Zeit:=now; - setlength(DTs,threads); + setlength(DTs,min(threads,xmax+1-xmin)); gibAus('Ermittle maximale und minimale Dichten ...',3); j:=xmin; for i:=0 to length(DTs)-1 do begin @@ -2980,7 +2981,7 @@ var ab: array[boolean,boolean] of longint; Zeit: extended; i: longint; b1,b2: boolean; -begin gibAus('********* '+Transformationen.dumpParams,3); +begin result:=false; warteaufBeendigungDesLeseThreads; Zeit:=now; @@ -3076,6 +3077,44 @@ begin gibAus('********* '+Transformationen.dumpParams,3 result:=true; end; +function tWerte.erzeugeBinning(st: boolean; params: string): boolean; +var senkrecht,linien: boolean; + Zeit,x0,dx: extended; +begin + result:=false; + warteaufBeendigungDesLeseThreads; + Zeit:=now; + if not st then begin + gibAus('erzeuge Binning ...',3); + gibAus('insgesamt: '+floattostr(Transformationen.xstart)+'..'+floattostr(Transformationen.xstop)+' x '+floattostr(Transformationen.tstart)+'..'+floattostr(Transformationen.tstop),3); + end; + senkrecht:=Transformationen.xstart=Transformationen.xstop; + if (not senkrecht) and (Transformationen.tstart<>Transformationen.tstop) then begin + gibAus('Binning geht nur auf eindimensionalen Daten!',3); + exit; + end; + + params:=trim(params); + linien:=startetMit('(Gnuplotlinien)',params); + x0:=kont2disk(char(ord('x')+byte(senkrecht)),exprtofloat(st,erstesArgument(params))); + dx:=kont2diskFak(char(ord('x')+byte(senkrecht)),exprtofloat(st,erstesArgument(params))); + + if pos(' ',params)>0 then begin + gibAus('Leerzeichen im Dateinamen sind nicht erlaubt!',3); + exit; + end; + + if not st then + case Genauigkeit of + gSingle: + sWerte.erzeugeBinning(senkrecht,linien,x0,dx,params); + gExtended: + eWerte.erzeugeBinning(senkrecht,linien,x0,dx,params); + end{of case}; + gibAus('... fertig '+ZeitDarstellen(now-Zeit),3); + result:=true; +end; + procedure tWerte.schreibeWert(var f: textfile; x,y: longint); begin case Genauigkeit of |