Coder Social home page Coder Social logo

br_fbds's Introduction

Fundação Brasileira para o Desenvolvimento Sustentável - FBDS


Em novembro de 2022 surgiu a necessidade/curiosidade de melhor compreender os dados de hidrologia e uso do solo disponibilizados pela Fundação Brasileira para o Desenvolvimento Sustentável (FBDS). Os dados são utilizados em projetos de pesquisa (Biota-Síntese e outros) e são disponibilizados em um repositório público de mapas e shapefiles para download.

Para obter os dados desenvolvi scripts para fazer o download dos layers do estado de São Paulo. As rotinas podem ser usadas para outros estados. O resultado formou a criação de 7 layers em formato geopackage:

id Layer Subpasta Tamanho
1 app.gpkg APP 994 MB
2 app_uso.gpkg APP 2,07 GB
3 hidro_simples.gpkg HIDROGRAFIA 673 MB
4 hidro_duplas.gpkg HIDROGRAFIA 93,8 MB
5 hidro_nascentes.gpkg HIDROGRAFIA 60,0 MB
6 hidro_massa.gpkg HIDROGRAFIA 124 MB
7 uso.gpkg USO 3,89 GB
Total 7,87 GB

Abaixo segue informações obtidas no site da Fundação:

Em 2015 a Fundação Brasileira para o Desenvolvimento Sustentável deu início ao Projeto de Mapeamento em Alta Resolução dos Biomas Brasileiros, que desde então vem produzindo dados primários de uso e cobertura do solo, hidrografia e Áreas de Preservação Permanente em uma resolução inédita para os biomas brasileiros (5 metros).

Os resultados do mapeamento vêm sendo utilizados para apoiar a execução de políticas públicas - em especial a implementação do Cadastro Ambiental Rural, o planejamento territorial, a realização de pesquisas acadêmicas e o desenvolvimento de tecnologias. Até o momento o mapeamento já foi concluído para mais de 4 mil municípios brasileiros abrangidos pelos biomas Mata Atlântica e Cerrado.


qgis



h5ai

A interface do repositório foi construída em com o framework h5ai que se assemelha a estrutura de um servidor FTP. Foi importante estudar o funcionamento do framework, do lado do cliente, para descobrir as melhores maneiras de "raspar" os dados.

Pesquisei a possibilidade de existirem APIs em python para "raspar", de modo facilitado. Na ausência de APIs públicas, foi necessário pensar em técnicas de webscrapping.

Pesquisando sobre APIs para utilizar com o framework h5ai, encontrei informação sobre um bug, no Exploit-DB.com. (a ser pequisado...)



Abordagens

Primeira Abordagem (ruim e, portanto, descontinuada)

A concepção empregada foi obter a lista dos arquivos em formato tabular (.csv) para, posteriormente, fazer o download.

Usando o ./scripts/01_get_data.ipynb, foi utilizada a seguinte concepção: Para criar a lista de arquivos, fiz com auxílio do selenium. Com o driver eram realizados os seguintes procedimentos:

  1. Listar todos as Subpastas e Arquivos de um diretório raiz;
  2. Para cada Subpasta encontrada, entra-se nela, e repetir o procedimento de listar Arquivos), retornando para a pasta anterior ao final
  3. Fazia isso de modo em loop, utilizando uma função recursiva.
  4. A cada iteração, todas as URLs apresentadas eram colecionadas em um tabela .csv.

Abordagem_1


Uma vez com todos os links, foi realizado o download usando o JDownloder, com arquivo scripts/03_download_list_files.ipynb



Segunda Abordagem (melhor!!)

A partir do diretório do Estado de São Paulo, com 645 pastas (uma para cada município), foi realizado o download da pasta, resultando em 645 arquivos .tar. Isso foi feito com o arquivo ./scripts/01_get_data.ipynb. A ideia era:

  1. Listar todos as Subpastas (que represetam os municípios) de um diretório raiz;
  2. Usando os conceitos de ActionChains, passar o mouse sobre a pasta e clicar nela.
  3. Clicar no botão "Fazer Download".

Abordagem_2


Após isso, com uso do scripts/02_adjust_data.ipynb, foram feitos os seguintes procedimentos:

  1. Listar todos os arquivos shapefile (.shp) que estão dentro dos arquivos .tar, sem descompactar!
  2. Criar uma tabela com essa lista de arquivos.
  3. Ajustar essa tabela, agregando diversas informações para re-criar os caminhos para o arquivo.
  4. Criar cententas de arquivos temporários (com auxílio da bibliotenca tempfile), com o mesmo padrão de nome, evitando a necessidade de descompactar os arquivos .tar
  5. Listar os arquivos fake shapefile e ajusta-los, para que direcionem ao arquivo dentro do .tar
  6. Testar e leitura dos arquivos pelo geopandas, conectar e salvar... para cada feição.


TODO

  1. Definir funções de fazer o download dos arquivos, a partir da lista.
  2. Realizar o agendamento para obter a lista.
  3. Ajustar a pasta de download. Atualmente vai para a pasta padrão. Movi manualmente!
  4. Ajustar os tipos de arquivos (Pontos, Polylines, Polygons), visto que na lista de arquivos surgiu uma feição curiosa:
    1. RIOS_DUPLOS.shp
    2. RIOSDUPLOS.shp
    3. RIOS_DUPLOS_POL.shp

br_fbds's People

Contributors

michelmetran avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.