Open gkimura opened 5 years ago
Galera! Comecei, por favor coloquem as infos referentes a descricao de cada metodo implementado, assim como fiz em minha parte: Nivel taxonomico
Tópico 2 - Nível taxonomico
Para o nível taxonomico, criou-se o metodo "retornaNivelTaxonomicoCadaOcorrencia(self)" que aplica a Tabela de dados a busca por cada string desejada a partir da linha que contem os nomes dos campos necessarios pela ordem mais especifica para mais generica. A partir da identificacao da string, aplicou-se um laco for para que fosse necessario percorrer cada amostra de dados preenchidos em suas respectivas colunas. Como condicao, considerou-se a busca por strings diferentes de "Sem informacao". Quando o campo de cada coluna apresenta valores diferentes de "Sem informacao", o dado eh armazenado e retornado ao usuario. Quando o campo da primeira coluna encontra a string "Sem informacao", percorre-se entao sua coluna atencedente, considerando criterio de parada a condicao da string ser diferente de "Sem informacao".
Tópico 2 - Informações faltantes
Para a contagem de linhas com informações faltantes por coluna, foi implementada a função “retornaMediaDadosFaltantesPorColuna”. Para isso, a quantidade de colunas da tabela de entrada foi identificada, e uma lista de igual dimensão foi gerada, inicializada com zeros. Cada posição da lista é responsável por contabilizar a quantidade de linhas faltantes da coluna correspondente. Desta forma, a função itera pelas linhas da tabela, e verifica em cada coluna, a ausência de informações, representada pela string “Sem Informações” ou string vazia. Para cada ocorrência, o contador correspondente é incrementado. Por fim, para obter a média dos dados faltantes por coluna, cada contador da lista foi dividido pela quantidade de linhas da tabela. Para a melhor visualização dos resultados, a lista foi transformada em dicionário para a utilização do Dataframe da biblioteca Pandas.
Tópico 03 -
No tópico 03 foi implementado o método retonaSeOcorrenciaExiste. Este método é responsável por filtrar o nível de ameaça das amostras. Esta função recebe como parâmetro uma string indicando o nível de ameaça que será filtrado. Na construção do método, inicialmente foi feita a transposição da matriz de dados, a fim de varrer cada coluna. Esta aplicação não é necessária para a resolução da proposta, entretanto, para reaproveitar parte do código criado previamente optou-se por executar desta forma. Com os dados transpostos, foi feito uma varredura até identificar a coluna que contém as informações do nível de ameaça ("Estado de conservação"). Identificada a coluna, realizou-se sua varredura comparando cada ítem da coluna com a string passada como parâmetro. Para as amostras que correspondiam ao nível de ameaça solicitado, foi coletado sua identificação, nome e criado uma nova lista com estas informações. Por fim também foi criado uma segunda lista com a latitude e longitude das amostras filtradas para ser utilizada como parâmetro do plot do mapa no método 04.
Tópico 08 - Testar um código criado por um outro grupo
Para execução deste tópico, foi realizado um clone da pasta do github da equipe do Vitor (https://github.com/vitorbezerra/Avaliando_qualidade_dados_de_ocorrencia). Uma vez que a equipe criou um package do exercício, no terminal foram instaladas as dependências da solução em um ambiente e na sequência executado o código. De modo geral, as funções se diferem na sua lógica de construção, porém, alcançam resultados semelhantes. Neste grupo em particular, por se tratar de um arquivo .py desenvolvido fora do jupyter, não há o plot do mapa no tópico 04 (vale ressaltar que o plot do mapa não era obrigatório).
Tópico - 08 - Criação do package
Inicialmente foi criado um novo branch chamado "feat/package", a fim de evitar qualquer alteração indesejada no branch master do projeto. No branch feat/package foi criado uma nova pasta chamada BioPack, ressaltando que a bibliotexa criada receberá o nome desta pasta. Dentro da pasta BioPack, como não é possível criar um package no formato .ipynb (jupyter) foi inserido uma versão do projeto no formato .py. Também foram criado dois novos arquivos, o primeiro vazio chamado "init.py" e o segundo chamado "setup.py" contendo todas as informações do package e dependências que devem ser instaladas (para este projeto o "numpy", "pandas", "opencage" e "geopy"). Na sequência criou-se um novo ambiente, intalou o python, e dentro da pasta BioPack foi executado o comando "pip install .", instalando desta forma o novo pacote. Ainda foi verificada a instalação com o comando "pip list", certificando que o package estava presente na lista. Por fim foi criado um arquivo de teste para importar o pacote criado e executar o projeto.
Formato Livre: