• Stars
    star
    382
  • Rank 111,608 (Top 3 %)
  • Language Svelte
  • License
    GNU General Publi...
  • Created over 3 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Uses USGS/MERIT Basin data to visualize the path of a rain droplet to its endpoint.

River Runner

This project visualizes the path of a rain droplet from any point in the world to its end point (usually an ocean or an inland water features). It will find the closest river/stream flowline coordinate to a click/search and then animate along that flowline's downstream path. The data used in this project comes from the River Runner API, which is based on several open source projects and datasets. Similar data, initially used for the project, came from the USGS's NHDPlus data and their NLDI API

I've used mapbox to animate the downstream path, but needed to make all sorts of adjustments for elevation and bearing changes to prevent jerkiness/nausea (just moving from point to point feels a little like flying through turbulence while shaking your head side-to-side).

I've hosted a dataset with NHDPlus Value Added Attributes on Firebase, which allows me to group flowlines into their parent features and determine distances quickly.

Note: The newly-released, global version of this project is in beta. We currently have relatively poor coverage of river names outside of the United States, which we are hoping to fill out, as well as some UX edge-cases and bugs that we hope to resolve.

Examples

Here are a couple of examples of what it looks like in action.

This is a section of the path from eastern Turkey to the Persian Gulf:

Screenshot of the river runner in progress from eastern Turkey to the Persian Gulf. Mountain features and river are visible.

Here's part of the path from Southwest Arizona down to the Mexican border:

Screenshot of the river runner in progress from Southwest Arizona to Mexican border. Mountain features, desert, and river are visible.

You can look at a heatmap of previous searches here or find a list of some of our favorite paths here

Running this on your own

If you'd like to run this locally and play around with it, just run the following commands in your terminal (assuming you have npm installed):

  1. git clone https://github.com/sdl60660/river-runner.git
  2. cd river-runner
  3. npm install
  4. npm run dev (then follow the link to the local server, probably http://localhost:5000).
  5. If you're running this on your own or forking into a new app, please replace the Mapbox Access Token strings in src/access_tokens.js with your own. You can generate a couple of tokens (for free), by creating a Mapbox account and visiting this page. You'll need to generate two separate tokens to replace the ones in the existing file, but it does not matter which serves as the primary token and which serves as the secondary token.

Supporters

Thank you to Mapbox for sponsoring this project!

mapbox-logo-black

Updates

  • January 2022: The global version of this tool is now released and in beta! While some lingering issues are resolved and it remains in beta, it can be found on this branch, while the original, US-only version is preserved here in Github, and at its original URL: https://river-runner.samlearner.com/. This is to avoid any breaking changes to existing share links/paths due to any discrepancies and because minor US issues persist on the global version, mainly when paths involve dams, canals, or conduits.

If you'd like to be notified about major updates to the tool, you can sign up for an email list here.

More Repositories

1

letterboxd_recommendations

Scraping publicly-accessible Letterboxd data and creating a movie recommendation model with it that can generate recommendations when provided with a Letterboxd username
Python
235
star
2

pittsburgh-steps

A short visual ode to Pittsburgh's many outdoor steps, using data from WPRDC.
Svelte
30
star
3

donor_overlap

Visualizes donor overlap between candidates in the 2020 election using FEC data displayed over a couple of node-link diagrams.
JavaScript
3
star
4

nba_origins

Mapping NBA players by country/state of origin since the start of the league
JavaScript
3
star
5

2020_campaign_donors

Visualization project based on FEC records with a particular focus on candidate donor overlap and mapping donors to zipcode demographics.
JavaScript
3
star
6

book_cover_colors

Simple codebase for extracting colors from book cover images, used as part of a viz project on Observable
Python
2
star
7

cleveland_eviction_mapping

Mapping eviction filings in Cleveland by neighborhood using scraped data from the Cleveland Municipal Court website
Python
2
star
8

philly_police_complaints

Using Philly Open Data Portal data to examine what happens after a complaint is filed against Philly PD/match with other data
JavaScript
2
star
9

language_sounds

Visualizing overlap of sounds (phonemes) between languages, using data from: Wikpedia IPA, UPSID, Phoible
HTML
2
star
10

cleveland_eviction_scraper

Scrapes eviction data from the Cleveland Municipal Courts site on evictions using Selenium
Python
1
star
11

commuter-mapping

A draft project that uses census LODES data to visualize metro areas based on commuting patterns.
JavaScript
1
star
12

iot_doorbell

Setup old Amazon Dash Button to send texts when pressed. Runs on Raspberry pi, which picks up DHCP requests from the dash button and triggers the send_update function, which texts us using Twilio.
Python
1
star
13

nba_player_movement

Visualization that maps NBA player movement in the 2020-21 offseason/season, triggering signings, trades, waivers, claims, and options on scroll.
JavaScript
1
star
14

next-js-project-site

Very simple portfolio site built with Next.js/React
JavaScript
1
star
15

sam_learner_projects

Project Site using Github Pages
HTML
1
star
16

river-runner-query-heatmap

Quick/dirty microsite for displaying heatmap of River Runner queries
JavaScript
1
star