40 comments

[ 2.8 ms ] story [ 108 ms ] thread
Apparently Mono Lake Vol Field is the closest to Silicon Valley
It would be nice if there was a way to manually enter location, since the location API on desktop is for me inaccurate by hundreds of miles.
You can spoof it in the inspector, under application/sensors I think
Agreed. Actually, I think the default behaviour should be to show a map with a Voronoi diagram so you can immediately see the closest volcano for any location.

Hm. The volcano locations are in a JSON list, and SciPy can do spherical Voronoi calculations...

Edit: Someone already did it for Iceland (though without marking the volcano positions): https://www.flickr.com/photos/78506020@N00/6807458402/

Do you have any experience with the Google Maps API? I would love to implement this.
No I don't. All you need, though, is the ability to draw straight lines (well, great circle lines) between points. You could do the region generation once offline, in Python:

    import numpy as np
    from scipy.spatial import SphericalVoronoi

    import json

    with open('volcanos.json', 'rt') as f:
        volcanos = json.load(f)
        #There are some nulls in the data:
        volcanos = [v for v in volcanos if v['longitude'] != None and v['latitude'] != None]

    def longlat_to_xyz(longlat):
        longlat = longlat.reshape((-1, 2))*(np.pi/180.)
        r = np.cos(longlat[:, 1])
        return np.column_stack((r*np.cos(longlat[:, 0]), r*np.sin(longlat[:, 0]), np.sin(longlat[:, 1])))
    
    #go through set to remove duplicates:
    volcano_longlat = np.array(list(set((v['longitude'], v['latitude']) for v in volcanos)))
    volcano_xyz = longlat_to_xyz(volcano_longlat)

    sv = SphericalVoronoi(volcano_xyz)
    sv.sort_vertices_of_regions() #make the vertices go around each shape

    #find unique edges (they're shared between regions):
    edges = set()
    for region in sv.regions:
        region.append(region[0])
        for i in range(len(region)-1):
            edges.add((region[i], region[i+1]))

    long_min = -30.
    long_max = 330.
    def xyz_to_longlat(xyz, long_min=long_min, long_max=long_max):
        long = np.arctan2(xyz[:, 1], xyz[:, 0])*(180./np.pi)
        long[long<long_min] += 360.
        long[long>long_max] -= 360.
        return np.column_stack((long, np.arcsin(xyz[:, 2])*(180./np.pi)))

    vertices = xyz_to_longlat(sv.vertices)

    #To draw the regions on Google Maps etc., save edges and vertices as JSON and load into JS.

    #To draw the linked map with Matplotlib (very slow for hi-res, and it was fiddly setting up the right conda environment):
    import matplotlib.pyplot as plt
    from mpl_toolkits.basemap import Basemap

    fig, ax = plt.subplots(figsize=(16, 10))
    m = Basemap(projection='robin', lon_0=-200, resolution='h', ax=ax)
    m.drawcoastlines(linewidth=.1)
    m.drawcountries(linewidth=.1)
    volcano_longlat2 = xyz_to_longlat(volcano_xyz)
    x, y = m(volcano_longlat2[:, 0], volcano_longlat2[:, 1])
    m.plot(x, y, 'ro', markersize=.5)

    for edge in edges:
        m.drawgreatcircle(vertices[edge[0], 0], vertices[edge[0], 1],
                          vertices[edge[1], 0], vertices[edge[1], 1],
                          color='b', linewidth=.3)
    fig.tight_layout()
    fig.savefig('volcano_voronoi.png', dpi=600)
You have to use "is not None" instead of "!= None"
Looks off even on mobile with location enabled.
Where I am, it seems it could be off hundreds of miles in any direction and I’d still be far away from any volcano whatsoever.
Or for those who disable the location requests. I never give websites permission to see my location (not that it's very useful on desktops without GPS). Almost all websites fall back to a search box when they can't get the location automatically.
For me it doesn't seem to return anything via the API, just says calculating indefinitely
I will add this feature!
This is awesome, but the closest volcano it brought up for me is a dormant one. It would be nice to see closest active volcano.
I'm curious, when I was a kid we were taught about the active/dormant/extinct distinction, but my understanding has been that more modern thinking doesn't really go for the dormant label, because dormant on a human timescale doesn't really mean much on a geologic timescale.
Devils Tower for much of the east cost US I'm guessing?
There are lava flows from ancient rifts, dating to the separation of North America from Pangaea, all over the East Coast, for instance the Connecticut River Valley.

For active volcano, see Iceland or Montserrat or Yellowstone.

Huh. It's just a black screen with a red "Calculating..." in the upper left corner and a Bitcoin wallet in the upper right. Nothing else. Safari 12.1.2
Happens on Chrome as well. Approve location permissions and refresh.
Closest to me (in Austin, TX) is the massive Carrizozo Lava Flow in NM. I've actually been there via the Valley of Fires State Park. It's an amazing place, and seems to be usually empty- definitely worth a visit if you're in the area!
Closest one to me at the moment (in Pilsen, Czech Republic): Alban Hills [1]

"Fun" facts:

- it less than 30km from Rome, Italy

- it emits enough CO2 that it occasionally kills livestock

- last eruption is thought to be around 5000 BCE

- a magma chamber is believed to be building up 5-6km below the surface

[1] https://en.wikipedia.org/wiki/Alban_Hills

> tfw seattle
At least we're not Tacoma or Bellingham? Plus, as someone who's always really been into volcanoes since early childhood being able drive two hours and climb multiple volcanoes with exciting fumaroles and weird geology is pretty great...
I'm glad of living in a country (Costa Rica) with several volcanos and a lot of them active, so indeed the app shows the closest!
TIL there are volcanoes in Australia
Currently in a country with some excellent volcanoes: Ethiopia. Sadly this site isn't loading - I assume it is too big a download (not great internet up here in the mountains). A lightweight version would be great:)
That's the problem, if you're actually on a volcano your bandwidth is no good.
Will try to reduce the download size. Unfortunately I don't have much control over the embedded map but I assume Google has optimised this to a decent extent
Thank you for the feedback! I am going to collate the inaccuracies and update the volcano database. I am also going to try to fix the errors a few of you have experienced.
No vulcano in Germany? Strange