In [1]:
import numpy as np
import matplotlib.pyplot as plt
from rockfish2 import get_example_file
from rockfish2.navigation.utils.cartesian import build_rectangular_bins
from rockfish2.navigation.p190 import P190


/Users/ncm/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/pandas/io/excel.py:626: UserWarning: Installed openpyxl is not supported at this time. Use >=1.6.1 and <2.0.0.
  .format(openpyxl_compat.start_ver, openpyxl_compat.stop_ver))

In [2]:
p190 = P190(get_example_file('MGL1407MCS15.TEST.p190'))
mp = p190.calc_midpoints()


[2014-10-16 22:38] INFO: rockfish: Creating new database: :memory:
[2014-10-16 22:38] INFO: rockfish: Reading p190 data from: /Users/ncm/Dev/Rockfish2/rockfish2/navigation/p190/tests/data/MGL1407MCS15.TEST.p190

In [3]:
sql = 'SELECT midpoint_easting as x, midpoint_northing as y FROM receiver_groups WHERE receiver_group=230'
line = p190.read_sql(sql)

_ = p190.create_cmp_line(line.x, line.y, if_exists='replace')

sql = 'SELECT bin, easting as x, northing as y FROM cmp_line'
cmps = p190.read_sql(sql)

In [4]:
plot(cmps.x, cmps.y, '.k')


Out[4]:
[<matplotlib.lines.Line2D at 0x110faf350>]

In [5]:
sql = 'SELECT midpoint_easting as x, midpoint_northing as y FROM receiver_groups'
mp = p190.read_sql(sql)

plot(mp.x, mp.y, '.k')
plot(cmps.x, cmps.y, '.r')


Out[5]:
[<matplotlib.lines.Line2D at 0x10043bd90>]

Layout rectangular bins


In [6]:
binx, biny = build_rectangular_bins(cmps.x, cmps.y, 6.25, 50.)

In [7]:
for i in range(0, len(cmps), 10):

    plot(binx[i], biny[i], '.-r')
    plot(cmps.x[i], cmps.y[i], '.k')


for a lot of points

x = np.arange(0, 10000) y = np.zeros(len(x))

binx, biny = build_rectangular_bins(x, y, 6.25, 50.)

Assign bins


In [8]:
from shapely.geometry import Polygon, Point

In [9]:
polys =  build_rectangular_bins(cmps.x, cmps.y, 6.25, 50., as_shapely=True)

In [14]:
pt = Point(cmps.x[200], cmps.y[200])

inpoly = np.nonzero([p.contains(pt) for p in polys])

In [15]:
inpoly


Out[15]:
(array([200]),)

In [ ]: