I'm a reporter, editor and programmer who enjoys telling stories with data, visuals and code. Past: @datadesk, @nprapps, @texastribune
trump-truth-social-archive. An auto-updating archive of President Trump's posts on Truth Social.
81streetview-dl. Discover and download high-resolution Google Street View panoramas by URL or coordinates. Query areas, build grids, crop and filter images with parallel batch downloads.
73ezesri. A Python package for extracting data and metadata from Esri REST API endpoints. It provides an API, CLI and web app for exporting feature layers, with support for pagination and filtering.
64notebooks. Hundreds of example notebooks for data analysis, maps and charts using Python, Pandas and Jupyter on a variety of topics, from aircraft to ZIP codes.
34data. A slowly growing repo of data used in my stories for the Los Angeles Times and TheDailyViz.com
32locations. An expanding collection of data scrapers designed to gather location details on prominent stores, restaurants and other consumer destinations across the United States.
30pyfr24. A Python client for the Flightradar24 API with CLI support. Fetch, plot and analyze flight data with ease.
23flight-tracer. A Python package for fetching, processing, storing and plotting flight data from ADS-B Exchange.
18dodgers. An automated dashboard tracking LA Dodgers performance, continuously updated with game-by-game data from 1958 to today. Feeds https://dodgersdata.bot.
14aldi. An automated system for collecting, processing and archiving the full product inventory and "Aisle of Shame" deals from our favorite German discount supermarket.
13la-trees. Gathering, refining and examining data on more than 1.6 million street trees across 40+ municipalities in Los Angeles County.
8la-air-quality. Scraping PM 2.5 readings from AirNow.gov
5north-korea-provocations. Fetching and analyzing hundreds of provocative actions, such as ballistic missile launches and nuclear tests, by North Korea since 1958.
5utilityman. Follow any MLB game from your terminal. Live play-by-play, compact scoreboard and scoring highlights. No browser, just baseball.
3altair-stiles. My theme for Python's Altair visualization library
2usc. Data and code for JOUR 554 and JOUR 561
2north-korea-news. An automated system for scraping, processing and storing news headlines and story content released by North Korean state media.
2mars-perseverance-waypoints. This repository automates tracking of the Mars Perseverance rover using NASA's data, updating hourly. It consolidates rover locations and paths into GeoJSON format, available since March 15, 2021.
2korea-geography. Scripts for acquiring and processing vector data about various levels of North and South Korea geography.
2survivoR2py. survivoR data for Python users
2presidential-elections. Scripts for analyzing US presidential elections data at the county level from 2000-2024.
2survivor-transcripts. Fetching and storing complete transcripts for each episode of the American television show and analyzing the text for keyword/phrase frequency.
1products. A set of automated scrapers that fetch product information from the websites of popular brands.
1guessr-meta-generator. Using AI tools to generate meta about countries and US states for GeoGuessr
1botanica. A Python-based automation system to help journalists and newsrooms collect, process and manage data pipelines.
1polls. Automating the collection of political polls related to the 2024 presidential election.
1vote-fetcher. Fetch and process roll call vote tallies in both chambers of Congress.
1dailygraphics. NPR Visuals' rig for deploying daily graphics projects in responsive iframes.
1tumblr-backup. Downloads post content and metadata using the Tumblr API
1ca-fires-history. Tracking fire data from www.fire.ca.gov/incidents
1swarm-saver. Fetch and store your Swarm app history in various formats with Python.
1