{"id":304,"date":"2012-10-03T09:04:33","date_gmt":"2012-10-03T09:04:33","guid":{"rendered":"http:\/\/ahay.org\/blog\/?p=304"},"modified":"2015-09-02T17:03:41","modified_gmt":"2015-09-02T17:03:41","slug":"program-of-the-month-sfkirmod","status":"publish","type":"post","link":"https:\/\/ahay.org\/blog\/2012\/10\/03\/program-of-the-month-sfkirmod\/","title":{"rendered":"Program of the month: sfkirmod"},"content":{"rendered":"<p><a href=\"\/RSF\/sfkirmod.html\">sfkirmod<\/a> is a program for modeling seismic reflection data using the Kirchhoff method. According to this method, the reflection response is computed by integrating over the reflector surface. For a theoretical derivation, see, for example,<\/p>\n<p>Haddon, R. A. W., and P. W. Buchen, 1981, Use of Kirchhoff&#8217;s formula for body wave calculations in the earth: Geophys. J. Roy. Astr. Soc., 67, 587-598. <\/p>\n<p>At the moment, sfkirmod can handle only asymptotic Green&#8217;s functions, analytically computed in three kinds of velocity models: <\/p>\n<ol>\n<li>Constant velocity<\/li>\n<li>Constant gradient of velocity<\/li>\n<li>Constant gradient of velocity squared<\/li>\n<\/ol>\n<p>The type is specified with <strong>type=<\/strong> parameter, and the velocity model is specified with <strong>vel=<\/strong>, <strong>refx=<\/strong>, <strong>refz=<\/strong>, <strong>gradx=<\/strong>, and <strong>gradz=<\/strong>. <\/p>\n<p>The following example from <a href=\"\/RSF\/book\/rsf\/scons\/rsf.html\">rsf\/scons\/rsf<\/a> shows shot gathers modeled by <strong>sfkirmod<\/strong> in a medium with horizontal reflectors and a constant vertical gradient of velocity <\/p>\n<p><img decoding=\"async\" src=\"\/RSF\/book\/rsf\/scons\/rsf\/Fig\/data.png\" alt=\"\" title=\"\" \/> <\/p>\n<p>It is also possible to model a converted (PS or SP) wave by supplying <strong>vel2=<\/strong>, <strong>gradx2=<\/strong>, and <strong>gradz2=<\/strong> to specify the converted velocity. The standard input file for <strong>sfkirmod<\/strong> contains the shape of one or more reflectors. Several other input files can be optionally provided: <strong>dip=<\/strong> specifies the slope of the reflector(s), <strong>refl=<\/strong> specifies normal-incidence reflectivity (AVA intercept), <strong>rgrad=<\/strong> specifies AVA gradient. <\/p>\n<p>The sampling of the time axis in the output is controlled by <strong>nt=<\/strong>, <strong>t0=<\/strong>, and <strong>dt=<\/strong> parameters. A Ricker wavelet is used with the peak frequency specified by <strong>freq=<\/strong>. Factors such as the geometrical spreading and the obliquity factor are taken into account. The geometrical spreading correction is different for 2-D (cylindrical waves) or 2.5-D (spherical waves). The default behavior is 2.5_D. To switch to 2-D, use <strong>twod=y<\/strong>. By default, <strong>sfkirmod<\/strong> outputs shot gathers. <\/p>\n<p>It is also possible to compute CMP gathers directly by using <strong>cmp=y<\/strong>. The following example from <a href=\"\/RSF\/book\/jsg\/crs\/dome2.html\">jsg\/crs\/dome2<\/a> shows CMP gathers computed over a hyperbolic-shape reflector. <\/p>\n<p><img decoding=\"async\" src=\"\/RSF\/book\/jsg\/crs\/dome2\/Fig\/data.png\" alt=\"\" title=\"\" \/> <\/p>\n<p>Since Kirchhoff modeling is fundamentally a linear operation, it is easy to run <strong>sfkirmod<\/strong> in a data-parallel fashion, for example by using <a href=\"\/wiki\/Parallel_Computing#pscons\">pscons<\/a> with <strong>split=[1,n1]<\/strong> and <strong>reduce=&#8217;add&#8217;<\/strong>. <\/p>\n<p>The 3-D version of <strong>sfkirmod<\/strong> is <a href=\"\/RSF\/sfkirmod3.html\">sfkirmod3<\/a>. <\/p>\n<h3 id=\"10previousprogramsofthemonth\">10 previous programs of the month<\/h3>\n<ul>\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<li><a href=\"\/blog\/2012\/05\/01\/program-of-the-month-sfderiv\/\">sfderiv<\/a><\/li>\n<li><a href=\"\/blog\/2012\/04\/01\/program-of-the-month-sfgrey3\/\">sfgrey3<\/a><\/li>\n<li><a href=\"\/blog\/2012\/03\/18\/program-of-the-month-sfspectra\/\">sfspectra<\/a><\/li>\n<li><a href=\"\/blog\/2011\/07\/03\/program-of-the-month-sfnoise\/\">sfnoise<\/a><\/li>\n<li><a href=\"\/blog\/2011\/08\/09\/program-of-the-month-sfgraph\/\">sfgraph<\/a><\/li>\n<li><a href=\"\/blog\/2011\/09\/03\/program-of-the-month-sfclip\/\">sfclip<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>sfkirmod is a program for modeling seismic reflection data using the Kirchhoff method. According to this method, the reflection response is computed by integrating over the reflector surface. For a theoretical derivation, see, for example, Haddon, R. A. W., and P. W. Buchen, 1981, Use of Kirchhoff&#8217;s formula for body wave calculations in the earth: [&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":"local","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-304","post","type-post","status-publish","format-standard","hentry","category-programs"],"_links":{"self":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts\/304","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=304"}],"version-history":[{"count":3,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts\/304\/revisions"}],"predecessor-version":[{"id":19902,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/posts\/304\/revisions\/19902"}],"wp:attachment":[{"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/media?parent=304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/categories?post=304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahay.org\/blog\/wp-json\/wp\/v2\/tags?post=304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}