AREA Plotting Configuration
Module for plotting areas of particular patterns wirth well log data.
Created on 1 Apr 2011
Note on patterns in XML file in: formats\IWWPatterns.xml
There are elements thus:
<Bits>/+7/7v/u/+7/7gAA7/7v/u/+7/7v/gAA</Bits>
<PatternHeight>12</PatternHeight>
<PatternWidth>15</PatternWidth>
Frequency analysis shows that the characters used are ‘+’, ‘/’, A-Z, a-z, 0-9
so this looks like base64 encoded. Length is always 32 chars (256 bits).
Pattern size suggests 12*15=180 bits.
Examples:
>>> base64.b64decode(b'/+7/7v/u/+7/7gAA7/7v/u/+7/7v/gAA')
b'ÿîÿîÿîÿîÿîïþïþïþïþïþ'
<Description>Coal-LigNite</Description>
>>> base64.b64decode(b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
b''
<Description>Void</Description>
>>> base64.b64decode(b'//7//v/+//7//v/+//7//v/+//7//v/+')
b'ÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþ'
>>> base64.b64decode(b'2Hzfkrnudnzvst3O2n67gmZ83Z7V5iYa')
b'Ø|ß¹îv|ï²ÝÎÚ~»f|ÝÕæ&'
Length is always 24 bytes (192 bits) 12x16 ?
This looks promising:
>>> l = list(b'Ø|ß¹îv|ï²ÝÎÚ~»f|ÝÕæ&')
>>> s = ['{:08b}'.format(v) for v in l]
>>> st = ''.join(s)
>>> patS = [st[i:i+12] for i in range(16)]
>>> print('\n'.join(patS))
110110000111
101100001111
011000011111
110000111110
100001111100
000011111001
000111110011
001111100110
011111001101
111110011011
111100110111
111001101111
110011011111
100110111111
001101111110
011011111100
Or shortened:
st = ''.join(['{:08b}'.format(v) for v in b'...'])
print('\n'.join([st[i:i+12] for i in range(16)]))
<Description>Void</Description>
>>> base64.b64decode(b'//7//v/+//7//v/+//7//v/+//7//v/+')
b'ÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþ'
111111111111
111111111111
111111111111
111111111111
111111111110
111111111101
111111111011
111111110111
111111101111
111111011111
111110111111
111101111111
111011111111
110111111111
101111111111
011111111111
Hmmm 12 zeros, perhaps it is 12x15 after all:
>>> base64.b64decode(b'/+7/7v/u/+7/7gAA7/7v/u/+7/7v/gAA')
b'ÿîÿîÿîÿîÿîïþïþïþïþïþ'
111111111110
111111111101
111111111011
111111110111
111111101110
111111011101
111110111011
111101110111
111011101111
110111011111
101110111111
011101111111
111011111111
110111111111
101111111111
011111111111
Full range (sorted):
//4zAP/6//oA9v/+//4zAP/8//oA+v/2
//6/AIP+//4Avv+C//6/AIP+//4Avv+C
//60ks/+//6ZaP+e//60ks/+//6ZaP+e
//69fIEA//4QENfW//69fIEA//4QENf2
//6N5r/mj76/urm+ub7v8u7+774t8v/y
//6v1vt+rOr//lq2/87//rrq//7XXu++
//7//v/+//7//v/+//7//v/+//7//v/+
//7/3t/e397fwsP+//7/3t/e397fwsP+
//7/AP/+//4A/v/+//7/AP/+//4A/v/+
//7/AP/+/9YA7v/W1/7vANf+/9YA7v/W
//7/AP/+Wv4A/v/+//7/AP/+Wv4A/v/+
//7/APv+9/4A/v/6//b/AP3+8/4A/v/+
//73/uv+wf7//v/+//7/3v+u/wb//v/+
//732gAAvfbvfAAAu97vegAAve73fAAA
//7bAP/+//4A1v/+//7bAP/+//4A1v/+
//7bAPv+9/4A1v/6//bbAP3+8/4A2v/+
//7HHoLugu7HHv/+//6PxneCd4KPxv/+
//7HHrruuu7HHv/+//6Pxne6d7qPxv/+
//7nAP/+/+4A7v/u//7nAP/+/+4A7v/u
//7nOOc4//45zjnO//7nOOc4//45zjnO
//7nOOc4//45zv/O//7nOP8+//45zvn+
//7vAP/+//4A7v/+//7vAP/+//4A7v/+
//b/9v/2+7b5Ngqg+777vv/+9/73/gAA
//b/9v/2+7b7tgqg+T77vv/+9/73/gAA
//b/9v/2+Db79gog+774Pv/+9/73/gAA
//b/9v/2+Hb7tghg+774fv/+9/73/gAA
//b/9v/2+Pb7dgjA+/77/v/+9/73/gAA
/+4zLv/uzOj/7gcA3/7TMt/+XMzf/gBy
/+6B7n7uge7/7gAA7/7vAu787wLv/gAA
/+7/7rvux+7/7gAA7/7v/u+678bv/gAA
/+7/7sHu/+7/7gAA797vvu/+7/7v/gAA
/+7/7uDu/+7/7gAA7/7v/u8G7/7v/gAA
/+7/7v/u/+7/7gAA7/7v/u/+7/7v/gAA
/+7/7v/u/+7/7oOC7/7v/u/+7/7v/oOC
/+7/7v/u/+7bbAAA7/7v/u/+7/5ttgAA
/+7/7v/u/+r/5gAA7/7v/u/+6/7n/gAA
/+7/7vPu/+7/7gAA7/7v/u8+7/7v/gAA
/+7/7vPu/+7/7gAA7/7v/u8G7/7v/gAA
/+7/7vPu/+7/7gAA797vvu/+7/7v/gAA
/+7/AP/+7/4A/v/+/+7/AP/+7/4A/v/+
/+717vvu9e7/7gAA7/7v1u/u79bv/gAA
/+73xuPG44LB/v/+/+73xuPG44LB/v/+
/+7bAP/+7/4A1v/+/+7bAP/+7/4A1v/+
/+7n7oHu5+7/7gAA7/7vzu8C787v/gAA
/+7v7sfu7+7/7gAA7/7v7u/G7+7v/gAA
/+7v7tfu7+7/7gAA7/7v7u/W7+7v/gAA
/+7vAP/+7/4A7v/+/+7vAP/+7/4A7v/+
/+7X7oPu1+7/7gAA7/7v1u+C79bv/gAA
/+bP2ofah+bP/v8+/h7+Hs8+t/63/s/+
/+bP2rfat+bP/v8+/t7+3s8+t/63/s/+
/34a4Pn+AAD/+sHW/84AAO/+Xg4//gAA
/34ekP3+AAD/+gc2/+4AAO/+3MC//gAA
/34O4P3+AAD/+uD2/+4AAO/+3wa//gAA
/36a8vn+AAD/+ufW/84AAO/+Xz4//gAA
/37+/v3+AAD/+v/2/+4AAO/+3/6//gAA
/376/vn+AAD/+v/W/84AAO/+X/4//gAA
/37Ozv3+AAD/+s/2/+4AAO/+356//gAA
/3b/jv+u/47/dv/+u/7H/tf+x/67/v/+
/97/wP/e+N77Xvje+/77/v/g//4AHv/+
/d773vvuAAC+/r7+f34AAPfu7/bv9gAA
/wKBer0Cgf7//v/+//7/AoF6vQKB/v/+
+/73MgH+//Yz7v4C+/73MgP+//Yz7v4C
2/7nMu/+3/75mP/+/7Yzzv/e/76Z8v/+
2Hzfkrnudnzvst3O2n67gmZ83Z7V5iYa
3/4HMv/+/+4zgv/+3/4HMv/+/+4zgv/+
3/6s+N/+/+451v/u3/6s+N/+/+451v/u
3d7u7vd2e7q93N7u73b3unvcve7e9u96
3d7urvZ2ebq53Nbqz3a3inucvW7e9u16
3dz//v/+d3b//v/+3dz//v/+d3b//v/+
4er//tde//764P/+117//uHq//7XXv/+
4er//tdO/+764P/+117f/sHq//7XXv/+
5/6BAOf+/+aAgP/m5/6BAOf+/+aAgP/m
5+aB/uf+/87/Ao/OvH6lfrT+hX7/5v+A
5mb//szm//6ZmP/+//4zOP/+//45zv/+
5zL//pnO//7nMv/+mc7//ucy//45zv/+
7/6rMu/+AADu7qqq7u4AAP7uMqr+7gAA
7/7vAO/+/+4A7v/u7/7vAO/+/+4A7v/u
8e7u7u7u7u7x7gAA7x7u7u7u7u7vHgAA
9/7nANf+//YA5v/W9/7nANf+//YA5v/W
9/7nMtf+/+4zzv+u9/7nMtf+/+4zzv+u
9/7vAN/+//YA7v/e9/7vAN/+//YA7v/e
9fT//l9e//719P/+X17//vX0//5fXv/+
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD//gAA//4AAP/+AAD//gAA//4AAP/+
ff67/td877r/1v/uff67/td877r/1v/u
JJK22pJIJJK22pJIJJK22pJIJJK22pJI
m/73Mu/+//bM7v/eO/73Mu/+//aZ7v/e
MzL//szO//6DwP/+zM7//v/+ODj//s/O
u/7WeO/+/7o81v/uu/7WeO/+/7r/1jzu
u/7WeO/+/7o81v/uu/7WeO/+/7r/1rvu
u/7XAO/+/7oA1v/uu/7XAO/+/7oA1v/u
uur//tdc//666v/+11z//rrq//7XXP/+
w+6Z7mbuWu7/7gAA74bvMu7M7rTv/gAA
x+677qvuu+7H7gAA78bvuu+q77rvxgAA
z/4DMs/+/84zAv/Oz/4DMs/+/84zAv/O
zM7MzszOzM7MzszOzM7MzszOzM7MzszO
zv4/PvnOx/I+/P9+/b7z3s/uvfb+fvu+
-
TotalDepth.util.plot.AREACfg.PATTERN_MAP = {'Shelly Siltstone': b'//6v1vt+rOr//lq2/87//rrq//7XXu++', 'LimeStone': b'/+7/7v/u/+7/7gAA7/7v/u/+7/7v/gAA', 'Medium Sand': b'5mb//szm//6ZmP/+//4zOP/+//45zv/+', 'Sandy and calcareous Clay-Shale': b'//7nAP/+/+4A7v/u//7nAP/+/+4A7v/u', 'Bedded Chert': b'3d7u7vd2e7q93N7u73b3unvcve7e9u96', 'Bioclastic Limestone': b'/+7X7oPu1+7/7gAA7/7v1u+C79bv/gAA', 'Quartzite': b'7/6rMu/+AADu7qqq7u4AAP7uMqr+7gAA', 'Argillaceous Dolomite': b'/34O4P3+AAD/+uD2/+4AAO/+3wa//gAA', 'Sandy and dolomitic Limestone': b'/+7/7vPu/+7/7gAA797vvu/+7/7v/gAA', 'Metamorphic Rocks': b'2Hzfkrnudnzvst3O2n67gmZ83Z7V5iYa', 'Silty Clay-Shale': b'//7bAP/+//4A1v/+//7bAP/+//4A1v/+', 'Argillaceous and dolomitic Limestone': b'/+7/7sHu/+7/7gAA797vvu/+7/7v/gAA', 'Sandy, calcareous and dolomitic Clay-Shale': b'/+7vAP/+7/4A7v/+/+7vAP/+7/4A7v/+', 'Gypsiferous Clay-Shale': b'u/7XAO/+/7oA1v/uu/7XAO/+/7oA1v/u', 'Saliferous Clay-Shale': b'//6/AIP+//4Avv+C//6/AIP+//4Avv+C', 'Shelly Limestone': b'/+7/7rvux+7/7gAA7/7v/u+678bv/gAA', 'Silicified Limestone': b'/+7/7v/u/+7bbAAA7/7v/u/+7/5ttgAA', 'Plastic Clay-Shale': b'/97/wP/e+N77Xvje+/77/v/g//4AHv/+', 'Sandy Dolomite': b'/37Ozv3+AAD/+s/2/+4AAO/+356//gAA', 'Silicified Claystone': b'//7/AP/+Wv4A/v/+//7/AP/+Wv4A/v/+', 'Monom Conglomerate 2-4 mm': b'/+bP2rfat+bP/v8+/t7+3s8+t/63/s/+', 'Volcanic Rock': b'zv4/PvnOx/I+/P9+/b7z3s/uvfb+fvu+', 'Sandy and calcareous Dolomite': b'/36a8vn+AAD/+ufW/84AAO/+Xz4//gAA', 'Sandy and dolomitic Clay-Shale': b'//4zAP/6//oA9v/+//4zAP/8//oA+v/2', 'Bituminous Sandstone': b'z/4DMs/+/84zAv/Oz/4DMs/+/84zAv/O', 'Organic Shale': b'zM7MzszOzM7MzszOzM7MzszOzM7MzszO', 'Phosphatic Limestone': b'/+7v7tfu7+7/7gAA7/7v7u/W7+7v/gAA', 'Bituminous Clay-Shale': b'5/6BAOf+/+aAgP/m5/6BAOf+/+aAgP/m', 'Anhydritic Siltsone': b'u/7WeO/+/7o81v/uu/7WeO/+/7r/1rvu', 'Shelly Sandstone': b'//60ks/+//6ZaP+e//60ks/+//6ZaP+e', 'Pelletic Limestone': b'8e7u7u7u7u7x7gAA7x7u7u7u7u7vHgAA', 'Marl': b'/+7/AP/+7/4A/v/+/+7/AP/+7/4A/v/+', 'Argillaceous and calcareous Dolomite': b'/34a4Pn+AAD/+sHW/84AAO/+Xg4//gAA', 'Anhydritic Sandstone': b'u/7WeO/+/7o81v/uu/7WeO/+/7r/1jzu', 'Halite': b'//7/3t/e397fwsP+//7/3t/e397fwsP+', 'Basalt': b'//732gAAvfbvfAAAu97vegAAve73fAAA', 'Anhydrite': b'3d7urvZ2ebq53Nbqz3a3inucvW7e9u16', 'Argillaceous and sandy Limestone': b'/+7/7vPu/+7/7gAA7/7v/u8G7/7v/gAA', 'Calcareous Clay-Shale': b'7/7vAO/+/+4A7v/u7/7vAO/+/+4A7v/u', 'Polym Conglomerate 4-64 mm': b'//7HHoLugu7HHv/+//6PxneCd4KPxv/+', 'Argillaceous Siltstone': b'4er//tde//764P/+117//uHq//7XXv/+', 'Evaporite': b'JJK22pJIJJK22pJIJJK22pJIJJK22pJI', 'Cherty Limestone': b'/+7v7sfu7+7/7gAA7/7v7u/G7+7v/gAA', 'Dolomitic Sandstone': b'm/73Mu/+//bM7v/eO/73Mu/+//aZ7v/e', 'Silty Marl': b'/+7bAP/+7/4A1v/+/+7bAP/+7/4A1v/+', 'Anhydritic Clay-Shale': b'//7/AP/+/9YA7v/W1/7vANf+/9YA7v/W', 'Coarse Sandstone': b'//7nOOc4//45zjnO//7nOOc4//45zjnO', 'Calcareous and dolomitic Clay-Shale': b'9/7nANf+//YA5v/W9/7nANf+//YA5v/W', 'Sandy Clay-Shale': b'//7vAP/+//4A7v/+//7vAP/+//4A7v/+', 'Monom Conglomerate 4-64 mm': b'//7HHrruuu7HHv/+//6Pxne6d7qPxv/+', 'Reefal Limestone': b'w+6Z7mbuWu7/7gAA74bvMu7M7rTv/gAA', 'Slaty Shale': b'AAD//gAA//4AAP/+AAD//gAA//4AAP/+', 'Argillaceous and calcareous Sandstone': b'3/4HMv/+/+4zgv/+3/4HMv/+/+4zgv/+', 'Dolomitic Marl': b'//7/APv+9/4A/v/6//b/AP3+8/4A/v/+', 'Sandy Limestone': b'/+7/7vPu/+7/7gAA7/7v/u8+7/7v/gAA', 'Ferruginous Sandstone': b'//6N5r/mj76/urm+ub7v8u7+774t8v/y', 'Gypsum': b'ff67/td877r/1v/uff67/td877r/1v/u', 'Wackstone': b'//b/9v/2+7b7tgqg+T77vv/+9/73/gAA', 'Argillaceous and Sandy Dolomite': b'/34ekP3+AAD/+gc2/+4AAO/+3MC//gAA', 'Monogenic Breccia': b'/+73xuPG44LB/v/+/+73xuPG44LB/v/+', 'Glauconitic Sandstone': b'3/6s+N/+/+451v/u3/6s+N/+/+451v/u', 'Argillaceous Limestone': b'/+7/7uDu/+7/7gAA7/7v/u8G7/7v/gAA', 'Dolomite': b'/37+/v3+AAD/+v/2/+4AAO/+3/6//gAA', 'Nodular Limestone': b'/+6B7n7uge7/7gAA7/7vAu787wLv/gAA', 'Calcareous Sandstone': b'/+4zLv/uzOj/7gcA3/7TMt/+XMzf/gBy', 'Silty, calcareous and dolomitic Clay-Shale': b'/+7bAP/+7/4A1v/+/+7bAP/+7/4A1v/+', 'Argillaceous and dolomitic Sandstone': b'+/73MgH+//Yz7v4C+/73MgP+//Yz7v4C', 'Chalk': b'/+7/7v/u/+7/7oOC7/7v/u/+7/7v/oOC', 'Anhydritic Limestone': b'/+717vvu9e7/7gAA7/7v1u/u79bv/gAA', 'Oolitic Limestone': b'x+677qvuu+7H7gAA78bvuu+q77rvxgAA', 'Calcareous and dolomitic Sandstone': b'9/7nMtf+/+4zzv+u9/7nMtf+/+4zzv+u', 'Dolomitic LimeStone': b'/+7/7v/u/+r/5gAA7/7v/u/+6/7n/gAA', 'Argillaceous Sandstone': b'MzL//szO//6DwP/+zM7//v/+ODj//s/O', 'Diatomite': b'//69fIEA//4QENfW//69fIEA//4QENf2', 'Polymictic Breccia': b'/+73xuPG44LB/v/+/+73xuPG44LB/v/+', 'Polym Conglomerate 2-4 mm': b'/+bP2ofah+bP/v8+/h7+Hs8+t/63/s/+', 'Fine Sandstone': b'3dz//v/+d3b//v/+3dz//v/+d3b//v/+', 'Cargneule': b'/d773vvuAAC+/r7+f34AAPfu7/bv9gAA', 'Siltstone': b'9fT//l9e//719P/+X17//vX0//5fXv/+', 'Bundstone': b'//b/9v/2+Hb7tghg+774fv/+9/73/gAA', 'Silty dolomitic Marl': b'//7bAPv+9/4A1v/6//bbAP3+8/4A2v/+', 'Silt': b'uur//tdc//666v/+11z//rrq//7XXP/+', 'Fine Sand': b'3dz//v/+d3b//v/+3dz//v/+d3b//v/+', 'Void': b'//7//v/+//7//v/+//7//v/+//7//v/+', 'Saliferous Sandstone': b'4er//tdO/+764P/+117f/sHq//7XXv/+', 'Calacareous Dolomite': b'/376/vn+AAD/+v/W/84AAO/+X/4//gAA', 'Mudstone': b'//b/9v/2+7b5Ngqg+777vv/+9/73/gAA', 'Sylvite': b'/wKBer0Cgf7//v/+//7/AoF6vQKB/v/+', 'Clay-Shale': b'//7/AP/+//4A/v/+//7/AP/+//4A/v/+', 'Radiolarite': b'/3b/jv+u/47/dv/+u/7H/tf+x/67/v/+', 'Packstone': b'//b/9v/2+Pb7dgjA+/77/v/+9/73/gAA', 'Grainstone': b'//b/9v/2+Db79gog+774Pv/+9/73/gAA', 'Dolomitic Caly-Shale': b'9/7vAN/+//YA7v/e9/7vAN/+//YA7v/e', 'Coarse Sand': b'//7nOOc4//45zv/O//7nOP8+//45zvn+', 'Chert': b'//73/uv+wf7//v/+//7/3v+u/wb//v/+', 'Bituminous Limestone': b'/+7n7oHu5+7/7gAA7/7vzu8C787v/gAA', 'Medium Sandstone': b'5zL//pnO//7nMv/+mc7//ucy//45zv/+', 'Coal-LigNite': b'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA', 'Granit': b'5+aB/uf+/87/Ao/OvH6lfrT+hX7/5v+A', 'Arkosic Sandstone': b'2/7nMu/+3/75mP/+/7Yzzv/e/76Z8v/+'}
A map of {pattern name : bytes, ...}
-
TotalDepth.util.plot.AREACfg.pprintPattern(theName)
Pretty print the pattern.
-
TotalDepth.util.plot.AREACfg.pprintAll()
Pretty print all patterns.