Skip to content

Instantly share code, notes, and snippets.

Avatar

Kyle McDonald kylemcdonald

View GitHub Profile
@kylemcdonald
kylemcdonald / adsbx.py
Created August 26, 2023 08:09
Download historical data from ADS-B Exchange.
View adsbx.py
import requests
import os
import argparse
import datetime
import time
parser = argparse.ArgumentParser(
description='Download historical data from ADS-B Exchange.')
parser.add_argument('-i', '--icao', default='icao.txt', type=str,
help='Newline delimited text file of ICAO hex codes.')
@kylemcdonald
kylemcdonald / watch-page.sh
Created July 26, 2023 01:33
Watch a URL for updates and pop up a notification if it changes.
View watch-page.sh
#!/bin/bash
URL=$1
LAST_PAGE="cache.html"
while true; do
curl -s "$URL" > "$LAST_PAGE"
echo -n "$(date) - $(stat -f "%z" "$LAST_PAGE") - "
openssl md5 "$LAST_PAGE" | cut -d' ' -f2
if ! diff -q "$LAST_PAGE" "$LAST_PAGE.old" > /dev/null; then
@kylemcdonald
kylemcdonald / scrape-latimes-killings.py
Last active June 21, 2023 21:33
Scrape LA Times officer-involved homicides.
View scrape-latimes-killings.py
import pandas as pd
from tqdm import tqdm
from bs4 import BeautifulSoup
import json
import requests
from itertools import count
from joblib import Parallel, delayed
metadata = []
@kylemcdonald
kylemcdonald / lease-answering.ipynb
Last active June 30, 2023 22:30
Notebook demonstrating the way that you ask GPT-3.5 a question changes the response. The function calling API performs the worst.
View lease-answering.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@kylemcdonald
kylemcdonald / function-calling.ipynb
Created June 14, 2023 01:10
Example of OpenAI function calling API to extract data from LAPD newsroom articles.
View function-calling.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@kylemcdonald
kylemcdonald / accumulate-lapd.py
Created May 9, 2023 04:57
Accumulate LAPD roster totals by division, rank, etc.
View accumulate-lapd.py
import pandas as pd
from utils.list_files import list_files
mapping = {
'name': 'name',
'employeename': 'name',
'first name': 'first name',
'firstname': 'first name',
'last name': 'last name',
'lastname': 'last name',
View lapd-videos.csv
We can make this file beautiful and searchable if this error is corrected: It looks like row 5 should actually have 8 columns, instead of 5. in line 4.
video name,name,duration,link,thumbnail,created_time,modified_time,release_time
Edwin Romero - LAPD Graduation,Edwin Romero,9,https://vimeo.com/820913028,https://i.vimeocdn.com/video/1662337989-c465c556a26a1239bf66df570c0d588a27ffe49fd4dfb27398e8ad08520bc973-d_1920x1080?r=pad,2023-04-25T14:34:12+00:00,2023-05-07T21:22:00+00:00,2023-04-25T14:34:12+00:00
Luciana Stearns - LAPD Graduation,Luciana Stearns,114,https://vimeo.com/786321915,https://i.vimeocdn.com/video/1580691589-bbcd7bee9c1b59476b2f6a9f1ee370ba47e2d583c7a38c8f8ad72ce771b4c02e-d_1920x1080?r=pad,2023-01-04T16:54:41+00:00,2023-05-07T21:41:04+00:00,2023-01-04T16:54:41+00:00
Ramiro Zuniga - LAPD Graduation,Ramiro Zuniga,117,https://vimeo.com/786322420,https://i.vimeocdn.com/video/1580691813-b922d241efc3c18712ed8a6134faf506e64e739003dfd2e24929411ad805c7c9-d_1920x1080?r=pad,2023-01-04T16:56:17+00:00,2023-05-07T21:40:57+00:00,2023-01-04T16:56:17+00:00
Herrera Ortega Lucio- LAPD Graduation,Herrera Ortega Lucio,167,https://vimeo.com/820913708,https://i.vimeoc
@kylemcdonald
kylemcdonald / download-cpra.py
Created January 17, 2023 08:51
Python script for downloading public CPRA documents.
View download-cpra.py
import requests
import json
from itertools import count
import os
import sys
import urllib3
from multiprocessing.dummy import Pool
from tqdm import tqdm
from ratelimit import limits, sleep_and_retry
@kylemcdonald
kylemcdonald / tumbleword.py
Last active December 21, 2022 23:56
Tumbleword guidance.
View tumbleword.py
"""
For Tumbleword by Jer Thorp
https://tumbleword.glitch.me/
"""
from collections import defaultdict
from time import time
import random
start_word = 'charade'
@kylemcdonald
kylemcdonald / Audio Normalizer.ipynb
Created November 16, 2022 07:59
Normalize audio based on local peaks.
View Audio Normalizer.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.