LogicalFile

A LogicalFile groups all channels, frames, and metadata that belong to a single acquisition sequence within one .dlis file. Access via DLISFile.logicalFiles.

Properties

LogicalFile.id

File identifier string from the FILE-HEADER EFLR. Typically a run label or sequence identifier assigned by the acquisition system.

Type:

string

LogicalFile.origin

Well and acquisition metadata parsed from the ORIGIN EFLR. When the ORIGIN EFLR is unreadable (a known issue with certain vendor-encoded files), the library automatically falls back to the PARAMETER EFLR and looks up the standard mnemonics WN, FN, CN, WI, RUN, and SON.

Type:

OriginInfo | null

See OriginInfo for the full list of fields.

LogicalFile.channels

All channels registered in this logical file, keyed by their OBNAME triplet string "origin/copy/name".

Type:

Map<string, ChannelInfo>

for (const [key, ch] of lf.channels) {
  console.log(ch.name, ch.units, ch.dimension);
}
LogicalFile.frames

All frames registered in this logical file, keyed by "origin/copy/name".

Type:

Map<string, Frame>

LogicalFile.parameters

Well parameters from the PARAMETER EFLR — KB elevation, TD, BHT, mud weight, bit size, and any other scalar metadata stored in the file.

Type:

ParameterInfo[]

for (const p of lf.parameters) {
  console.log(p.name, '=', p.values, p.units);
}

Methods

LogicalFile.getFrame(name)

Find a Frame by name (case-insensitive). Also matches the trailing component of the OBNAME key, so both "MAIN" and "1/0/MAIN" find the same frame.

Arguments:
  • name (string) – Frame name to search for.

Returns:

The matching Frame, or undefined if not found.

Return type:

Frame | undefined

const frame = lf.getFrame('MAIN');
if (!frame) throw new Error('Frame not found');
LogicalFile.getChannel(name)

Find a ChannelInfo by name (case-insensitive). Returns the first match when multiple copies of the same channel name exist (e.g. from different recording passes — use the channels Map directly for precise lookups).

Arguments:
  • name (string) – Channel name to search for.

Returns:

The matching ChannelInfo, or undefined if not found.

Return type:

ChannelInfo | undefined

const gr = lf.getChannel('GR');
console.log('GR units:', gr?.units);