summaryrefslogtreecommitdiff
path: root/epostunit.pas
diff options
context:
space:
mode:
Diffstat (limited to 'epostunit.pas')
-rw-r--r--epostunit.pas43
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