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

### 7.10 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.9) 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