Opened 13 years ago
Closed 13 years ago
#44 closed task (fixed)
create XY_DatasetAPI parent of DiscretizedFuncAPI that accepts scatter data
Reported by: | Kevin Milner | Owned by: | Kevin Milner |
---|---|---|---|
Priority: | major | Milestone: | |
Component: | commons | Version: | |
Keywords: | Cc: | ned, Peter Powers |
Description
E-mail from Ned, 09/02/2010:
Kevin,
I couldn't resist looking into this a bit.
The jfreechart wrapper class we use is:
org.opensha.commons.gui.plot.jfreechart.DiscretizedFunctionXYDataSet
which takes a DiscretizedFuncList? (a list of DiscretizedFuncAPIs).
The methods DiscretizedFunctionXYDataSet actually uses from DiscretizedFuncAPIs are:
getX(int)
getY(int)
getDelta() (but with an if(obj instanceof EvenlyDiscretizedFunc?), so this should be OK; this is for histogram plotting)
getName()
getInfo()
getNum()
One thing DiscretizedFunctionXYDataSet assumes is that getX(0) is minimum value, but this can easily be swapped with getMinX().
I propose we define and XY_DatasetAPI that is a parent to DiscretizedFuncAPI. This would include all the current DiscretizedFuncAPI methods listed in blue below, but not those listed in red (as the latter ordering and non-duplicates on the x axis).
Then we just need to change DiscretizedFunctionXYDataSet to take an XY_DatatsetList (which we'd have to define) rather than the DiscretizedFuncList?.
We also need to change its getX(0) call to getMinX() as mentioned above.
There are also all the classes used between org.opensha.sha.gui.infoTools.GraphiWindowAPI_Impl (the useful tool I mentioned below) and DiscretizedFunctionXYDataSet that would need to be changed (but I think just swapping DiscretizedFuncList? with XY_DatatsetList would do it.
Of course I might be missing something here, so please check my math.
Cheers,
Ned
DiscretizedFuncAPI
public void setTolerance(double newTolerance);
public double getTolerance();
public double getY(double x);
public double getFirstInterpolatedX(double y);
public double getInterpolatedY(double x);
public int getXIndex(double x);
public int getIndex(DataPoint2D point);
public double getInterpolatedY_inLogXLogYDomain(double x);
public double getInterpolatedY_inLogYDomain(double x);
public double getFirstInterpolatedX_inLogXLogYDomain(double y);
public double getClosestY(double x);
public double getClosestX(double y);
(to be included in XY_DatasetAPI)
public void setName( String name );
public String getName();
public void setInfo( String info );
public String getInfo();
public int getNum();
public double getMinX();
public double getMaxX();
public double getMinY();
public double getMaxY();
public DataPoint2D get(int index);
public double getX(int index);
public double getY(int index);
public void set(DataPoint2D point) throws DataPoint2DException;
public void set(double x, double y) throws DataPoint2DException;
public void set(int index, double Y);
public boolean hasPoint(DataPoint2D point);
public boolean hasPoint(double x, double y);
public Iterator<DataPoint2D> getPointsIterator();
public ListIterator?<Double> getXValuesIterator();
public ListIterator?<Double> getYValuesIterator();
public String toString();
public boolean equals( DiscretizedFuncAPI function );
public DiscretizedFuncAPI deepClone();
public String getMetadataString();
public boolean areAllXValuesInteger(double tolerance);
Change History (2)
comment:1 Changed 13 years ago by
Status: | new → assigned |
---|
comment:2 Changed 13 years ago by
Resolution: | → fixed |
---|---|
Status: | assigned → closed |
Completed with [7026]. New class which accepts scatter data:
XY_DataSet