Next Previous Up Contents
Next: Examples
Up: mocshape: Generates Multi-Order Coverage maps from shape values
Previous: mocshape: Generates Multi-Order Coverage maps from shape values

### B.9.1 Usage

The usage of `mocshape` is

       stilts <stilts-flags> mocshape ifmt=<in-format> istream=true|false
                                      icmd=<cmds> moctype=SMOC|TMOC|STMOC
                                      order=0..29
                                      shape=point|circle|polygon|moc-ascii|uniq|stc-s
                                      coords=<expr> torder=0..61
                                      tshape=point|range|day-extent|day-radius|sec-extent|sec-radius
                                      ttype=DecYear|MJD|JD|Unix|Iso8601
                                      t0=<time-expr> t1=<expr>
                                      mocfmt=ascii|fits|json|raw|summary|cds_ascii|cds_json|cds_fits
                                      runner=sequential|parallel|parallel<n>|partest
                                      mocimpl=auto|cds|cds-batch|bits|lists
                                      out=<out-file>
                                      [in=]<table>

If you don't have the `stilts` script installed, write "`java -jar stilts.jar`" instead of "`stilts`" - see Section 3. The available `<stilts-flags>` are listed in Section 2.1. For programmatic invocation, the Task class for this command is `uk.ac.starlink.ttools.task.MocShape`.

Parameter values are assigned on the command line as explained in Section 2.3. They are as follows:

`coords = <expr>` (String)
  Name of the column or an array expression giving the coordinates of the shape in each row to add to the MOC. The type and semantics of this value (the type of shape represented) are defined by the `shape` parameter.

  Note the value of this parameter is a single expression not a list of expressions, so if you need to supply an array value from a list of scalar values you may need to use array construction functions from the Arrays class, e.g. write "`coords=array(ra,dec)`" and not "`coords=ra,dec`".

  This parameter is only used if there is a Space component of the output MOC (`moctype=``smoc` or `stmoc`).

`icmd = <cmds>` (ProcessingStep[])
  Specifies processing to be performed on the input table as specified by parameter `in`, before any other processing has taken place. The value of this parameter is one or more of the filter commands described in Section 6.1. If more than one is given, they must be separated by semicolon characters (";"). This parameter can be repeated multiple times on the same command line to build up a list of processing steps. The sequence of commands given in this way defines the processing pipeline which is performed on the table.

  Commands may alternatively be supplied in an external file, by using the indirection character '`@`'. Thus a value of "`@filename`" causes the file `filename` to be read for a list of filter commands to execute. The commands in the file may be separated by newline characters and/or semicolons, and lines which are blank or which start with a '`#`' character are ignored. A backslash character '`\`' at the end of a line joins it with the following line.

`ifmt = <in-format>` (String)
  Specifies the format of the input table as specified by parameter `in`. The known formats are listed in Section 5.1.1. This flag can be used if you know what format your table is in. If it has the special value `(auto)` (the default), then an attempt will be made to detect the format of the table automatically. This cannot always be done correctly however, in which case the program will exit with an error explaining which formats were attempted. This parameter is ignored for scheme-specified tables.

  [Default: `(auto)`]

`in = <table>` (StarTable)
  The location of the input table. This may take one of the following forms:
  - A filename.
  - A URL.
  - The special value "`-`", meaning standard input. In this case the input format must be given explicitly using the `ifmt` parameter. Note that not all formats can be streamed in this way.
  - A scheme specification of the form `:<scheme-name>:<scheme-args>`.
  - A system command line with either a "`<`" character at the start, or a "`|`" character at the end ("`<syscmd`" or "`syscmd|`"). This executes the given pipeline and reads from its standard output. This will probably only work on unix-like systems.
  In any case, compressed data in one of the supported compression formats (gzip, Unix compress or bzip2) will be decompressed transparently.
`istream = true|false` (Boolean)
  If set true, the input table specified by the `in` parameter will be read as a stream. It is necessary to give the `ifmt` parameter in this case. Depending on the required operations and processing mode, this may cause the read to fail (sometimes it is necessary to read the table more than once). It is not normally necessary to set this flag; in most cases the data will be streamed automatically if that is the best thing to do. However it can sometimes result in less resource usage when processing large files in certain formats (such as VOTable). This parameter is ignored for scheme-specified tables.

  [Default: `false`]

`mocfmt = ascii|fits|json|raw|summary|cds_ascii|cds_json|cds_fits` (MocStreamFormat)
  Determines the output format for the MOC file.

  [Default: `ascii`]

`mocimpl = auto|cds|cds-batch|bits|lists` (MocImpl)
  Controls how the MOC is built. You can generally leave this alone, but if you find performance is slow, or you are running out of memory, it may be worth experimenting with the options.
  - `auto`: Chooses a suitable implementation
  - `cds`: Uses cds.moc classes
  - `cds-batch`: Uses cds.moc classes with batching
  - `bits`: Uses BitSets
  - `lists`: Uses BitSets and lists

  [Default: `auto`]

`moctype = SMOC|TMOC|STMOC` (MocType)
  Identifies whether the output will describe coverage in Space, Time or both. This value will determine what other parameters need to be specified.
  - `SMOC`: Space MOC
  - `TMOC`: Time MOC
  - `STMOC`: Space-Time MOC

  [Default: `SMOC`]

`order = 0..29` (Integer)
  Maximum HEALPix order for the spatial MOC. This defines the maximum resolution of the output coverage map. The angular resolution corresponding to order k is approximately 180/sqrt(3.Pi)/2^k degrees (3520*2^-k arcmin). Permitted values are 0..29 inclusive. The default value is 10, which corresponds to about 3 arcmin.

  This parameter is only used if there is a Space component of the output MOC (`moctype=``smoc` or `stmoc`).

  [Default: `10`]

`out = <out-file>` (uk.ac.starlink.util.Destination)
  The location of the output file. This is usually a filename to write to. If it is equal to the special value "-" the output will be written to standard output.

  [Default: `-`]

`runner = sequential|parallel|parallel<n>|partest` (RowRunner)
  Selects the threading implementation, i.e. to what extent processing is done in parallel. The options are currently:
  - `sequential`: runs using only a single thread
  - `parallel`: runs using multiple threads for large tables, with parallelism given by the number of available processors
  - `parallel<n>`: runs using multiple threads for large tables, with parallelism given by the supplied value `<n>`
  - `partest`: runs using multiple threads even when tables are small (only intended for testing purposes)

  Using parallel processing can speed up execution considerably; however, depending on the I/O operations required, it can also slow it down by disrupting patterns of disk access. If the content of a file is on a solid state disk, or is already in cache for instance because a similar command has been run recently, then `parallel` will probably be faster. However, if the data is being read directly from a spinning disk, for instance because the file is too large to fit in RAM, then `sequential` or `parallel<n>` with a small `<n>` may be faster.

  The value of this parameter should make only very tiny differences to the output table. If you notice significant discrepancies please report them.

  [Default: `parallel`]

`shape = point|circle|polygon|moc-ascii|uniq|stc-s` (AreaMapper)
  Defines the interpretation of the `coords` parameter, i.e. the type of shape defined by the supplied coordinates.

  The options are:

  - `point`: 2-element array (`ra`,`dec`)
  - `circle`: 3-element array (`ra`, `dec`, `r`)
  - `polygon`: 2n-element array (`ra1`,`dec1`, `ra2`,`dec2`,...); a `NaN`,`NaN` pair can be used to delimit distinct polygons.
  - `moc-ascii`: Region description using ASCII MOC syntax; see MOC 2.0 sec 4.3.2. Note there are currently a few issues with MOC plotting, especially for large pixels.
  - `uniq`: Region description representing a single HEALPix cell as defined by an UNIQ value, see MOC 2.0 sec 4.3.1.
  - `stc-s`: Region description using STC-S syntax; see TAP 1.0, section 6. Note there are some restrictions: `<frame>`, `<refpos>` and `<flavor>` metadata are ignored, polygon winding direction is ignored (small polygons are assumed) and the `INTERSECTION` and `NOT` constructions are not supported. The non-standard `MOC` construction is supported.
  If a blank value is supplied (the default) an attempt will be made to guess the shape type given the supplied coordinate column; if no good guess can be made, an error will result.

  This parameter is only used if there is a Space component of the output MOC (`moctype=``smoc` or `stmoc`).

`t0 = <time-expr>` (String)
  Column or expression giving the primary time coordinate for the Time MOC element at this row. The exact meaning of this epoch, perhaps in combination with the `t1` parameter, is determined by the value of the `tshape` parameter. The specified epoch is interpreted according to the value of the `ttype` parameter.

  This parameter is only used if there is a Time component of the output MOC (`moctype=``tmoc` or `stmoc`).

`t1 = <expr>` (String)
  Column or expression giving the secondary time coordinate for the Time MOC element at this row. The meaning of this quantity, in combination with the `t0` parameter, is determined by the value of the `tshape` parameter; for some values of `tshape` it is not required. If this quantity represents an epoch (for instance the end of a time range rather than a duration) it is interpreted according to the value of the `ttype` parameter.

  This parameter is only used if there is a Time component of the output MOC (`moctype=``tmoc` or `stmoc`).

`torder = 0..61` (Integer)
  Maximum order for the time MOC. This defines the maximum temporal resolution for the output map. The time resolution corresponding is 2**(61-torder) microseconds. Permitted values are 0..61 inclusive. The default value is 31, which corresponds to about 1074s. Note however that because of floating point precision issues the limit of precision near the current epoch is around 0.1sec, corresponding to a value of this parameter of about 43.

  This parameter is only used if there is a Time component of the output MOC (`moctype=``tmoc` or `stmoc`).

  [Default: `31`]

`tshape = point|range|day-extent|day-radius|sec-extent|sec-radius` (TimeIntervalType)
  Defines how the `t0` and perhaps `t1` parameters are interpreted to define a time interval.

  The options are:

  - `point`: zero-extent interval; `t0` gives the epoch and `t1` is not used
  - `range`: interval between two given epochs, given by `t0` and `t1`
  - `day-extent`: interval starting at epoch `t0` with an extent given in units of day by `t1`
  - `day-radius`: interval centered on epoch `t0` with a half-extent given in units of day by `t1`
  - `sec-extent`: interval starting at epoch `t0` with an extent given in units of second by `t1`
  - `sec-radius`: interval centered on epoch `t0` with a half-extent given in units of second by `t1`

  This parameter is only used if there is a Time component of the output MOC (`moctype=``tmoc` or `stmoc`).

  [Default: `point`]

`ttype = DecYear|MJD|JD|Unix|Iso8601` (TimeMapper)
  Selects the form in which epoch values are specified. This applies to the `t0` and possibly the `t1` parameters.

  The options are:

  - `DecYear`: Years since 0 AD
  - `MJD`: Modified Julian Date
  - `JD`: Julian Day
  - `Unix`: Seconds since midnight 1 Jan 1970
  - `Iso8601`: ISO 8601 string
  If left blank, a guess will be attempted depending on the value supplied for the `t0` parameter.

  This parameter is only used if there is a Time component of the output MOC (`moctype=``tmoc` or `stmoc`).

Next Previous Up Contents
Next: Examples
Up: mocshape: Generates Multi-Order Coverage maps from shape values
Previous: mocshape: Generates Multi-Order Coverage maps from shape values

STILTS - Starlink Tables Infrastructure Library Tool Set
Starlink User Note256
STILTS web page: http://www.starlink.ac.uk/stilts/
Author email: m.b.taylor@bristol.ac.uk
Mailing list: topcat-user@jiscmail.ac.uk