-
Notifications
You must be signed in to change notification settings - Fork 0
Use Cases
A user can initially obtain only the basic data in order to use the database entries to get specific stations within various contexts. See an example of initial execution:
$ python hidrodb --skip-series-jobs
Enter API username: *******
Enter API password: *******
[INFO]: ====================================
[INFO]: Creating jobs for Bacia.
[INFO]: Initiating jobs for Bacia
[INFO]: No valid token present, requesting.
[INFO]: Token acquired and cached.
[INFO]: [WRITER Bacia]: Total processed Data: 9, Total finished Jobs: 1.
[INFO]: [WRITER]: Finished jobs for Bacia Total processed Data: 9, Total finished Jobs: 1.
[INFO]: [WRITER]: Total worker elapsed: 2.0425357818603516, Total writer elapsed: 0.09407389094121754.
[INFO]: Pending: 0, Failed: 0, Completed: 1
[INFO]: No pending jobs for Bacia.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: Creating jobs for SubBacia.
[INFO]: Initiating jobs for SubBacia
[INFO]: [WRITER SubBacia]: Total processed Data: 84, Total finished Jobs: 1.
[INFO]: [WRITER]: Finished jobs for SubBacia Total processed Data: 84, Total finished Jobs: 1.
[INFO]: [WRITER]: Total worker elapsed: 1.7218303680419922, Total writer elapsed: 0.0454633308108896.
[INFO]: Pending: 0, Failed: 0, Completed: 1
[INFO]: No pending jobs for SubBacia.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: Creating jobs for Entidade.
[INFO]: Initiating jobs for Entidade
[INFO]: [WRITER Entidade]: Total processed Data: 1346, Total finished Jobs: 1.
[INFO]: [WRITER Entidade]: Total processed Data: 1346, Total finished Jobs: 1.
[INFO]: [WRITER]: Finished jobs for Entidade Total processed Data: 1346, Total finished Jobs: 1.
[INFO]: [WRITER]: Total worker elapsed: 2.172236442565918, Total writer elapsed: 0.10623302333988249.
[INFO]: Pending: 0, Failed: 0, Completed: 1
[INFO]: No pending jobs for Entidade.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: Creating jobs for Municipio.
[INFO]: Initiating jobs for Municipio
[INFO]: [WRITER Municipio]: Total processed Data: 5714, Total finished Jobs: 1.
[INFO]: [WRITER Municipio]: Total processed Data: 5714, Total finished Jobs: 1.
[INFO]: [WRITER]: Finished jobs for Municipio Total processed Data: 5714, Total finished Jobs: 1.
[INFO]: [WRITER]: Total worker elapsed: 2.172177314758301, Total writer elapsed: 0.36168359825387597.
[INFO]: Pending: 0, Failed: 0, Completed: 1
[INFO]: No pending jobs for Municipio.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: Creating jobs for Rio.
[INFO]: Initiating jobs for Rio
[INFO]: [WRITER Rio]: Total processed Data: 14121, Total finished Jobs: 1.
[INFO]: [WRITER Rio]: Total processed Data: 14121, Total finished Jobs: 1.
[INFO]: [WRITER]: Finished jobs for Rio Total processed Data: 14121, Total finished Jobs: 1.
[INFO]: [WRITER]: Total worker elapsed: 3.350553274154663, Total writer elapsed: 0.8507782021770254.
[INFO]: Pending: 0, Failed: 0, Completed: 1
[INFO]: No pending jobs for Rio.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: Creating jobs for Estado.
[INFO]: Initiating jobs for Estado
[INFO]: [WRITER Estado]: Total processed Data: 39, Total finished Jobs: 1.
[INFO]: [WRITER]: Finished jobs for Estado Total processed Data: 39, Total finished Jobs: 1.
[INFO]: [WRITER]: Total worker elapsed: 1.9099388122558594, Total writer elapsed: 0.058666198747232556.
[INFO]: Pending: 0, Failed: 0, Completed: 1
[INFO]: No pending jobs for Estado.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: Creating jobs for Estacao.
[INFO]: Initiating jobs for Estacao
[INFO]: [WRITER Estacao]: Total processed Data: 1189, Total finished Jobs: 5.
[INFO]: [WRITER Estacao]: Total processed Data: 2276, Total finished Jobs: 7.
[INFO]: [WRITER Estacao]: Total processed Data: 3495, Total finished Jobs: 9.
[INFO]: [WRITER Estacao]: Total processed Data: 4753, Total finished Jobs: 11.
[INFO]: [WRITER Estacao]: Total processed Data: 6285, Total finished Jobs: 13.
[INFO]: [WRITER Estacao]: Total processed Data: 7992, Total finished Jobs: 15.
[INFO]: [WRITER Estacao]: Total processed Data: 9249, Total finished Jobs: 16.
[INFO]: [WRITER Estacao]: Total processed Data: 11812, Total finished Jobs: 18.
[INFO]: [WRITER Estacao]: Total processed Data: 13200, Total finished Jobs: 19.
[INFO]: [WRITER Estacao]: Total processed Data: 14593, Total finished Jobs: 20.
[INFO]: [WRITER Estacao]: Total processed Data: 16400, Total finished Jobs: 21.
[INFO]: [WRITER Estacao]: Total processed Data: 18306, Total finished Jobs: 22.
[INFO]: [WRITER Estacao]: Total processed Data: 21073, Total finished Jobs: 23.
[INFO]: [WRITER Estacao]: Total processed Data: 24074, Total finished Jobs: 24.
[INFO]: [WRITER Estacao]: Total processed Data: 27250, Total finished Jobs: 25.
[INFO]: [WRITER Estacao]: Total processed Data: 32572, Total finished Jobs: 26.
[INFO]: [WRITER Estacao]: Total processed Data: 37918, Total finished Jobs: 27.
[INFO]: [WRITER Estacao]: Total processed Data: 37918, Total finished Jobs: 27.
[INFO]: [WRITER]: Finished jobs for Estacao Total processed Data: 37918, Total finished Jobs: 27.
[INFO]: [WRITER]: Total worker elapsed: 532.6351408958435, Total writer elapsed: 23.213562343851663.
[INFO]: Pending: 0, Failed: 0, Completed: 27
[INFO]: No pending jobs for Estacao.
[INFO]: ====================================
[INFO]: Skiping series jobs.In a few minutes, it was possible to obtain all basic data, as well as all stations in the national territory. If the --skip-series-jobs option were not present, the application would continue execution by acquiring time series data for all acquired stations. Since most studies focus on specific regions, it is possible to obtain granularity using the basic data. Observe:
$ sqlite3 db/hidro.db "SELECT Codigo FROM Municipio WHERE Nome='OURO PRETO'"
7460000
$ sqlite3 db/hidro.db "SELECT COUNT(*) FROM Estacao WHERE MunicipioCodigo == 17460000"
72The municipality code of Ouro Preto was obtained through the name returned by the /EstacoesTelemetricas/HidroMunicipio/v1 endpoint. According to the Stations table, every station contains the attribute MunicipioCodigo; in the example above, only a count is returned, noting that this municipality has 72 registered stations.
$ python hidrodb --run-for Chuvas --stations "$(sqlite3 db/hidro.db "SELECT Codigo FROM Estacao WHERE MunicipioCodigo == 17460000")"
[INFO]: ====================================
[INFO]: No pending jobs for Bacia.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: No pending jobs for SubBacia.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: No pending jobs for Entidade.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: No pending jobs for Municipio.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: No pending jobs for Rio.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: No pending jobs for Estado.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: No pending jobs for Estacao.
[INFO]: ====================================
[INFO]: ====================================
[INFO]: Creating jobs for Chuvas
[INFO]: Created 87826 jobs for Chuvas in 9.34 seconds
[INFO]: Initiating 262 jobs for Chuvas
[INFO]: [WRITER Chuvas]: Total processed Data: 103, Total finished Jobs: 262.
[INFO]: [WRITER]: Finished jobs for Chuvas Total processed Data: 103, Total finished Jobs: 262.
[INFO]: [WRITER]: Total worker elapsed: 1344.4165544509888, Total writer elapsed: 3.6026874353410676.
[INFO]: Pending: 87556, Failed: 0, Completed: 262
[INFO]: No pending jobs for Chuvas.
[INFO]: ====================================
In the code above, concatenating the command that returns the station codes of Ouro Preto with the application's --stations argument causes only the routines associated with such station codes to be executed. Therefore, any data in a table that relates to the stations table and can derive a set of codes can be used to obtain granular data for a given set. The --run-for option was also used so that only historical rainfall series data were collected. Of the 87,826 routines created for all stations, 262 are related to the specified station codes, and all completed successfully.