Dear OpenQuake users,
I’m currently working on a project that involves analyzing historical earthquake data by modeling it as gridded seismicity within OpenQuake. After reading through some documentation and discussions, I’ve come across two tools that can be used for seismicity smoothing: HMTK and MBTK.
I would like to ask for your advice or experience on the following points:
Which tool (HMTK vs. MBTK) is more suitable for implementing spatial smoothing of historical earthquake catalogs in the context of gridded seismicity modeling?
What are the main differences between the two tools, both in methodology and compatibility with OpenQuake’s source model input format?
I also plan to run a comparative analysis using hazgridxnga2 from the NSHMP-USGS (Fortran) suite to see how the results compare. Would it be reasonable to use that as a benchmark, or are there compatibility or conceptual differences I should be aware of?
I appreciate any guidance, references, or shared experiences from those who have worked with these tools or have performed similar comparisons.
Thank you in advance!
Best regards,
Fatahillah Surya Yudha
The tools in the MBTK are more updated and used on a regular basis by the hazard team.
Kirsty, should be able to share with you some more details.
--
You received this message because you are subscribed to the Google Groups "OpenQuake Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openquake-use...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/openquake-users/3854612c-4b23-4547-81f1-a78bd9bab52bn%40googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/openquake-users/F8ECC529-5E67-4CC1-8C72-D7D4FA209890%40globalquakemodel.org.
Yeah I think comparing two different software implementations can get quite tricky.
By the way, circling back to the earlier topic — I’ve also been experimenting with the HMTK smoothing tools, and I encountered something that seems like a bug. Specifically, I noticed that certain locations with no earthquakes in the input catalogue still appear to receive smoothed seismicity rates.
To illustrate this, I’ve attached (or: "please see the image below") a map where cyan dots represent the original earthquake locations, and maroon dots indicate the smoothed outputs. You can see that several maroon points appear in areas with no nearby seismicity in the original data.
Do you have any thoughts on why this might be happening? Could this be related to the way spatial kernels are applied in HMTK, or perhaps an issue with the grid resolution?
Thanks again for your insights — I really appreciate your time.
smoothed_seismicity.py
script. The use of:gridy
) and related calculations Dear Kirsty,
Thank you for the clarification —
Given that the HMTK smoothing code is no longer actively maintained or tested, I completely understand the recommendation to switch. I’ll proceed with using the MBTK tools for my smoothing workflow going forward.
That said, I’m still quite new to MBTK. From what I’ve seen so far (especially smoothing), it appears to be written in Julia and makes use of .toml configuration files, which is quite different approach I’m more familiar with in HMTK. It may take me a bit of time to get used to the new workflow and setup.
I really appreciate your time and all the helpful insights you've shared. If I run into anything while setting up MBTK, I’ll be sure to follow up.
Thanks again!
--
You received this message because you are subscribed to the Google Groups "OpenQuake Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to openquake-use...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/openquake-users/cef879b9-6bd5-4f40-b0fe-1f62a2b0b702n%40googlegroups.com.
I’d like to report a bug I found in the smoothing.jl
script of the oq-mbtk
workflow. The script fails with the following error: KeyError: key "kernel_maximum_distance" not found Even though I already declared kernel_maximum_distance
under the [smoothing]
section in my config.toml.
After checking the source code in
smoothing.jl
, it seems that the kernel_maximum_distance
is incorrectly read from the root level of the TOML instead of from the [smoothing]
section. This may be the cause of the KeyError
.
Hi Kirsty,
Thank you very much for your detailed clarification — it helped me better understand the logic behind the smoothing workflow and the need to explicitly assign tectonic region types (TRTs) using set_trt.py
. I appreciate your quick response and explanation. Apologies if there was any earlier confusion from my side. While following the workflow, I noticed a few minor issues and inconsistencies in the documentation that may be worth reviewing:
1. The command oqm wkf create_smoothing_per_zone
uses use
and skip
as positional arguments, but in the documentation they are written with flags (e.g., --use
), which results in parsing errors (unrecognized arguments
). This could be clarified to help new users avoid errors.
2. There is some inconsistency in the output naming between smoothing methods. For example, the Gaussian smoothing example generates a file named smooth
(without .csv
), while the Adaptive smoothing example outputs adapsmooth_nv5.csv
.
3. In the boxcounting
workflow, the documentation refers to a variable BIND
. However, in practice, the correct variable name appears to be BIND1
.
4. When using the -m "counting"
method in set_gr_params
, the config does include agr_counting
, rmag_counting
, and rmag_rate_counting
, but the value for bgr_counting
is not set as expected (i.e., the bgr
value is missing or remains unchanged).
In addition to that, there’s something I’d like to clarify regarding a comparison I made between smoothing results. I visualized the output using both HMTK and MBTK, and used colors to distinguish them. The smoothed seismicity results using HMTK are shown in orange, those from MBTK in yellow, and the original earthquake catalog data in green. Here are the configurations I used:
HMTK Configuration:
# Assuming a b- value of 1.0
smooth_seis = SmoothedSeismicity (grid_limits ,use_3d = True ,bvalue =1.0)
# Set up config (e.g. 50 km band width , up to 3 bandwidths )
config = {'Length_Limit': 3.,'BandWidth' : 50. ,'increment': False}
MBTK Configuration:
[smoothing]
smoothing_method = "Gaussian"
kernel_maximum_distance = 150.0
kernel_smoothing = [ [ 1.0, 50.0,],]
However, I noticed a difference in the size (spatial spread) of the smoothed seismicity patterns produced by HMTK and MBTK — despite using seemingly similar Gaussian parameters. Would this be expected behavior due to implementation differences? or is it okay? Hopefully this helps provide clarity and feedback from a user’s perspective. Once again, thank you for maintaining and supporting this valuable toolkit for seismic source modeling.
Best regards,
Fatahillah