Come tracciare i dati in una pagina Web da un set di dati gratuito che si aggiorna quotidianamente?

Aug 17 2020

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

4 flinty Aug 16 2020 at 23:18

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 $offsete $limitfornendoli 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.