package edu.sc.seis.sod.subsetter.eventStation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Element;
import edu.iris.Fissures.event.OriginImpl;
import edu.iris.Fissures.model.QuantityImpl;
import edu.iris.Fissures.model.UnitImpl;
import edu.iris.Fissures.network.StationImpl;
import edu.sc.seis.TauP.SphericalCoords;
import edu.sc.seis.fissuresUtil.cache.CacheEvent;
import edu.sc.seis.sod.ConfigurationException;
import edu.sc.seis.sod.CookieJar;
import edu.sc.seis.sod.status.StringTree;
import edu.sc.seis.sod.status.StringTreeLeaf;
import edu.sc.seis.sod.subsetter.DistanceRangeSubsetter;
public class DistanceRange extends DistanceRangeSubsetter implements
EventStationSubsetter {
public DistanceRange(Element config) throws ConfigurationException {
super(config);
}
public StringTree accept(CacheEvent eventAccess,
StationImpl station,
CookieJar cookieJar) throws Exception {
OriginImpl origin = eventAccess.getOrigin();
double actualDistance = SphericalCoords.distance(origin.getLocation().latitude,
origin.getLocation().longitude,
station.getLocation().latitude,
station.getLocation().longitude);
QuantityImpl dist = new QuantityImpl(actualDistance, UnitImpl.DEGREE);
if(dist.greaterThanEqual(getMin()) && dist.lessThanEqual(getMax())) {
return new StringTreeLeaf(this, true, "DistanceRange("+getMin()+", "+getMax()+")");
} else {
return new StringTreeLeaf(this, false,"DistanceRange("+getMin()+", "+getMax()+")"+ dist.toString());
}
}
private static final Logger logger = LoggerFactory.getLogger(DistanceRange.class);
}// EventStationDistance