@@ -43,7 +43,9 @@ def open(filename, mode="r", iline = None,
4343 strict = True ,
4444 ignore_geometry = False ,
4545 endian = None ,
46- encoding = None ):
46+ encoding = None ,
47+ layout_xml = None
48+ ):
4749 """Open a segy file.
4850
4951 Opens a segy file and tries to figure out its sorting, inline numbers,
@@ -110,6 +112,10 @@ def open(filename, mode="r", iline = None,
110112 into latin-1 encoding as per SEG-Y specification. For ascii encoding
111113 data would be returned as is.
112114
115+ layout_xml: bytearray
116+ SEG-Y revision 2.1 D8 xml layout. Takes precedence over layout
117+ definition xml inside the file.
118+
113119 Returns
114120 -------
115121
@@ -130,6 +136,9 @@ def open(filename, mode="r", iline = None,
130136 .. versionchanged:: 1.8
131137 endian argument
132138
139+ .. versionchanged:: 2.0
140+ Support for SEG-Y revision 2.1
141+
133142 When a file is opened non-strict, only raw traces access is allowed, and
134143 using modes such as ``iline`` raise an error.
135144
@@ -168,7 +177,7 @@ def open(filename, mode="r", iline = None,
168177
169178 return _open (
170179 FileDatasourceDescriptor (filename , mode ),
171- iline , xline , strict , ignore_geometry , endian , encoding
180+ iline , xline , strict , ignore_geometry , endian , encoding , layout_xml
172181 )
173182
174183
@@ -179,7 +188,8 @@ def open_with(stream,
179188 ignore_geometry = False ,
180189 endian = None ,
181190 encoding = None ,
182- minimize_requests_number = True
191+ minimize_requests_number = True ,
192+ layout_xml = None
183193 ):
184194 """
185195 Opens a segy file from a stream.
@@ -209,7 +219,7 @@ def open_with(stream,
209219 stream ,
210220 minimize_requests_number
211221 ),
212- iline , xline , strict , ignore_geometry , endian , encoding
222+ iline , xline , strict , ignore_geometry , endian , encoding , layout_xml
213223 )
214224
215225
@@ -220,6 +230,7 @@ def open_from_memory(memory_buffer,
220230 ignore_geometry = False ,
221231 endian = None ,
222232 encoding = None ,
233+ layout_xml = None
223234 ):
224235 """
225236 Opens a segy file from memory.
@@ -241,7 +252,7 @@ def open_from_memory(memory_buffer,
241252 MemoryBufferDatasourceDescriptor (
242253 memory_buffer
243254 ),
244- iline , xline , strict , ignore_geometry , endian , encoding
255+ iline , xline , strict , ignore_geometry , endian , encoding , layout_xml
245256 )
246257
247258
@@ -252,6 +263,7 @@ def _open(datasource_descriptor,
252263 ignore_geometry = False ,
253264 endian = None ,
254265 encoding = None ,
266+ layout_xml = None
255267 ):
256268
257269 fd = datasource_descriptor .make_segyfile_descriptor ()
@@ -265,7 +277,8 @@ def _open(datasource_descriptor,
265277 endianness = to_c_endianness (endian ),
266278 encoding = to_c_encoding (encoding ),
267279 iline = iline ,
268- xline = xline
280+ xline = xline ,
281+ layout_xml = layout_xml
269282 )
270283 metrics = fd .metrics ()
271284
0 commit comments