Skip to content

Instantly share code, notes, and snippets.

View dbuscombe-usgs's full-sized avatar
🎯
Focusing

Daniel Buscombe dbuscombe-usgs

🎯
Focusing
View GitHub Profile
@dbuscombe-usgs
dbuscombe-usgs / auto-class 1.py
Last active December 20, 2015 06:19
Auto-Classify images, part 1. First, import the libraries you'll need. Then interrogates the website and downloads the images.
try: import simplejson as json
except ImportError: import json
import os
import urllib, urlparse
import glob
import numpy as np
import Image
from itertools import combinations
import simplejson as json
@dbuscombe-usgs
dbuscombe-usgs / auto-class 2.py
Last active December 20, 2015 06:19
Auto classify images part 2. Compile a list of images, and carry out a cluster analysis
imlist=[]
for infile in glob.glob( os.path.join(path, '*.jpg') ):
imlist.append(infile)
imlist=np.sort(imlist)
features = np.zeros([len(imlist),512])
for i,f in enumerate(imlist):
im = np.array(Image.open(f))
h, edges = np.histogramdd(im.reshape(-1,3),8,normed=True, range=[(0,255),(0,255),(0,255)])
@dbuscombe-usgs
dbuscombe-usgs / alpha.py
Last active December 20, 2015 06:19
Alpha shape
def get_alpha_shape(infile,radius):
command = "%s -A -aa %s -r -m10000000 -oN -oFpoints < %s" % (hull_path, str(radius), infile)
print >> sys.stderr, "Running command: %s" % command
retcode = subprocess.call(command, shell=True)
results_file = open("points-alf")
results_file.next()
results_indices = [[int(i) for i in line.rstrip().split()] for line in results_file]
results_file.close()
return results_indices
@dbuscombe-usgs
dbuscombe-usgs / using alpha.py
Last active December 20, 2015 06:19
Using alpha shapes in python
hull_path = "./hull"
infile='C.txt'
with open(infile, 'w') as f:
np.savetxt(f, C.T, delimiter=' ', fmt="%0.7f %0.7f\n")
radius=1
indices = get_alpha_shape(infile,radius)
alpha=C.T[indices]
plot(C[0],C[1],'.'), plot(alpha[1:].T[0],alpha[1:].T[1],'r')
savefig("C_radius="+str(radius)+".png")
@dbuscombe-usgs
dbuscombe-usgs / patchwork.py
Created July 26, 2013 01:52
Make a patchwork quilt from X,Y data
import numpy as np
from scipy.cluster.vq import kmeans,vq
from pylab import *
def patchwork(data,numsegs,numclass):
# computing K-Means with K = numsegs
centroids,_ = kmeans(data,numsegs)
# assign each sample to a cluster
idx,_ = vq(data,centroids)
# loop through number of classes
@dbuscombe-usgs
dbuscombe-usgs / makefile
Created July 26, 2013 01:53
Makefile for Ken Clarkson's hull
CC = gcc
AR = ar
OBJS = hull.o ch.o io.o rand.o pointops.o fg.o
HDRS = hull.h points.h pointsites.h stormacs.h
SRC = hull.c ch.c io.c rand.c pointops.c fg.c
PROG = hull
BINDIR = /usr/bin
LIBDIR = /usr/lib64 # or just /usr/lib on a 32 bit machine?
LIB = $(LIBDIR)/lib$(PROG).a
@dbuscombe-usgs
dbuscombe-usgs / photobucket.m
Created July 26, 2013 01:57
Download pictures from a photobucket album
s = urlread('http://s1270.photobucket.com/albums/SERVERNAME/YOURUSERNAME/YOURALBUMNAME/?start=all');
indices = regexp(s,'pbthumburl=');
for k=1:length(indices)
tmp=strtrim(s(indices(k):indices(k)+100));
tmp=tmp(regexp(tmp,'"','once')+1:end);
tmp=tmp(1:regexp(tmp,'"','once')-1);
system(['wget ',tmp(1:regexp(tmp,'th_')-1),tmp(regexp(tmp,'th_')+3:end)]);
end
@dbuscombe-usgs
dbuscombe-usgs / bwconvhull_alt.m
Created July 26, 2013 02:00
Black and white convex hull
function P = bwconvhull_alt(BW)
% usage: P is a binary image wherein the convex hull of objects are returned, BW is the input binary image
% P= bwconvhull_alt(BW);
warning off all
s=regionprops(logical(BW),'ConvexImage','BoundingBox');
P=zeros(size(BW));
for no=1:length(s)
P(s(no).BoundingBox(2):s(no).BoundingBox(2)+s(no).BoundingBox(4)-1,...
@dbuscombe-usgs
dbuscombe-usgs / craig2.m
Last active December 20, 2015 06:28
Craigslist part 2, load and plot using google-earth
addpath(genpath('~/googleearth'))
dat=importdata('myFile.csv');
maps=dat.textdata(:,2);
prices=dat.data;
for i=1:size(maps,1)
address=char(maps(i,:));
address=address(regexp(address,'loc')+3:end);
@dbuscombe-usgs
dbuscombe-usgs / geocode.m
Created July 26, 2013 02:07
Geocoder wrapper for matlab
function [lat,lon] = geocode(address)
fid=fopen('test.py','wt');
fprintf(fid,'%s\n','from pygeocoder import Geocoder');
fprintf(fid,'%s\n',['results = Geocoder.geocode(''',deblank(address),''')']);
fprintf(fid,'%s\n','print results[0].coordinates');
fclose(fid);
[stat1,stat2]=system('python test.py');
stat2=deblank(stat2);