edu.sc.seis.fissuresUtil.display
Class SimplePlotUtil

java.lang.Object
  extended by edu.sc.seis.fissuresUtil.display.SimplePlotUtil

public class SimplePlotUtil
extends java.lang.Object

SimplePlotUtil.java Created: Thu Jul 8 11:22:02 1999


Field Summary
static edu.iris.Fissures.model.TimeInterval ONE_DAY
           
 
Constructor Summary
SimplePlotUtil()
           
 
Method Summary
static boolean canMakeAtLeastOnePixel(edu.iris.Fissures.IfSeismogramDC.LocalSeismogram seis, int pixelsPerDay)
           
static int[][] compressXvalues(edu.iris.Fissures.IfSeismogramDC.LocalSeismogram seismogram, MicroSecondTimeRange timeRange, java.awt.Dimension size)
           
static MicroSecondTimeRange correctTimeRangeForPixelData(edu.iris.Fissures.IfSeismogramDC.LocalSeismogram seis, int pixelsPerDay)
           
static void debugExtraPixel(MicroSecondTimeRange correctedSeisRange, edu.iris.Fissures.model.MicroSecondDate rangeEnd, edu.iris.Fissures.seismogramDC.LocalSeismogramImpl seis, int startPoint, int endPoint, int numPixels, IntRange seisPixelRange, int startPixel, edu.iris.Fissures.model.TimeInterval pixelPeriod)
           
static edu.iris.Fissures.model.MicroSecondDate getBeginningOfDay(edu.iris.Fissures.model.MicroSecondDate date)
           
static MicroSecondTimeRange getDay(edu.iris.Fissures.model.MicroSecondDate date)
           
static IntRange getDayPixelRange(edu.iris.Fissures.IfSeismogramDC.LocalSeismogram seis, int pixelsPerDay)
           
static IntRange getDayPixelRange(edu.iris.Fissures.IfSeismogramDC.LocalSeismogram seis, int pixelsPerDay, edu.iris.Fissures.model.MicroSecondDate startOfDay)
           
static edu.iris.Fissures.Plottable getEmptyPlottable()
           
static int getPixel(int startPixel, int endPixel, edu.iris.Fissures.model.MicroSecondDate begin, edu.iris.Fissures.model.MicroSecondDate end, edu.iris.Fissures.model.MicroSecondDate value)
           
static int getPixel(int totalPixels, edu.iris.Fissures.model.MicroSecondDate begin, edu.iris.Fissures.model.MicroSecondDate end, edu.iris.Fissures.model.MicroSecondDate value)
           
static int getPixel(int totalPixels, MicroSecondTimeRange tr, edu.iris.Fissures.model.MicroSecondDate value)
           
static int getPixel(int totalPixels, edu.iris.Fissures.model.UnitRangeImpl range, double value)
           
static int getPixel(int totalPixels, edu.iris.Fissures.model.UnitRangeImpl range, edu.iris.Fissures.model.QuantityImpl value)
           
static edu.iris.Fissures.model.MicroSecondDate getPixelBeginTime(MicroSecondTimeRange day, int pixel, int pixelsPerDay)
           
static edu.iris.Fissures.model.TimeInterval getPixelPeriod(int pixelsPerDay)
           
static MicroSecondTimeRange getPixelTimeRange(edu.iris.Fissures.model.MicroSecondDate point, int pixelsPerDay, boolean after)
           
static int getPoint(edu.iris.Fissures.seismogramDC.LocalSeismogramImpl seis, edu.iris.Fissures.model.MicroSecondDate time)
           
static edu.iris.Fissures.model.MicroSecondDate getTimeForIndex(int index, edu.iris.Fissures.model.MicroSecondDate beginTime, edu.iris.Fissures.model.SamplingImpl sampling)
           
static edu.iris.Fissures.model.MicroSecondDate getValue(int startPixel, int endPixel, edu.iris.Fissures.model.MicroSecondDate begin, edu.iris.Fissures.model.MicroSecondDate end, int pixel)
           
static edu.iris.Fissures.model.MicroSecondDate getValue(int totalPixels, edu.iris.Fissures.model.MicroSecondDate begin, edu.iris.Fissures.model.MicroSecondDate end, int pixel)
           
static edu.iris.Fissures.model.QuantityImpl getValue(int totalPixels, edu.iris.Fissures.model.UnitRangeImpl range, int pixel)
           
static double linearInterp(double xa, double ya, double xb, double yb, double x)
          solves the equation (yb-ya)/(xb-xa) = (y-ya)/(x-xa) for y given x.
static edu.iris.Fissures.Plottable makePlottable(edu.iris.Fissures.seismogramDC.LocalSeismogramImpl seis, int pixelsPerDay)
          Creates a plottable with all the data from the seismogram that falls inside of the time range at samplesPerDay.
static java.util.List<PlottableChunk> makePlottables(edu.iris.Fissures.IfSeismogramDC.LocalSeismogram[] seis, int pixelsPerDay)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ONE_DAY

public static final edu.iris.Fissures.model.TimeInterval ONE_DAY
Constructor Detail

SimplePlotUtil

public SimplePlotUtil()
Method Detail

makePlottable

public static edu.iris.Fissures.Plottable makePlottable(edu.iris.Fissures.seismogramDC.LocalSeismogramImpl seis,
                                                        int pixelsPerDay)
                                                 throws edu.iris.dmc.seedcodec.CodecException
Creates a plottable with all the data from the seismogram that falls inside of the time range at samplesPerDay. Each pixel in the plottable is of 1/pixelsPerDay days long. Two points are returned for each pixel. The first value is the min value over the time covered in the seismogram, and the second value is the max. The seismogram points in a plottable pixel consist of the first point at or after the start time of the pixel to the last point before the start time of the next pixel.

Throws:
edu.iris.dmc.seedcodec.CodecException

getEmptyPlottable

public static edu.iris.Fissures.Plottable getEmptyPlottable()

debugExtraPixel

public static void debugExtraPixel(MicroSecondTimeRange correctedSeisRange,
                                   edu.iris.Fissures.model.MicroSecondDate rangeEnd,
                                   edu.iris.Fissures.seismogramDC.LocalSeismogramImpl seis,
                                   int startPoint,
                                   int endPoint,
                                   int numPixels,
                                   IntRange seisPixelRange,
                                   int startPixel,
                                   edu.iris.Fissures.model.TimeInterval pixelPeriod)

getPixelPeriod

public static edu.iris.Fissures.model.TimeInterval getPixelPeriod(int pixelsPerDay)

getBeginningOfDay

public static edu.iris.Fissures.model.MicroSecondDate getBeginningOfDay(edu.iris.Fissures.model.MicroSecondDate date)

getDay

public static MicroSecondTimeRange getDay(edu.iris.Fissures.model.MicroSecondDate date)

getPixelBeginTime

public static edu.iris.Fissures.model.MicroSecondDate getPixelBeginTime(MicroSecondTimeRange day,
                                                                        int pixel,
                                                                        int pixelsPerDay)

getPixelTimeRange

public static MicroSecondTimeRange getPixelTimeRange(edu.iris.Fissures.model.MicroSecondDate point,
                                                     int pixelsPerDay,
                                                     boolean after)

getDayPixelRange

public static IntRange getDayPixelRange(edu.iris.Fissures.IfSeismogramDC.LocalSeismogram seis,
                                        int pixelsPerDay)

getDayPixelRange

public static IntRange getDayPixelRange(edu.iris.Fissures.IfSeismogramDC.LocalSeismogram seis,
                                        int pixelsPerDay,
                                        edu.iris.Fissures.model.MicroSecondDate startOfDay)

canMakeAtLeastOnePixel

public static boolean canMakeAtLeastOnePixel(edu.iris.Fissures.IfSeismogramDC.LocalSeismogram seis,
                                             int pixelsPerDay)

correctTimeRangeForPixelData

public static MicroSecondTimeRange correctTimeRangeForPixelData(edu.iris.Fissures.IfSeismogramDC.LocalSeismogram seis,
                                                                int pixelsPerDay)

compressXvalues

public static int[][] compressXvalues(edu.iris.Fissures.IfSeismogramDC.LocalSeismogram seismogram,
                                      MicroSecondTimeRange timeRange,
                                      java.awt.Dimension size)
                               throws edu.iris.dmc.seedcodec.CodecException
Throws:
edu.iris.dmc.seedcodec.CodecException

linearInterp

public static final double linearInterp(double xa,
                                        double ya,
                                        double xb,
                                        double yb,
                                        double x)
solves the equation (yb-ya)/(xb-xa) = (y-ya)/(x-xa) for y given x. Useful for finding the pixel for a value given the dimension of the area and the range of values it is supposed to cover. Note, this does not check for xa == xb, in which case a divide by zero would occur.


getPixel

public static final int getPixel(int totalPixels,
                                 MicroSecondTimeRange tr,
                                 edu.iris.Fissures.model.MicroSecondDate value)

getPoint

public static final int getPoint(edu.iris.Fissures.seismogramDC.LocalSeismogramImpl seis,
                                 edu.iris.Fissures.model.MicroSecondDate time)

getPixel

public static final int getPixel(int totalPixels,
                                 edu.iris.Fissures.model.MicroSecondDate begin,
                                 edu.iris.Fissures.model.MicroSecondDate end,
                                 edu.iris.Fissures.model.MicroSecondDate value)

getPixel

public static final int getPixel(int startPixel,
                                 int endPixel,
                                 edu.iris.Fissures.model.MicroSecondDate begin,
                                 edu.iris.Fissures.model.MicroSecondDate end,
                                 edu.iris.Fissures.model.MicroSecondDate value)

getValue

public static final edu.iris.Fissures.model.MicroSecondDate getValue(int totalPixels,
                                                                     edu.iris.Fissures.model.MicroSecondDate begin,
                                                                     edu.iris.Fissures.model.MicroSecondDate end,
                                                                     int pixel)

getValue

public static final edu.iris.Fissures.model.MicroSecondDate getValue(int startPixel,
                                                                     int endPixel,
                                                                     edu.iris.Fissures.model.MicroSecondDate begin,
                                                                     edu.iris.Fissures.model.MicroSecondDate end,
                                                                     int pixel)

getPixel

public static final int getPixel(int totalPixels,
                                 edu.iris.Fissures.model.UnitRangeImpl range,
                                 edu.iris.Fissures.model.QuantityImpl value)

getPixel

public static final int getPixel(int totalPixels,
                                 edu.iris.Fissures.model.UnitRangeImpl range,
                                 double value)

getValue

public static final edu.iris.Fissures.model.QuantityImpl getValue(int totalPixels,
                                                                  edu.iris.Fissures.model.UnitRangeImpl range,
                                                                  int pixel)

getTimeForIndex

public static final edu.iris.Fissures.model.MicroSecondDate getTimeForIndex(int index,
                                                                            edu.iris.Fissures.model.MicroSecondDate beginTime,
                                                                            edu.iris.Fissures.model.SamplingImpl sampling)

makePlottables

public static java.util.List<PlottableChunk> makePlottables(edu.iris.Fissures.IfSeismogramDC.LocalSeismogram[] seis,
                                                            int pixelsPerDay)
                                                     throws edu.iris.dmc.seedcodec.CodecException,
                                                            java.io.IOException
Throws:
edu.iris.dmc.seedcodec.CodecException
java.io.IOException