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, andSON.- 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, orundefinedif not found.- Return type:
Frame | undefined
const frame = lf.getFrame('MAIN'); if (!frame) throw new Error('Frame not found');
- LogicalFile.getChannel(name)
Find a
ChannelInfoby name (case-insensitive). Returns the first match when multiple copies of the same channel name exist (e.g. from different recording passes — use thechannelsMap directly for precise lookups).- Arguments:
name (
string) – Channel name to search for.
- Returns:
The matching
ChannelInfo, orundefinedif not found.- Return type:
ChannelInfo | undefined
const gr = lf.getChannel('GR'); console.log('GR units:', gr?.units);