Package uk.ac.starlink.ttools.plot
Class BinGrid
- java.lang.Object
-
- uk.ac.starlink.ttools.plot.BinGrid
-
public class BinGrid extends java.lang.Object
Stores a grid of bins which contain sums, which may be simple counts or weighted sums. This is effectively the data model for a two-dimensional possibly weighted histogram or, to put it another way, it's an image.- Since:
- 1 Dec 2005
- Author:
- Mark Taylor
-
-
Constructor Summary
Constructors Constructor Description BinGrid(int xsize, int ysize)
Constructs a new grid.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
getBytes(double loCut, double hiCut, boolean log)
Returns an array of bytes representing the values in this grid.double
getCut(double frac)
Returns the cut value associated with a given fractional value (between 0 and 1).double
getMaxSum()
Returns the largest value which exists in any of the bins.double
getMinSum()
Returns the smallest value which exists in any of the bins.int
getSizeX()
Returns the number of bins (pixels) in the X direction.int
getSizeY()
Returns the number of bins (pixels) in the Y direction.double
getSum(int ix, int iy)
Returns the sum in a given bin (value at a given pixel).double[]
getSums()
Returns the raw histogram data held by this grid.void
recalculate()
Recalculates invariants.void
submitDatum(int ix, int iy, double weight)
Adds a data point to this histogram.
-
-
-
Method Detail
-
getSizeX
public int getSizeX()
Returns the number of bins (pixels) in the X direction.- Returns:
- x dimension
-
getSizeY
public int getSizeY()
Returns the number of bins (pixels) in the Y direction.- Returns:
- y dimension
-
getSum
public double getSum(int ix, int iy)
Returns the sum in a given bin (value at a given pixel).- Parameters:
ix
- x coordinateiy
- y coordinate
-
getMaxSum
public double getMaxSum()
Returns the largest value which exists in any of the bins.- Returns:
- maximum pixel value
-
getMinSum
public double getMinSum()
Returns the smallest value which exists in any of the bins.- Returns:
- minimum pixel value
-
getCut
public double getCut(double frac)
Returns the cut value associated with a given fractional value (between 0 and 1). Iffrac=0.25
you'll get the first quartile of sum values currently in the histogram.- Parameters:
frac
- fraction for which cut is required (0..1)- Returns:
- value below which
frac
of the bins have occupancies
-
submitDatum
public void submitDatum(int ix, int iy, double weight)
Adds a data point to this histogram. The sum in the bin(ix,iy)
is incremented byweight
.- Parameters:
ix
- X grid coordinateiy
- Y grid coordinateweight
- weight
-
recalculate
public void recalculate()
Recalculates invariants. This must be called if the sums arrray is modified directly.
-
getBytes
public byte[] getBytes(double loCut, double hiCut, boolean log)
Returns an array of bytes representing the values in this grid. The values are scaled to occupy the full range 0-255 or roughly so. Cut values are supplied; any bin values belowloCut
will get a result value of 0, any ones abovehiCut
will get a result value of 255. The ordering of pixels is that X values change most rapidly and Y values decrease. This is the order suitable for AWT images.Note the values must be interpreted as unsigned 8-bit values (value = 0x000000ff & (int)getBytes()[i]).
- Parameters:
loCut
- lowest distinguished sum valuehiCut
- highest distinguished sum valuelog
- true iff you want logarithmic scalling of the colours- Returns:
- scaled array of unsigned byte values representing grid data
-
getSums
public double[] getSums()
Returns the raw histogram data held by this grid. The result is an array where each element holds the number of points which have fallen in the corresponding bin. Note the ordering is image-like, as forgetBytes(double, double, boolean)
- X values change most rapidly and Y values decrease.- Returns:
- sum array
-
-