Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Open Subsurface Data Universe Software
Platform
Domain Data Mgmt Services
Seismic
Open VDS
Commits
45e69785
Commit
45e69785
authored
Oct 08, 2021
by
Jim King
Committed by
Jørgen Lind
Oct 28, 2021
Browse files
port remainder of changes
parent
7263efa9
Changes
1
Hide whitespace changes
Inline
Side-by-side
tools/SEGYImport/SEGYImport.cpp
View file @
45e69785
...
...
@@ -3340,8 +3340,10 @@ main(int argc, char* argv[])
for
(
size_t
fileIndex
=
0
;
fileIndex
<
segmentInfoListsSize
;
++
fileIndex
)
{
assert
(
fileInfo
.
IsOffsetSorted
()
?
chunkInfo
.
min
[
1
]
<
gatherOffsetValues
.
size
()
:
true
);
const
int
offetSortedOffsetValue
=
fileInfo
.
IsOffsetSorted
()
?
offsetStart
+
offsetStep
*
chunkInfo
.
min
[
1
]
:
0
;
off
s
etSortedOffsetValue
=
fileInfo
.
IsOffsetSorted
()
?
gatherOffsetValues
[
chunkInfo
.
min
[
1
]
]
:
0
;
if
(
fileInfo
.
IsOffsetSorted
())
{
...
...
@@ -3349,7 +3351,7 @@ main(int argc, char* argv[])
assert
(
chunkInfo
.
min
[
1
]
+
1
==
chunkInfo
.
max
[
1
]);
// If the calculated offset value isn't present in this file's map then skip
if
(
fileInfo
.
m_segmentInfoListsByOffset
[
fileIndex
].
find
(
offetSortedOffsetValue
)
==
fileInfo
.
m_segmentInfoListsByOffset
[
fileIndex
].
end
())
if
(
fileInfo
.
m_segmentInfoListsByOffset
[
fileIndex
].
find
(
off
s
etSortedOffsetValue
)
==
fileInfo
.
m_segmentInfoListsByOffset
[
fileIndex
].
end
())
{
continue
;
}
...
...
@@ -3357,7 +3359,7 @@ main(int argc, char* argv[])
auto
&
segmentInfoList
=
fileInfo
.
IsOffsetSorted
()
?
fileInfo
.
m_segmentInfoListsByOffset
[
fileIndex
][
offetSortedOffsetValue
]
?
fileInfo
.
m_segmentInfoListsByOffset
[
fileIndex
][
off
s
etSortedOffsetValue
]
:
fileInfo
.
m_segmentInfoLists
[
fileIndex
];
// does this file have any segments in the primary key range?
...
...
@@ -3433,9 +3435,6 @@ main(int argc, char* argv[])
auto
&
chunkInfo
=
chunkInfos
[
chunk
];
const
int
offsetSortedOffsetValue
=
fileInfo
.
IsOffsetSorted
()
?
offsetStart
+
offsetStep
*
chunkInfo
.
min
[
1
]
:
0
;
// if we've crossed to a new inline then trim the trace page cache
if
(
chunk
>
0
)
{
...
...
@@ -3529,6 +3528,11 @@ main(int argc, char* argv[])
continue
;
}
assert
(
fileInfo
.
IsOffsetSorted
()
?
chunkInfo
.
min
[
1
]
<
gatherOffsetValues
.
size
()
:
true
);
const
int
offsetSortedOffsetValue
=
fileInfo
.
IsOffsetSorted
()
?
gatherOffsetValues
[
chunkInfo
.
min
[
1
]]
:
0
;
const
auto
lowerSegmentIndex
=
std
::
get
<
0
>
(
result
->
second
);
const
auto
upperSegmentIndex
=
std
::
get
<
1
>
(
result
->
second
);
...
...
@@ -3564,6 +3568,9 @@ main(int argc, char* argv[])
tertiaryIndex
=
0
,
currentSecondaryKey
=
chunkInfo
.
secondaryKeyStart
;
auto
gatherSpacing
=
CalculateGatherSpacing
(
fileInfo
,
fold
,
gatherOffsetValues
,
traceDataManager
,
traceSpacingByOffset
,
firstTrace
,
jsonOutput
);
for
(
int64_t
trace
=
firstTrace
;
trace
<=
segment
->
m_traceStop
;
trace
++
,
tertiaryIndex
++
)
{
const
char
*
header
=
traceDataManager
.
getTraceData
(
trace
,
error
);
...
...
@@ -3589,6 +3596,9 @@ main(int argc, char* argv[])
// we've progressed to a new secondary key, so reset the tertiary (gather) index
currentSecondaryKey
=
secondaryTest
;
tertiaryIndex
=
0
;
// then get respace info for the next gather
gatherSpacing
=
CalculateGatherSpacing
(
fileInfo
,
fold
,
gatherOffsetValues
,
traceDataManager
,
traceSpacingByOffset
,
trace
,
jsonOutput
);
}
int
...
...
@@ -3613,7 +3623,7 @@ main(int argc, char* argv[])
assert
(
primaryIndex
>=
chunkInfo
.
min
[
PrimaryKeyDimension
(
fileInfo
)]
&&
primaryIndex
<
chunkInfo
.
max
[
PrimaryKeyDimension
(
fileInfo
)]);
assert
(
secondaryIndex
>=
chunkInfo
.
min
[
SecondaryKeyDimension
(
fileInfo
)]
&&
secondaryIndex
<
chunkInfo
.
max
[
SecondaryKeyDimension
(
fileInfo
)]);
if
(
fileInfo
.
Is4D
()
&&
traceOrderByOffset
)
if
(
fileInfo
.
Is4D
())
{
if
(
fileInfo
.
IsOffsetSorted
())
{
...
...
@@ -3624,18 +3634,12 @@ main(int argc, char* argv[])
}
else
{
if
(
traceOrderByOffset
)
tertiaryIndex
=
gatherSpacing
->
GetTertiaryIndex
(
trace
);
// sanity check the new index
if
(
tertiaryIndex
<
0
||
tertiaryIndex
>=
fold
)
{
// recalculate tertiaryIndex from header offset value
const
auto
thisOffset
=
SEGY
::
ReadFieldFromHeader
(
header
,
g_traceHeaderFields
[
"offset"
],
fileInfo
.
m_headerEndianness
);
tertiaryIndex
=
(
thisOffset
-
offsetStart
)
/
offsetStep
;
// sanity check the new index
if
(
tertiaryIndex
<
0
||
tertiaryIndex
>=
fold
)
{
continue
;
}
continue
;
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment