Skip to content

Instantly share code, notes, and snippets.

View JamesSaxon's full-sized avatar

Jamie Saxon JamesSaxon

View GitHub Profile
@JamesSaxon
JamesSaxon / crime_exposure.ipynb
Last active August 28, 2018 06:44
The Risk Set for Crime Rates
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@JamesSaxon
JamesSaxon / colors.txt
Created October 21, 2018 20:03
Economic Variables with GDAL DEM Formatting
-1 0 0 0
0 0 0 255
24999 150 200 255
25000 0 180 0 # 05, dark green
38000 140 255 0 # 25, green
51000 255 255 80 # 50, yello
70000 255 210 130 # 75, brown
110000 210 210 210 # 95, grey
150000 255 255 255 # high, white
cat usa_00028.csv | cut -d, -f7,54,61,93 | awk -F "," '$3 == 3060' | awk -F "," -v OFS=, '{print $1,$2,$3,($4 > 100)}' > to_file.csv
@JamesSaxon
JamesSaxon / fca.py
Created February 22, 2019 17:46
floating catchments
#!/usr/bin/env python
import matplotlib.pyplot as plt
import geopandas as gpd
import pandas as pd
import geopandas as gpd
import numpy as np
from fiona.crs import from_epsg
@JamesSaxon
JamesSaxon / fix_ak_hi.py
Last active May 23, 2019 20:06
Alaska and Hawaii Translations
def fix_ak_hi(X):
ak_mask = X.centroid.apply(lambda x: x.coords[0][1] > 1e6)
X.loc[ak_mask, X.geometry.name] = X.loc[ak_mask].geometry\
.rotate(0.63, (-3000000, 2500000), use_radians = True)\
.scale(0.38, 0.38, 0.38, (0, 0, 0))\
.translate(-1.5e5, -3.15e6)
hi_mask = X.centroid.apply(lambda x: x.coords[0][0] < -4e6)
X.loc[hi_mask, X.geometry.name] = X.loc[hi_mask].geometry\
@JamesSaxon
JamesSaxon / simplify_fn.sql
Created June 14, 2019 16:56
Simplification with Postgis
-- SIMPLIFIED CENSUS GEOMETRY IN POSTGIS
-- COPIED FROM https://strk.kbt.io/blog/2012/04/13/simplifying-a-map-layer-using-postgis-topology/
CREATE OR REPLACE FUNCTION SimplifyEdgeGeom(atopo varchar, anedge int, maxtolerance float8)
RETURNS float8 AS $$
DECLARE
tol float8;
sql varchar;
BEGIN
tol := maxtolerance;
#!/usr/bin/env python
import matplotlib.pyplot as plt
import geopandas as gpd
import pandas as pd
import geopandas as gpd
import numpy as np
from fiona.crs import from_epsg
SELECT d.state, d.puma,
pm.pop pop, ST_Area(pm.geom) A,
d.hs, d.ba, ba_pop,
d.cum_pop, d.cum_area,
d.cum_hs, d.cum_ba,
d.distance, pl.geometry
FROM PlotPuma() pl
JOIN puma pm ON -- plotting version, distorted AK
pl.state = pm.state AND pl.puma = pm.puma
JOIN ( -- for calculations.
@JamesSaxon
JamesSaxon / il_fca.py
Created June 17, 2019 22:15
example of 2sfca on illinois
#!/usr/bin/env python
import matplotlib.pyplot as plt
import geopandas as gpd
import pandas as pd
import geopandas as gpd
import numpy as np
from fiona.crs import from_epsg
@JamesSaxon
JamesSaxon / import_decennial_tracts.sh
Created July 2, 2019 19:02
Decennial Census from Official Sources
#!/bin/bash
# mkdir -p tmp/dec/
cd tmp/dec/
# wget -r ftp://ftp2.census.gov/geo/tiger/PREVGENZ/tr/tr90shp/
# wget -r ftp://ftp2.census.gov/geo/tiger/PREVGENZ/tr/tr00shp/
# wget -r ftp://ftp2.census.gov/geo/tiger/GENZ2010/gz_2010_*_140_00_500k.zip
# mv ftp2.census.gov/geo/tiger/PREVGENZ/tr/tr90shp/*zip dec/
# mv ftp2.census.gov/geo/tiger/PREVGENZ/tr/tr00shp/*zip dec/
# mv ftp2.census.gov/geo/tiger/GENZ2010/*zip dec/