I have a working leaflet map that is showing earthquake data from http://earthquake.usgs.gov/. I'm trying to figure out the "right" way to calculate the radius of the circle for an earthquake given its magnitude (and possibly depth).

The circle is being created with

L.circle(latlng, radius);

(where radius is in meters). The previous map developer did this:

var radius = 30000 * magnitude;

Which looks good on a map but doesn't seem right - he just made up a number to make it look decent. I googled and found two other earthquake maps using leaflet and they did this:

var radius = Math.sqrt(Math.pow(10, magnitude))/50000);

and the other did this:

var radius = Math.pow(2, magnitude);

but both of those draw very tiny circles on the map. As an example, if the magnitude is 5.0, I would get radii of 150000, 1.414, and 32, respectively.

So, my question... is there a standard/accepted formula for drawing an earthquake circle on the map using the magnitude (and maybe the depth)?

UPDATE: I found one more:

var radius = (Math.exp(magnitude/1.01-0.13))*1000;

which for a magnitude of 5.0 gives a radius of 124026 meters (and "looks" good on the map). Barring any insights from the community, I may just go with this one.

  • Yeah, that's sort of what I came up with too after doing a bit more research. Thanks!
    – Brian Pipa
    Dec 19 '16 at 16:26
  • Earthquakes aren't circles. If you look at an earthquakes' shakemap, areas that are affected by an earthquake can take many different shapes and sizes depending the geology. These circles you reference are merely a cartographic representation of the earthquakes size using the technique of graduated symbology. Dec 19 '16 at 18:25

The question is, what is your radius trying to represent. I get the feeling you don't really know. Is it meant to be the distance at which you would physically feel the quake? That's hard to measure.

Is it the energy of the quake? Then you would want a scale that isn't just linear - because each +1 unit of magnitude is around 30x stronger than the previous.

Plus, I know that earthquakes don't pass through the same land material types at the same rate, so if you want to be picky, the "radius" wouldn't be circular anyway.

In short, if you're not trying to show a specific geological feature, then I'd say just go with what looks good!

  • 1
    I'm doing this for a client and they want to be able to show things that are in "danger" or "affected by" it but it's not clear what that means or how to calculate it. So yeah - I don't think there is a "right" answer really. The client was previously happy with var radius = (Math.exp(magnitude/1.01-0.13))*1000; so I'll just use that.
    – Brian Pipa
    Dec 19 '16 at 19:12
  • The Richter scale is a base 10 logarithmic scale, so each level is 10 times greater than the previous level.
    – nmtoken
    Jan 14 '17 at 12:46
  • Just noticed the above comment. Depends if you're talking about the shaking or power. The shaking amplitude is a scale of 10. But earthquake energy (as Wikipedia puts it) "is generally proportional to the shaking amplitude raised to the ​3⁄2 power, Stack Overflow an increase of 1 magnitude corresponds to a release of energy 31.6 times that released by the lesser earthquake." Jan 10 '18 at 18:14

Based on your research and a little of my own, I would surmise that there is not an accepted method for displaying the magnitude as a representative radius. I bet most developers are being told to adjust the formula to display the radius for comparison against the dataset for visually appealing displays rather than actual size representative of the map which is dependent on multiple factors for each area.

Probably much like drilling for oil, you will likely have to come up with a reasonable formula for each differing area.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.