Skip to content

Instantly share code, notes, and snippets.

View shaneshifflett's full-sized avatar

Shane Shifflett shaneshifflett

View GitHub Profile
@shaneshifflett
shaneshifflett / colorizr.js
Created July 29, 2013 22:32
d3 + colorbrewer + scales for assigning color to features
var clrs = [colorbrewer.Reds[7][3], colorbrewer.Reds[7][5], colorbrewer.Reds[7][7]];
var color = d3.scale.quantize()
.domain(minmax)
.range(clrs);
@shaneshifflett
shaneshifflett / cacheclear.py
Created May 8, 2013 00:34
clearing the cache
from django.core.management.base import BaseCommand, CommandError
from django.core.cache import cache
from django.test.client import Client
from django.test.client import RequestFactory
class Command(BaseCommand):
def handle(self, *args, **options):
cache.clear()
@shaneshifflett
shaneshifflett / gist:5453441
Created April 24, 2013 16:21
ft spatial query / intersection
<script type="text/javascript" charset="utf-8">
var map = null;
var ft_id = 1964047;
var precinct_ft = 1979379;
var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer();
var geocoder = new google.maps.Geocoder();
var cur_marker = null;
var selected_address = "";
var layer = null;
@shaneshifflett
shaneshifflett / deadsimpledots.py
Created February 5, 2013 19:14
Dead simple Dot Density plotter. Will create a point for every item in a CSV file that intersects a shapefile given a column to match with a geography's name.
from django.contrib.gis.geos import Point
from django.contrib.gis.gdal import DataSource
import random
import csv
def dotdensity(shape_id_key=None, col_id_key=None,\
shapefilepath=None, datafilepath=None, outputfilepath=None, filter_map=None):
reader = list(csv.reader(open(datafilepath, 'rb')))
header = reader[0]
import requests
from BeautifulSoup import BeautifulSoup
from datetime import datetime
import pdb
'''
To use:
num_pages_to_follow = 85
scraper = EmmaScraper('CAP APPREC')
@shaneshifflett
shaneshifflett / downloader.py
Created January 8, 2013 19:13
download files from a list of URLs
import requests
scraper_urls = [
'http://foo.net/TESTDIR/TEST.pdf',
'http://foo.net/TESTDIR/TEST2.pdf'
]
p_session = requests.session()
for surl in scraper_urls:
content = p_session.get(surl).content
@shaneshifflett
shaneshifflett / keystr.py
Created November 21, 2012 07:19
Standardize a string
def key_str(term):
'''
remove as much from the string as possible while
preserving its meaning
'''
term = term.strip()
obv = term.split(' ')
obv = map(lambda x: x.strip(), obv)
term = ' '.join(obv)
term = term.lower()
@shaneshifflett
shaneshifflett / maplegend.js
Last active October 6, 2015 14:18
Generate a legend for a map... updated to not require jquery
function MapLegendView(el, values, headerText, footerText){
/*
Class to dynamically generate a legend for a given map
el: containing element
values: array of key, value objects
ex: var legendItems = [
{text: 'text to display next to color', colorStr: 'color of legend item (hex preferred)'},
]
you'll want your container element and map to be contained in the same parent element
and to position the containing element to float over the map like so:
@shaneshifflett
shaneshifflett / rm_files_despues_tres_dias.sh
Created February 1, 2012 06:21
delete files greater than 3 days old
find DIR_PATH -type f -mmin +4320 -delete
@shaneshifflett
shaneshifflett / ft_template.js
Created December 19, 2011 00:09
Fusion Tables GMAP Layer Template
<script type='text/javascript' src='http://media.baycitizen.org/js/jquery-1.4.2.min.js'></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" charset="utf-8">
var ft_id = INSERT_FUSION_TABLE_ID;
function Legend(controlDiv, name, title) {
// Set CSS for the control border
var controlUI = document.createElement('DIV');
controlUI.style.cursor = 'default';
controlUI.style.textAlign = 'left';