Skip to content

Commit 3b12816

Browse files
committed
fix child block ordering
1 parent 68cc51d commit 3b12816

1 file changed

Lines changed: 8 additions & 6 deletions

File tree

blocksequence/utils/commands.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,17 +109,13 @@ def order_blocks(ctx, pid, cid):
109109
edge_select = select([edge_table])
110110
edge_sequence = pd.read_sql(edge_select, con=ctx.obj['dest_db'])
111111

112-
# group the blocks by the child geo ID
113-
logger.debug(f"Grouping blocks by {pid} and {cid}")
114-
grouped = edge_sequence.groupby([pid, cid], sort=True)
115-
116112
# calculate the block order
117113
logger.debug("Calculating the block order")
118-
edge_sequence['block_order'] = grouped.ngroup()+1
114+
edge_sequence = edge_sequence.groupby(pid, sort=True).apply(sub_block_order, {key:cid})
119115

120116
# calculate the edge order within the blocks
121117
logger.debug("Calculating edge order")
122-
edge_sequence['edge_order'] = grouped.cumcount()+1
118+
edge_sequence['edge_order'] = edge_sequence.groupby([pid, cid], sort=True).cumcount()+1
123119

124120
# calculate the chain ID
125121
logger.debug("Calculating chain ID field")
@@ -131,6 +127,12 @@ def order_blocks(ctx, pid, cid):
131127

132128
logger.debug('order_blocks ended')
133129

130+
def sub_block_order(data, key='lb_uid'):
131+
"""Takes a DataFrame grouped by a parent geography and creates an ID number for the order in which they appear."""
132+
133+
grp = data.groupby(key)
134+
data['block_order'] = grp.ngroup()+1
135+
return data
134136

135137
@click.command()
136138
@click.argument('pgeo', envvar='SEQ_PARENT_LAYER')

0 commit comments

Comments
 (0)