Comments (7)
Hi,
When the information record is structured (tm), the purpose of the mnemonic field is to indicate which column in the structured table the component block belongs in. Hence the repeated mnemonics. This entire structuring of components is a bit wierd, and the specification doesn't offer any good explanation of the semantic meaning of it. If you want to have a closer look it's defined in chapter 3.3.1.2 in the spec
from dlisio.
I think you want the components as is not formatted as a table. They are way more primitive than dlis parameters tho
from dlisio.
Hi @ErlendHaa,
Extracting details from components returned 6800 rows for each logical file. Most of which looks like repeated data for me.
Mnemonics 'PUNI' and 'TUNI' are repeated for around 750 times.
Are there any documentation available explaining this structure?
Code
def extract_information_record_data(logical_file_index, logical_file):
global g_information_record_index
g_information_record_index = 0
for information_record in logical_file.wellsite_data():
extract_data(logical_file_index, information_record)
for information_record in logical_file.tool_string_info():
extract_data(logical_file_index, information_record)
for information_record in logical_file.job_identification():
extract_data(logical_file_index, information_record)
def extract_data(logical_file_index, information_record):
global g_information_record_data
global g_information_record_index
for component in information_record.components():
mnemonic = component.mnemonic
value = component.component
units = component.units
component_type = component.type_nb
component_size = component.size
g_information_record_data = g_information_record_data.append({
'LOGICAL_FILE_INDEX': logical_file_index,
'INFORMATION_RECORD_INDEX': g_information_record_index,
'MNEMONIC': mnemonic,
'VALUE': value,
'UNITS': units,
'COMPONENT_TYPE': component_type,
'COMPONENT_SIZE': component_size
},
ignore_index=True)
g_information_record_index = g_information_record_index + 1
from dlisio.
Hi @ErlendHaa,
I read through the chapter 3.3.1.2. Now I guess I understand how the data is structured.
Thanks Again,
Achyuth
from dlisio.
That's right. This is also a good illustration of them, as it shows how multiple Component Blocks are combined into one row in the table. And I guess one row is sorta analogues to a DLIS parameter.
We might want to update the documentation on this a bit. Maybe even add some support features that extract each "row" as an object (dict?):
param = {
'MNEM' : 'FBSTB',
'STAT' : 'ALLO',
'HEIG' : 0,
'VOLU' : 2.125,
'WEIG' : 468.1,
'PRES' : 0,
'TEMP' : 350,
}
from dlisio.
For me it looks like, LIS has more detailed parameter information when compared to DLIS.
For DLIS every logical file has hundreds of parameter information, and the parameter_values are arrays (below screenshot).
For LIS I feel it is more specific, like for each block and sub-block (though I don't really understand what a block is).
from dlisio.
Hi,
This can be closed. I was able to successfully extract the information record data .
-Achyuth
from dlisio.
Related Issues (20)
- How to extract 'Sequence' and 'Producer code' details from an LIS file? HOT 1
- Rename Datasets HOT 1
- Missing "index_mnem" in the Data Format Specification Record (DFSR) HOT 5
- logical_file.data_format_specs() throwing AttributeError 'dlisio.core.lis_stream' object has no attribute 'read_records' HOT 8
- How to extract dlisio.lis.InformationRecord HOT 1
- One channel name is missing while extracting channels from logical_file HOT 5
- Error while extracting curves, "Data must be 1-dimensional" HOT 6
- Building Dlisio on a Macbook M1 HOT 1
- pip install dlisio error HOT 1
- Incorrect format version in Visible Record HOT 2
- How to access header information in unstructured LIS files? HOT 2
- Version 0.3.6 will not build on Alpine 3.16/gcc 11.2.1 HOT 4
- Is there a way to write? HOT 2
- Feature request: DLISIO support reading from byte buffers
- Issue with installing from pip om M1 Mac HOT 5
- Accessing First & Last Reading of a Tool/Curves HOT 2
- Installation on Alpine linux HOT 3
- fshort data type help HOT 2
- DeprecationWarning: pkg_resources is deprecated as an API. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dlisio.