public class PhaseCoherentMerit extends AbstractPhaseMerit implements EndpointDefining, Initializable
KEY_WIDTH defines the
sharpness of this curve. The parameter KEY_AIMN points to the the
number of phase-coherent observations that should be made on the target, the
period is given with the #KEY_PERIOD key. So far, so easy. To allow
for an increased probability for target choosing as soon as at least some
observations has been made, the KEY_AUGMENT parameter is introduced.
If set to one, the probability increased such that the merit is
area-conserving in phase space. Another difficult thing is the determination
whether an observation made really fulfills the requirement of phase
coherence. The KEY_OFFSET key helps here. If an observation made is
in phase-space within one of the calculated phase-centered pick times, this
observation is said to be successfully centered at the required phase. The
resulting formula reads as
ts(t)=∑ki(x-μi)1/ne-((x-μi)/width)²The parameters ki, x, and μi are evaluated according to
μi=i/Naim, ki=augment·Naim/(Naim-N) | 0, x=((t-tfirst)%P)/P,where x is adjusted so that x-μi > 0. The actually successful observations, N is increased if
|((tobs-tfirst)%P)/P|<offsetIn this case, ki=0.
ConstantMerit or a
OneObservationMerit to further constrain target picking.EndpointDefining interface. The
isCompleted(globals.GlobalGrouping, stella.Appointable) method returns true as soon as all phase-requested
observations have been made.| Modifier and Type | Class and Description |
|---|---|
static class |
PhaseCoherentMerit.Random
A test class for the phase coherent merit.
|
| Modifier and Type | Field and Description |
|---|---|
private String |
debugname
Avoid message flooding.
|
private static double |
DEFAUGMENT
The default artificial increase of probabilty after some observations.
|
private static double |
DEFCOMPLETENESS
Default completeness level.
|
private static double |
DEFMAXPERIODS
Default value for maximum number of periods.
|
private static double |
DEFOFFSET
Default value for the maximum offset in phase space.
|
private static double |
DEFPRIOR
Default value for the merit returned prior to first successful obs.
|
private static int |
DEFSHARP
Default value for the sharpness.
|
private static double |
DEFSINGLEFWHM
Default width of a single peak at sharpness one in phase space.
|
static String |
KEY_AIMN
The number of phase points to observe.
|
static String |
KEY_ATPHASES
Observe at these distinct phases.
|
static String |
KEY_AUGMENT
The key linked to artificial increase of late observations.
|
static String |
KEY_COMPLETENESS
Completeness level if program was not finished after some periods.
|
static String |
KEY_MAXPERIODS
The number of periods passed until completeness applies.
|
static String |
KEY_OFFSET
The maximum phase-offset allowed for a successful phase-coherent obs.
|
static String |
KEY_PRIOR
The merit returned if no observation has been made.
|
static String |
KEY_SHARP
The sharpness of the rise, i.e.
|
static String |
KEY_SINGLEFWHM
The key linked to width of the observation intervall in phase space.
|
static String |
KEY_STARTFRAC
If this property is set, we only start at frac-jd around it.
|
static String |
KEY_WIDTH
The key linked to width of the observation intervall in phase space.
|
private List<Double> |
phases
The phases were we want to observe.
|
private static long |
serialVersionUID |
private List<Double> |
width
And their width.
|
KEY_HJDCORRECTION, KEY_JD, KEY_PERIODDAY, KEY_USEHJD, KEY_ZEROPHASEKEY_LISTSEPARATOR, KEY_MAPKEYVALUECHAR, KEY_MAPSEPARATORCONFIG, KEY_CLASS| Constructor and Description |
|---|
PhaseCoherentMerit(Map<String,String> prop)
Constructs a phase-coherent merit.
|
| Modifier and Type | Method and Description |
|---|---|
private double |
calculate(double phi,
double[] ki)
Calculates the merit at the given phase, which must be between zero and
one.
|
private boolean |
closeToLast(HistoryAware history,
GlobalGrouping set)
Check if the last successful pick was close, then alsways return zero
merit.
|
double |
getMerit(GlobalGrouping set,
Appointable target,
Collection<Appointable> ignore,
long within)
Calculates the actual time slot merit.
|
private double |
getMeritFromNumbers(double current,
double periodspan,
List<Double> looked)
To test this complicated merit, we have transferred all the calculations
into this method that does not need any target descriptions or sets.
|
void |
init()
Generates the list of phases we want to observe.
|
boolean |
isCompleted(GlobalGrouping set,
Appointable target)
Check, if the observation is complete.
|
getDaysSinceT0, getHjd, getHjd, getPeriodsSinceT0, getPhase, getPhase, getT0createMerit, getInitializer, initMeritaugment, augment, augment, augment, augment, clone, defaultBoolean, defaultChar, defaultDouble, defaultFloat, defaultInt, defaultLong, defaultObject, defaultObject, defaultProperties, defaultProperty, getAsBoolean, getAsChar, getAsDouble, getAsEnums, getAsFloat, getAsInt, getAsList, getAsLong, getAsMap, getAsMap, getAsObject, getAsObject, getProperties, getProperty, has, initProperties, isNew, parseObject, parseObject, reload, reload, removeProperty, requires, rescanned, setObject, setProperties, setProperty, stringProperties, toStringprivate static final long serialVersionUID
public static final String KEY_AIMN
public static final String KEY_ATPHASES
public static final String KEY_STARTFRAC
public static final String KEY_OFFSET
public static final String KEY_AUGMENT
public static final String KEY_WIDTH
public static final String KEY_SINGLEFWHM
public static final String KEY_PRIOR
public static final String KEY_MAXPERIODS
public static final String KEY_COMPLETENESS
public static final String KEY_SHARP
private static final double DEFOFFSET
private static final double DEFAUGMENT
private static final double DEFPRIOR
private static final double DEFMAXPERIODS
private static final double DEFCOMPLETENESS
private static final double DEFSINGLEFWHM
private static final int DEFSHARP
private String debugname
public PhaseCoherentMerit(Map<String,String> prop)
AbstractMerit.createMerit(java.util.Map<java.lang.String, java.lang.String>) method. This create method
also takes care of proper parameter overloading.public void init()
init in interface Initializableinit in class AbstractPhaseMeritprivate boolean closeToLast(HistoryAware history, GlobalGrouping set)
history - set - public double getMerit(GlobalGrouping set, Appointable target, Collection<Appointable> ignore, long within)
private double getMeritFromNumbers(double current,
double periodspan,
List<Double> looked)
current - The phase for evaluation.within - The time span used for evaluation, phase space.t0 - The time of the first successful observation, defining the
zero point.times - A list of all successfule observing times without the firstprivate double calculate(double phi,
double[] ki)
phi - The merit phaseki - The individual slot coefficientssigma - Width of individual peak.sharp - The power in the Hoerl-like function.public boolean isCompleted(GlobalGrouping set, Appointable target)
isCompleted in interface EndpointDefining