- Standard = 0
- Standard, optimizes i/o by using large tiles (128 kB)
- FastMosaic = 1
- 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
// 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, MSTileLayout::FastMosaic, "ATCA"); cout << "tileShape = "<< tileShape << endl; // Output is: tileShape = (4,11,15)
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.
same as above, but pick standard nIfr (number of interferometers) for named array and default nInt.