casa  5.7.0-16
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Static Public Member Functions | List of all members
casacore::MSTileLayout Class Reference

An helper class for deciding on tile shapes in MeasurementSets. More...

#include <MSTileLayout.h>

Public Types

enum  ObsType {
  Standard,
  FastMosaic
}
 

Static Public Member Functions

static IPosition tileShape (const IPosition &dataShape, Int observationType=Standard, Int nIfr=0, Int nInt=1)
 Suggest tile shape based on the data shape, the observing mode, the number of interferometers and the number of integrations per pointing. More...
 
static IPosition tileShape (const IPosition &dataShape, Int observationType, const String &array)
 same as above, but pick standard nIfr (number of interferometers) for named array and default nInt. More...
 

Detailed Description

An helper class for deciding on tile shapes in MeasurementSets.

Intended use:

Public interface

Prerequisite

Etymology

MSTileLayout stands for the MeasurementSet tile layout chooser

Synopsis

MSTileLayout is a class to determine an appropriate tile shape choice for the MeasurementSet DATA columns, based on the shape of the DATA, the observing mode and the number of interferometers

Example

// The following code returns the tile shape given the DATA shape,
// the observing type and the array name.
IPosition dataShape(2,4,1024); // 4 polarizations, 1024 channels
IPosition tileShape = MSTileLayout::tileShape(dataShape,
"ATCA");
cout << "tileShape = "<< tileShape << endl;
// Output is:
tileShape = (4,11,15)

Motivation

This class is intended to replace bits of code scattered throughout various fillers and collect all tiling decisions in one place.

Definition at line 82 of file MSTileLayout.h.

Member Enumeration Documentation

Enumerator
Standard 

Standard, optimizes i/o by using large tiles (128 kB)

FastMosaic 

Fast Mosaic, specify this if you have many (>30) fields and you spend only a few integrations per pointing before moving on.

Avoids useless i/o caching by using small tiles

Definition at line 85 of file MSTileLayout.h.

Member Function Documentation

static IPosition casacore::MSTileLayout::tileShape ( const IPosition dataShape,
Int  observationType = Standard,
Int  nIfr = 0,
Int  nInt = 1 
)
static

Suggest tile shape based on the data shape, the observing mode, the number of interferometers and the number of integrations per pointing.

First argument should be a 2-dimensional IPosition with the data matrix shape. The second argument is one of the enums above specifying the type of observation. The third argument is an estimate of the number of interferometers present throughout most of the data. The last argument is an estimate of the number of integrations per pointing.

The last three arguments only need to be specified if the observing mode is non Standard. Basically the choice is between large tiles for efficient I/O and small tiles when a common access pattern (field_id order) would result in very inefficient caching. The latter occurs for large tiles if the field_id changes rapidly AND there are many fields AND the data matrix is small (e.g., continuum mosaic of a large area with only one or two integrations per pointing). Note that accessing fast mosaic data with large tiles in field_id order can be 10-100 times slower than sequential access.

static IPosition casacore::MSTileLayout::tileShape ( const IPosition dataShape,
Int  observationType,
const String array 
)
static

same as above, but pick standard nIfr (number of interferometers) for named array and default nInt.


The documentation for this class was generated from the following file: