7 ms·
Show HN: Closest Volcano
- sdan 7y agoApparently Mono Lake Vol Field is the closest to Silicon Valley
- PostOnce 7y agoIt 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.
- CraftThatBlock 7y agoYou can spoof it in the inspector, under application/sensors I think
- mkl 7y agoAgreed. 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/ https://www.flickr.com/photos/78506020@N00/6807458402/
- mkl 7y agoI worked out how to make matplotlib do it: https://imgur.com/lsxjRXP https://imgur.com/lsxjRXP
- rontoes 7y agoDo you have any experience with the Google Maps API? I would love to implement this.
- mkl 7y agoNo 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)
- bonoboTP 7y agoYou have to use "is not None" instead of "!= None"
- manojlds 7y agoLooks off even on mobile with location enabled.
- ComputerGuru 7y agoWhere 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.
- sleavey 7y agoOr 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.
- mobilemidget 7y agoFor me it doesn't seem to return anything via the API, just says calculating indefinitely
- rontoes 7y agoWhich browser/device are you using?
- egfx 7y agoiOS SE safari
- mobilemidget 7y agocatalina safari
- rontoes 7y agoI will add this feature!
- chrisco255 7y agoThis is awesome, but the closest volcano it brought up for me is a dormant one. It would be nice to see closest active volcano.
- pacaro 7y agoI'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.
- ropiwqefjnpoa 7y agoDevils Tower for much of the east cost US I'm guessing?
- JshWright 7y agoDoes Devil's Tower really qualify as a "volcano"?
- jnwatson 7y ago“Although magma formed Devils Tower, it was probably never part of a volcano.” [1] 1. https://www.nationalgeographic.org/media/devils-tower-geology/ https://www.nationalgeographic.org/media/devils-tower-geolog...
- networkimprov 7y agoThere 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.
- mminer237 7y agoI got Capulin.
- ryandrake 7y agoHuh. 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
- Spinosaurus 7y agoHappens on Chrome as well. Approve location permissions and refresh.
- ereyes01 7y agoClosest 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!
- Spinosaurus 7y agoLooks like volcanos are provided by a giant static JSON file. I'm curious, where/how was this data compiled? Regardless, very cool.
- tuukkah 7y agoI would query Wikidata for a first try: https://query.wikidata.org/#SELECT%20%3Fvolcano%20%3FvolcanoLabel%20%3Fcoordinate_location%20WHERE%20%7B%0A%20%20SERVICE%20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cen%22.%20%7D%0A%20%20%3Fvolcano%20wdt%3AP31%20wd%3AQ8072.%0A%20%20%3Fvolcano%20wdt%3AP625%20%3Fcoordinate_location.%0A%7D%0A https://query.wikidata.org/#SELECT%20%3Fvolcano%20%3Fvolcano...
- rontoes 7y agoThat's right. Honestly, web development is far from my expertise, I'm more of an AI guy. Data is mainly from http://volcano.oregonstate.edu/volcano_table http://volcano.oregonstate.edu/volcano_table and a few other sources.
- PopeDotNinja 7y agoClosest 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 https://en.wikipedia.org/wiki/Alban_Hills
- starpilot 7y ago> tfw seattle
- msds 7y agoAt 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...
- mikecr 7y agoI'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!
- chewxy 7y agoTIL there are volcanoes in Australia
- james_in_the_uk 7y agoCurrently 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:)
- lloeki 7y agoATM this returns an incorrect answer for me (at Strasbourg, yet returning Dôme volcano circus in the center of France, 645km) as the closest volcano is actually the Nideck, a 250'000'000 year old volcano, a mere 35km from here. (Photos, with geological layout at the end) http://www.passion-escalade-et-montagne.com/2018/04/escapade-en-terre-volcanique-nideck-m-et-hirschfels-545m-29/04/2018.html http://www.passion-escalade-et-montagne.com/2018/04/escapade... http://www.randoalsacevosges.com/2015/03/le-volcan-du-nideck.html http://www.randoalsacevosges.com/2015/03/le-volcan-du-nideck...
- rontoes 7y agoThank 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.
- rurban 7y agoNo vulcano in Germany? Strange