package com.base.plan.model.entity;

/**
 * 成像卫星访问计算约束条件
 * 
 * @author dhs
 *
 */
public class ImageLimitation {

	private double minSun;
	
	private double maxRoll;
	
	private double minRoll;
	
	private double maxPitch;
	
	private double minPitch;
	
	/**
	 * 轨道倾角
	 */
	private double inclination;
	
	/**
	 * 轨道高度
	 */
	private double altitude;
	
	/**
	 * 传感器类型，0:CCD, 1:SRA, 2:可见光, 3:红外, 4:高光谱, 5:可见光/红外/高光谱三合一
	 */
	private int sensorType;
	private String payloadType;
	public String getPayloadType() {
		return payloadType;
	}

	public void setPayloadType(String payloadType) {
		this.payloadType = payloadType;
	}

	/**
	 * 访问时刻向后跳下小的长度，太阳同步可见光6A-1,6,10:22小时，太阳同步SAR5,7:10小时，太阳同步宽幅可见光9:1.5小时
	 * timeStep与卫星侧摆能力和传感器幅宽有关，上述数值是考虑现有型号卫星能力得到
	 */
	private double timeStep;
	
	/**
	 * 轨道计算步长，单位：秒
	 */
	private int stepLength;
	
	/**
	 * 访问时刻向后跳点的长度，根据timeStep, stepLength计算
	 */
	private long stepSpan;
	
	/**
	 * 星下点距离目标多远可以开始计算的门限，单位：弧度
	 */
	private double maxDistance;
	
	/**
	 * 因相机光轴相对卫星本体坐标系Z轴沿飞行方向安装偏差导致的俯仰计算和访问计算偏置时间，沿飞行方向正向偏置为正，单位：秒
	 */
	private long xSpan;
	
	/**
	 * 因相机光轴相对卫星本体坐标系Z轴沿飞行方向安装偏差导致的俯仰角计算偏置角度，沿飞行方向前为正，单位：角度
	 */
	private double xDrift;
	
	/**
	 * 因相机光轴相对卫星本体坐标系Z轴沿飞行方向安装偏差导致的滚动角计算偏置角度，沿飞行方向右为正，单位：角度
	 */
	private double yDrift;
	
	private String satName;
	
	/**
	 * 升降轨成像标识，0：降轨成像，1：升轨成像，2：成像与升降轨无关
	 */
	private int imageSign;
	
	/**
	 * 判断能否访问的纬度条件
	 */
	private double latlimate;
	
	public ImageLimitation() {
		// TODO Auto-generated constructor stub
	}

	public double getMinSun() {
		return minSun;
	}

	public void setMinSun(double minSun) {
		this.minSun = minSun;
	}

	public double getMaxRoll() {
		return maxRoll;
	}

	public void setMaxRoll(double maxRoll) {
		this.maxRoll = maxRoll;
	}

	public double getMinRoll() {
		return minRoll;
	}

	public void setMinRoll(double minRoll) {
		this.minRoll = minRoll;
	}

	public double getMaxPitch() {
		return maxPitch;
	}

	public void setMaxPitch(double maxPitch) {
		this.maxPitch = maxPitch;
	}

	public double getMinPitch() {
		return minPitch;
	}

	public void setMinPitch(double minPitch) {
		this.minPitch = minPitch;
	}

	public double getInclination() {
		return inclination;
	}

	public void setInclination(double inclination) {
		this.inclination = inclination;
	}

	public double getAltitude() {
		return altitude;
	}

	public void setAltitude(double altitude) {
		this.altitude = altitude;
	}

	public int getSensorType() {
		return sensorType;
	}

	public void setSensorType(int sensorType) {
		this.sensorType = sensorType;
	}

	public double getTimeStep() {
		return timeStep;
	}

	public void setTimeStep(double timeStep) {
		this.timeStep = timeStep;
	}

	public int getStepLength() {
		return stepLength;
	}

	public void setStepLength(int stepLength) {
		this.stepLength = stepLength;
	}

	public long getStepSpan() {
		return stepSpan;
	}

	public void setStepSpan(long stepSpan) {
		this.stepSpan = stepSpan;
	}

	public double getMaxDistance() {
		return maxDistance;
	}

	public void setMaxDistance(double maxDistance) {
		this.maxDistance = maxDistance;
	}

	public long getxSpan() {
		return xSpan;
	}

	public void setxSpan(long xSpan) {
		this.xSpan = xSpan;
	}

	public double getxDrift() {
		return xDrift;
	}

	public void setxDrift(double xDrift) {
		this.xDrift = xDrift;
	}

	public double getyDrift() {
		return yDrift;
	}

	public void setyDrift(double yDrift) {
		this.yDrift = yDrift;
	}

	public String getSatName() {
		return satName;
	}

	public void setSatName(String satName) {
		this.satName = satName;
	}

	public int getImageSign() {
		return imageSign;
	}

	public void setImageSign(int imageSign) {
		this.imageSign = imageSign;
	}

	public double getLatlimate() {
		return latlimate;
	}

	public void setLatlimate(double latlimate) {
		this.latlimate = latlimate;
	}
}
