SampleFits.java
package org.eso.fits;
import java.util.Arrays;
public class SampleFits {
/*本类完成的功能:对输入的的初始样本lamda, flux,根据整个采样区间的边界值如[3900 9000]以及采样间隔50进行分段,
* 在例子中,lambda和flux的长度应该从小到大有序而且一致,并且lambda的区间范围应该包括边界值[3900 9000];
对于每段,可以计算每段flux对应的平均值,标准差,中位数,积分值等方法。*/
//错误定义
private final int ERROR_NOTFOUND = 0;
private final int ERROR_BOUND = 1;
private final int ERROR_LENGTH = 2;
private final int ERROR_SAMPLESIZE = 3;
//类成员变量
private double sampleSize;//采样间隔
private double sampleLowArea;//整个采样区间的左边界
private double sampleUpArea;//整个采样区间的右边界
private double[] lambda; //初始数据X
private double[] flux; //初始数据Y
//初始化类成员变量
public SampleFits(double[] dataX, double[] dataY) {
sampleSize = 50;
sampleLowArea = 3900;
sampleUpArea = 9000;
lambda = new double[dataX.length];
flux = new double[dataY.length];
System.arraycopy(dataX, 0, lambda, 0, dataX.length);
System.arraycopy(dataY, 0, flux, 0, dataY.length);
if (ErrorCheck() != ERROR_NOTFOUND) {
System.out.println("Please take care of the argvs!");
}
}
public SampleFits(int sampleSize, int sampleLowArea, int sampleUpArea, double[] dataX, double[] dataY) {
this.sampleSize = sampleSize;
this.sampleLowArea = sampleLowArea;
this.sampleUpArea = sampleUpArea;
lambda = new double[dataX.length];
flux = new double[dataY.length];
System.arraycopy(dataX, 0, lambda, 0, dataX.length);
System.arraycopy(dataY, 0, flux, 0, dataY.length);