Skip to content

Commit

Permalink
Add code.
Browse files Browse the repository at this point in the history
  • Loading branch information
acschaefer committed Jul 25, 2019
1 parent 208da3e commit 17877ef
Show file tree
Hide file tree
Showing 13 changed files with 1,974 additions and 0 deletions.
1 change: 1 addition & 0 deletions poles/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from poles import *
68 changes: 68 additions & 0 deletions poles/cluster.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#!/usr/bin/env python

import networkx as nx
import numpy as np


def cluster_boxes(boxes):
graph = nx.Graph()
for i in range(boxes.shape[0]):
ioverlap = np.where(np.logical_and(
np.all(boxes[i, :2] <= boxes[i+1:, 2:], axis=1),
np.all(boxes[i, 2:] >= boxes[i+1:, :2], axis=1)))[0] + i + 1
if ioverlap.size > 0:
ebunch = np.stack(
[i * np.ones(ioverlap.size, dtype=np.int), ioverlap]).T
graph.add_edges_from(ebunch)
else:
graph.add_node(i)

return nx.connected_components(graph)


if __name__ == '__main__':
boxes = np.array([[0, 0, 5, 6],
[1, 1, 3, 3],
[2, 2, 4, 4],
[4, 5, 6, 7],
[8, 1, 10, 4],
[9, 3, 11, 5],
[11, 2, 13, 4]])
clusters = list(cluster_boxes(boxes))
print(clusters)

boxes = np.array([[14.79661574, 21.21601612, 15.30176893, 21.72116931],
[18.48462587, 7.41137572, 19.03767023, 7.96442009],
[2.69673224, 9.59842375, 3.32057219, 10.22226371]])
clusters = list(cluster_boxes(boxes))
print(clusters)

boxes = np.array([[6.81938108, 18.65041178, 7.52721282, 19.35824351],
[10.47957221, 4.74881386, 10.97182461, 5.24106625],
[13.85465225, 10.67964592, 14.85465225, 11.67964592],
[ 7.64280886, 18.18693742, 8.34956098, 18.89368953],
[ 8.59207879, 18.34769795, 9.21301121, 18.96863037],
[12.26176147, 4.42352969, 12.86341253, 5.02518075],
[ 9.15 , 18.63943225, 9.75556467, 19.24499692],
[14.10533103, 5.69170303, 14.68470125, 6.27107324],
[ 9.97261293, 19.30506776, 10.55050568, 19.88296051],
[10.80585378, 19.7812637 , 11.28636705, 20.26177698],
[24.60318075, 11.85 , 25.01565066, 12.26246991],
[14.78231664, 6.11960893, 15.29557712, 6.63286942],
[11.95292709, 20.39982668, 12.55003767, 20.99693726],
[17.46145317, 7.17423254, 17.89978823, 7.6125676 ],
[14.79661574, 21.21601612, 15.30176893, 21.72116931],
[18.48462587, 7.41137572, 19.03767023, 7.96442009],
[ 2.69673224, 9.59842375, 3.32057219, 10.22226371]])

import matplotlib.pyplot as plt
import matplotlib.patches as pat
fig = plt.figure()
ax = fig.add_subplot(111, aspect='equal')
for b in boxes:
ax.add_patch(pat.Rectangle(b[:2], b[2]-b[0], b[3]-b[1]))
plt.xlim([0, 30])
plt.ylim([0, 30])
plt.show()
clusters = list(cluster_boxes(boxes))
print(clusters)
21 changes: 21 additions & 0 deletions poles/cuboid.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/usr/bin/env python

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

def cuboid(ax, lower, upper):
xl, yl, zl = lower
xu, yu, zu = upper
faces = np.array([
[[[xl,xu],[xl,xu]], [[yl,yl],[yl,yl]], [[zl,zl],[zu,zu]]],
[[[xl,xu],[xl,xu]], [[yu,yu],[yu,yu]], [[zl,zl],[zu,zu]]],
[[[xl,xl],[xl,xl]], [[yl,yu],[yl,yu]], [[zl,zl],[zu,zu]]],
[[[xu,xu],[xu,xu]], [[yl,yu],[yl,yu]], [[zl,zl],[zu,zu]]],
[[[xl,xu],[xl,xu]], [[yl,yl],[yu,yu]], [[zl,zl],[zl,zl]]],
[[[xl,xu],[xl,xu]], [[yl,yl],[yu,yu]], [[zu,zu],[zu,zu]]]
])

for face in faces:
ax.plot_surface(face[0], face[1], face[2], alpha=0.5, color='b')
ax.plot_wireframe(face[0], face[1], face[2], color='k')
160 changes: 160 additions & 0 deletions poles/kittidrives.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
#!/usr/bin/env python

drives = [
{'date': '2011_09_26', 'drive': '0002'},
{'date': '2011_09_26', 'drive': '0005'},
{'date': '2011_09_26', 'drive': '0009'},
{'date': '2011_09_26', 'drive': '0011'},
{'date': '2011_09_26', 'drive': '0001'},
{'date': '2011_09_26', 'drive': '0013'},
{'date': '2011_09_26', 'drive': '0014'},
{'date': '2011_09_26', 'drive': '0015'},
{'date': '2011_09_26', 'drive': '0017'},
{'date': '2011_09_26', 'drive': '0018'},
{'date': '2011_09_26', 'drive': '0019'},
{'date': '2011_09_26', 'drive': '0020'},
{'date': '2011_09_26', 'drive': '0022'},
{'date': '2011_09_26', 'drive': '0023'},
{'date': '2011_09_26', 'drive': '0027'},
{'date': '2011_09_26', 'drive': '0028'},
{'date': '2011_09_26', 'drive': '0029'},
{'date': '2011_09_26', 'drive': '0032'},
{'date': '2011_09_26', 'drive': '0035'},
{'date': '2011_09_26', 'drive': '0036'},
{'date': '2011_09_26', 'drive': '0039'},
{'date': '2011_09_26', 'drive': '0046'},
{'date': '2011_09_26', 'drive': '0048'},
{'date': '2011_09_26', 'drive': '0051'},
{'date': '2011_09_26', 'drive': '0052'},
{'date': '2011_09_26', 'drive': '0056'},
{'date': '2011_09_26', 'drive': '0057'},
{'date': '2011_09_26', 'drive': '0059'},
{'date': '2011_09_26', 'drive': '0060'},
{'date': '2011_09_26', 'drive': '0061'},
{'date': '2011_09_26', 'drive': '0064'},
{'date': '2011_09_26', 'drive': '0070'},
{'date': '2011_09_26', 'drive': '0079'},
{'date': '2011_09_26', 'drive': '0084'},
{'date': '2011_09_26', 'drive': '0086'},
{'date': '2011_09_26', 'drive': '0087'},
{'date': '2011_09_26', 'drive': '0091'},
{'date': '2011_09_26', 'drive': '0093'},
{'date': '2011_09_26', 'drive': '0095'},
{'date': '2011_09_26', 'drive': '0096'},
{'date': '2011_09_26', 'drive': '0101'},
{'date': '2011_09_26', 'drive': '0104'},
{'date': '2011_09_26', 'drive': '0106'},
{'date': '2011_09_26', 'drive': '0113'},
{'date': '2011_09_26', 'drive': '0117'},
{'date': '2011_09_26', 'drive': '0119'},
{'date': '2011_09_28', 'drive': '0001'},
{'date': '2011_09_28', 'drive': '0002'},
{'date': '2011_09_28', 'drive': '0016'},
{'date': '2011_09_28', 'drive': '0021'},
{'date': '2011_09_28', 'drive': '0034'},
{'date': '2011_09_28', 'drive': '0035'},
{'date': '2011_09_28', 'drive': '0037'},
{'date': '2011_09_28', 'drive': '0038'},
{'date': '2011_09_28', 'drive': '0039'},
{'date': '2011_09_28', 'drive': '0043'},
{'date': '2011_09_28', 'drive': '0045'},
{'date': '2011_09_28', 'drive': '0047'},
{'date': '2011_09_28', 'drive': '0053'},
{'date': '2011_09_28', 'drive': '0054'},
{'date': '2011_09_28', 'drive': '0057'},
{'date': '2011_09_28', 'drive': '0065'},
{'date': '2011_09_28', 'drive': '0066'},
{'date': '2011_09_28', 'drive': '0068'},
{'date': '2011_09_28', 'drive': '0070'},
{'date': '2011_09_28', 'drive': '0071'},
{'date': '2011_09_28', 'drive': '0075'},
{'date': '2011_09_28', 'drive': '0077'},
{'date': '2011_09_28', 'drive': '0078'},
{'date': '2011_09_28', 'drive': '0080'},
{'date': '2011_09_28', 'drive': '0082'},
{'date': '2011_09_28', 'drive': '0086'},
{'date': '2011_09_28', 'drive': '0087'},
{'date': '2011_09_28', 'drive': '0089'},
{'date': '2011_09_28', 'drive': '0090'},
{'date': '2011_09_28', 'drive': '0094'},
{'date': '2011_09_28', 'drive': '0095'},
{'date': '2011_09_28', 'drive': '0096'},
{'date': '2011_09_28', 'drive': '0098'},
{'date': '2011_09_28', 'drive': '0100'},
{'date': '2011_09_28', 'drive': '0102'},
{'date': '2011_09_28', 'drive': '0103'},
{'date': '2011_09_28', 'drive': '0104'},
{'date': '2011_09_28', 'drive': '0106'},
{'date': '2011_09_28', 'drive': '0108'},
{'date': '2011_09_28', 'drive': '0110'},
{'date': '2011_09_28', 'drive': '0113'},
{'date': '2011_09_28', 'drive': '0117'},
{'date': '2011_09_28', 'drive': '0119'},
{'date': '2011_09_28', 'drive': '0121'},
{'date': '2011_09_28', 'drive': '0122'},
{'date': '2011_09_28', 'drive': '0125'},
{'date': '2011_09_28', 'drive': '0126'},
{'date': '2011_09_28', 'drive': '0128'},
{'date': '2011_09_28', 'drive': '0132'},
{'date': '2011_09_28', 'drive': '0134'},
{'date': '2011_09_28', 'drive': '0135'},
{'date': '2011_09_28', 'drive': '0136'},
{'date': '2011_09_28', 'drive': '0138'},
{'date': '2011_09_28', 'drive': '0141'},
{'date': '2011_09_28', 'drive': '0143'},
{'date': '2011_09_28', 'drive': '0145'},
{'date': '2011_09_28', 'drive': '0146'},
{'date': '2011_09_28', 'drive': '0149'},
{'date': '2011_09_28', 'drive': '0153'},
{'date': '2011_09_28', 'drive': '0154'},
{'date': '2011_09_28', 'drive': '0155'},
{'date': '2011_09_28', 'drive': '0156'},
{'date': '2011_09_28', 'drive': '0160'},
{'date': '2011_09_28', 'drive': '0161'},
{'date': '2011_09_28', 'drive': '0162'},
{'date': '2011_09_28', 'drive': '0165'},
{'date': '2011_09_28', 'drive': '0166'},
{'date': '2011_09_28', 'drive': '0167'},
{'date': '2011_09_28', 'drive': '0168'},
{'date': '2011_09_28', 'drive': '0171'},
{'date': '2011_09_28', 'drive': '0174'},
{'date': '2011_09_28', 'drive': '0177'},
{'date': '2011_09_28', 'drive': '0179'},
{'date': '2011_09_28', 'drive': '0183'},
{'date': '2011_09_28', 'drive': '0184'},
{'date': '2011_09_28', 'drive': '0185'},
{'date': '2011_09_28', 'drive': '0186'},
{'date': '2011_09_28', 'drive': '0187'},
{'date': '2011_09_28', 'drive': '0191'},
{'date': '2011_09_28', 'drive': '0192'},
{'date': '2011_09_28', 'drive': '0195'},
{'date': '2011_09_28', 'drive': '0198'},
{'date': '2011_09_28', 'drive': '0199'},
{'date': '2011_09_28', 'drive': '0201'},
{'date': '2011_09_28', 'drive': '0204'},
{'date': '2011_09_28', 'drive': '0205'},
{'date': '2011_09_28', 'drive': '0208'},
{'date': '2011_09_28', 'drive': '0209'},
{'date': '2011_09_28', 'drive': '0214'},
{'date': '2011_09_28', 'drive': '0216'},
{'date': '2011_09_28', 'drive': '0220'},
{'date': '2011_09_28', 'drive': '0222'},
{'date': '2011_09_28', 'drive': '0225'},
{'date': '2011_09_29', 'drive': '0004'},
{'date': '2011_09_29', 'drive': '0026'},
{'date': '2011_09_29', 'drive': '0071'},
{'date': '2011_09_29', 'drive': '0108'},
{'date': '2011_09_30', 'drive': '0016'},
{'date': '2011_09_30', 'drive': '0018'},
{'date': '2011_09_30', 'drive': '0020'},
{'date': '2011_09_30', 'drive': '0027'},
{'date': '2011_09_30', 'drive': '0028'},
{'date': '2011_09_30', 'drive': '0033'},
{'date': '2011_09_30', 'drive': '0034'},
{'date': '2011_09_30', 'drive': '0072'},
{'date': '2011_10_03', 'drive': '0027'},
{'date': '2011_10_03', 'drive': '0034'},
{'date': '2011_10_03', 'drive': '0042'},
{'date': '2011_10_03', 'drive': '0047'},
{'date': '2011_10_03', 'drive': '0058'}
]
Loading

0 comments on commit 17877ef

Please sign in to comment.