- Home
- About NRAO
- Science
- Highlights
- Capabilities
- Synergies
- Science Program
- Key Science
- Proposal Review Process
- Referee Categories
- Normalizing Referee Ratings
- Triage for Proposals
- Proposal Selection Committee
- Director's Review
- BeSSeL Survey (Bar and Spiral Structure Legacy Survey)
- GN20: A Unique Laboratory for Studying Early, Clustered Massive Galaxy Formation
- Grain Growth and Sub-structure in Proto-planetary Disks
- Exotic Explosions, Eruptions, and Disruptions: A New Transient Phase-Space
- Precise Masses of Supermassive Black Holes in Nearby Active Galaxies
- Towards a VLBA Resolution of the Pleiades Distance Controversy
- The Megamaser Comsology Project
- Detecting nHz Gravitational Radiation using a Pulsar Timing Array
- An Unbiased K, Ka, and Q-band Absorption Survey at z = 0.88582 towards B1830-210
- The GBT PRIMOS Project: Searching for our Molecular Origins
- Decadal Survey
- Meetings & Colloquia
- Image Gallery
- Research Facilities
- ALMA/NAASC
- EVLA
- About EVLA
- Early Science
- HelpDesk
- Observing Proposals
- Observing
- Schedules
- Software & Tools
- Data Archive
- Financial Support
- Scientific Visitor Info
- People
- Publications
- EVLA Project Status
- GB
- VLBA
- NTC
- Observing
- Opportunities
- About CASA
- CASA News
- CASA Releases
- Obtaining CASA
- Using CASA
- Getting Help
- Tutorials and Training
- CASA at NRAO
Search CASA
Lattice Expression Language
Introduction
The Lattice Expression Language (LEL) makes it possible to do arithmetic on lattices (in particular on images [which are just lattices plus coordinates]) in AIPS++. An expression can be seen as a lattice (or image) in itself. It can be used in any operation where a normal image is used.
To summarize, the following functionality is supported:
- The common mathematical, comparison, and relational operators.
- An extensive list of mathematical and logical functions.
- Mixed data type arithmetic and automatic data type promotion.
- Support of image masks.
- Masking using boolean expressions.
- Handling of masks in an expression.
- Support of image regions.
- Interface from both Glish and C++.
The first section explains the syntax. The last sections show the interface to LEL using Glish or C++. The Glish interface makes it possible to embed Glish variables and expressions in a LEL command. At the end some examples are given. If you like, you can go straight to the examples and hopefully immediately be able to do some basic things.
LEL operates on lattices, which are a generalization
of arrays. As said above a particular type of lattice is an image; they
will be used most often. Because lattices can be very large and
usually reside on disk, an
expression is only evaluated when a chunk of its data is requested.
This is similar to reading only the requested chunk of data from a disk
file.
LEL is quite efficient and can therefore be used well
in C++ and glish code. Note however, that it can never be as efficient as
carefully constructed C++ code.
Note 216
gives a
detailed description how LEL is implemented using various C++ classes.