Skip to content

Instantly share code, notes, and snippets.

@kinverarity1
Last active September 24, 2020 09:49
Show Gist options
  • Save kinverarity1/92f00b781472512349a9312d75fd4c33 to your computer and use it in GitHub Desktop.
Save kinverarity1/92f00b781472512349a9312d75fd4c33 to your computer and use it in GitHub Desktop.
@shakasaki hack-y example of getting data out of a LAS 3 file pending proper LAS 3 support in lasio
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 78,
"metadata": {},
"outputs": [],
"source": [
"import re\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"from matplotlib import ticker as mticker\n",
"import lasio"
]
},
{
"cell_type": "code",
"execution_count": 76,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'0.28.dev49+gebde7cd'"
]
},
"execution_count": 76,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"lasio.__version__"
]
},
{
"cell_type": "code",
"execution_count": 77,
"metadata": {},
"outputs": [],
"source": [
"plt.rcParams['figure.dpi'] = 200"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"fn = r'c:\\users\\kinverarity\\downloads\\example_file.las'"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"las = lasio.read(fn)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dict_keys(['Version', 'Well', 'Curves', 'Parameter', 'Other', 'LOG_PARAMETER', 'LOG_DEFINITION', 'LOG_DATA | LOG_DEFINITION'])"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"las.sections.keys()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Find number of curves/columns - needed for reshaping"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[HeaderItem(mnemonic=\"DEPTH\", unit=\"M\", value=\"\", descr=\"Depth {F}\"),\n",
" HeaderItem(mnemonic=\"BIPS[1]\", unit=\"\", value=\"\", descr=\"BIPS {AS;0.0°}\"),\n",
" HeaderItem(mnemonic=\"BIPS[2]\", unit=\"\", value=\"\", descr=\"BIPS {AS;1.0°}\"),\n",
" HeaderItem(mnemonic=\"BIPS[3]\", unit=\"\", value=\"\", descr=\"BIPS {AS;2.0°}\"),\n",
" HeaderItem(mnemonic=\"BIPS[4]\", unit=\"\", value=\"\", descr=\"BIPS {AS;3.0°}\")]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"las.sections['LOG_DEFINITION'][:5]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"n_curves = len(las.sections['LOG_DEFINITION'])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Show an example of how the data section is parsed (obviously incorrectly sensed as a header section)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[HeaderItem(mnemonic=\"4:1\", unit=\"00000,73.56.5,63.38.9,0.0.0,0.0.0,73.56.31,...),\n",
" HeaderItem(mnemonic=\"4:2\", unit=\"00098,73.56.5,63.38.9,0.0.0,0.0.0,73.56.31,...)]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"las.sections['LOG_DATA | LOG_DEFINITION'][:4]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Parse the data as it is"
]
},
{
"cell_type": "code",
"execution_count": 91,
"metadata": {},
"outputs": [],
"source": [
"pattern = re.compile(r'(.*?)(:\\d+)?$')\n",
"\n",
"def iter_lines(las, section_name):\n",
" for item in las.sections[section_name]:\n",
" m = pattern.match(item.mnemonic)\n",
" line = m.group(1) + \".\" + item.unit\n",
" for value in line.split(','):\n",
" yield value\n",
"\n",
"# Read as strings due to e.g. 73.56.5 - otherwise this can be e.g.\n",
"# dtype = float\n",
"dtype = (np.unicode_, 32)\n",
"\n",
"arr = np.fromiter(iter_lines(las, 'LOG_DATA | LOG_DEFINITION'), dtype)\n",
"arr = arr.reshape((int(len(arr) / n_curves), n_curves))"
]
},
{
"cell_type": "code",
"execution_count": 92,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(2, 361)"
]
},
"execution_count": 92,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"arr.shape"
]
},
{
"cell_type": "code",
"execution_count": 93,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([['4.00000', '73.56.5', '63.38.9', '0.0.0', '0.0.0', '73.56.31',\n",
" '69.47.24', '76.50.35', '66.45.17', '69.50.15', '62.41.12',\n",
" '61.47.25', '59.46.19', '56.31.3', '88.57.29', '79.53.19',\n",
" '69.54.17', '57.38.0', '61.52.9', '44.31.5', '46.39.6',\n",
" '57.51.15', '77.68.44', '72.57.34', '64.50.24', '58.41.11',\n",
" '78.56.19', '87.70.44', '70.49.11', '98.84.57', '63.51.29',\n",
" '36.35.8', '72.69.33', '86.75.37', '94.81.51', '67.51.34',\n",
" '113.94.66', '67.55.29', '64.63.36', '0.0.0', '0.0.0',\n",
" '104.88.39', '107.103.58', '73.64.32', '56.55.19', '35.32.5',\n",
" '51.50.23', '25.27.3', '74.59.37', '0.0.0', '0.0.0', '65.48.18',\n",
" '0.0.0', '72.54.33', '93.70.52', '0.0.0', '91.65.26', '66.36.0',\n",
" '73.53.14', '94.76.34', '105.85.50', '89.75.52', '76.64.43',\n",
" '83.70.37', '74.66.38', '81.74.46', '57.46.21', '104.98.60',\n",
" '89.86.53', '73.65.33', '106.83.62', '95.82.54', '103.74.54',\n",
" '102.79.48', '127.99.54', '130.107.67', '0.0.0', '0.0.0',\n",
" '0.0.0', '0.0.0', '194.165.128', '102.82.38', '81.63.24',\n",
" '67.52.33', '80.62.43', '90.84.56', '69.65.36', '22.20.0',\n",
" '66.62.29', '75.80.44', '73.72.38', '81.77.38', '118.102.68',\n",
" '84.67.39', '89.69.36', '100.79.42', '83.55.26', '0.0.0',\n",
" '0.0.0', '0.0.0', '0.0.0', '91.72.53', '70.46.26', '82.51.30',\n",
" '119.88.59', '118.98.73', '124.105.78', '80.59.44', '97.71.36',\n",
" '104.83.50', '116.88.57', '54.22.0', '117.93.52', '116.76.45',\n",
" '137.100.74', '148.118.90', '100.89.64', '65.55.28', '46.33.16',\n",
" '69.63.29', '36.38.12', '0.0.0', '86.67.34', '92.79.43', '0.0.0',\n",
" '58.47.11', '0.0.0', '0.0.0', '43.43.18', '44.41.26', '60.50.16',\n",
" '55.44.13', '25.25.0', '63.46.22', '86.71.43', '63.55.5',\n",
" '95.91.34', '89.86.49', '64.48.23', '62.43.14', '94.77.56',\n",
" '71.62.35', '60.50.25', '63.55.29', '83.69.45', '86.76.49',\n",
" '98.84.54', '76.72.43', '41.44.11', '92.72.48', '102.83.60',\n",
" '114.85.65', '113.90.63', '71.53.26', '83.76.36', '90.79.47',\n",
" '74.82.39', '82.84.34', '88.82.45', '100.91.56', '82.70.29',\n",
" '77.69.26', '102.82.60', '122.100.70', '91.75.51', '72.63.45',\n",
" '69.66.45', '85.73.46', '124.95.67', '133.112.86', '109.97.67',\n",
" '87.71.60', '0.0.0', '0.0.0', '140.117.96', '119.88.56',\n",
" '133.102.76', '236.203.182', '180.151.129', '142.117.84',\n",
" '0.0.0', '117.110.93', '136.116.91', '112.99.77', '85.86.59',\n",
" '59.57.31', '104.91.66', '131.109.94', '71.59.37', '158.151.128',\n",
" '0.0.0', '109.94.69', '0.0.0', '80.58.46', '112.92.81',\n",
" '54.42.26', '48.37.34', '0.0.0', '138.127.101', '199.161.129',\n",
" '0.0.0', '111.87.83', '90.68.58', '136.126.87', '203.192.145',\n",
" '183.161.123', '164.148.114', '93.77.45', '103.88.60',\n",
" '149.135.100', '158.137.97', '176.165.127', '140.116.89',\n",
" '89.71.62', '0.0.0', '151.133.97', '175.154.114', '179.160.127',\n",
" '162.145.114', '162.157.125', '191.180.133', '214.199.146',\n",
" '175.164.115', '207.191.151', '166.148.115', '156.130.103',\n",
" '198.173.140', '215.184.151', '185.163.134', '191.172.134',\n",
" '200.186.140', '0.0.0', '90.83.60', '188.182.130', '200.177.129',\n",
" '208.193.143', '159.142.108', '184.164.123', '210.188.142',\n",
" '181.164.134', '0.0.0', '106.93.58', '72.62.34', '83.69.39',\n",
" '140.132.108', '129.116.85', '118.111.72', '132.120.90',\n",
" '120.100.70', '175.158.120', '162.135.109', '149.122.100',\n",
" '198.174.135', '163.138.101', '0.0.0', '0.0.0', '197.179.140',\n",
" '185.164.137', '146.122.105', '171.142.121', '184.159.130',\n",
" '209.192.149', '226.210.153', '213.191.146', '208.191.153',\n",
" '245.229.185', '160.146.97', '199.179.134', '224.205.165',\n",
" '162.142.99', '60.47.15', '160.136.119', '155.135.110',\n",
" '157.137.115', '185.170.143', '190.172.136', '230.211.167',\n",
" '207.191.160', '244.225.190', '224.208.173', '223.214.179',\n",
" '0.0.0', '0.0.0', '149.124.89', '158.138.108', '145.129.96',\n",
" '176.161.122', '192.174.142', '229.201.174', '74.58.34',\n",
" '122.113.86', '195.178.153', '229.214.182', '192.183.133',\n",
" '143.136.93', '170.157.117', '0.0.0', '174.155.122',\n",
" '186.158.134', '124.106.75', '178.164.121', '116.100.72',\n",
" '130.111.87', '121.104.82', '139.127.104', '0.0.0', '103.90.73',\n",
" '159.134.122', '182.165.132', '173.150.114', '217.193.158',\n",
" '210.195.163', '160.143.111', '229.212.166', '168.148.102',\n",
" '171.147.107', '113.85.52', '184.157.120', '149.119.73',\n",
" '134.105.71', '227.193.163', '201.182.142', '0.0.0', '123.92.44',\n",
" '197.153.120', '182.144.110', '150.122.73', '141.117.74',\n",
" '187.163.124', '121.87.52', '110.85.52', '162.135.98',\n",
" '140.109.73', '105.81.38', '126.109.66', '125.109.62', '0.0.0',\n",
" '101.69.38', '151.106.73', '0.0.0', '98.65.41', '86.61.26',\n",
" '49.42.0', '55.60.11', '0.0.0', '49.40.11', '0.0.0', '94.61.33',\n",
" '94.59.24', '88.60.27', '53.45.9', '53.39.8', '53.43.4',\n",
" '62.61.20', '56.54.14', '37.26.7', '0.0.0', '92.67.33',\n",
" '85.52.29', '57.40.17', '90.75.29'],\n",
" ['4.00098', '73.56.5', '63.38.9', '0.0.0', '0.0.0', '73.56.31',\n",
" '69.47.24', '76.50.35', '66.45.17', '69.50.15', '62.41.12',\n",
" '61.47.25', '59.46.19', '56.31.3', '88.57.29', '79.53.19',\n",
" '69.54.17', '57.38.0', '61.52.9', '44.31.5', '46.39.6',\n",
" '57.51.15', '77.68.44', '72.57.34', '64.50.24', '58.41.11',\n",
" '78.56.19', '87.70.44', '70.49.11', '98.84.57', '63.51.29',\n",
" '36.35.8', '72.69.33', '86.75.37', '94.81.51', '67.51.34',\n",
" '113.94.66', '67.55.29', '64.63.36', '0.0.0', '0.0.0',\n",
" '104.88.39', '107.103.58', '73.64.32', '56.55.19', '35.32.5',\n",
" '51.50.23', '25.27.3', '74.59.37', '0.0.0', '0.0.0', '65.48.18',\n",
" '0.0.0', '72.54.33', '93.70.52', '0.0.0', '91.65.26', '66.36.0',\n",
" '73.53.14', '94.76.34', '105.85.50', '89.75.52', '76.64.43',\n",
" '83.70.37', '74.66.38', '81.74.46', '57.46.21', '104.98.60',\n",
" '89.86.53', '73.65.33', '106.83.62', '95.82.54', '103.74.54',\n",
" '102.79.48', '127.99.54', '130.107.67', '0.0.0', '0.0.0',\n",
" '0.0.0', '0.0.0', '194.165.128', '102.82.38', '81.63.24',\n",
" '67.52.33', '80.62.43', '90.84.56', '69.65.36', '22.20.0',\n",
" '66.62.29', '75.80.44', '73.72.38', '81.77.38', '118.102.68',\n",
" '84.67.39', '89.69.36', '100.79.42', '83.55.26', '0.0.0',\n",
" '0.0.0', '0.0.0', '0.0.0', '91.72.53', '70.46.26', '82.51.30',\n",
" '119.88.59', '118.98.73', '124.105.78', '80.59.44', '97.71.36',\n",
" '104.83.50', '116.88.57', '54.22.0', '117.93.52', '116.76.45',\n",
" '137.100.74', '148.118.90', '100.89.64', '65.55.28', '46.33.16',\n",
" '69.63.29', '36.38.12', '0.0.0', '86.67.34', '92.79.43', '0.0.0',\n",
" '58.47.11', '0.0.0', '0.0.0', '43.43.18', '44.41.26', '60.50.16',\n",
" '55.44.13', '25.25.0', '63.46.22', '86.71.43', '63.55.5',\n",
" '95.91.34', '89.86.49', '64.48.23', '62.43.14', '94.77.56',\n",
" '71.62.35', '60.50.25', '63.55.29', '83.69.45', '86.76.49',\n",
" '98.84.54', '76.72.43', '41.44.11', '92.72.48', '102.83.60',\n",
" '114.85.65', '113.90.63', '71.53.26', '83.76.36', '90.79.47',\n",
" '74.82.39', '82.84.34', '88.82.45', '100.91.56', '82.70.29',\n",
" '77.69.26', '102.82.60', '122.100.70', '91.75.51', '72.63.45',\n",
" '69.66.45', '85.73.46', '124.95.67', '133.112.86', '109.97.67',\n",
" '87.71.60', '0.0.0', '0.0.0', '140.117.96', '119.88.56',\n",
" '133.102.76', '236.203.182', '180.151.129', '142.117.84',\n",
" '0.0.0', '117.110.93', '136.116.91', '112.99.77', '85.86.59',\n",
" '59.57.31', '104.91.66', '131.109.94', '71.59.37', '158.151.128',\n",
" '0.0.0', '109.94.69', '0.0.0', '80.58.46', '112.92.81',\n",
" '54.42.26', '48.37.34', '0.0.0', '138.127.101', '199.161.129',\n",
" '0.0.0', '111.87.83', '90.68.58', '136.126.87', '203.192.145',\n",
" '183.161.123', '164.148.114', '93.77.45', '103.88.60',\n",
" '149.135.100', '158.137.97', '176.165.127', '140.116.89',\n",
" '89.71.62', '0.0.0', '151.133.97', '175.154.114', '179.160.127',\n",
" '162.145.114', '162.157.125', '191.180.133', '214.199.146',\n",
" '175.164.115', '207.191.151', '166.148.115', '156.130.103',\n",
" '198.173.140', '215.184.151', '185.163.134', '191.172.134',\n",
" '200.186.140', '0.0.0', '90.83.60', '188.182.130', '200.177.129',\n",
" '208.193.143', '159.142.108', '184.164.123', '210.188.142',\n",
" '181.164.134', '0.0.0', '106.93.58', '72.62.34', '83.69.39',\n",
" '140.132.108', '129.116.85', '118.111.72', '132.120.90',\n",
" '120.100.70', '175.158.120', '162.135.109', '149.122.100',\n",
" '198.174.135', '163.138.101', '0.0.0', '0.0.0', '197.179.140',\n",
" '185.164.137', '146.122.105', '171.142.121', '184.159.130',\n",
" '209.192.149', '226.210.153', '213.191.146', '208.191.153',\n",
" '245.229.185', '160.146.97', '199.179.134', '224.205.165',\n",
" '162.142.99', '60.47.15', '160.136.119', '155.135.110',\n",
" '157.137.115', '185.170.143', '190.172.136', '230.211.167',\n",
" '207.191.160', '244.225.190', '224.208.173', '223.214.179',\n",
" '0.0.0', '0.0.0', '149.124.89', '158.138.108', '145.129.96',\n",
" '176.161.122', '192.174.142', '229.201.174', '74.58.34',\n",
" '122.113.86', '195.178.153', '229.214.182', '192.183.133',\n",
" '143.136.93', '170.157.117', '0.0.0', '174.155.122',\n",
" '186.158.134', '124.106.75', '178.164.121', '116.100.72',\n",
" '130.111.87', '121.104.82', '139.127.104', '0.0.0', '103.90.73',\n",
" '159.134.122', '182.165.132', '173.150.114', '217.193.158',\n",
" '210.195.163', '160.143.111', '229.212.166', '168.148.102',\n",
" '171.147.107', '113.85.52', '184.157.120', '149.119.73',\n",
" '134.105.71', '227.193.163', '201.182.142', '0.0.0', '123.92.44',\n",
" '197.153.120', '182.144.110', '150.122.73', '141.117.74',\n",
" '187.163.124', '121.87.52', '110.85.52', '162.135.98',\n",
" '140.109.73', '105.81.38', '126.109.66', '125.109.62', '0.0.0',\n",
" '101.69.38', '151.106.73', '0.0.0', '98.65.41', '86.61.26',\n",
" '49.42.0', '55.60.11', '0.0.0', '49.40.11', '0.0.0', '94.61.33',\n",
" '94.59.24', '88.60.27', '53.45.9', '53.39.8', '53.43.4',\n",
" '62.61.20', '56.54.14', '37.26.7', '0.0.0', '92.67.33',\n",
" '85.52.29', '57.40.17', '90.75.29']], dtype='<U32')"
]
},
"execution_count": 93,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"arr"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Parse the data as RGB period-separated data."
]
},
{
"cell_type": "code",
"execution_count": 97,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"rgb array shape: (2, 360, 3)\n"
]
},
{
"data": {
"text/plain": [
"array([[[73, 56, 5],\n",
" [63, 38, 9],\n",
" [ 0, 0, 0],\n",
" ...,\n",
" [85, 52, 29],\n",
" [57, 40, 17],\n",
" [90, 75, 29]],\n",
"\n",
" [[73, 56, 5],\n",
" [63, 38, 9],\n",
" [ 0, 0, 0],\n",
" ...,\n",
" [85, 52, 29],\n",
" [57, 40, 17],\n",
" [90, 75, 29]]])"
]
},
"execution_count": 97,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"pattern = re.compile(r'(.*?)(:\\d+)?$')\n",
"\n",
"def iter_lines(las, section_name):\n",
" for item in las.sections[section_name]:\n",
" m = pattern.match(item.mnemonic)\n",
" line = m.group(1) + \".\" + item.unit\n",
" i = 0\n",
" for value in line.split(','):\n",
" # The first column of each line is the index (depth) value:\n",
" if i == 0:\n",
" i += 1\n",
" yield float(value)\n",
" \n",
" # The other columns are \"x.y.z\" where x is red, y is green, and z is blue\n",
" # as integers, but we return them as floats here for convenience.\n",
" else:\n",
" for rgb_value in value.split('.'):\n",
" yield float(rgb_value)\n",
" i += 1\n",
"\n",
"dtype = float\n",
"\n",
"arr = np.fromiter(iter_lines(las, 'LOG_DATA | LOG_DEFINITION'), dtype)\n",
"n_cols = 1 + ((n_curves - 1) * 3)\n",
"arr = arr.reshape((int(len(arr) / n_cols), n_cols))\n",
"\n",
"# The first column is the index. We will store this separately and reshape\n",
"# the main array so that it is M x N x 3, which is how numpy and matplotlib\n",
"# understand RGB image data.\n",
"index = arr[:, 0]\n",
"rgb = arr[:, 1:].astype(int)\n",
"rgb = rgb.reshape((rgb.shape[0], int(rgb.shape[1] / 3), 3))\n",
"print(f\"rgb array shape: {rgb.shape}\")\n",
"rgb"
]
},
{
"cell_type": "code",
"execution_count": 98,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([4. , 4.00098])"
]
},
"execution_count": 98,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"index"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 0, 'Curve #')"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1200x800 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.imshow(rgb, aspect=1e5, extent=[0, rgb.shape[1], index[-1], index[0]], origin='upper', )\n",
"plt.gca().yaxis.set_major_formatter(mticker.FormatStrFormatter('%f'))\n",
"plt.ylabel('Index (1st column)')\n",
"plt.xlabel('Curve #')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
@shakasaki
Copy link

One question: I checked out the latest version of lasio from git but it only seems to be version '0.25.1'
How can I get the latest version that you use here? My version does not behave the same way..

@kinverarity1
Copy link
Author

kinverarity1 commented Sep 11, 2020

Try running pip install git+https://github.com/kinverarity1/lasio.

Collecting git+https://github.com/kinverarity1/lasio
  Cloning https://github.com/kinverarity1/lasio to c:\users\kinverarity\appdata\local\temp\pip-req-build-i_kd81cz
Requirement already satisfied: numpy in c:\devapps\kinverarity\python\miniconda3\envs\gwdev\lib\site-packages (from lasio==0.28.dev49+gebde7cd) (1.19.1)
Building wheels for collected packages: lasio
  Building wheel for lasio (setup.py) ... done
  Created wheel for lasio: filename=lasio-0.28.dev49+gebde7cd-py3-none-any.whl size=38741 sha256=c661b3e7d37f891e1fda9021c218c0a9e3a051e45bbbbf1c90801f5303231ba6
  Stored in directory: C:\Users\kinverarity\AppData\Local\Temp\pip-ephem-wheel-cache-ilstd25q\wheels\88\48\37\167228847b9a90ba8f9a682a642fa2877619605e5087f2cfff
Successfully built lasio
Installing collected packages: lasio
Successfully installed lasio-0.28.dev49+gebde7cd

And then run this command to confirm:

> python -c "import lasio; print(lasio.__version__)"
0.28.dev49+gebde7cd

@kinverarity1
Copy link
Author

@shakasaki I have updated the notebook above to parse it as RGB data

@kinverarity1
Copy link
Author

(For future reference and readers, this gist is the result of a discussion in the lasio issue tracker here: kinverarity1/lasio#5)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment