Next Previous Up Contents
Next: Adding User-Defined Functions
Up: Algebraic Expression Syntax
Previous: Instance Methods

7.8 Examples

Here are some general examples. They could be used to define synthetic columns or (where numeric) to define values for one of the axes in a plot.

Average
    (first + second) * 0.5
Square root
    sqrt(variance)
Angle conversion
    radiansToDegrees(DEC_radians)
    degreesToRadians(RA_degrees)
Conversion from string to number
    parseInt($12)
    parseDouble(ident)
Conversion from number to string
    toString(index)
Conversion between numeric types
     toShort(obs_type)
     toDouble(range)
or
    (short) obs_type
    (double) range
Conversion from sexagesimal to degrees
    hmsToDegrees(RA1950)
    dmsToDegrees(decDeg,decMin,decSec)
Conversion from degrees to sexagesimal
    degreesToDms($3)
    degreesToHms(RA,2)
Outlier clipping
    min(1000, max(value, 0))
Converting a magic value to null
    jmag == 9999 ? NULL : jmag
Converting a null value to a magic one
    NULL_jmag ? 9999 : jmag
Taking the third scalar element from an array-valued column
    psfCounts[2]
Converting spectral type to numeric value (e.g. "L3.5" -> 23.5, "M7" -> 17)
   "MLT".indexOf(spType.charAt(0)) * 10 + parseDouble(substring(spType,1)) + 10
Note this uses a couple of Java String instance methods (Section 7.7) which are not explicitly documented in this section.
Here are some examples of boolean expressions that could be used to define row subsets (or to create boolean synthetic columns):
Within a numeric range
    RA > 100 && RA < 120 && Dec > 75 && Dec < 85
Within a circle
    $2*$2 + $3*$3 < 1
    skyDistanceDegrees(ra0,dec0,hmsToDegrees(RA),dmsToDegrees(DEC))<15./3600.
First 100 rows
    index <= 100
Every tenth row
    index % 10 == 0
String equality/matching
    equals(SECTOR, "ZZ9 Plural Z Alpha")
    equalsIgnoreCase(SECTOR, "zz9 plural z alpha")
    startsWith(SECTOR, "ZZ")
    contains(ph_qual, "U")
String regular expression matching
    matches(SECTOR, "[XYZ] Alpha")
Subset intersection
    _1 && _2
Subset union
    _1 || _2
Other subset combinations
    (in_cluster && has_photometry) || ! _6
Test for non-blank value
    ! NULL_ellipticity


Next Previous Up Contents
Next: Adding User-Defined Functions
Up: Algebraic Expression Syntax
Previous: Instance Methods

TOPCAT - Tool for OPerations on Catalogues And Tables
Starlink User Note253
TOPCAT web page: http://www.starlink.ac.uk/topcat/
Author email: m.b.taylor@bristol.ac.uk
Mailing list: topcat-user@jiscmail.ac.uk