ProMax, Focus, Omega, SU, Vista, etc., internal formats. Universities: Stanford Exploration Project Seismic UNIX (Colorado School of Mines) FreeUSP (Amoco) SIOSEIS (Scrippts, marine) Our very ownĬMP Processing Sequence 1) Demultiplex, Vibroseis correlation, Gain recovery Conversion from file formats produced by field data loggers into processingoriented formats SEG-Y, SEG-2. Commercial: ProMAX (Landmark) Omega (Western Geophysical, marine) Focus (Paradigm) Amoco and almost every other company have their own Vista (Seismic Image Soft.). Seismic Processing Systems Usually geared to a particular type of application Mostly CMP reflection processing Land or marine, 2D or 3D. Importance of processing A line processed by several contractors British Petroleum Carless Exploration Clyde Petroleum Goal Petroleum Premier Consolidated Oilfields Tricentrol Oil Exploration Data reduction and editing Transformation into conveniently computer-manageable form Removal of bad records Gathering CMP sorting Filtering in time and space Attenuation of noise Imaging Final velocity and reflectivity image. Reflection Seismic Processing Objective - transform redundant reflection seismic records in the time domain into an interpretable depth image. distributeDMapOverDynPure :: forall t k.Reflection Seismic Processing General CMP processing sequence Highlights of some key steps Reading: Sheriff and Geldart, Chapter 9.distributeIntMapOverDynPure :: Reflex t => IntMap ( Dynamic t v) -> Dynamic t ( IntMap v).distributeMapOverDynPure :: ( Reflex t, Ord k) => Map k ( Dynamic t v) -> Dynamic t ( Map k v).splitDynPure :: Reflex t => Dynamic t (a, b) -> ( Dynamic t a, Dynamic t b).traceDynWith :: Reflex t => (a -> String) -> Dynamic t a -> Dynamic t a.traceDyn :: ( Reflex t, Show a) => String -> Dynamic t a -> Dynamic t a.Reflex t => Dynamic t ( IntMap ( Dynamic t a)) -> Dynamic t ( IntMap a) ( Reflex t, Ord k) => Dynamic t ( Map k ( Dynamic t a)) -> Dynamic t ( Map k a) foldDynMaybeM :: ( Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t ( Maybe b)) -> b -> Event t a -> m ( Dynamic t b).foldDynMaybe :: ( Reflex t, MonadHold t m, MonadFix m) => (a -> b -> Maybe b) -> b -> Event t a -> m ( Dynamic t b).foldDynM :: ( Reflex t, MonadHold t m, MonadFix m) => (a -> b -> PushM t b) -> b -> Event t a -> m ( Dynamic t b).foldDyn :: ( Reflex t, MonadHold t m, MonadFix m) => (a -> b -> b) -> b -> Event t a -> m ( Dynamic t b).improvingMaybe :: ( Reflex t, MonadHold t m, MonadFix m) => Dynamic t ( Maybe a) -> m ( Dynamic t ( Maybe a)).holdUniqDynBy :: ( Reflex t, MonadHold t m, MonadFix m) => (a -> a -> Bool) -> Dynamic t a -> m ( Dynamic t a).holdUniqDyn :: ( Reflex t, MonadHold t m, MonadFix m, Eq a) => Dynamic t a -> m ( Dynamic t a).scanDynMaybe :: ( Reflex t, MonadHold t m, MonadFix m) => (a -> b) -> (a -> b -> Maybe b) -> Dynamic t a -> m ( Dynamic t b).scanDyn :: ( Reflex t, MonadHold t m, MonadFix m) => (a -> b) -> (a -> b -> b) -> Dynamic t a -> m ( Dynamic t b).( Reflex t, MonadHold t m, GEq k) => Dynamic t ( DSum k v) -> m ( Dynamic t ( DSum k ( Compose ( Dynamic t) v))) ( Reflex t, MonadFix m, MonadHold t m) => Dynamic t ( Either a b) -> m ( Dynamic t ( Either ( Dynamic t a) ( Dynamic t b))) ( Reflex t, MonadFix m, MonadHold t m) => Dynamic t ( Maybe a) -> m ( Dynamic t ( Maybe ( Dynamic t a))) attachPromptlyDynWithMaybe :: Reflex t => (a -> b -> Maybe c) -> Dynamic t a -> Event t b -> Event t c.
Reflex t => Dynamic t ( Event t a) -> Event t a toggle :: ( Reflex t, MonadHold t m, MonadFix m) => Bool -> Event t a -> m ( Dynamic t Bool).count :: ( Reflex t, MonadHold t m, MonadFix m, Num b) => Event t a -> m ( Dynamic t b).constDyn :: Reflex t => a -> Dynamic t a.MonadSample t m' => a -> m' b) -> m ( Dynamic t b) ( Reflex t, MonadHold t m) => Dynamic t a -> ( forall m'. MonadSample t m' => a -> m' b) -> Dynamic t a -> m ( Dynamic t b) ( Reflex t, MonadHold t m) => ( forall m'. holdDyn :: MonadHold t m => a -> Event t a -> m ( Dynamic t a).updated :: Reflex t => Dynamic t a -> Event t a.current :: Reflex t => Dynamic t a -> Behavior t a.