
SEGY_TAPE_LABEL = [
    ['uchar', 4, 0, 'StorageUnitSeqNumber'],
    ['uchar', 5, 4, 'SEGYRevision'],
    ['uchar', 6, 9, 'StorageUnitStructure'],
    ['uchar', 4, 15, 'BindingEdition'],
    ['uchar', 10, 19, 'MaxBlockSize'],
    ['uchar', 10, 29, 'ProducerOrganizationCode'],
    ['uchar', 11, 39, 'CreationDate'],
    ['uchar', 12, 50, 'SerialNumber'],
    ['uchar', 6, 62, 'Reserved'],
    ['uchar', 60, 68, 'StorageSetIdentifier']]

SEGY_BINARY_HEADER = [
    ['int32', 1, 0, 'JobID'],
    ['int32', 1, 4, 'LineNumber'],
    ['int32', 1, 8, 'ReelNumber'],
    ['int16', 1, 12, 'DataTracePerEnsemble'],
    ['int16', 1, 14, 'AuxillaryTracePerEnsemble'],
    ['int16', 1, 16, 'SamplingTime'],
    ['int16', 1, 18, 'OriginalSamplingTime'],
    ['int16', 1, 20, 'NumberSamples'],
    ['int16', 1, 22, 'OriginalNumberSamples'],
    ['int16', 1, 24, 'TraceMachineFormatCode'],
    ['int16', 1, 26, 'EnsembleFold'],
    ['int16', 1, 28, 'TraceSorting'],
    ['int16', 1, 30, 'VerticalSumCode'],
    ['int16', 1, 32, 'SweepFreqencyStart'],
    ['int16', 1, 34, 'SweepFrequencyEnd'],
    ['int16', 1, 36, 'SweepLength'],
    ['int16', 1, 38, 'SweepType'],
    ['int16', 1, 40, 'SweepChannel'],
    ['int16', 1, 42, 'SweepTaperLengthStart'],
    ['int16', 1, 44, 'SweepTaperLengthEnd'],
    ['int16', 1, 46, 'TaperType'],
    ['int16', 1, 48, 'CorrelatedTraces'],
    ['int16', 1, 50, 'BinaryGain'],
    ['int16', 1, 52, 'AmplitudeRecovery'],
    ['int16', 1, 54, 'MeasurementSystem'],
    ['int16', 1, 56, 'ImpulsePolarity'],
    ['int16', 1, 58, 'VibratoryPolarity'],
    ['int16', 120, 60, 'Unassigned1'],
    ['int16', 1, 300, 'RevisionNumber'],
    ['int16', 1, 302, 'FixedLengthTraceFlag'],
    ['int16', 1, 304, 'NumberExtendedTextualHeaders'],
    ['int16', 47, 306, 'Unassigned2']]

SEGY_TRACE_HEADER = [
    ['int32', 1, 0, 'TraceSequenceLine'],
    ['int32', 1, 4, 'TraceSequenceFile'],
    ['int32', 1, 8, 'OriginalFieldRecord'],
    ['int32', 1, 12, 'TraceNumberInField'],
    ['int32', 1, 16, 'EnergySourceNumber'],
    ['int32', 1, 20, 'EnsembleNumber'],
    ['int32', 1, 24, 'EnsembleTraceNumber'],
    ['int16', 1, 28, 'TraceIdentificationCode'],
    ['int16', 1, 30, 'NumberVertSummedTraces'],
    ['int16', 1, 32, 'NumberHorizSummedTraces'],
    ['int16', 1, 34, 'DataUse'],
    ['int32', 1, 36, 'ReceiverGroupOffset'],
    ['int32', 1, 40, 'ReceiverGroupElevation'],
    ['int32', 1, 44, 'SurfaceSourceElevation'],
    ['int32', 1, 48, 'SurfaceSourceDepth'],
    ['int32', 1, 52, 'ReceiverDatumElevation'],
    ['int32', 1, 56, 'SourceDatumElevation'],
    ['int32', 1, 60, 'SourceWaterDepth'],
    ['int32', 1, 64, 'GroupWaterDepth'],
    ['int16', 1, 68, 'ElevationOrDepthScalar'],
    ['int16', 1, 70, 'CoordinateScalar'],
    ['int32', 1, 72, 'SourceX'],
    ['int32', 1, 76, 'SourceY'],
    ['int32', 1, 80, 'GroupX'],
    ['int32', 1, 84, 'GroupY'],
    ['int16', 1, 88, 'CoordinateUnits'],
    ['int16', 1, 90, 'WeatheringVelocity'],
    ['int16', 1, 92, 'SubweatheringVelocity'],
    ['int16', 1, 94, 'SourceUpholeTime_ms'],
    ['int16', 1, 96, 'GroupUpholeTime_ms'],
    ['int16', 1, 98, 'SourceStaticCorrection_ms'],
    ['int16', 1, 100, 'GroupStaticCorrection_ms'],
    ['int16', 1, 102, 'TotalStaticApplied_ms'],
    ['int16', 1, 104, 'ALagTime_ms'],
    ['int16', 1, 106, 'BLagTime_ms'],
    ['int16', 1, 108, 'RecordingDelay_ms'],
    ['int16', 1, 110, 'MuteTimeStart_ms'],
    ['int16', 1, 112, 'MuteTimeEnd_ms'],
    ['int16', 1, 114, 'NumberSamples'],
    ['int16', 1, 116, 'SampleInterval_ms'],
    ['int16', 1, 118, 'GainType'],
    ['int16', 1, 120, 'GainConstant_dB'],
    ['int16', 1, 122, 'InitialGain_dB'],
    ['int16', 1, 124, 'Correlated'],
    ['int16', 1, 126, 'SweepFrequencyStart_Hz'],
    ['int16', 1, 128, 'SweepFrequencyEnd_Hz'],
    ['int16', 1, 130, 'SweepLength_ms'],
    ['int16', 1, 132, 'SweepType'],
    ['int16', 1, 134, 'SweepTaperLengthStart_ms'],
    ['int16', 1, 136, 'SweepTaperLengthEnd_ms'],
    ['int16', 1, 138, 'TaperType'],
    ['int16', 1, 140, 'AliasFilter_Hz'],
    ['int16', 1, 142, 'AliasSlope_dBperOctave'],
    ['int16', 1, 144, 'NotchFilterFrequency_Hz'],
    ['int16', 1, 146, 'NotchFilterSlope_dBperOctave'],
    ['int16', 1, 148, 'LowCutFrequency_Hz'],
    ['int16', 1, 150, 'HighCutFrequency_Hz'],
    ['int16', 1, 152, 'LowCutSlope_dBperOctave'],
    ['int16', 1, 154, 'HighCutSlope_dBperOctave'],
    ['int16', 1, 156, 'Year'],
    ['int16', 1, 158, 'Day'],
    ['int16', 1, 160, 'Hour'],
    ['int16', 1, 162, 'Minute'],
    ['int16', 1, 164, 'Second'],
    ['int16', 1, 166, 'TimeBasisCode'],
    ['int16', 1, 168, 'WeightingFactor'],
    ['int16', 1, 170, 'GeophoneGroupNumberRoll1'],
    ['int16', 1, 172, 'GeophoneGroupNumberFirstTraceOriginalRecord'],
    ['int16', 1, 174, 'GeophoneGroupNumberLastTraceOriginalRecord'],
    ['int16', 1, 176, 'GapSize'],
    ['int16', 1, 178, 'OverTravel'],
    ['int32', 1, 180, 'EnsembleX'],
    ['int32', 1, 184, 'EnsembleY'],
    ['int32', 1, 188, 'InLineNumber3D'],
    ['int32', 1, 192, 'CrossLineNumber3D'],
    ['int32', 1, 196, 'ShotPointNumber'],
    ['int16', 1, 200, 'ShotPointScalar'],
    ['int16', 1, 202, 'TraceMeasurementUnit'],
    ['int32', 1, 204, 'TransductionConstantMantissa'],
    ['int16', 1, 208, 'TransductionConstantExponent'],
    ['int16', 1, 210, 'TranductionUnits'],
    ['int16', 1, 212, 'TraceIdentifier'],
    ['int16', 1, 214, 'TimeScalar'],
    ['int16', 1, 216, 'SourceTypeOrientation'],
    ['bit48', 1, 218, 'SourceEnergyDirection'],
    ['int32', 1, 224, 'SourceMeasurementMantissa'],
    ['int16', 1, 228, 'SourceMeasurementExponent'],
    ['int16', 1, 230, 'SourceMeasurementUnit'],
    ['int16', 4, 232, 'Unassigned']]
