{"id":328,"date":"2013-04-08T05:54:00","date_gmt":"2013-04-08T05:54:00","guid":{"rendered":"http:\/\/ahay.org\/blog\/?p=328"},"modified":"2015-09-01T13:42:00","modified_gmt":"2015-09-01T13:42:00","slug":"program-of-the-month-sfnmo","status":"publish","type":"post","link":"https:\/\/ahay.org\/blog\/2013\/04\/08\/program-of-the-month-sfnmo\/","title":{"rendered":"Program of the month: sfnmo"},"content":{"rendered":"<p><a href=\"\/RSF\/sfnmo.html\">sfnmo<\/a> implements normal moveout (NMO) correction, one of the most fundamental operations in seismic reflection data processing. <\/p>\n<p>The following example from <a href=\"\/RSF\/book\/jsg\/avo\/avo.html\">jsg\/avo\/avo<\/a> shows synthetic data before and after NMO correction. <\/p>\n<p><img decoding=\"async\" src=\"\/RSF\/book\/jsg\/avo\/avo\/Fig\/cmp.png\" alt=\"\" title=\"\" \/> <img decoding=\"async\" src=\"\/RSF\/book\/jsg\/avo\/avo\/Fig\/avonmo.png\" alt=\"\" title=\"\" \/> <\/p>\n<p>NMO transforms prestack seismic gathers by stretching each trace according to the equation<br \/>\n$$t = \\sqrt{t_0^2 + \\frac{x^2}{v^2(t_0)}}\\;,$$<br \/>\nwhere $t$ is time before the correction, $t_0$ is time after the correction, $x$ is offset, and $v(t_0)$ is velocity specified in <strong>velocity=<\/strong> file. The NMO velocity can be picked (for example, with <a href=\"\/blog\/2012\/08\/01\/program-of-the-month-sfpick\/\">sfpick<\/a>) from velocity scans (for example, produced with <a href=\"\/RSF\/sfvscan.html\">sfvscan<\/a>). <\/p>\n<p>If <strong>s=<\/strong> file is provided, <strong>sfnmo<\/strong> uses Malovichko&#8217;s shifted-hyperbola approximation<br \/>\n$$t \\approx \\left(1-\\frac{1}{s(t_0)}\\right) + \\frac{1}{s(t_0)}\\,\\sqrt{t_0^2 + s(t_0)\\,\\frac{x^2}{v^2(t_0)}}$$<br \/>\nSee <\/p>\n<ul>\n<li>Malovichko, A. A., 1978, A new representation of the traveltime curve of reflected waves in horizontally layered media: Applied Geophysics (in Russian), 91, 47-53 <\/li>\n<li>Sword, C. H., 1987, A Soviet look at datum shift, in SEP-51: Stanford Exploration Project, 313-316. <\/li>\n<li>de Bazelaire, E., 1988, Normal moveout revisited &#8211; Inhomogeneous media and curved interfaces: Geophysics, 53, 143-157. <\/li>\n<li>Castle, R. J., 1994, Theory of normal moveout: Geophysics, 59, 983-999. <\/li>\n<\/ul>\n<p>If <strong>a=<\/strong> file is provided, <strong>sfnmo<\/strong> uses Taner&#8217;s velocity-acceleration approximation<br \/>\n$$t = \\sqrt{t_0^2 + \\frac{x^2}{v^2(t_0)+a(t_0)\\,x^2}}$$<br \/>\nSee<\/p>\n<ul>\n<li>Taner, M. T., S. Treitel, and M. Al-Chalabi, 2005, A new travel time estimation method for horizontal strata: 75th Ann. Internat. Mtg, Soc. of Expl. Geophys., 2273-2276. <\/li>\n<li>Taner, M. T., S. Treitel, M. Al-Chalabi, and S. Fomel, 2007, An offset dependent NMO velocity model: EAGE 69th Conference and Exhibition, EAGE, P036. <\/li>\n<\/ul>\n<p>The offset $x$ can be either regular (specified as the second axis in the input file) or irregular (specified in <strong>offset=<\/strong> file). By default, half-offset is used $h=x\/2$. To use full offset, specify <strong>half=n<\/strong>. <\/p>\n<p>Additionally, it is possible to specify a mask (with <strong>mask=<\/strong> file containing 1s and 0s) for skipping certain traces during the correction. See the following example from <a href=\"\/RSF\/book\/rsf\/scons\/rsf.html\">rsf\/scons\/rsf<\/a><\/p>\n<p><img decoding=\"async\" src=\"\/RSF\/book\/rsf\/scons\/rsf\/Fig\/cdp1500.png\" alt=\"\" title=\"\" \/> <\/p>\n<p>The NMO correction is associated with the phenomenon of &#8220;NMO stretch&#8221;, a non-linear stretching of time at large offsets. The maximum allowed relative stretch is controlled by <strong>str=<\/strong> parameter. The part of the data that is stretched more than the allowed stretch gets muted. The width of the mute zone is controlled by <strong>mute=<\/strong> parameter. <\/p>\n<p>NMO with constant velocity can be accomplished with <a href=\"\/RSF\/sfstretch.html\">sfnmostretch<\/a>. For 3-D azimuthally-anisotropic moveout correction, try <a href=\"\/RSF\/sfnmo3.html\">sfnmo3<\/a>. For NMO in the tau-p domain, try <a href=\"\/RSF\/sftaupmo.html\">sftaupmo<\/a>. For an inverse NMO operation, try <a href=\"\/RSF\/sfinmo.html\">sfnimo<\/a>. <\/p>\n<h3 id=\"10previousprogramsofthemonth\">10 previous programs of the month<\/h3>\n<ul>\n<li><a href=\"\/blog\/2013\/03\/10\/program-of-the-month-sfpow\/\">sfpow<\/a><\/li>\n<li><a href=\"\/blog\/2013\/02\/09\/program-of-the-month-sfpwd\/\">sfpwd<\/a><\/li>\n<li><a href=\"\/blog\/2013\/01\/08\/program-of-the-month-sfricker1\/\">sfricker1<\/a><\/li>\n<li><a href=\"\/blog\/2012\/12\/23\/program-of-the-month-sfhalfint\/\">sfhalfint<\/a><\/li>\n<li><a href=\"\/blog\/2012\/11\/03\/program-of-the-month-sfbandpass\/\">sfbandpass<\/a><\/li>\n<li><a href=\"\/blog\/2012\/10\/03\/program-of-the-month-sfkirmod\/\">sfkirmod<\/a><\/li>\n<li><a href=\"\/blog\/2012\/09\/03\/program-of-the-month-sfiwarp\/\">sfiwarp<\/a><\/li>\n<li><a href=\"\/blog\/2012\/08\/01\/program-of-the-month-sfpick\/\">sfpick<\/a><\/li>\n<li><a href=\"\/blog\/2012\/07\/02\/program-of-the-month-sffft3\/\">sffft3<\/a><\/li>\n<li><a href=\"\/blog\/2012\/06\/02\/program-of-the-month-sfdip\/\">sfdip<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>sfnmo implements normal moveout (NMO) correction, one of the most fundamental operations in seismic reflection data processing. The following example from jsg\/avo\/avo shows synthetic data before and after NMO correction. NMO transforms prestack seismic gathers by stretching each trace according to the equation $$t = \\sqrt{t_0^2 + \\frac{x^2}{v^2(t_0)}}\\;,$$ where $t$ is time before the correction, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-328","post","type-post","status-publish","format-standard","hentry","category-programs"],"_links":{"self":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts\/328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/comments?post=328"}],"version-history":[{"count":3,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts\/328\/revisions"}],"predecessor-version":[{"id":18857,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts\/328\/revisions\/18857"}],"wp:attachment":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/media?parent=328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/categories?post=328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/tags?post=328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}