بخشی از مقاله
چکیده
امروزه پایتون به عنوان یکی از سادهترین و در عین حال قدرتمندترین زبانهاي برنامه نویسی کاملا شناخته شده است. کاربرد پایتون در اکثر حوزههاي ژئوفیزیکی از جمله زلزلهشناسی بطور چشمگیري در حال افزایش است. در این مجال مروري خواهیم داشت بر آخرین دستآوردهاي این زبان برنامه نویسی در حوزه زلزلهشناسی از جمله تحلیل امواج لرزه-اي، تبدیل فرمت انواع دادههاي لرزهاي، مطالعه پارامترهاي چشمه لرزهاي، مطالعه نوفههاي لرزهاي، محاسبه تابع گیرنده، وارونسازي و تصویرسازي دادهها.
همچنین انعطافپذیري بالاي این زبان برنامه نویسی و نیز برخورداري از جامعه کاربري بالا و فعال، این امکان را میدهد تا کاربر براحتی بخشهاي مختلف برنامه را متناسب با نیاز خود تغییر داده و در کمترین زمان ممکن مشکلات خود را مرتفع سازد. هدف از این مطالعه آشنایی بیشتر جامعه زلزلهشناسی و علاقه مندان این حوزه با آخرین دستآوردها و کاربردهاي این زبان برنامه نویسی خواهد بود.
1 مقدمه
طی یک دهه گذشته، حوزه کاربرد زبان برنامه نویسی پایتون در تمامی حوزههاي مختلف علوم و بطور ویژه علوم پایه پیشرفت قابل توجهی داشته است. این گستردگی به دلایل مختلفی همچون سادگی بسیار بالاي این زبان، سرعت قابل قبول و وجود جامعه محقیقین بسیار مجرب میباشد. در ژئوفیزیک و بالاخص زلزلهشناسی تلاشها و فعالیتهاي بسیار زیادي طی سالیان گذشته در قالب کدها و برنامههاي کاربردي متنوع با اهداف آموزشی و پژوهشی صورت گرفته است.
از جمله این برنامهها میتوان به مجموعه Obspy اشاره کرد. این مجموعه شامل ابزارهایی جهت خواندن و نوشتن انواع فرمت دادهاي، پردازش سیگنال لرزهاي، ساخت بانک داده و فازخوانی خودکار و غیره است که طیف وسیعی از نیازهاي عمومی محققین این حوزه را برطرف میکند. در کنار این مجموعه ارزشمند، کدها و برنامههاي تخصصی دیگري نیز وجود دارد که با استفاده از ابزارهاي موجود در مجموعه Obspy کار را براي متخصصین آن حوزه بسیار آسان کرده است.
به عنوان نمونه بمنظور قرائت فازهاي لرزه، مکانیابی و محاسبه مکانیزم چشمه با روش پلاریته می-توان از برنامه ObsPyck استفاده نمود. جهت محاسبه تغییرات ساختار سرعتی از طریق تحلیل نوفه هاي زمینه برنامه MSNOISE یک را حل بسیار کارآمد است. به منظور محاسبه تابع گیرنده برنامه rf و جهت مطالعه چشمه و ساخت نگاشت مصنوعی میتوان از برنامه Instaseis نام برد. همچنین با استفاده از برنامه obspyDMT میتوان شکل موج و فایل پاسخ دستگاهی زمینلرزههاي مهم که در مراکز داده بین المللی به ثبت رسیدهاند، براحتی دریافت کرد.
از برنامه EQcorrscan میتوان به منظور مطالعه و استخراج زمینلرزها با بزرگاي کوچک در مناطقی که سطح نوفه بالایی وجود دارد بهره برد. اینها تنها بخشی از توانمندي زبان برنامه نویسی پایتون است که در قالب چندین برنامه کاربردي، امروزه طرفداران بسیار زیادي را به سمت خود سوق داده است. علاوه بر این، امروزه پروژهاي بسیاري زیادي در دانشگاهاي مختلف اروپا بر مباي کار با این زبان برنامه نویسی تعریف شده و در حال اجرا میباشد، که از آن جمله میتوان به دانشگاه مونیخ آلمان و مجموعه کاربردي Kinherd در GFZ آلمان اشاره کرد. هدف از ارائه این مقاله، معرفی تعدادي از مهمترین برنامههاي کاربردي نوشته شده به زبان پایتون در حوزه زلزلهشناسی است تا بر میزان آشنایی و دانش پژوهشگران و علاقه مندان به این حوزه افزوده گردد.
2 پایتون و زلزلهشناسی
بدون شک ورود زبان برنامه نویسی پایتون به حوزه زلزلهشناسی را میتوان با ظهور مجموعه بسیار کاربردي و ارزشمند Obspy - بیریودر و همکاران، - 2010 دنبال نمود. این مجموعه از سال 2010 بطور رسمی معرفی گردید و تا کنون بیش از 60 پژوهشگر از دانشگاهاي مختلف اروپا و آمریکا در گسترش آن فعالیت داشته و دارند. کاربرد این مجموعه بدان اندازه میباشد که تا به امروز بیش از 35 برنامه تخصصی و کاربردي در حوزه زلزلهشناسی، بصورت مستقیم از قابلیتها و ابزارهاي پردازشی موجود در آن استفاده میکنند. به عنوان نمونه، دریافت و ذخیره دادههاي لرزهاي به فرمتهاي رایج، یکی از مهمترین کاربردهاي این مجموعه است. با تکیه بر قواعد ساختاري بسیار ساده زبان برنامه نویسی پایتون این فرآیند به آسانترین شکل ممکن و تنها در 6 خط توسط مجموعه Obspy ممکن میشود
شکل .1 نمایی از یک کد پایتون، تنها در شش خط، که منجر به دریافت شکل موج و فایل پاسخ دستگاهی میشود.
با استفاده از این مجموعه مفید، اطلاعات دریافت شده را میتوان به انواع فرمتهاي رایج، ذخیره نمود. همچنین ابزارهاي بسیار متنوعی جهت پردازش دادههاي در این مجموعه گنجانده شده است که از آن جمله میتوان به، بررسی میزان گپ زمانی، میزان کیفیت سیگنال، اعمال فیلترهاي مخلتف و پردازش سیگنال لرزهاي، حذف پاسخ دستگاه از شکل موج، ادغام و چیدن شکلموجها اشاره کرد.
شکل .2 نمایی از پنجره برنامه ObsPyck بمنظور قرائت فازهاي لرزهاي.
شکل .3 نمایی از پنجره برنامه Instaseis بمنظور تولید نگاشت مصنوعی.