package edu.sc.seis.sod.subsetter.station; import org.w3c.dom.Element; import edu.iris.Fissures.Location; import edu.iris.Fissures.model.UnitImpl; import edu.iris.Fissures.network.StationImpl; import edu.sc.seis.fissuresUtil.bag.DistAz; import edu.sc.seis.sod.source.network.NetworkSource; import edu.sc.seis.sod.status.StringTree; import edu.sc.seis.sod.status.StringTreeLeaf; import edu.sc.seis.sod.subsetter.origin.AbstractOriginPoint; public class StationPointDistance extends AbstractOriginPoint implements StationSubsetter { public StationPointDistance(Element config) throws Exception { super(config); min = getMin().convertTo(UnitImpl.DEGREE).get_value(); max = getMax().convertTo(UnitImpl.DEGREE).get_value(); } /** * Accepts a station only if it lies within the given distance range of the * given lat and lon. */ public StringTree accept(StationImpl station, NetworkSource network) { Location loc = station.getLocation(); DistAz distaz = new DistAz(latitude, longitude, loc.latitude, loc.longitude); return new StringTreeLeaf(this, min <= distaz.getDelta() && max >= distaz.getDelta()); } private double min, max; }