mirror of
https://github.com/wassname/segpy.git
synced 2026-07-19 11:27:54 +08:00
*** empty log message ***
This commit is contained in:
@@ -2,11 +2,14 @@
|
||||
A python module for reading/writing/manipuating
|
||||
SEG-Y formatted filed
|
||||
|
||||
segy.readSegy : Read SEGY file
|
||||
segy.getSegyHeader : Get SEGY header
|
||||
segy.getSegyTraceHeader : Get SEGY Trace header
|
||||
segy.readSegy : Read SEGY file
|
||||
segy.getSegyHeader : Get SEGY header
|
||||
segy.getSegyTraceHeader : Get SEGY Trace header
|
||||
segy.getAllSegyTraceHeaders : Get all SEGY Trace headers
|
||||
segy.getSegyTrace : Get SEGY Trace heder and trace data for one trace
|
||||
segy.getSegyTrace : Get SEGY Trace heder and trace data for one trace
|
||||
|
||||
segy.writeSegy : Write a data to a SEGY file
|
||||
segy.writeSegyStructure : Writes a segypy data structure to a SEGY file
|
||||
|
||||
segy.getValue : Get a value from a binary string
|
||||
segy.ibm2ieee : Convert IBM floats to IEEE
|
||||
@@ -179,27 +182,27 @@ STH_def["TraceIdenitifactionCode"]["descr"][1]={
|
||||
19: "Vibrator baseplate",
|
||||
20: "Vibrator estimated ground force",
|
||||
21: "Vibrator reference",
|
||||
22: "Time-velocity pairs"}
|
||||
STH_def["NSummedTraces"]={"pos":30 ,"type":"int16"} #'int16'); % 30
|
||||
STH_def["NStackedTraces"]={"pos":32 ,"type":"int16"} #'int16'); % 32
|
||||
22: "Time-velocity pairs"}
|
||||
STH_def["NSummedTraces"]={"pos":30 ,"type":"int16"} #'int16'); % 30
|
||||
STH_def["NStackedTraces"]={"pos":32 ,"type":"int16"} #'int16'); % 32
|
||||
STH_def["DataUse"]={"pos":34 ,"type":"int16"} #'int16'); % 34
|
||||
STH_def["DataUse"]["descr"]={0: {
|
||||
1: "Production",
|
||||
2: "Test"}}
|
||||
STH_def["DataUse"]["descr"][1]=STH_def["DataUse"]["descr"][0]
|
||||
STH_def["offset"]={"pos":36 ,"type":"int32"} #'int32'); %36
|
||||
STH_def["ReceiverGroupElevation"]={"pos":40 ,"type":"int32"} #'int32'); %40
|
||||
STH_def["SourceSurfaceElevation"]={"pos":44 ,"type":"int32"} #'int32'); %44
|
||||
STH_def["SourceDepth"]={"pos":48 ,"type":"int32"} #'int32'); %48
|
||||
STH_def["ReceiverDatumElevation"]={"pos":52 ,"type":"int32"} #'int32'); %52
|
||||
STH_def["SourceDatumElevation"]={"pos":56 ,"type":"int32"} #'int32'); %56
|
||||
STH_def["SourceWaterDepth"]={"pos":60 ,"type":"int32"} #'int32'); %60
|
||||
STH_def["GroupWaterDepth"]={"pos":64 ,"type":"int32"} #'int32'); %64
|
||||
STH_def["ElevationScalar"]={"pos":68 ,"type":"int16"} #'int16'); %68
|
||||
STH_def["SourceGroupScalar"]={"pos":70 ,"type":"int16"} #'int16'); %70
|
||||
STH_def["SourceX"]={"pos":72 ,"type":"int32"} #'int32'); %72
|
||||
STH_def["SourceY"]={"pos":76 ,"type":"int32"} #'int32'); %76
|
||||
STH_def["GroupX"]={"pos":80 ,"type":"int32"} #'int32'); %80
|
||||
STH_def["DataUse"]["descr"][1]=STH_def["DataUse"]["descr"][0]
|
||||
STH_def["offset"]={"pos":36 ,"type":"int32"} #'int32'); %36
|
||||
STH_def["ReceiverGroupElevation"]={"pos":40 ,"type":"int32"} #'int32'); %40
|
||||
STH_def["SourceSurfaceElevation"]={"pos":44 ,"type":"int32"} #'int32'); %44
|
||||
STH_def["SourceDepth"]={"pos":48 ,"type":"int32"} #'int32'); %48
|
||||
STH_def["ReceiverDatumElevation"]={"pos":52 ,"type":"int32"} #'int32'); %52
|
||||
STH_def["SourceDatumElevation"]={"pos":56 ,"type":"int32"} #'int32'); %56
|
||||
STH_def["SourceWaterDepth"]={"pos":60 ,"type":"int32"} #'int32'); %60
|
||||
STH_def["GroupWaterDepth"]={"pos":64 ,"type":"int32"} #'int32'); %64
|
||||
STH_def["ElevationScalar"]={"pos":68 ,"type":"int16"} #'int16'); %68
|
||||
STH_def["SourceGroupScalar"]={"pos":70 ,"type":"int16"} #'int16'); %70
|
||||
STH_def["SourceX"]={"pos":72 ,"type":"int32"} #'int32'); %72
|
||||
STH_def["SourceY"]={"pos":76 ,"type":"int32"} #'int32'); %76
|
||||
STH_def["GroupX"]={"pos":80 ,"type":"int32"} #'int32'); %80
|
||||
STH_def["GroupY"]={"pos":84 ,"type":"int32"} #'int32'); %84
|
||||
STH_def["CoordinateUnits"]={"pos":88 ,"type":"int16"} #'int16'); %88
|
||||
STH_def["CoordinateUnits"]["descr"]={1: {
|
||||
@@ -208,39 +211,39 @@ STH_def["CoordinateUnits"]["descr"][1]={
|
||||
STH_def["CoordinateUnits"]["descr"][1]={
|
||||
1: "Length (meters or feet)",
|
||||
2: "Seconds of arc",
|
||||
3: "Decimal degrees",
|
||||
4: "Degrees, minutes, seconds (DMS)"}
|
||||
STH_def["WeatheringVelocity"]={"pos":90 ,"type":"int16"} #'int16'); %90
|
||||
STH_def["SubWeatheringVelocity"]={"pos":92 ,"type":"int16"} #'int16'); %92
|
||||
STH_def["SourceUpholeTime"]={"pos":94 ,"type":"int16"} #'int16'); %94
|
||||
STH_def["GroupUpholeTime"]={"pos":96 ,"type":"int16"} #'int16'); %96
|
||||
STH_def["SourceStaticCorrection"]={"pos":98 ,"type":"int16"} #'int16'); %98
|
||||
STH_def["GroupStaticCorrection"]={"pos":100 ,"type":"int16"} #'int16'); %100
|
||||
STH_def["TotalStaticApplied"]={"pos":102 ,"type":"int16"} #'int16'); %102
|
||||
STH_def["LagTimeA"]={"pos":104 ,"type":"int16"} #'int16'); %104
|
||||
STH_def["LagTimeB"]={"pos":106 ,"type":"int16"} #'int16'); %106
|
||||
STH_def["DelayRecordingTime"]={"pos":108 ,"type":"int16"} #'int16'); %108
|
||||
STH_def["MuteTimeStart"]={"pos":110 ,"type":"int16"} #'int16'); %110
|
||||
STH_def["MuteTimeEND"]={"pos":112 ,"type":"int16"} #'int16'); %112
|
||||
STH_def["ns"]={"pos":114 ,"type":"uint16"} #'uint16'); %114
|
||||
STH_def["dt"]={"pos":116 ,"type":"uint16"} #'uint16'); %116
|
||||
3: "Decimal degrees",
|
||||
4: "Degrees, minutes, seconds (DMS)"}
|
||||
STH_def["WeatheringVelocity"]={"pos":90 ,"type":"int16"} #'int16'); %90
|
||||
STH_def["SubWeatheringVelocity"]={"pos":92 ,"type":"int16"} #'int16'); %92
|
||||
STH_def["SourceUpholeTime"]={"pos":94 ,"type":"int16"} #'int16'); %94
|
||||
STH_def["GroupUpholeTime"]={"pos":96 ,"type":"int16"} #'int16'); %96
|
||||
STH_def["SourceStaticCorrection"]={"pos":98 ,"type":"int16"} #'int16'); %98
|
||||
STH_def["GroupStaticCorrection"]={"pos":100 ,"type":"int16"} #'int16'); %100
|
||||
STH_def["TotalStaticApplied"]={"pos":102 ,"type":"int16"} #'int16'); %102
|
||||
STH_def["LagTimeA"]={"pos":104 ,"type":"int16"} #'int16'); %104
|
||||
STH_def["LagTimeB"]={"pos":106 ,"type":"int16"} #'int16'); %106
|
||||
STH_def["DelayRecordingTime"]={"pos":108 ,"type":"int16"} #'int16'); %108
|
||||
STH_def["MuteTimeStart"]={"pos":110 ,"type":"int16"} #'int16'); %110
|
||||
STH_def["MuteTimeEND"]={"pos":112 ,"type":"int16"} #'int16'); %112
|
||||
STH_def["ns"]={"pos":114 ,"type":"uint16"} #'uint16'); %114
|
||||
STH_def["dt"]={"pos":116 ,"type":"uint16"} #'uint16'); %116
|
||||
STH_def["GainType"]={"pos":119 ,"type":"int16"} #'int16'); %118
|
||||
STH_def["GainType"]["descr"]={0: {
|
||||
1: "Fixes",
|
||||
2: "Binary",
|
||||
3: "Floating point"}}
|
||||
STH_def["GainType"]["descr"][1]=STH_def["GainType"]["descr"][0]
|
||||
STH_def["InstrumentGainConstant"]={"pos":120 ,"type":"int16"} #'int16'); %120
|
||||
STH_def["GainType"]["descr"][1]=STH_def["GainType"]["descr"][0]
|
||||
STH_def["InstrumentGainConstant"]={"pos":120 ,"type":"int16"} #'int16'); %120
|
||||
STH_def["InstrumentInitialGain"]={"pos":122 ,"type":"int16"} #'int16'); %%122
|
||||
STH_def["Correlated"]={"pos":124 ,"type":"int16"} #'int16'); %124
|
||||
STH_def["Correlated"]["descr"]={0: {
|
||||
1: "No",
|
||||
2: "Yes"}}
|
||||
STH_def["Correlated"]["descr"][1]=STH_def["Correlated"]["descr"][0]
|
||||
|
||||
STH_def["SweepFrequenceStart"]={"pos":126 ,"type":"int16"} #'int16'); %126
|
||||
STH_def["SweepFrequenceEnd"]={"pos":128 ,"type":"int16"} #'int16'); %128
|
||||
STH_def["SweepLength"]={"pos":130 ,"type":"int16"} #'int16'); %130
|
||||
STH_def["Correlated"]["descr"][1]=STH_def["Correlated"]["descr"][0]
|
||||
|
||||
STH_def["SweepFrequenceStart"]={"pos":126 ,"type":"int16"} #'int16'); %126
|
||||
STH_def["SweepFrequenceEnd"]={"pos":128 ,"type":"int16"} #'int16'); %128
|
||||
STH_def["SweepLength"]={"pos":130 ,"type":"int16"} #'int16'); %130
|
||||
STH_def["SweepType"]={"pos":132 ,"type":"int16"} #'int16'); %132
|
||||
STH_def["SweepType"]["descr"]={0: {
|
||||
1: "linear",
|
||||
@@ -248,28 +251,28 @@ STH_def["SweepType"]["descr"]={0: {
|
||||
3: "exponential",
|
||||
4: "other"}}
|
||||
STH_def["SweepType"]["descr"][1]=STH_def["SweepType"]["descr"][0]
|
||||
|
||||
STH_def["SweepTraceTaperLengthStart"]={"pos":134 ,"type":"int16"} #'int16'); %134
|
||||
|
||||
STH_def["SweepTraceTaperLengthStart"]={"pos":134 ,"type":"int16"} #'int16'); %134
|
||||
STH_def["SweepTraceTaperLengthEnd"]={"pos":136 ,"type":"int16"} #'int16'); %136
|
||||
STH_def["TaperType"]={"pos":138 ,"type":"int16"} #'int16'); %138
|
||||
STH_def["TaperType"]["descr"]={0: {
|
||||
1: "linear",
|
||||
2: "cos2c",
|
||||
3: "other"}}
|
||||
3: "other"}}
|
||||
STH_def["TaperType"]["descr"][1]=STH_def["TaperType"]["descr"][0]
|
||||
|
||||
STH_def["AliasFilterFrequency"]={"pos":140 ,"type":"int16"} #'int16'); %140
|
||||
STH_def["AliasFilterSlope"]={"pos":142 ,"type":"int16"} #'int16'); %142
|
||||
STH_def["NotchFilterFrequency"]={"pos":144 ,"type":"int16"} #'int16'); %144
|
||||
STH_def["NotchFilterSlope"]={"pos":146 ,"type":"int16"} #'int16'); %146
|
||||
STH_def["LowCutFrequency"]={"pos":148 ,"type":"int16"} #'int16'); %148
|
||||
STH_def["HighCutFrequency"]={"pos":150 ,"type":"int16"} #'int16'); %150
|
||||
STH_def["LowCutSlope"]={"pos":152 ,"type":"int16"} #'int16'); %152
|
||||
STH_def["HighCutSlope"]={"pos":154 ,"type":"int16"} #'int16'); %154
|
||||
STH_def["YearDataRecorded"]={"pos":156 ,"type":"int16"} #'int16'); %156
|
||||
STH_def["DayOfYear"]={"pos":158 ,"type":"int16"} #'int16'); %158
|
||||
STH_def["HourOfDay"]={"pos":160 ,"type":"int16"} #'int16'); %160
|
||||
STH_def["MinuteOfHour"]={"pos":162 ,"type":"int16"} #'int16'); %162
|
||||
|
||||
STH_def["AliasFilterFrequency"]={"pos":140 ,"type":"int16"} #'int16'); %140
|
||||
STH_def["AliasFilterSlope"]={"pos":142 ,"type":"int16"} #'int16'); %142
|
||||
STH_def["NotchFilterFrequency"]={"pos":144 ,"type":"int16"} #'int16'); %144
|
||||
STH_def["NotchFilterSlope"]={"pos":146 ,"type":"int16"} #'int16'); %146
|
||||
STH_def["LowCutFrequency"]={"pos":148 ,"type":"int16"} #'int16'); %148
|
||||
STH_def["HighCutFrequency"]={"pos":150 ,"type":"int16"} #'int16'); %150
|
||||
STH_def["LowCutSlope"]={"pos":152 ,"type":"int16"} #'int16'); %152
|
||||
STH_def["HighCutSlope"]={"pos":154 ,"type":"int16"} #'int16'); %154
|
||||
STH_def["YearDataRecorded"]={"pos":156 ,"type":"int16"} #'int16'); %156
|
||||
STH_def["DayOfYear"]={"pos":158 ,"type":"int16"} #'int16'); %158
|
||||
STH_def["HourOfDay"]={"pos":160 ,"type":"int16"} #'int16'); %160
|
||||
STH_def["MinuteOfHour"]={"pos":162 ,"type":"int16"} #'int16'); %162
|
||||
STH_def["SecondOfMinute"]={"pos":164 ,"type":"int16"} #'int16'); %164
|
||||
STH_def["TimeBaseCode"]={"pos":166 ,"type":"int16"} #'int16'); %166
|
||||
STH_def["TimeBaseCode"]["descr"]={0: {
|
||||
@@ -279,27 +282,27 @@ STH_def["TimeBaseCode"]["descr"][1]={
|
||||
STH_def["TimeBaseCode"]["descr"][1]={
|
||||
1: "Local",
|
||||
2: "GMT",
|
||||
3: "Other",
|
||||
4: "UTC"}
|
||||
STH_def["TraceWeightningFactor"]={"pos":168 ,"type":"int16"} #'int16'); %170
|
||||
STH_def["GeophoneGroupNumberRoll1"]={"pos":170 ,"type":"int16"} #'int16'); %172
|
||||
STH_def["GeophoneGroupNumberFirstTraceOrigField"]={"pos":172 ,"type":"int16"} #'int16'); %174
|
||||
STH_def["GeophoneGroupNumberLastTraceOrigField"]={"pos":174 ,"type":"int16"} #'int16'); %176
|
||||
3: "Other",
|
||||
4: "UTC"}
|
||||
STH_def["TraceWeightningFactor"]={"pos":168 ,"type":"int16"} #'int16'); %170
|
||||
STH_def["GeophoneGroupNumberRoll1"]={"pos":170 ,"type":"int16"} #'int16'); %172
|
||||
STH_def["GeophoneGroupNumberFirstTraceOrigField"]={"pos":172 ,"type":"int16"} #'int16'); %174
|
||||
STH_def["GeophoneGroupNumberLastTraceOrigField"]={"pos":174 ,"type":"int16"} #'int16'); %176
|
||||
STH_def["GapSize"]={"pos":176 ,"type":"int16"} #'int16'); %178
|
||||
STH_def["OverTravel"]={"pos":178 ,"type":"int16"} #'int16'); %178
|
||||
STH_def["OverTravel"]["descr"]={0: {
|
||||
1: "down (or behind)",
|
||||
2: "up (or ahead)",
|
||||
3: "other"}}
|
||||
3: "other"}}
|
||||
STH_def["OverTravel"]["descr"][1]=STH_def["OverTravel"]["descr"][0]
|
||||
|
||||
|
||||
STH_def["cdpX"]={"pos":180 ,"type":"int32"} #'int32'); %180
|
||||
STH_def["cdpY"]={"pos":184 ,"type":"int32"} #'int32'); %184
|
||||
STH_def["Inline3D"]={"pos":188 ,"type":"int32"} #'int32'); %188
|
||||
STH_def["Crossline3D"]={"pos":192 ,"type":"int32"} #'int32'); %192
|
||||
STH_def["ShotPoint"]={"pos":192 ,"type":"int32"} #'int32'); %196
|
||||
STH_def["ShotPointScalar"]={"pos":200 ,"type":"int16"} #'int16'); %200
|
||||
|
||||
|
||||
STH_def["cdpX"]={"pos":180 ,"type":"int32"} #'int32'); %180
|
||||
STH_def["cdpY"]={"pos":184 ,"type":"int32"} #'int32'); %184
|
||||
STH_def["Inline3D"]={"pos":188 ,"type":"int32"} #'int32'); %188
|
||||
STH_def["Crossline3D"]={"pos":192 ,"type":"int32"} #'int32'); %192
|
||||
STH_def["ShotPoint"]={"pos":192 ,"type":"int32"} #'int32'); %196
|
||||
STH_def["ShotPointScalar"]={"pos":200 ,"type":"int16"} #'int16'); %200
|
||||
STH_def["TraceValueMeasurementUnit"]={"pos":202 ,"type":"int16"} #'int16'); %202
|
||||
STH_def["TraceValueMeasurementUnit"]["descr"] = {1: {
|
||||
-1: "Other",
|
||||
@@ -311,13 +314,13 @@ STH_def["TraceValueMeasurementUnit"]["descr"] = {1: {
|
||||
5: "Meters (m)",
|
||||
6: "Meters Per Second (m/s)",
|
||||
7: "Meters Per Second squared (m/&s2)Other",
|
||||
8: "Newton (N)",
|
||||
9: "Watt (W)"}}
|
||||
STH_def["TransductionConstantMantissa"]={"pos":204 ,"type":"int32"} #'int32'); %204
|
||||
8: "Newton (N)",
|
||||
9: "Watt (W)"}}
|
||||
STH_def["TransductionConstantMantissa"]={"pos":204 ,"type":"int32"} #'int32'); %204
|
||||
STH_def["TransductionConstantPower"]={"pos":208 ,"type":"int16"} #'int16'); %208
|
||||
STH_def["TransductionUnit"]={"pos":210 ,"type":"int16"} #'int16'); %210
|
||||
STH_def["TransductionUnit"]["descr"] = STH_def["TraceValueMeasurementUnit"]["descr"]
|
||||
STH_def["TraceIdentifier"]={"pos":212 ,"type":"int16"} #'int16'); %212
|
||||
STH_def["TransductionUnit"]={"pos":210 ,"type":"int16"} #'int16'); %210
|
||||
STH_def["TransductionUnit"]["descr"] = STH_def["TraceValueMeasurementUnit"]["descr"]
|
||||
STH_def["TraceIdentifier"]={"pos":212 ,"type":"int16"} #'int16'); %212
|
||||
STH_def["ScalarTraceHeader"]={"pos":214 ,"type":"int16"} #'int16'); %214
|
||||
STH_def["SourceType"]={"pos":216 ,"type":"int16"} #'int16'); %216
|
||||
STH_def["SourceType"]["descr"] = {1: {
|
||||
@@ -331,11 +334,11 @@ STH_def["SourceType"]["descr"] = {1: {
|
||||
6: "Impulsive - In-line orientation",
|
||||
7: "Distributed Impulsive - Vertical orientation",
|
||||
8: "Distributed Impulsive - Cross-line orientation",
|
||||
9: "Distributed Impulsive - In-line orientation"}}
|
||||
|
||||
STH_def["SourceEnergyDirectionMantissa"]={"pos":218 ,"type":"int32"} #'int32'); %218
|
||||
STH_def["SourceEnergyDirectionExponent"]={"pos":222 ,"type":"int16"} #'int16'); %222
|
||||
STH_def["SourceMeasurementMantissa"]={"pos":224 ,"type":"int32"} #'int32'); %224
|
||||
9: "Distributed Impulsive - In-line orientation"}}
|
||||
|
||||
STH_def["SourceEnergyDirectionMantissa"]={"pos":218 ,"type":"int32"} #'int32'); %218
|
||||
STH_def["SourceEnergyDirectionExponent"]={"pos":222 ,"type":"int16"} #'int16'); %222
|
||||
STH_def["SourceMeasurementMantissa"]={"pos":224 ,"type":"int32"} #'int32'); %224
|
||||
STH_def["SourceMeasurementExponent"]={"pos":228 ,"type":"int16"} #'int16'); %228
|
||||
STH_def["SourceMeasurementUnit"]={"pos":230 ,"type":"int16"} #'int16'); %230
|
||||
STH_def["SourceMeasurementUnit"]["descr"] = {1: {
|
||||
@@ -346,11 +349,11 @@ STH_def["SourceMeasurementUnit"]["descr"] = {1: {
|
||||
3: "Pascal (Pa)",
|
||||
4: "Bar (Bar)",
|
||||
4: "Bar-meter (Bar-m)",
|
||||
5: "Newton (N)",
|
||||
6: "Kilograms (kg)"}}
|
||||
STH_def["UnassignedInt1"]={"pos":232 ,"type":"int32"} #'int32'); %232
|
||||
5: "Newton (N)",
|
||||
6: "Kilograms (kg)"}}
|
||||
STH_def["UnassignedInt1"]={"pos":232 ,"type":"int32"} #'int32'); %232
|
||||
STH_def["UnassignedInt2"]={"pos":236 ,"type":"int32"} #'int32'); %236
|
||||
|
||||
|
||||
|
||||
##############
|
||||
# FUNCTIONS
|
||||
@@ -669,7 +672,7 @@ def writeSegy(filename,Data,dt=.001,STHin={}):
|
||||
|
||||
|
||||
def writeSegyStructure(filename,Data,SH,STH):
|
||||
"""
|
||||
"""
|
||||
writeSegyStructure(filename,Data,SegyHeader,SegyTraceHeaders)
|
||||
|
||||
Write SEGY file using SegyPy data structures
|
||||
|
||||
Reference in New Issue
Block a user