Mercurial > hg > nsaunier > traffic-intelligence
annotate scripts/extract-user-counts.py @ 1305:9c1870244adf
merged
| author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
|---|---|
| date | Mon, 26 Jan 2026 16:33:26 -0500 |
| parents | c4bef099d0a2 |
| children |
| rev | line source |
|---|---|
|
1299
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
1 #! /usr/bin/env python |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
2 |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
3 #import numpy as np |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
4 import argparse # os |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
5 import pandas as pd |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
6 import sqlite3 |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
7 |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
8 from trafficintelligence import utils, moving |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
9 |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
10 parser = argparse.ArgumentParser(description='The program generates a csv of the user counts per SQLite database in the directory ') |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
11 parser.add_argument('-i', dest = 'dirname', help = 'name of the directory containing all the databases', default = '.') |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
12 args = parser.parse_args() |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
13 |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
14 out = open('user-counts.csv', 'w') |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
15 out.write('filename') |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
16 for i in range(1,7): |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
17 out.write(','+moving.userTypeNames[i]) |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
18 out.write('\n') |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
19 for fn in utils.listfiles(args.dirname, 'sqlite'): |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
20 with sqlite3.connect(fn) as connection: |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
21 data = pd.read_sql('SELECT road_user_type, count(*) AS n FROM objects GROUP BY road_user_type', connection) |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
22 counts = {i:'0' for i in range(1,7)} |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
23 for i,r in data.iterrows(): |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
24 counts[r['road_user_type']]=str(r['n']) |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
25 fn2 = fn.split('/')[-1].rsplit('.',1)[0] |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
26 out.write(fn2+','+','.join(counts.values())+'\n') |
|
c4bef099d0a2
adding script to extract users counts
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
27 out.close() |
