Ir para o conteúdo

Inserir Modelos

AVISO
Os métodos apresentados nesta documentação geram objetos reais no banco de dados. Para testar os métodos de requisição da API Mosqlimate sem inserir dados, consulte a Demonstração da API.

Parâmetros de entrada

Nome do Parâmetro Tipo Descrição
name str Nome do modelo
description str ou None Descrição do modelo
repository str URL do repositório Github
implementation_language str Linguagem de implementação
disease str (iexact) Doença do modelo. Opções: Dengue, Zika e Chikungunya
temporal bool O modelo é temporal?
spatial bool O modelo é espacial?
categorical bool O modelo é categórico?
adm_level int (0, 1, 2 ou 3) Nível administrativo, opções: 0, 1, 2, 3 (Nacional, Estadual, Municipal, Submunicipal)
time_resolution str (iexact) Opções: dia, semana, mês ou ano
sprint bool Modelo para o Sprint 2024/25

Linguagem de Implementação

Atualmente, o Mosqlimate suporta as seguintes linguagens de implementação:

Python C C# C++
CoffeeScript .NET Erlang Go
Haskell JavaScript Java Kotlin
Lua R Ruby Rust
Zig

Se a sua Linguagem de Implementação não estiver na lista, entre em contato com a moderação.

X-UID-Key

Requisições POST exigem Token de API do Usuário para serem chamadas.

Exemplos de uso

O pacote mosqlient também aceita um DataFrame do pandas com as chaves necessárias como alternativa a um JSON no parâmetro de previsão. Para mais detalhes, consulte a documentação aqui.

from mosqlient import upload_model 

upload_model(
    name = "My Nowcasting Model",
    description = "My Model description",
    repository = "https://github.com/Mosqlimate-project/Data-platform",
    implementation_language = "Python",
    disease = "dengue",
    temporal = False,
    spatial = True,
    categorical = False,
    adm_level = 0, # National
    time_resolution = "week",
    sprint = False
)
library(httr)
library(jsonlite)

# Warning: this method generates real object in the database if called with
# the correct UID Key
post_model <- function(
    name,
    description,
    repository,
    implementation_language,
    disease,
    spatial,
    temporal,
    categorical,
    adm_level,
    time_resolution,
    sprint
) {
url <- "https://api.mosqlimate.org/api/registry/models/"

headers <- add_headers(
    `X-UID-Key` = X-UID-Key)

model <- list(
    name = name,
    description = description,
    repository = repository,
    implementation_language = implementation_language,
    disease = disease,
    spatial = spatial,
    temporal = temporal,
    categorical = categorical,
    adm_level = adm_level,
    time_resolution = time_resolution,
    sprint = sprint
    )

response <- POST(url, headers, body = model,  encode = "json")
return(content(response, "text"))
}

# Example
post_model(
  name = "My Nowcasting Model",
  description = "My Model description",
  repository = "https://github.com/Mosqlimate-project/Data-platform",
  implementation_language = "R",
  disease = "dengue",
  spatial = TRUE,
  temporal = FALSE,
  categorical = TRUE,
  adm_level = 0,
  time_resolution = "week",
  sprint = FALSE
)
curl -X 'POST' \
    'https://api.mosqlimate.org/api/registry/models/' \
    -H 'accept: application/json' \
    -H 'X-UID-Key: See X-UID-Key documentation' \
    -H 'Content-Type: application/json' \
    -d '{
    "name": "My Nowcasting Model",
    "description": "My Model description",
    "repository": "https://github.com/Mosqlimate-project/Data-platform",
    "implementation_language": "Python",
    "disease": "dengue",
    "spatial": true,
    "temporal": true,
    "categorical": true,
    "adm_level": 0,
    "time_resolution": "week",
    "sprint": false
}'