diff options
author | Alex Auvolat <alex.auvolat@ens.fr> | 2015-05-04 13:15:42 -0400 |
---|---|---|
committer | Alex Auvolat <alex.auvolat@ens.fr> | 2015-05-04 13:15:42 -0400 |
commit | 9adfe767010e23823089b4db94cb4dc53cc3c12a (patch) | |
tree | adaa2d3a72080208e5267dbd8e0b238f06d8f88f | |
parent | 71bb4d90da2bad933fdca48d1879886fe7aa9bc8 (diff) | |
parent | a042000073bf348fddff23f41d30f49f2e874adb (diff) | |
download | taxi-9adfe767010e23823089b4db94cb4dc53cc3c12a.tar.gz taxi-9adfe767010e23823089b4db94cb4dc53cc3c12a.zip |
Merge branch 'master' of github.com:adbrebs/taxi
-rwxr-xr-x | convert_data.py | 3 | ||||
-rw-r--r-- | hdist.py | 16 |
2 files changed, 13 insertions, 6 deletions
diff --git a/convert_data.py b/convert_data.py index f81b40f..9684fa9 100755 --- a/convert_data.py +++ b/convert_data.py @@ -104,8 +104,9 @@ def convert(input_directory, save_path): h5file = h5py.File(save_path, 'w') split = {} split.update(read_stands(input_directory, h5file)) - split.update(read_taxis(input_directory, h5file, 'test', 'test_')) split.update(read_taxis(input_directory, h5file, 'train', '')) + print 'First origin_call not present in training set: ', len(origin_call_dict) + split.update(read_taxis(input_directory, h5file, 'test', 'test_')) split.update(unique(h5file)) h5file.attrs['split'] = H5PYDataset.create_split_array(split) h5file.flush() @@ -2,6 +2,9 @@ from theano import tensor import theano import numpy +rearth = const(6371) +deg2rad = const(3.141592653589793 / 180) + def const(v): if theano.config.floatX == 'float32': return numpy.float32(v) @@ -9,9 +12,6 @@ def const(v): return numpy.float64(v) def hdist(a, b): - rearth = const(6371) - deg2rad = const(3.141592653589793 / 180) - lat1 = a[:, 0] * deg2rad lon1 = a[:, 1] * deg2rad lat2 = b[:, 0] * deg2rad @@ -27,5 +27,11 @@ def hdist(a, b): return tensor.switch(tensor.eq(hd, float('nan')), (a-b).norm(2, axis=1), hd) - - +def erdist(a, b): + lat1 = a[:, 0] * deg2rad + lon1 = a[:, 1] * deg2rad + lat2 = b[:, 0] * deg2rad + lon2 = b[:, 1] * deg2rad + x = (lon2-lon1) * tensor.cos((lat1+lat2)/2) + y = (lat2-lat1) + return tensor.sqrt(tensor.sqr(x) + tensor.sqr(y)) * rearth |