### invertFlippedChannels

This processor first checks the orientation in the seismogram's channel against its orientation code. If the code implies an orientation reversed from the actual orientation, the seismogram's values are inverted. For example if the seismogram's channel code is BHZ but its orientation is actually downwards, the inversion will be applied. The codes and orientation will disagree if the channel was installed incorrectly and then later discovered. This seems to be the case in roughly 1/10 of existing channels. Since the inversion changes the orientation stored in the channel any further processors that want to use the results of this processor must be contained inside of it. To just check for disagreement between the code and orientation, use the isFlipped channel subsetter.

### Example

    <invertFlippedChannels>
      <printlineSeismogramProcess/>
    </invertFlippedChannels>

### This consists of

<invertFlippedChannels>

seismogramProcess At least once choice
<asciiWriter>
availableDataPlus
<collapseOverlaps/>
<compoundPhaseSignalToNoise>
<compressionType>
<decimate>
<differentiate/>
<div>
<externalWaveformProcess>
<filter>
<forkProcess>
<fullDataCoverage/>
<gapFill>
<integrate/>
<invertFlippedChannels>
<legacyExecute>
<localSeismogramTemplateGenerator>
<mean>
<merge/>
<minMax>
<mseedWriter>
<mul>
<noDataGaps/>
<rms>
<oregonDSPFilter>
<phaseCut>
<phaseSignalToNoise>
<printlineSeismogramProcess>
<recordSectionDisplayGenerator>
<requestCut/>
<responseGain/>
<rMean/>
<rms>
<rTrend/>
<sacWriter>
<alwaysSuccess>
<seismogramAND>
<seismogramImageProcess>
<seismogramNOT>
<seismogramOR>
<seismogramSampling>
<seismogramScript>
<someDataCoverage/>
<stddev>
<taper>
<transferResponse>
<wavWriter>
</invertFlippedChannels>

### Places this can be found

In seismogramProcess there is a choice between all of the following

- printlineSeismogramProcess
- sacWriter
- mseedWriter
- asciiWriter
- wavWriter
- recordSectionDisplayGenerator
- responseGain
- phaseCut
- requestCut
- merge
- gapFill
- rMean
- rTrend
- taper
- externalWaveformProcess
- seismogramScript
- localSeismogramTemplateGenerator
- filter
- rms
- oregonDSPFilter
- forkProcess
- alwaysSuccess
- phaseSignalToNoise
- compoundPhaseSignalToNoise
- seismogramImageProcess
- legacyExecute
- seismogramAND
- seismogramOR
- seismogramNOT
- someDataCoverage
- noDataGaps
- fullDataCoverage
- integrate
- differentiate
- transferResponse
- collapseOverlaps
- div
- mul
- invertFlippedChannels
- seismogramSampling
- decimate
- stddev
- rms
- mean
- minMax
- compressionType
- availableDataPlus