segyio 1.9.13__cp313-cp313-win_amd64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of segyio might be problematic. Click here for more details.
- segyio/__init__.py +99 -0
- segyio/_segyio.cp313-win_amd64.pyd +0 -0
- segyio/binfield.py +89 -0
- segyio/create.py +257 -0
- segyio/depth.py +180 -0
- segyio/field.py +546 -0
- segyio/gather.py +444 -0
- segyio/line.py +498 -0
- segyio/open.py +192 -0
- segyio/segy.py +1010 -0
- segyio/segysampleformat.py +19 -0
- segyio/su/__init__.py +2 -0
- segyio/su/file.py +118 -0
- segyio/su/words.py +284 -0
- segyio/tools.py +731 -0
- segyio/trace.py +967 -0
- segyio/tracefield.py +195 -0
- segyio/tracesortingformat.py +6 -0
- segyio/utils.py +28 -0
- segyio-1.9.13.dist-info/METADATA +79 -0
- segyio-1.9.13.dist-info/RECORD +23 -0
- segyio-1.9.13.dist-info/WHEEL +5 -0
- segyio-1.9.13.dist-info/top_level.txt +1 -0
segyio/tracefield.py
ADDED
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
from . import Enum
|
|
2
|
+
|
|
3
|
+
class TraceField(Enum):
|
|
4
|
+
"""Trace header field enumerator
|
|
5
|
+
|
|
6
|
+
See also
|
|
7
|
+
-------
|
|
8
|
+
segyio.su : Seismic unix aliases for header fields
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
TRACE_SEQUENCE_LINE = 1
|
|
12
|
+
TRACE_SEQUENCE_FILE = 5
|
|
13
|
+
FieldRecord = 9
|
|
14
|
+
TraceNumber = 13
|
|
15
|
+
EnergySourcePoint = 17
|
|
16
|
+
CDP = 21
|
|
17
|
+
CDP_TRACE = 25
|
|
18
|
+
TraceIdentificationCode = 29
|
|
19
|
+
NSummedTraces = 31
|
|
20
|
+
NStackedTraces = 33
|
|
21
|
+
DataUse = 35
|
|
22
|
+
offset = 37
|
|
23
|
+
ReceiverGroupElevation = 41
|
|
24
|
+
SourceSurfaceElevation = 45
|
|
25
|
+
SourceDepth = 49
|
|
26
|
+
ReceiverDatumElevation = 53
|
|
27
|
+
SourceDatumElevation = 57
|
|
28
|
+
SourceWaterDepth = 61
|
|
29
|
+
GroupWaterDepth = 65
|
|
30
|
+
ElevationScalar = 69
|
|
31
|
+
SourceGroupScalar = 71
|
|
32
|
+
SourceX = 73
|
|
33
|
+
SourceY = 77
|
|
34
|
+
GroupX = 81
|
|
35
|
+
GroupY = 85
|
|
36
|
+
CoordinateUnits = 89
|
|
37
|
+
WeatheringVelocity = 91
|
|
38
|
+
SubWeatheringVelocity = 93
|
|
39
|
+
SourceUpholeTime = 95
|
|
40
|
+
GroupUpholeTime = 97
|
|
41
|
+
SourceStaticCorrection = 99
|
|
42
|
+
GroupStaticCorrection = 101
|
|
43
|
+
TotalStaticApplied = 103
|
|
44
|
+
LagTimeA = 105
|
|
45
|
+
LagTimeB = 107
|
|
46
|
+
DelayRecordingTime = 109
|
|
47
|
+
MuteTimeStart = 111
|
|
48
|
+
MuteTimeEND = 113
|
|
49
|
+
TRACE_SAMPLE_COUNT = 115
|
|
50
|
+
TRACE_SAMPLE_INTERVAL = 117
|
|
51
|
+
GainType = 119
|
|
52
|
+
InstrumentGainConstant = 121
|
|
53
|
+
InstrumentInitialGain = 123
|
|
54
|
+
Correlated = 125
|
|
55
|
+
SweepFrequencyStart = 127
|
|
56
|
+
SweepFrequencyEnd = 129
|
|
57
|
+
SweepLength = 131
|
|
58
|
+
SweepType = 133
|
|
59
|
+
SweepTraceTaperLengthStart = 135
|
|
60
|
+
SweepTraceTaperLengthEnd = 137
|
|
61
|
+
TaperType = 139
|
|
62
|
+
AliasFilterFrequency = 141
|
|
63
|
+
AliasFilterSlope = 143
|
|
64
|
+
NotchFilterFrequency = 145
|
|
65
|
+
NotchFilterSlope = 147
|
|
66
|
+
LowCutFrequency = 149
|
|
67
|
+
HighCutFrequency = 151
|
|
68
|
+
LowCutSlope = 153
|
|
69
|
+
HighCutSlope = 155
|
|
70
|
+
YearDataRecorded = 157
|
|
71
|
+
DayOfYear = 159
|
|
72
|
+
HourOfDay = 161
|
|
73
|
+
MinuteOfHour = 163
|
|
74
|
+
SecondOfMinute = 165
|
|
75
|
+
TimeBaseCode = 167
|
|
76
|
+
TraceWeightingFactor = 169
|
|
77
|
+
GeophoneGroupNumberRoll1 = 171
|
|
78
|
+
GeophoneGroupNumberFirstTraceOrigField = 173
|
|
79
|
+
GeophoneGroupNumberLastTraceOrigField = 175
|
|
80
|
+
GapSize = 177
|
|
81
|
+
OverTravel = 179
|
|
82
|
+
CDP_X = 181
|
|
83
|
+
CDP_Y = 185
|
|
84
|
+
INLINE_3D = 189
|
|
85
|
+
CROSSLINE_3D = 193
|
|
86
|
+
ShotPoint = 197
|
|
87
|
+
ShotPointScalar = 201
|
|
88
|
+
TraceValueMeasurementUnit = 203
|
|
89
|
+
TransductionConstantMantissa = 205
|
|
90
|
+
TransductionConstantPower = 209
|
|
91
|
+
TransductionUnit = 211
|
|
92
|
+
TraceIdentifier = 213
|
|
93
|
+
ScalarTraceHeader = 215
|
|
94
|
+
SourceType = 217
|
|
95
|
+
SourceEnergyDirectionMantissa = 219
|
|
96
|
+
SourceEnergyDirectionExponent = 223
|
|
97
|
+
SourceMeasurementMantissa = 225
|
|
98
|
+
SourceMeasurementExponent = 229
|
|
99
|
+
SourceMeasurementUnit = 231
|
|
100
|
+
UnassignedInt1 = 233
|
|
101
|
+
UnassignedInt2 = 237
|
|
102
|
+
|
|
103
|
+
keys = {
|
|
104
|
+
'TRACE_SEQUENCE_LINE' : 1,
|
|
105
|
+
'TRACE_SEQUENCE_FILE' : 5,
|
|
106
|
+
'FieldRecord' : 9,
|
|
107
|
+
'TraceNumber' : 13,
|
|
108
|
+
'EnergySourcePoint' : 17,
|
|
109
|
+
'CDP' : 21,
|
|
110
|
+
'CDP_TRACE' : 25,
|
|
111
|
+
'TraceIdentificationCode' : 29,
|
|
112
|
+
'NSummedTraces' : 31,
|
|
113
|
+
'NStackedTraces' : 33,
|
|
114
|
+
'DataUse' : 35,
|
|
115
|
+
'offset' : 37,
|
|
116
|
+
'ReceiverGroupElevation' : 41,
|
|
117
|
+
'SourceSurfaceElevation' : 45,
|
|
118
|
+
'SourceDepth' : 49,
|
|
119
|
+
'ReceiverDatumElevation' : 53,
|
|
120
|
+
'SourceDatumElevation' : 57,
|
|
121
|
+
'SourceWaterDepth' : 61,
|
|
122
|
+
'GroupWaterDepth' : 65,
|
|
123
|
+
'ElevationScalar' : 69,
|
|
124
|
+
'SourceGroupScalar' : 71,
|
|
125
|
+
'SourceX' : 73,
|
|
126
|
+
'SourceY' : 77,
|
|
127
|
+
'GroupX' : 81,
|
|
128
|
+
'GroupY' : 85,
|
|
129
|
+
'CoordinateUnits' : 89,
|
|
130
|
+
'WeatheringVelocity' : 91,
|
|
131
|
+
'SubWeatheringVelocity' : 93,
|
|
132
|
+
'SourceUpholeTime' : 95,
|
|
133
|
+
'GroupUpholeTime' : 97,
|
|
134
|
+
'SourceStaticCorrection' : 99,
|
|
135
|
+
'GroupStaticCorrection' : 101,
|
|
136
|
+
'TotalStaticApplied' : 103,
|
|
137
|
+
'LagTimeA' : 105,
|
|
138
|
+
'LagTimeB' : 107,
|
|
139
|
+
'DelayRecordingTime' : 109,
|
|
140
|
+
'MuteTimeStart' : 111,
|
|
141
|
+
'MuteTimeEND' : 113,
|
|
142
|
+
'TRACE_SAMPLE_COUNT' : 115,
|
|
143
|
+
'TRACE_SAMPLE_INTERVAL' : 117,
|
|
144
|
+
'GainType' : 119,
|
|
145
|
+
'InstrumentGainConstant' : 121,
|
|
146
|
+
'InstrumentInitialGain' : 123,
|
|
147
|
+
'Correlated' : 125,
|
|
148
|
+
'SweepFrequencyStart' : 127,
|
|
149
|
+
'SweepFrequencyEnd' : 129,
|
|
150
|
+
'SweepLength' : 131,
|
|
151
|
+
'SweepType' : 133,
|
|
152
|
+
'SweepTraceTaperLengthStart' : 135,
|
|
153
|
+
'SweepTraceTaperLengthEnd' : 137,
|
|
154
|
+
'TaperType' : 139,
|
|
155
|
+
'AliasFilterFrequency' : 141,
|
|
156
|
+
'AliasFilterSlope' : 143,
|
|
157
|
+
'NotchFilterFrequency' : 145,
|
|
158
|
+
'NotchFilterSlope' : 147,
|
|
159
|
+
'LowCutFrequency' : 149,
|
|
160
|
+
'HighCutFrequency' : 151,
|
|
161
|
+
'LowCutSlope' : 153,
|
|
162
|
+
'HighCutSlope' : 155,
|
|
163
|
+
'YearDataRecorded' : 157,
|
|
164
|
+
'DayOfYear' : 159,
|
|
165
|
+
'HourOfDay' : 161,
|
|
166
|
+
'MinuteOfHour' : 163,
|
|
167
|
+
'SecondOfMinute' : 165,
|
|
168
|
+
'TimeBaseCode' : 167,
|
|
169
|
+
'TraceWeightingFactor' : 169,
|
|
170
|
+
'GeophoneGroupNumberRoll1' : 171,
|
|
171
|
+
'GeophoneGroupNumberFirstTraceOrigField': 173,
|
|
172
|
+
'GeophoneGroupNumberLastTraceOrigField' : 175,
|
|
173
|
+
'GapSize' : 177,
|
|
174
|
+
'OverTravel' : 179,
|
|
175
|
+
'CDP_X' : 181,
|
|
176
|
+
'CDP_Y' : 185,
|
|
177
|
+
'INLINE_3D' : 189,
|
|
178
|
+
'CROSSLINE_3D' : 193,
|
|
179
|
+
'ShotPoint' : 197,
|
|
180
|
+
'ShotPointScalar' : 201,
|
|
181
|
+
'TraceValueMeasurementUnit' : 203,
|
|
182
|
+
'TransductionConstantMantissa' : 205,
|
|
183
|
+
'TransductionConstantPower' : 209,
|
|
184
|
+
'TransductionUnit' : 211,
|
|
185
|
+
'TraceIdentifier' : 213,
|
|
186
|
+
'ScalarTraceHeader' : 215,
|
|
187
|
+
'SourceType' : 217,
|
|
188
|
+
'SourceEnergyDirectionMantissa' : 219,
|
|
189
|
+
'SourceEnergyDirectionExponent' : 223,
|
|
190
|
+
'SourceMeasurementMantissa' : 225,
|
|
191
|
+
'SourceMeasurementExponent' : 229,
|
|
192
|
+
'SourceMeasurementUnit' : 231,
|
|
193
|
+
'UnassignedInt1' : 233,
|
|
194
|
+
'UnassignedInt2' : 237,
|
|
195
|
+
}
|
segyio/utils.py
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import warnings
|
|
2
|
+
import numpy as np
|
|
3
|
+
|
|
4
|
+
def castarray(x, dtype):
|
|
5
|
+
try:
|
|
6
|
+
x.dtype
|
|
7
|
+
except AttributeError:
|
|
8
|
+
msg = 'Implicit conversion from {} to {} (performance)'
|
|
9
|
+
warnings.warn(msg.format(type(x), np.ndarray), RuntimeWarning)
|
|
10
|
+
|
|
11
|
+
try:
|
|
12
|
+
x = np.require(x, dtype = dtype, requirements = 'CAW')
|
|
13
|
+
except TypeError:
|
|
14
|
+
x = np.fromiter(x, dtype = dtype)
|
|
15
|
+
|
|
16
|
+
if not x.flags['C_CONTIGUOUS']:
|
|
17
|
+
msg = 'Implicit conversion to contiguous array'
|
|
18
|
+
warnings.warn(msg, RuntimeWarning)
|
|
19
|
+
|
|
20
|
+
if x.dtype != dtype:
|
|
21
|
+
# TODO: message depending on narrowing/float-conversion
|
|
22
|
+
msg = 'Implicit conversion from {} to {} (narrowing)'
|
|
23
|
+
warnings.warn(msg.format(x.dtype, dtype), RuntimeWarning)
|
|
24
|
+
|
|
25
|
+
# Ensure the data is C-order contiguous, writable, and aligned, with
|
|
26
|
+
# the appropriate dtype. it won't copy unless it has to, so it's
|
|
27
|
+
# reasonably fast.
|
|
28
|
+
return np.require(x, dtype = dtype, requirements = 'CAW')
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: segyio
|
|
3
|
+
Version: 1.9.13
|
|
4
|
+
Summary: Simple & fast IO for SEG-Y files
|
|
5
|
+
Home-page: https://github.com/equinor/segyio
|
|
6
|
+
Author: Equinor ASA
|
|
7
|
+
Author-email: jokva@equinor.com
|
|
8
|
+
License: LGPL-3.0
|
|
9
|
+
Platform: any
|
|
10
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
11
|
+
Classifier: Environment :: Other Environment
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Intended Audience :: Science/Research
|
|
14
|
+
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
|
|
15
|
+
Classifier: Natural Language :: English
|
|
16
|
+
Classifier: Programming Language :: Python
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
24
|
+
Classifier: Topic :: Software Development :: Libraries
|
|
25
|
+
Classifier: Topic :: Utilities
|
|
26
|
+
Requires-Dist: numpy>=1.10
|
|
27
|
+
Dynamic: author
|
|
28
|
+
Dynamic: author-email
|
|
29
|
+
Dynamic: classifier
|
|
30
|
+
Dynamic: description
|
|
31
|
+
Dynamic: home-page
|
|
32
|
+
Dynamic: license
|
|
33
|
+
Dynamic: platform
|
|
34
|
+
Dynamic: requires-dist
|
|
35
|
+
Dynamic: summary
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
=======
|
|
39
|
+
SEGY IO
|
|
40
|
+
=======
|
|
41
|
+
|
|
42
|
+
https://segyio.readthedocs.io
|
|
43
|
+
|
|
44
|
+
Introduction
|
|
45
|
+
------------
|
|
46
|
+
|
|
47
|
+
Segyio is a small LGPL licensed C library for easy interaction with SEG Y
|
|
48
|
+
formatted seismic data, with language bindings for Python and Matlab. Segyio is
|
|
49
|
+
an attempt to create an easy-to-use, embeddable, community-oriented library for
|
|
50
|
+
seismic applications. Features are added as they are needed; suggestions and
|
|
51
|
+
contributions of all kinds are very welcome.
|
|
52
|
+
|
|
53
|
+
Feature summary
|
|
54
|
+
---------------
|
|
55
|
+
* A low-level C interface with few assumptions; easy to bind to other
|
|
56
|
+
languages.
|
|
57
|
+
* Read and write binary and textual headers.
|
|
58
|
+
* Read and write traces, trace headers.
|
|
59
|
+
* Easy to use and native-feeling python interface with numpy integration.
|
|
60
|
+
|
|
61
|
+
Project goals
|
|
62
|
+
-------------
|
|
63
|
+
|
|
64
|
+
Segyio does necessarily attempt to be the end-all of SEG-Y interactions;
|
|
65
|
+
rather, we aim to lower the barrier to interacting with SEG-Y files for
|
|
66
|
+
embedding, new applications or free-standing programs.
|
|
67
|
+
|
|
68
|
+
Additionally, the aim is not to support the full standard or all exotic (but
|
|
69
|
+
correctly) formatted files out there. Some assumptions are made, such as:
|
|
70
|
+
|
|
71
|
+
* All traces in a file are assumed to be of the same sample size.
|
|
72
|
+
* It is assumed all lines have the same number of traces.
|
|
73
|
+
|
|
74
|
+
The writing functionality in Segyio is largely meant to *modify* or adapt
|
|
75
|
+
files. A file created from scratch is not necessarily a to-spec SEG-Y file, as
|
|
76
|
+
we only necessarily write the header fields segyio needs to make sense of the
|
|
77
|
+
geometry. It is still highly recommended that SEG-Y files are maintained and
|
|
78
|
+
written according to specification, but segyio does not mandate this.
|
|
79
|
+
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
segyio/__init__.py,sha256=XnOfYCmt01Ss56Plkmurbca3ZWsBr_dqzZ4NY-X1gR0,3641
|
|
2
|
+
segyio/_segyio.cp313-win_amd64.pyd,sha256=VFFFatU40PzplrPmBFRS2SgM-cw6VhyM8EzVJv0UwYo,69632
|
|
3
|
+
segyio/binfield.py,sha256=kyiw8_J9Zu6KcNXLKFapub7JNvQr93X_g54I53Ade2w,2562
|
|
4
|
+
segyio/create.py,sha256=vv77J_9th30B-4mgCX1XJLdDdfIQRcMnymac-hkM7m4,8288
|
|
5
|
+
segyio/depth.py,sha256=EsBUGpRGxvbOXE-3C-2q2nloRb4Yu_WxXGKQG7Hh4b4,5643
|
|
6
|
+
segyio/field.py,sha256=66QtiTe1TfbIOJbxwzjuTJpZZ6sAfrcJhkTZxxfNDTc,19776
|
|
7
|
+
segyio/gather.py,sha256=rKutfM6SvlNVDceH2ccBbW2-oh2MAWeQnMeuhITVQM4,13543
|
|
8
|
+
segyio/line.py,sha256=R3x8qpFQL1rUiciJicPgGXEhk1Y76rMXIb3ly8HAjHE,17350
|
|
9
|
+
segyio/open.py,sha256=L2Tn65mvm5jcLaJSbCMOM0FM1WdgZkobgRLfyDViR4c,5962
|
|
10
|
+
segyio/segy.py,sha256=Wu4rUGTfLNZfor9iQ44x2A9Zw9yRNImthGwwk1ho1LE,28856
|
|
11
|
+
segyio/segysampleformat.py,sha256=270R67qgsU34z1YXVqYIkOIVsOimItwiAHviHK8WHfw,529
|
|
12
|
+
segyio/tools.py,sha256=uOZ21Db85PhVzg6DbGADtbB0GByDRKi-uPN_qqKJcoI,21880
|
|
13
|
+
segyio/trace.py,sha256=70Ej2as2Em3GNvkMWDRjWsP0_PwdH9DiKcGl8Rq4ECE,30444
|
|
14
|
+
segyio/tracefield.py,sha256=JVtxqpcjJNGI9DDGM-KaN1AorVSgHT_MeOrCgvshI8g,7391
|
|
15
|
+
segyio/tracesortingformat.py,sha256=3pcdt2iyhtHxr-IaFC348PN8BeLfoyEuLUm3q9owUXc,131
|
|
16
|
+
segyio/utils.py,sha256=3xsOgu2zNVh-ZomW1o-0mkxDGVp5qj1NhOgpA6kI9bM,1091
|
|
17
|
+
segyio/su/__init__.py,sha256=4xDXkp_BYI4-arr9i7Q0jPqpiTzcwQRrakXNyG8jR24,46
|
|
18
|
+
segyio/su/file.py,sha256=RwkZBaKBiRDW79ltEojMIh8u2rv8EfayhK2X5QtHqVk,3065
|
|
19
|
+
segyio/su/words.py,sha256=6PXaL43luH9Ex31ZdhqHetlyKeAut_LMqZGHPKczCNs,5096
|
|
20
|
+
segyio-1.9.13.dist-info/METADATA,sha256=QUOFM1h2DvVdJmHuBsyfqJIXIswMduM-jymthnBQ_cA,2923
|
|
21
|
+
segyio-1.9.13.dist-info/WHEEL,sha256=4dU9bvlPw8d_96aXToRp7-Ml2sgZj7vbQmzTV5aNNOE,96
|
|
22
|
+
segyio-1.9.13.dist-info/top_level.txt,sha256=9JZUlMVxkQCR1s0sEBvt1G8Om5tWAmrmQojEIcCUTjk,7
|
|
23
|
+
segyio-1.9.13.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
segyio
|