Come tracciare i dati in una pagina Web da un set di dati gratuito che si aggiorna quotidianamente?
Sto utilizzando i dati disponibili nei collegamenti sottostanti per ottenere dati sui casi confermati per COVID-19 in Colombia. Sto modellando i casi cumulativi con un modello non lineare e tutto va bene. Ciò è stato fatto scaricando i dati per lavorare in locale. So che ci sono meccanismi per lo sviluppo web e molto di quello che mi serve l'ho trovato in questa community, tranne che non so come fare l'aggiornamento grafico in automatico dai dati trovati nei link in una pagina web.
https://www.datos.gov.co/Salud-y-Protecci-n-Social/Casos-positivos-de-COVID-19-en-Colombia/gt2j-8ykr/data
https://www.datos.gov.co/w/gt2j-8ykr/dneh-mcp2?cur=i2Z4n-Qy94T&from=root
Grazie per i vostri suggerimenti!
Risposte
Sembra utilizzare Socrata per gestire i dati. Non ho esperienza con questa API, ma sembra che tu possa accedervi utilizzando questo modulo dell'URL:
https://www.datos.gov.co/Salud-y-Protecci-n-Social/Casos-positivos-de-COVID-19-en-Colombia/gt2j-8ykr
Secondo la documentazione Socrata , puoi richiedere questi dati in un determinato momento $offset
e $limit
fornendoli come parametri nell'URL. Questo è un po 'di nicchia e oltre lo scopo di Mathematica Stack Exchange, ma si spera che questo ti faccia iniziare:
(* fetch 10 records starting from offset 0 *)
request =
HTTPRequest["https://www.datos.gov.co/resource/gt2j-8ykr.json",
<| Method -> "GET", "Query" -> {"$limit" -> 10, "$offset" -> 0},
CharacterEncoding -> "UTF8"|>];
response = URLExecute[request];
Possiamo quindi interrogare le proprietà del JSON di risposta formando un Association
:
(* of our 10 records, get the first 5 cities of location *)
Association[#]["ciudad_de_ubicaci_n"] & /@ response[[1 ;; 5]]
(* {"Bogotá D.C.", "Guadalajara de Buga", "Medellín", "Medellín", "Medellín"} *)
Se vuoi il numero totale di voci nel database (casi), allora penso che potresti usare l'API in questo modo $select=count(id_de_caso)
:
request =
HTTPRequest["https://www.datos.gov.co/resource/gt2j-8ykr.json",
<| Method -> "GET",
"Query" -> {"$select" -> "count(id_de_caso)", "$offset" -> 0},
CharacterEncoding -> "UTF8"|>];
response = URLExecute[request];
numberOfCases = ToExpression@Values[First[response]][[1]]
(* 456689 *)
Questo corrisponde esattamente ai dati per la Columbia su https://www.trackcorona.live/map dal 16 agosto 2020.