blocks by migurski

Generate Codenames board in Google Sheets

Mercator Projection with GDAL

Sample Virginia PlanScore model tiles

Sample Virginia PlanScore model tile 13/2333/3172

Sample Virginia PlanScore model tile 10/285/394

Use Brooklyn Integers directly in Postgres

Convert WI ward-level result CSVs from OpenElections to tabular format

Intersect North Carolina voting precincts with Census tracts to get selected area-weighted race, income, and education statistics

Convert NC precinct-level result CSVs from OpenElections to tabular format

Script to bake gridded U.S. population based on ACS 5-year data





Testing Compare G-Econ.ipynb

Mapzen API index

Converting from OpenAddresses stats table to runs and sets table

Grabbing census tracts around Oakland, messing with Turf

Compiled TypeScript sample

guess reason for OpenAddresses failure

Socrata HTTP Gripes



Python wrapper for openaddresses-conform

Engine Light status endpoint script for

Scripts used in the creation of the new Code for America website.

Brigades JSON (minimal)

Census Places

Queries to convert TIGER edges data to labeled address ranges. See:

/etc/network/interfaces for guest and host Linux servers, based on LXC guide at


Store sparse bundle disk images as a series of 24 bit losslessly-encoded PNG images. Let Flickr’s 1TB of storage hold them for you.

Reduce floating point precision of WKB geometries for better zlib compression.

GL-Solar, Rainbow Road edition

Transform function for Shapely.

GL-Solar, false-color edition

WebGL GeoJSON tile rendering II

WebGL GeoJSON tile rendering

I Miss

Interactive demo of


Public view of

Dissolve small & residential roads into urban areas.

Small example showing D3 data with and without a key function. D3 takes a second argument to the data() method, a function that returns a join key for each data element passed in. Without this, it assumes that the array index and not the array element are important. I had been passing in three-element arrays, and D3 assumed that I was updating array values in-place rather than attempting to introduce new ones. This example shows D3's set behavior with and without the use of a key function. The visible results are the same in both cases, but the second one (by value) adds and removes many more div elements than the first (by index). The first version might be used to update the heights of bars in a bar chart in-place, while the second might be used to animate the addition and removal of bars.



Script to generate CONUS raster of various OSM metrics connected to TIGER extent. Counties2012 table is in spherical Albers projection: `+proj=aea +lat_1=29.5 +lat_2=45.5 +lat_0=23 +lon_0=-96 +x_0=0 +y_0=0 +a=6378137 +b=6378137 +nadgrids=@null +units=m +no_defs`

Sample datasource for remote tiled data in Mapnik.

Skeletron Dumper and Cutter of Routes

Sketch for topological simplification of national hydrology dataset

OSM Route Relation Refiner, see also data at

Merge multiple GeoJSON files into one

Adaptation of Nicolas P. Rougier’s Gray-Scott implementation with the Glumpy dependencies removed

Two scripts for creating heatmap of OSM data size, e.g.

RemoteFileObject is a simple mapping from HTTP Range headers to a local file-like object

Image Queue

Lambert Conformal Conic implementation with US-specific transformation

Gunicorn Slayer

Lambert projection for Modest Maps

Polygonize a bag of lines