From 7ffbc8bd64e6997457e838ea51dc6f9fcf436c02 Mon Sep 17 00:00:00 2001 From: Pete Kauss Date: Sun, 23 Feb 2020 17:00:11 +0000 Subject: [PATCH] issue #20, itens (rev docs) 2 e 3 (pasta data) --- README.md | 2 +- .../MG/SantaCruzMinas}/municipio.geojson | 0 .../PA/Altamira}/municipio.geojson | 0 .../PR/Curitiba}/municipio.geojson | 0 {PR-Curitiba => data/PR/Curitiba}/pt_6gky.csv | 0 {PR-Curitiba => data/PR/Curitiba}/pt_6gkz.csv | 0 {PR-Curitiba => data/PR/Curitiba}/pt_6gm.csv | 0 .../PR/Curitiba}/pt_boxes.geojson | 0 .../PR/MarechalCandidoRondon}/README.md | 0 .../MarechalCandidoRondon}/municipio.geojson | 0 .../RJ/AngraReis}/municipio.geojson | 0 .../RR/BoaVista}/municipio.geojson | 0 .../SC/JaraguaSul}/municipio.geojson | 0 .../SP/MonteiroLobato}/municipio.geojson | 0 .../SP/SaoPaulo}/municipio.geojson | 0 docs/Conventions.md | 23 +++++++++++++++++++ {src => docs}/HowTo-cityGeoJSON.md | 0 docs/README.md | 8 +++++++ src/README.md | 8 +++---- 19 files changed, 35 insertions(+), 6 deletions(-) rename {MG-SantaCruzMinas => data/MG/SantaCruzMinas}/municipio.geojson (100%) rename {PA-Altamira => data/PA/Altamira}/municipio.geojson (100%) rename {PR-Curitiba => data/PR/Curitiba}/municipio.geojson (100%) rename {PR-Curitiba => data/PR/Curitiba}/pt_6gky.csv (100%) rename {PR-Curitiba => data/PR/Curitiba}/pt_6gkz.csv (100%) rename {PR-Curitiba => data/PR/Curitiba}/pt_6gm.csv (100%) rename {PR-Curitiba => data/PR/Curitiba}/pt_boxes.geojson (100%) rename {PR-MarechalCandidoRondon => data/PR/MarechalCandidoRondon}/README.md (100%) rename {PR-MarechalCandidoRondon => data/PR/MarechalCandidoRondon}/municipio.geojson (100%) rename {RJ-AngraReis => data/RJ/AngraReis}/municipio.geojson (100%) rename {RR-BoaVista => data/RR/BoaVista}/municipio.geojson (100%) rename {SC-JaraguaSul => data/SC/JaraguaSul}/municipio.geojson (100%) rename {SP-MonteiroLobato => data/SP/MonteiroLobato}/municipio.geojson (100%) rename {SP-SaoPaulo => data/SP/SaoPaulo}/municipio.geojson (100%) create mode 100644 docs/Conventions.md rename {src => docs}/HowTo-cityGeoJSON.md (100%) create mode 100644 docs/README.md diff --git a/README.md b/README.md index 689c94d0..6beba2a3 100644 --- a/README.md +++ b/README.md @@ -8,4 +8,4 @@ Para auditoria ou reprodução passo-a-passo do processamento em base de dados S ver pasta [**src**](src/README.md#software-de-gestão-do-repositório-stable-br). Para justificativas de decisões de projeto, ver [Rationale.md](docs/Rationale.md). -Para verificar um exemplo de dados estáveis, ver por exemplo [PR-Curitiba](PR-Curitiba). +Para verificar um exemplo de dados estáveis, ver por exemplo [data/PR/Curitiba](data/PR/Curitiba). diff --git a/MG-SantaCruzMinas/municipio.geojson b/data/MG/SantaCruzMinas/municipio.geojson similarity index 100% rename from MG-SantaCruzMinas/municipio.geojson rename to data/MG/SantaCruzMinas/municipio.geojson diff --git a/PA-Altamira/municipio.geojson b/data/PA/Altamira/municipio.geojson similarity index 100% rename from PA-Altamira/municipio.geojson rename to data/PA/Altamira/municipio.geojson diff --git a/PR-Curitiba/municipio.geojson b/data/PR/Curitiba/municipio.geojson similarity index 100% rename from PR-Curitiba/municipio.geojson rename to data/PR/Curitiba/municipio.geojson diff --git a/PR-Curitiba/pt_6gky.csv b/data/PR/Curitiba/pt_6gky.csv similarity index 100% rename from PR-Curitiba/pt_6gky.csv rename to data/PR/Curitiba/pt_6gky.csv diff --git a/PR-Curitiba/pt_6gkz.csv b/data/PR/Curitiba/pt_6gkz.csv similarity index 100% rename from PR-Curitiba/pt_6gkz.csv rename to data/PR/Curitiba/pt_6gkz.csv diff --git a/PR-Curitiba/pt_6gm.csv b/data/PR/Curitiba/pt_6gm.csv similarity index 100% rename from PR-Curitiba/pt_6gm.csv rename to data/PR/Curitiba/pt_6gm.csv diff --git a/PR-Curitiba/pt_boxes.geojson b/data/PR/Curitiba/pt_boxes.geojson similarity index 100% rename from PR-Curitiba/pt_boxes.geojson rename to data/PR/Curitiba/pt_boxes.geojson diff --git a/PR-MarechalCandidoRondon/README.md b/data/PR/MarechalCandidoRondon/README.md similarity index 100% rename from PR-MarechalCandidoRondon/README.md rename to data/PR/MarechalCandidoRondon/README.md diff --git a/PR-MarechalCandidoRondon/municipio.geojson b/data/PR/MarechalCandidoRondon/municipio.geojson similarity index 100% rename from PR-MarechalCandidoRondon/municipio.geojson rename to data/PR/MarechalCandidoRondon/municipio.geojson diff --git a/RJ-AngraReis/municipio.geojson b/data/RJ/AngraReis/municipio.geojson similarity index 100% rename from RJ-AngraReis/municipio.geojson rename to data/RJ/AngraReis/municipio.geojson diff --git a/RR-BoaVista/municipio.geojson b/data/RR/BoaVista/municipio.geojson similarity index 100% rename from RR-BoaVista/municipio.geojson rename to data/RR/BoaVista/municipio.geojson diff --git a/SC-JaraguaSul/municipio.geojson b/data/SC/JaraguaSul/municipio.geojson similarity index 100% rename from SC-JaraguaSul/municipio.geojson rename to data/SC/JaraguaSul/municipio.geojson diff --git a/SP-MonteiroLobato/municipio.geojson b/data/SP/MonteiroLobato/municipio.geojson similarity index 100% rename from SP-MonteiroLobato/municipio.geojson rename to data/SP/MonteiroLobato/municipio.geojson diff --git a/SP-SaoPaulo/municipio.geojson b/data/SP/SaoPaulo/municipio.geojson similarity index 100% rename from SP-SaoPaulo/municipio.geojson rename to data/SP/SaoPaulo/municipio.geojson diff --git a/docs/Conventions.md b/docs/Conventions.md new file mode 100644 index 00000000..85859e29 --- /dev/null +++ b/docs/Conventions.md @@ -0,0 +1,23 @@ +# Convenções adotadas + +Neste documento são descritas as convenções adotadas no projeto. + +## Referência estável +Ver https://github.com/OSMBrasil/stable/blob/master/brazil-latest.osm.md + +## Nomes de banco de dados + +Convenções para nomes e papeis nos bancos de dados. O **Projeto OSM-Stable-BR** demanda a utilização de infraestrutura [PostgreSQL](https://en.wikipedia.org/wiki/PostgreSQL), [PostGIS](https://en.wikipedia.org/wiki/PostGIS) e [PostgREST](http://postgrest.org/en/v6.0/), onde poderá, eventualmente, conviver com outros projetos OSM-Stable (no _namespace_ adota-se o prefixo `osms`). Além disso, do ponto de vista metodológico, é requerido certo grau de encapsulamento. + +Tendo isso em vista, os nomes de bases (utilizados em `CREATE DATABASE nome_de_uma_base`) precisam ser controlados, respeitando-se as seguintes regras, finalidades e justificativas: + +Banco | Descrição | Justificativa +------|-----------|------ +**`osms0_lake`**|Repositório tipo "lake" de [preparo dos dados](https://en.wikipedia.org/wiki/Data_preparation) (ingestão, transformação e validação automática). Pode conter diversos países.|Faz papel de [Data Lake](https://en.wikipedia.org/wiki/Data_lake) para dados brutos (modelo legado) e seu preparo. +**`osms1_testing`**|Repositório rigorosamente organizado, apenas com dados selecionados. Fase *testing*, para estabilização ("quarentena") e validação humana. Requer performance e modelo dados fixado pela projeto OSM-Stable.|Faz papel "testing distribution", ou seja, permite que auditores avaliem os dados novos a tempo de fazer correções. Quando quando houver mais de um país, fará também papel de [Data Warehouse](https://en.wikipedia.org/wiki/Data_warehouse).
O código "1" auxilia na manutenção e, quando preservado, na semântica de códigos (ex. porta PostgREST `3101`). +**`osms2_stable`**|Idem base `osm2_testing`, porém correspondendo à **fase de produção**. Todos os dados foram homologados, aceitos como "estáveis e qualificados".|Requer isolamento.
O código "2" auxilia na manutenção e, quando preservado, na semântica de códigos (ex. porta PostgREST `3102`). + +Não existem padrões muito rigoros no OSM, e diversas convenções, principalmente no que se refere às tags, podem variar de país para país. As ferramentas, tais como _OSMose_ e _Osm2pgsql_ são muito flexíveis tornando sua configuração complexa. Além disso algumas delas são conservadoras, não permitindo a adoção de tecnologias "modernas". A _Osm2pgsql_ por exemplo [se recusa a dar a opção JSONb](https://github.com/openstreetmap/osm2pgsql/issues/672). + +No Projeto OSM-Stable adota-se a filosofia [*"Convention over configuration"*](https://en.wikipedia.org/wiki/Convention_over_configuration), e um modelo dados baseado em _Osm2pgsql_ e representações JSONb controladas. As funções de exportação de dados do OSM-Stable, para seu repositório *git*, também são padronizadas. Foram adotados os formatos GeoJSON para geometrias e formato CSV para dados cadastrais, com representação de ponto Geohash. + diff --git a/src/HowTo-cityGeoJSON.md b/docs/HowTo-cityGeoJSON.md similarity index 100% rename from src/HowTo-cityGeoJSON.md rename to docs/HowTo-cityGeoJSON.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 00000000..f56df259 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,8 @@ +## DOCUMENTAÇÃO +Documentação do *Projeto OSM-Brasil Stable*. Em construção. Documentos disponíveis: + +* [HowTo export City GeoJSON](HowTo-cityGeoJSON.md) +* [Justificativas para as decisões de projeto tomadas](Rationale.md) +* Convenções adotadas (ex. nomes de bases de dados e nomes de tabelas). + + diff --git a/src/README.md b/src/README.md index fcfa5c66..3e590e8f 100644 --- a/src/README.md +++ b/src/README.md @@ -6,16 +6,14 @@ tendo como principais na sua infraestrutura PostgreSQL, PostGIS, Osm2pgsql ([ref Para usar todos os scrits desta pasta, sugere-se iniciar pelo *git clone* do repositório. Os scripts bash [prepare01-1.sh](prepare01-1.sh) e [prepare01-2.sh](prepare01-2.sh) devem rodar em sequência. -HowTo-cityGeoJSON.md prepare01-1.sh prepare02-1-libPub.sql prepare02-3-lib.sql prepare03-loadDatasetsOnce.sql -README.md prepare01-2.sh prepare02-2-danger.sql prepare02-lib-StableFuncsOriginal.sql prepare04-danger.sql - O software SQL necessário é instalado a partir de [prepare02-1-libPub.sql](prepare02-1-libPub.sql), tomandose o cuidado de não rodar mais do que uma vez arquivos sufixo "danger" ou "Once", `prepare*-danger.sql`. ## Tutorial passo-a-passo Passo a passo para fazer carga ou manutenção do *git OSM-Stable-BR*. -Ver também [manuais de apoio na seção de Referências](#Referências). Para outros elementos passo-a-passo ou exemplos, -ver arquivos de HowTo: [HowTo cityGeoJSON](HowTo-cityGeoJSON.md) descreve como extrair o GeoJSON de um município. +Ver também [manuais de apoio na seção de Referências](#Referências), e índice dos [docs](../docs/README.md). +Para outros elementos passo-a-passo ou exemplos, +ver documentação de HowTo: [docs/HowTo cityGeoJSON](../docs/HowTo-cityGeoJSON.md) descreve como extrair o GeoJSON de um município. ### Preâmbulos A carga inicial do arquivo `brazil-latest.osm` desejado pode ser reproduzida utilizado os metadados e instruções