remove if conditions and relying on pysal.W to build weights norms
This commit is contained in:
parent
693f6a68db
commit
3294eb35ab
@ -20,19 +20,23 @@ def construct_neighbor_query(w_type, query_vals):
|
|||||||
def get_weight(query_res, w_type='knn', num_ngbrs=5):
|
def get_weight(query_res, w_type='knn', num_ngbrs=5):
|
||||||
"""
|
"""
|
||||||
Construct PySAL weight from return value of query
|
Construct PySAL weight from return value of query
|
||||||
@param query_res: query results with attributes and neighbors
|
@param query_res dict-like: query results with attributes and neighbors
|
||||||
"""
|
"""
|
||||||
if w_type == 'knn':
|
# if w_type == 'knn':
|
||||||
row_normed_weights = [1.0 / float(num_ngbrs)] * num_ngbrs
|
# row_normed_weights = [1.0 / float(num_ngbrs)] * num_ngbrs
|
||||||
weights = {x['id']: row_normed_weights for x in query_res}
|
# weights = {x['id']: row_normed_weights for x in query_res}
|
||||||
else:
|
# else:
|
||||||
weights = {x['id']: [1.0 / len(x['neighbors'])] * len(x['neighbors'])
|
# weights = {x['id']: [1.0 / len(x['neighbors'])] * len(x['neighbors'])
|
||||||
if len(x['neighbors']) > 0
|
# if len(x['neighbors']) > 0
|
||||||
else [] for x in query_res}
|
# else [] for x in query_res}
|
||||||
|
|
||||||
neighbors = {x['id']: x['neighbors'] for x in query_res}
|
neighbors = {x['id']: x['neighbors'] for x in query_res}
|
||||||
|
print 'len of neighbors: %d' % len(neighbors)
|
||||||
|
|
||||||
return ps.W(neighbors, weights)
|
built_weight = ps.W(neighbors)
|
||||||
|
built_weight.transform = 'r'
|
||||||
|
|
||||||
|
return built_weight
|
||||||
|
|
||||||
def query_attr_select(params):
|
def query_attr_select(params):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user