Skip to content

Instantly share code, notes, and snippets.

View francois-baptiste's full-sized avatar

François BAPTISTE francois-baptiste

View GitHub Profile
@francois-baptiste
francois-baptiste / script.py
Created November 18, 2022 15:40
Read RaceBox Mini Data Message binary dump
import numpy as np
import pandas as pd
df = pd.DataFrame(np.fromfile(r"raceboxmini.dump.bin", dtype=np.dtype([
('Header', np.uint16),
('Message Class and ID', np.uint16),
('Payload Length', np.uint16),
('iTOW', np.uint32),
('Year', np.uint16),
('Month', np.int8),
@francois-baptiste
francois-baptiste / load_graph_demo.py
Created December 18, 2020 17:40
Load demo graph from geojson-path-finder js lib
import json
import pandas as pd
import wget
from google.cloud import bigquery
print('Upload geojson-path-finder network demo to Bigquery')
url = 'https://francois-baptiste.github.io/geojson-path-finder/network.json'
wget.download(url, 'network.json')
@francois-baptiste
francois-baptiste / natural_earth_to_bq.py
Created December 16, 2020 15:53
Import natural earth vector data to bigquery tables
import json
import sqlite3
import zipfile
import pandas as pd
import plpygis
import wget
from google.cloud import bigquery
def mylambda(x):
@francois-baptiste
francois-baptiste / world_pop.html
Created November 9, 2020 03:07
Display H3 lut for world pop
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8"/>
<title>Kepler.gl embedded map</title>
<!--Uber Font-->
<link rel="stylesheet" href="https://d1a3f4spazzrp4.cloudfront.net/kepler.gl/uber-fonts/4.0.0/superfine.css">
@francois-baptiste
francois-baptiste / H3_lut.sql
Last active July 24, 2023 20:16
Building a lookup table for spatial cloaking based on Uber’s Hexagonal Hierarchical Spatial Index, H3 with Bigquery
With T0 AS(
SELECT population, libjs4us.h3.ST_H3(ST_GEOGPOINT(longitude_centroid, latitude_centroid), 10) key FROM `bigquery-public-data.worldpop.population_grid_1km` WHERE last_updated = "2017-01-01"
),
T1 AS (
SELECT sum(population) population, key
from T0
group by key),
T2 AS (SELECT
array (SELECT
struct(libjs4us.h3.h3ToParent(key,len) as key, population) mystruct
@francois-baptiste
francois-baptiste / video_overlay.py
Last active November 27, 2018 13:56
On the fly video overlay
import cv2
from skvideo import io
vreader = io.vreader('input.mp4')
vwriter = io.FFmpegWriter('output.mp4')
for counter, frame in enumerate(vreader):
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
import requests
cookies = {}
headers = {}
mylist=[
(195,55),
(205,55),
(215,55),
# -*- coding: utf-8 -*-
from random import randint
import tornado.concurrent
import tornado.platform.asyncio
import tornado.web
from aiopg.sa import create_engine as aiopg_create_engine
import asyncio
@francois-baptiste
francois-baptiste / postmkvirtualenv
Created April 4, 2016 15:42 — forked from jlesquembre/postmkvirtualenv
Creates a symlink to PyQt libraries when a new virtual environment is created
#!/bin/bash
# This hook is run after a new virtualenv is activated.
# ~/.virtualenvs/postmkvirtualenv
libs=( PyQt4 sip.so )
python_version=python$(python -c "import sys; print (str(sys.version_info[0])+'.'+str(sys.version_info[1]))")
var=( $(which -a $python_version) )
get_python_lib_cmd="from distutils.sysconfig import get_python_lib; print (get_python_lib())"