{"title":"SKHASH:计算地震焦点机制的 Python 软件包","authors":"R. Skoumal, J. Hardebeck, P. Shearer","doi":"10.1785/0220230329","DOIUrl":null,"url":null,"abstract":"\n We introduce a Python package for computing focal mechanism solutions. This algorithm, which we refer to as SKHASH, is largely based on the HASH algorithm originally written in Fortran over 20 yr ago. HASH innovated the use of suites of solutions, spanning the expected errors in polarities and takeoff angles, to estimate focal mechanism uncertainty. SKHASH benefits from new features with flexible input formats and allows users to take advantage of recent advances in constraining focal mechanisms for small magnitude or poorly recorded earthquakes. The 3D locations of earthquakes and the velocity models used are varied when finding acceptable solutions. As a result, source–receiver azimuths are reflective of errors from the earthquake locations and velocity models, in addition to the takeoff angles. Users can consider weighted P-wave first-motion polarities derived from traditional or machine-learning picks, cross-correlation consensus, and/or imputation techniques using SKHASH. Focal mechanism solutions can also be further constrained using traditional, machine learning, and/or cross-correlation consensus S/P amplitude ratios. With improved reporting of individual and collective P polarity and S/P amplitude misfits, users can better evaluate the success of the solutions and the quality of the measurements. The reporting also makes it easier to identify potential issues with metadata, including incorrectly reported station polarity reversals. In addition, by leveraging vectorized operations, taking advantage of an efficient backend Python C Application Programming Interface, and the use of a parallel environment, the Python SKHASH routine may compute mechanisms quicker than the HASH routine.","PeriodicalId":508466,"journal":{"name":"Seismological Research Letters","volume":"2015 20","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-04-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"SKHASH: A Python Package for Computing Earthquake Focal Mechanisms\",\"authors\":\"R. Skoumal, J. Hardebeck, P. Shearer\",\"doi\":\"10.1785/0220230329\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"\\n We introduce a Python package for computing focal mechanism solutions. This algorithm, which we refer to as SKHASH, is largely based on the HASH algorithm originally written in Fortran over 20 yr ago. HASH innovated the use of suites of solutions, spanning the expected errors in polarities and takeoff angles, to estimate focal mechanism uncertainty. SKHASH benefits from new features with flexible input formats and allows users to take advantage of recent advances in constraining focal mechanisms for small magnitude or poorly recorded earthquakes. The 3D locations of earthquakes and the velocity models used are varied when finding acceptable solutions. As a result, source–receiver azimuths are reflective of errors from the earthquake locations and velocity models, in addition to the takeoff angles. Users can consider weighted P-wave first-motion polarities derived from traditional or machine-learning picks, cross-correlation consensus, and/or imputation techniques using SKHASH. Focal mechanism solutions can also be further constrained using traditional, machine learning, and/or cross-correlation consensus S/P amplitude ratios. With improved reporting of individual and collective P polarity and S/P amplitude misfits, users can better evaluate the success of the solutions and the quality of the measurements. The reporting also makes it easier to identify potential issues with metadata, including incorrectly reported station polarity reversals. In addition, by leveraging vectorized operations, taking advantage of an efficient backend Python C Application Programming Interface, and the use of a parallel environment, the Python SKHASH routine may compute mechanisms quicker than the HASH routine.\",\"PeriodicalId\":508466,\"journal\":{\"name\":\"Seismological Research Letters\",\"volume\":\"2015 20\",\"pages\":\"\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2024-04-10\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Seismological Research Letters\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1785/0220230329\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Seismological Research Letters","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1785/0220230329","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
摘要
我们介绍一种用于计算焦点机制解决方案的 Python 软件包。我们将这种算法称为 SKHASH,它主要基于 20 多年前最初用 Fortran 编写的 HASH 算法。HASH 创新性地使用了多套解决方案,涵盖了极性和起飞角的预期误差,以估算焦点机制的不确定性。SKHASH 具有输入格式灵活的新功能,允许用户利用最新进展来约束小震级或记录较少的地震的焦点机制。在寻找可接受的解决方案时,地震的三维位置和所使用的速度模型各不相同。因此,除了起飞角之外,震源-接收器方位角还反映了地震位置和速度模型的误差。用户可以考虑使用传统或机器学习选取、交叉相关共识和/或使用 SKHASH 的估算技术得出的加权 P 波初动极性。还可以使用传统、机器学习和/或交叉相关共识 S/P 振幅比进一步限制焦点机制解决方案。通过改进对单个和集体 P 极性和 S/P 振幅误差的报告,用户可以更好地评估解决方案的成功性和测量质量。报告还能更容易地发现元数据的潜在问题,包括错误报告的台站极性反转。此外,通过利用矢量化操作、高效的后台 Python C 应用编程接口和并行环境,Python SKHASH 例程的计算机制可能比 HASH 例程更快。
SKHASH: A Python Package for Computing Earthquake Focal Mechanisms
We introduce a Python package for computing focal mechanism solutions. This algorithm, which we refer to as SKHASH, is largely based on the HASH algorithm originally written in Fortran over 20 yr ago. HASH innovated the use of suites of solutions, spanning the expected errors in polarities and takeoff angles, to estimate focal mechanism uncertainty. SKHASH benefits from new features with flexible input formats and allows users to take advantage of recent advances in constraining focal mechanisms for small magnitude or poorly recorded earthquakes. The 3D locations of earthquakes and the velocity models used are varied when finding acceptable solutions. As a result, source–receiver azimuths are reflective of errors from the earthquake locations and velocity models, in addition to the takeoff angles. Users can consider weighted P-wave first-motion polarities derived from traditional or machine-learning picks, cross-correlation consensus, and/or imputation techniques using SKHASH. Focal mechanism solutions can also be further constrained using traditional, machine learning, and/or cross-correlation consensus S/P amplitude ratios. With improved reporting of individual and collective P polarity and S/P amplitude misfits, users can better evaluate the success of the solutions and the quality of the measurements. The reporting also makes it easier to identify potential issues with metadata, including incorrectly reported station polarity reversals. In addition, by leveraging vectorized operations, taking advantage of an efficient backend Python C Application Programming Interface, and the use of a parallel environment, the Python SKHASH routine may compute mechanisms quicker than the HASH routine.