## ellipse

ellipse( double xwidth, double ywidth ) → QDataSet

return a dataset with X and Y forming a ellipse, introduced as a convenient way to indicate planet location of any planet, according to Masafumi.

### Parameters

xwidth - a real number representing the width of the ellipse in the X direction
ywidth - a real number representing the width of the ellipse in the Y direction

### Returns:

QDataSet that when plotted is an ellipse.
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## ensureMonotonic

ensureMonotonic( QDataSet ds ) → QDataSet

possibly sort the data where the DEPEND_0 tags are monotonically increasing. If the data is already monotonic, then nothing is done to the data.

### Parameters

ds - the dataset

### Returns:

the dataset, sorted if necessary.

### See Also:

DataSetUtil#isMonotonic
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## ensureMonotonicAndIncreasingWithFill

ensureMonotonicAndIncreasingWithFill( QDataSet ds ) → QDataSet

Return data where the DEPEND_0 tags are monotonically increasing and non repeating. Instead of sorting the data, simply replace repeat timetags with a fill record. Note, this does not modify the original dataset (besides the timetags), but instead adds a WEIGHTS plane.

### Parameters

ds - the dataset

### Returns:

the dataset, sorted if necessary. TODO: It's surprising that monotonic doesn't imply non-repeating, and this really needs to be revisited. TODO: conside the impact of not modifying the timetags, which greatly increases memory needs.

### See Also:

DataSetUtil#isMonotonicAndIncreasingQuick
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## eq

eq( QDataSet ds1, QDataSet ds2 ) → QDataSet

element-wise equality test. 1.0 is returned where the two datasets are equal. Fill is returned where either measurement is invalid.

### Parameters

ds1 - rank n dataset
ds2 - rank m dataset with compatible geometry.

### Returns:

rank n or m dataset.
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## eq

eq( Object ds1, Object ds2 ) → QDataSet

element-wise equality test, converting arguments as necessary to like units. These datasets can be nominal data as well.

### Parameters

ds1 - an Object
ds2 - an Object

### Returns:

a QDataSet
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## equalProperties

equalProperties( java.util.Map m1, java.util.Map m2 ) → java.util.HashMap

returns the subset of two groups of properties that are equal, so these may be preserved through operations.

### Parameters

m1 - map of dataset properties, including DEPEND properties.
m2 - map of dataset properties, including DEPEND properties.

### Returns:

the subset of two groups of properties that are equal
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## equivalent

equivalent( QDataSet ds1, QDataSet ds2 ) → boolean

returns true iff the dataset values are equivalent. Note this may promote rank, etc. If the two datasets have enumerations, then we create datums and check .equals. This does not check TITLE, etc, just that the units and values are equal.

### Parameters

ds1 - the first dataset
ds2 - the second dataset

### Returns:

true if the dataset values are equivalent.
[search for examples] [view on GitHub] [view on old javadoc] [view source]
equivalent( Object ds1, Object ds2 ) → boolean [view source]

## eventsCoalesce

eventsCoalesce( QDataSet cds ) → QDataSet

reduce the canonical rank 2 events dataset by combining adjacent records of the same message and color into one record.

### Parameters

cds - rank 2 events dataset

### Returns:

events dataset, likely with fewer records
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## eventsComplement

eventsComplement( QDataSet events, DatumRange range, int color, String msg ) → QDataSet

Return an events list of time intervals which are not covered in the events list. A new events list is returned, containing events with the given color and message. This is expected to have a number of uses, one being identifying where data is missing. Note this assumes events are not overlapping.

### Parameters

events - an events list
range - find gaps in events within this range
color - color for the missing events
msg - message to attach to these events

### Returns:

the events data set.

### See Also:

createEvent(java.lang.String, int, java.lang.String)
eventsConjunction(QDataSet, QDataSet)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## eventsConjunction

eventsConjunction( QDataSet tE, QDataSet tB ) → QDataSet

return an events list of when events are found in both events lists. (This might have been better called "eventsIntersection") This is the overlap between two sets. TODO: what if the two lists are not in order? Handle this.

### Parameters

tE - rank 2 canonical events list
tB - rank 2 canonical events list

### Returns:

rank 2 canonical events list

### See Also:

Schemes#eventsList()
dataIntersection(QDataSet, QDataSet)
eventsComplement(QDataSet, org.das2.datum.DatumRange, int, java.lang.String)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## eventsDiff

eventsDiff( QDataSet tE, QDataSet tB ) → QDataSet

return an events dataset describing differences between the two events lists. The list will contain labels starting with insert, delete, and update, and the values.

### Parameters

tE - sorted rank 2 events dataset with records of [start, stop, color, label ]
tB - sorted rank 2 events dataset with records of [start, stop, color, label ]

### Returns:

events list of differences
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## exp

exp( QDataSet ds ) → QDataSet

element-wise exponentiate e**x.

### Parameters

ds - the dataset

### Returns:

dataset of the same geometry
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## exp

exp( double d ) → double

Jython requires this be implemented

### Parameters

d - a double

### Returns:

e**d
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## exp

exp( Object ds1 ) → QDataSet

convert array, list, double, etc to QDataSet and return exp(d)

### Parameters

ds1 - requires this be implemented

### Returns:

exp(ds1)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## exp10

exp10( QDataSet ds ) → QDataSet

element-wise exponentiate 10**x.

### Parameters

ds - a QDataSet

### Returns:

a QDataSet
[search for examples] [view on GitHub] [view on old javadoc] [view source]
exp10( double ds1 ) → double [view source]
exp10( Object ds1 ) → QDataSet [view source]

## expandToFillGaps

expandToFillGaps( QDataSet ds ) → QDataSet

Special function by the RPW Group at U. Iowa, which reassigns timetags so the small waveform packets are visible, or bursty spectrograms are more easily viewed. This just calls expandToFillGaps with a 90 percent overlap (expandToFillGaps( ds, 0.9 )).

### Parameters

ds - the dataset

### Returns:

the dataset with new DEPEND_0 values.

### See Also:

expandWaveform(QDataSet)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## expandToFillGaps

expandToFillGaps( QDataSet ds, Datum cadenceMin, double multiplier ) → QDataSet

Special function by the RPW Group at U. Iowa, which reassigns timetags so the small waveform packets are visible, or bursty spectrograms are more easily viewed. When there are gaps longer than twiceCadenceMin, multiply the timetags preceding by multiplier to fill the gap.

### Parameters

ds - the data, presumably containing burst of continuous packets between long gaps.
cadenceMin - sets threshold to identify continuous bursts of packets.
multiplier - the scale to by which to expand the packet into the gap.

### Returns:

a QDataSet

### See Also:

expandToFillGaps(QDataSet, double)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## expandToFillGaps

expandToFillGaps( QDataSet ds, double factor ) → QDataSet

Special self-configuring function by the RPW Group at U. Iowa, which reassigns timetags so the small waveform packets are visible, or bursty spectrograms are more easily viewed.

### Parameters

ds - the data, presumably containing burst of continuous packets between long gaps.
factor - duty cycle factor (0.5=50% duty cycle)

### Returns:

ds with new timetags.

### See Also:

expandWaveform(QDataSet)
expandToFillGaps(QDataSet, org.das2.datum.Datum, double)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## expandWaveform

expandWaveform( QDataSet ds ) → QDataSet

special function needed by the RPW Group at U. Iowa, which reassigns timetags so the small waveform packets are visible.

### Parameters

ds - rank 2 waveform

### Returns:

a QDataSet

### See Also:

Schemes#rank2Waveform()
expandToFillGaps(QDataSet)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## expm1

expm1( QDataSet xx ) → QDataSet

Returns exx -1. Note that for values of x near 0, the exact sum of `expm1(x)` + 1 is much closer to the true result of exx than `exp(x)`.

### Parameters

xx - the values

### Returns:

the values ex -1
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## expm1

expm1( double x ) → double

Returns ex -1. Note that for values of x near 0, the exact sum of `expm1(x)` + 1 is much closer to the true result of ex than `exp(x)`.

### Parameters

x - a double

### Returns:

ex -1
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## expm1

expm1( Object x ) → QDataSet

Returns ex -1. Note that for values of x near 0, the exact sum of `expm1(x)` + 1 is much closer to the true result of ex than `exp(x)`.

### Parameters

x - an object which can be interpretted as a double or dataset.

### Returns:

ex -1
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## extent

extent( QDataSet ds ) → QDataSet

returns a two element, rank 1 dataset containing the extent of the data. Note this accounts for DELTA_PLUS, DELTA_MINUS properties. Note this accounts for BIN_PLUS, BIN_MINUS properties. The property QDataSet.SCALE_TYPE is set to lin or log. The property count is set to the number of valid measurements. TODO: this could use MONOTONIC, but it doesn't. DELTA_PLUS, DELTA_MINUS make that more difficult.

### Parameters

ds - the dataset to measure the extent

### Returns:

two element, rank 1 "bins" dataset.

### See Also:

DataSetUtil#rangeOfMonotonic(QDataSet)
AutoRangeUtil#simpleRange in Autoplot.
Ops#reduceMax(QDataSet, int, org.das2.util.monitor.ProgressMonitor)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## extent

extent( QDataSet ds, QDataSet range ) → QDataSet

returns a two element, rank 1 dataset containing the extent (min to max) of the data. Note this accounts for DELTA_PLUS, DELTA_MINUS properties. Note this accounts for BIN_PLUS, BIN_MINUS properties. If no valid data is found then [fill,fill] is returned. The property QDataSet.SCALE_TYPE is set to lin or log. The property count is set to the number of valid measurements. 2010-10-14: add branch for monotonic datasets.

### Parameters

ds - the dataset to measure the extent
range - if non-null, return the union of this range and the extent. This must not contain fill!

### Returns:

two element, rank 1 "bins" dataset.
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## extent

extent( QDataSet ds, QDataSet wds, QDataSet range ) → QDataSet

returns a two element, rank 1 dataset containing the extent (min to max) of the data, allowing an external evaluation of the weightsDataSet. If no valid data is found then [fill,fill] is returned.

### Parameters

ds - the dataset to measure the extent rank 1 or rank 2 bins
wds - a weights dataset, containing zero where the data is not valid, positive non-zero otherwise. If null, then all finite data is treated as valid.
range - if non-null, return the union of this range and the extent. This must not contain fill!

### Returns:

two element, rank 1 "bins" dataset.

### See Also:

reduceMax(QDataSet, int, org.das2.util.monitor.ProgressMonitor)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## extent445

Deprecated: use extentSimple

## extentSimple

extentSimple( QDataSet ds, QDataSet wds, QDataSet range ) → QDataSet

like extent, but does not account for DELTA_PLUS, DELTA_MINUS, BIN_PLUS, BIN_MINUS, BIN_MIN or BIN_MAX properties. This was introduced to provide a fast way to identify constant datasets and the extent that non-constant datasets vary.

### Parameters

ds - the dataset to measure the extent rank 1 or rank 2 bins
wds - a weights dataset, containing zero where the data is not valid, positive non-zero otherwise. If null, then all finite data is treated as valid.
range - if non-null, return the union of this range and the extent. This must not contain fill!

### Returns:

two element, rank 1 "bins" dataset.

### See Also:

extent(QDataSet, QDataSet, QDataSet)
[search for examples] [view on GitHub] [view on old javadoc] [view source]

## extentSimple

extentSimple( QDataSet ds, QDataSet range ) → QDataSet

This is introduced to study effect of https://sourceforge.net/p/autoplot/feature-requests/445/ Do not use this in scripts!!! This is very interesting: Ops.extent: 53ms simpleRange: 77ms study445FastRange: 4ms Ops.extent: 76ms simpleRange: 114ms study445FastRange: 12ms This is likely showing that DataSetIterator is slow...

### Parameters

ds - the dataset
range - null, or rank 1 bins dataset

### Returns:

rank 1, two-element range, or when all data is fill result[0] will be Double.POSITIVE_INFINITY.

### See Also:

extentSimple(QDataSet, QDataSet, QDataSet)
[search for examples] [view on GitHub] [view on old javadoc] [view source]