Open gmgall opened 7 years ago
Pessoal, vi que o @diogosbr adicionou [algumas] as variáveis no repositório model-r. Contudo me parece desnecessário, uma vez que não vamos versionar tais variáveis e talvez deixem o repo pesado. Correto? De qq forma aproveito para perguntar: @gmgall ,como seria melhor para te passar as variáveis que vamos trabalhar? Elas precisarão ter o mesmo nome que figura na base de dados. Então estive pensando em organizar isso em pastas diferentes e te passar a estrutura para e enviar a mesma estrutura ao @rafaeloliveiralima para ser adicionada ao banco e passada ao Middleware pelo json. Me avise quando puder vermos isso.
De qq forma aproveito para perguntar: @gmgall ,como seria melhor para te passar as variáveis que vamos trabalhar? Elas precisarão ter o mesmo nome que figura na base de dados. Então estive pensando em organizar isso em pastas diferentes e te passar a estrutura para e enviar a mesma estrutura ao @rafaeloliveiralima para ser adicionada ao banco e passada ao Middleware pelo json. Me avise quando puder vermos isso.
Se concordarmos com um padrão para o nome dos arquivos e eu recebê-los pelo webservice, consigo criar o RasterStack
.
Até hoje só usei eigenvariables.grd
e eigenvariables.gri
. Só o último é usado para criar o RasterStack
:
variaveis_preditoras <- raster::stack(list.files("ARF_spatial_planning/ENM/env",pattern="gri",full.names = T)[1])
Sim, @gmgall . Seria isso mesmo: A. os nomes dos aquivos ficariam armazenados no banco de dados e a interface disponibilizaria para que os usuários selecionem os rasters que quiserem; B. Os nomes dos rasters selecionados seriam enviados pelo webservice, para que vc os carregasse no R;
O que eu imaginei fazer é: criar um padrão de path
no qual constaria:
Caso mais de um raster seja selecionado, seria um "array" com os path no json. Imagino que isso seja facil de organizar na interface, e facilitaria a leitura no backend. O que acha @gmgall e @rafaeloliveiralima ?
Eu incluí as variáveis de 5min no repositório da interface no shiny, para dar a possibilidade de quem baixar essa versão usar essa resolução. Não acho que fica muito pesado. O repositório fica com cerca de 300mb e se não me engano essa versão free permite até 1gb por repositório.
Aproveitando o ensejo, criei um pull request, e todos tiverem de acordo vou aceitar lá.
Pessoal, duas coisas.
As variáveis podem ser chamadas com um list.files()
desse jeito não precisamos ser muito estritos na hora de executar como pacote. Os nomes das variáveis viriam com um list.files(..., full.names = F)
e o path completo com T.
Recentemente enchi um repositório por botar arquivos muito grandes que não iam mudar. Eles vãõ enchendo o repo porque cada commit copia tudo. Vale a pena botar para trackear as variáveis? Mesmo que seja um conjunto só. Podemos também botar o set como data()
?
Acho esse caminho o mais facilmente exequível, @FelipeSBarros.
O web service passa a fornecer também uma lista de nomes (ou paths) e eu os carrego de algum lugar pré-determinado (buriti, máquina do SibBr, scratch do Santos Dumont, a ser decidido; só preciso achar o arquivo).
Ah, e a propósito: também não vejo sentido em versionar dados ambientais. Eles não mudarão ao longo de tempo como códigos fonte mudam.
A intenção é que isso vá na imagem construída no Docker Hub?
Sim, @gmgall . Pelo que entendi, o @diogosbr incluiu as variáveis no repositório para que as mesmas estejam presentes no shinny. Se houver alguma outra forma de incluí-las no docker sem necessariamente termos que mantê-las no github,seria uma boa saída!
Alterei o ws para enviar não só as variáveis mas também os algoritmos. @gmgall dê uma olha se está OK.
Otimo @rafaeloliveiralima ! Vi hoje com o @gmgall.
Seria possível fazer uma pequena alteração no ws?
Seria inlcuir um array com os paths para os arquivos.
Eu os organizei em um CSV, caso queira adicionar à base de dados.
Perceba que criei uma coluna nova chamada path
. A ideia é que o ws informe os paths só para facilitar. As demais colunas usam o mesmo nome previstas na table raster do modelo do banco de dados.
Parece ok, @rafaeloliveiralima:
$ curl 'http://model-r.jbrj.gov.br/ws/?status=3' | python -m json.tool
{
"experiment": [
{
"algorithm": [],
"buffer": "1.50",
"description": "",
"extent_model": "-62.649;-34.443;6.41;-32.490",
"id": "64",
"idexperiment": "ea5d2f1c4608232e07d3aa3d998e5135",
"name": "",
"num_partition": "27",
"num_points": "",
"occurrences": [
{
"idstatusoccurrence": "2",
"lat": "-24.314444",
"lon": "-48.357500",
"taxon": "Vriesea tijucana E.Pereira"
},
[...]
"partitiontype": "",
"raster": [
{
"idraster": "19",
"raster": "BIO19 Precipitation of Coldest Quarter",
"source": "WordClim"
},
{
"idraster": "17",
"raster": "BIO17 Precipitation of Driest Quarter",
"source": "WordClim"
},
{
"idraster": "13",
"raster": "BIO13 Precipitation of Wettest Month",
"source": "WordClim"
}
],
"statusexperiment": "Em processamento",
"tss": "0.50"
}
]
}
Já tenho os arquivos wc2.0_30s_bio.zip
e wc2.0_2.5m_bio.zip
aqui, @FelipeSBarros. Vou organizá-los conforme você sugeriu no CSV.
@FelipeSBarros alimentei a tabela raster com os dados do arquivo csv e alterei o ws para informar o path, resolution e period também.
Ótimo, @rafaeloliveiralima ! Fiz um teste aqui, como o @gmgall faz, utilizando a ferramenta que ele criou em python:
curl 'http://model-r.jbrj.gov.br/ws/?status=3' | python -m json.tool
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1486 100 1486 0 0 3079 0 --:--:-- --:--:-- --:--:-- 3439
{
"experiment": [
{
"algorithm": [],
"buffer": "1.50",
"description": "",
"extent_model": "-62.649;-34.443;6.41;-32.490",
"id": "64",
"idexperiment": "ea5d2f1c4608232e07d3aa3d998e5135",
"name": "",
"num_partition": "27",
"num_points": "",
"occurrences": [
{
"idstatusoccurrence": "2",
"lat": "-24.314444",
"lon": "-48.357500",
"taxon": "Vriesea tijucana E.Pereira"
},
{
"idstatusoccurrence": "2",
"lat": "-15.180556",
"lon": "-39.350000",
"taxon": "Vriesea tijucana E.Pereira"
},
{
"idstatusoccurrence": "17",
"lat": "-25.616667",
"lon": "-48.500000",
"taxon": "Vriesea tijucana E.Pereira"
},
{
"idstatusoccurrence": "17",
"lat": "-26.786111",
"lon": "-48.918889",
"taxon": "Vriesea tijucana E.Pereira"
},
{
"idstatusoccurrence": "17",
"lat": "-24.637778",
"lon": "-47.766667",
"taxon": "Vriesea tijucana E.Pereira"
},
{
"idstatusoccurrence": "17",
"lat": "-15.180556",
"lon": "-39.350000",
"taxon": "Vriesea tijucana E.Pereira"
},
{
"idstatusoccurrence": "17",
"lat": "-25.088889",
"lon": "-47.933056",
"taxon": "Vriesea tijucana E.Pereira"
}
],
"partitiontype": "",
"raster": [
{
"idraster": "13",
"path": "",
"period": "",
"raster": "BIO13 Precipitation of Wettest Month",
"resolution": "",
"source": "WordClim"
},
{
"idraster": "17",
"path": "",
"period": "",
"raster": "BIO17 Precipitation of Driest Quarter",
"resolution": "",
"source": "WordClim"
},
{
"idraster": "19",
"path": "",
"period": "",
"raster": "BIO19 Precipitation of Coldest Quarter",
"resolution": "",
"source": "WordClim"
}
],
"statusexperiment": "Em processamento",
"tss": "0.50"
}
]
}
O path já aparece mas não está retornando nenhum valor. Será que teria que refazer esse experimento para que o valor path
seja retornado?
Realmente um campo path
foi incluído. Mas só aparece com um valor em 3 situações.
$ curl 'http://model-r.jbrj.gov.br/ws/?' | python -m json.tool | egrep '"path": "[^"]'
"path": "./worldclim/v2/30sec/presente/wc2.0_bio_30s_04.tif",
"path": "./worldclim/v2/30sec/presente/wc2.0_bio_30s_01.tif",
"path": "./worldclim/v2/30sec/presente/wc2.0_bio_30s_19.tif",
Nas demais, aparece vazio.
Provavelmente só foi preenchido num único experimento para testar.
o raster escolhido na modelagem foi o registro antigo (wordclin) o path so esta preenchido na versao 2 wordclin ver2
Obter o Outlook para iOS
On Thu, Sep 14, 2017 at 12:13 PM -0300, "Guilherme Gall" notifications@github.com wrote:
Realmente um campo path foi incluído. Mas só aparece com um valor em 3 situações. $ curl 'http://model-r.jbrj.gov.br/ws/?' | python -m json.tool | egrep '"path": "[^"]' "path": "./worldclim/v2/30sec/presente/wc2.0_bio_30s_04.tif", "path": "./worldclim/v2/30sec/presente/wc2.0_bio_30s_01.tif", "path": "./worldclim/v2/30sec/presente/wc2.0_bio_30s_19.tif",
Nas demais, aparece vazio.
Provavelmente só foi preenchido num único experimento para testar.
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
@diogosbr, temos uma msg da @MFSiqueira falando que iriamos usar a V2 do worldclim. Seguimos com essa proposta? Ou incluimos a versão 1.4? Veja que já deixei o path diferenciando a versão justamente para caso queiramos incluir a versão 1,4.
Eu cadastrei as duas versões no banco de dados. Alem do bio-oracle.
O web service precisa fornecer o nome das variáveis usadas para criação do objeto
RasterStack
que será o informado como parâmetropredictors
das funções de modelagem.