In [ ]:
"""
Count rows in a pgtable by periods of X minutes grouping by columns values
"""

In [ ]:
from senpy.procedures.pgsql.queries.count import count_by_groupcols_and_periods

In [ ]:
# Input parameters
conParam = {
    'HOST' : 'localhost', 'USER' : 'postgres', 'PASSWORD' : 'admin',
    'PORT' : '5432', 'DATABASE' : 'valcarris'
}

pgtable = 'id_pares_od'
COLUMNS_TO_GROUP = ['id_percurso', 'dia']
HOUR_FIELD = 'hora'
MINUTES_FIELD = 'minuto'

COUNT_FIELD_NAME = 'validacoes'
PERIOD_INTERVAL = 60
PERIODS = None

OUTPUT_FILE = 'D:\TRENMO_JASP\CARRIS\procura_mesval.xlsx'

In [ ]:
count_by_groupcols_and_periods(
    conParam, pgtable, COLUMNS_TO_GROUP, HOUR_FIELD, MINUTES_FIELD,
    COUNT_FIELD_NAME, OUTPUT_FILE,
    PERIOD_INTERVAL=PERIOD_INTERVAL, PERIODS=PERIODS
)

In [1]:
from gasp.pgsql.q.count import count_rows_by_entity_and_shpJoin

conParam = {
    'HOST' : 'localhost', 'USER' : 'postgres', 'PASSWORD' : 'admin',
    'PORT' : '5432', 'DATABASE' : 'valcarris_v2'
}

table = "validacoes_v9"
pg_entity = "paragem"
pivotCol = "route_id"

shp = r'D:\TRENMO_JASP\CARRIS\percursos\pnt_percursos.shp'
shp_entity = "PARAGEM"

result = r'D:\TRENMO_JASP\CARRIS\validacoes\porlinha\by_linha_1001.shp'

whr = (
    "dia='2018-01-10' AND (route_id LIKE '%15E%' OR "
    "route_id LIKE '%705%' OR route_id LIKE '%728%' OR "
    "route_id LIKE '%746%' OR route_id LIKE '%750%' OR "
    "route_id LIKE '%727%' OR route_id LIKE '%735%' OR "
    "route_id LIKE '%742%' OR route_id LIKE '%758%' OR "
    "route_id LIKE '%767%')"
)

count_rows_by_entity_and_shpJoin(
    conParam, table, pg_entity, pivotCol, shp, shp_entity,
    result, WHERE=whr
)


Out[1]:
'D:\\TRENMO_JASP\\CARRIS\\validacoes\\porlinha\\by_linha_1001.shp'

In [ ]: