Description
Support for posting and retrieving models
Specs
Prikaz modelskih napovedi omogoča zajem in prikaz modelskih napovedi. Za posredovanje podatko sta na voljo dva API-ja:
- API za zajem podatkov modelskih napovedi
- API za posredovanje podatkov modelskih napovedi
API za zajem podatkov
Klienti pošljejo podatke s POST zahtevkom. Vsebina telesa zahtevka je modelska predikcija v CSV obliki, zahtevek pa mora biti opremljen še z naslednjimi query parametri:
- id: ID modela
- date: datum napovedi
- signature: hash ID modela + shared secret (za zagotavljanje identite)
- scenario: scenarij modela
- intervalType: (INTERVAL_ZAUPANJA | VERJETNOSTNI_INTERVAL) option
- intervalWidth: (50 | 95) option
Scenarij lahko zavzame naslednje vrednosti:
- BREZ_NOVIH_OKUZB - Brez novih okuzb. Kaj imamo ze na “zalogi”?
- STACINOARNO_STANJE - Stacinoarno stanje, kot je sedaj.
- POJEMANJE_10 - 10% pojemanje (kar vi si zeleli, pa tega ni)
- POJEMANJE_40 - 40% pojemanje kot v prvem valu
- ODPRTJE - Scenarij, ce odpremo karanteno, ko se malo pademo in greco exponentno v 3 val.
Stolpci (polja) v CSV datoteki so: date, deceased, deceasedLowerBound, deceasedUpperBound, deceasedToDate, deceasedToDateLowerBound, deceasedToDateUpperBound, icu, icuLowerBound, icuUpperBound, hospitalized, hospitalizedLowerBound, hospitalizedUpperBound
Če se za isti model, dan, scenarij, intervalType in intervalWidth pošlje ponovno napoved se stara napoved prepiše.
Če se bodo izvorni podatki shranjevali kot CSV datoteke mora biti direktorijska/imenska sktuktura dovolj bogata in fleksibilna, da podpre različne tipe in (potencialno) njihovo evolucijo. Na primer:
//////data.json
API za posredovanje podatkov
API ponuja tri endpointe:
- Ali so podatki za tekoči dan zaključeni (pripravljeni) (READY)
- Seznam modelov, ki so na voljo (MODELS)
- Podatki napovedi modelov (DATA)
Struktura API-ja:
- /ready/ - timestamp option
- /models/ - vrne seznam vseh aktivnih modelov
- /models/predictions/2020-08-01/ - vrne napovedi vseh aktivnih modelov za izbrani dan
MODELS endpoint vrača JSON podatke oblike (za točnapolja glej shemo):
[
{
"id": "20540b1c-a7b6-4e45-bd57-9d60f1cdf28f",
"name": "My precious model",
"code": "https://github.com/zaplotnik/korona",
"homepage": "https://arxiv.org/pdf/2005.13282.pdf"
}
]
Podatki so lahko v JSON ali CSV obliki.
DATA endpoint vrača podatke oblike:
[
"modelId": "20540b1c-a7b6-4e45-bd57-9d60f1cdf28f",
"date": "2020-11-04",
"scenario": "(BREZ_NOVIH_OKUZB | ...)",
"interval": {
"intervalType": "(INTERVAL_ZAUPANJA | VERJETNOSTNI_INTERVAL) option",
"intervalTypeWidth": "(50 | 95) option" }
"data":
[
{
"date": "2020-08-01",
"deceased": "int",
"deceasedLowerBound": "int option",
"deceasedUpperBound": "int option",
"deceasedToDate": "int",
"deceasedToDateLowerBound": "int option",
"deceasedToDateUpperBound": "int option",
"icu": "int",
"icuLowerBound": "int option",
"icuUpperBound": "int option",
"hospitalized": "int",
"hospitalizedLowerBound": "int option",
"hospitalizedUpperBound": "int option"
}
...
]
]
Podatki so lahko v JSON ali CSV obliki.
Predlog: v obliki CSV je telo odgovora data, metapodatki modelId, date ... pa se posredujejo kot response headers.