dg:Workflow
Ingestão
- Devido à hardcoding, qualquer base
ingest
depende dadl05s_main
. - Vamos usar apenas a base
ingest1
, e não adulterar mais nada no servidor. - É possível trocar
ingest1
por outra com os devidos cuidados e parametrizações.
Preparo do ambiente e da base
cd /var/gits/_a4a/pg_pubLib-v1
git pull
cd /var/gits/_dg/preserv/src
git pull
make fix_permissions # vai solicitar sudor
make # vai listar as opções
make ini_ingest pg_db=ingest1 # cria base ingest1
Preparo do processo de ingestão
make fix_permissions # vai solicitar sudor
cd /var/gits/_dg/preserv-BR/src
git pull
make # vai listar as opções
make all # copia makefile inicial em todos pacotes de dados
cd /var/gits/_dg/preserv-BR/data/
ls # vamos seguir a ordem alfabética
Exemplo do pk42.01
Verificando a situação no filesystem:
make fix_permissions # vai solicitar sudor
cd /var/gits/_dg/preserv-BR/data/
ls AC/RioBranco/_pk0042.01/
grep "^42" donor.csv
grep ",42,1" donatedPack.csv
pushd AC/RioBranco/_pk0042.01/
more sha256sum.txt
grep file make_conf.yaml
# ... até aqui foi só conferir se batem IDs, hashes e títulos
more make_conf.yaml
# detectamos problemas por ser antigo: falta licença, faltam file sizes, etc.
make me # para a ingest indicada em commomFirst.yaml ou make me pg_db=ingestXX para uma ingest diferente.
# Idem para qualquer target em preserv-BR
# .. responder senhas ENTERs etc.
make all_layers
make all_joins # se existir a necessidade.
Exemplo do pk0004.01 (OpenStreetMap)
make fix_permissions # vai solicitar sudor
pushd /var/gits/_dg/preserv-BR/data/_pk0004.01
ls _pk0004.01/
grep "^4," donor.csv
grep ",4,1" donatedPack.csv
pushd _pk0004.01/
more sha256sum.txt
grep file make_conf.yaml
# ... até aqui foi só conferir se batem IDs, hashes e títulos
more make_conf.yaml
# detectamos problemas por ser antigo: falta licença, faltam file sizes, etc.
make me # para a ingest indicada em commomFirst.yaml ou make me pg_db=ingestXX para uma ingest diferente.
# caso falte file sizes:
make wget_files orig=/tmp/pg_io/tmpfolder
make insert_size orig=/tmp/pg_io/tmpfolder
rm -rf /tmp/pg_io/tmpfolder
make openstreetmap # executar antes da ingestão, apenas uma vez.
# .. responder senhas ENTERs etc.
make all_layers
Publicação
Gerar os arquivos publicáveis
Para gerar os arquivos que serão publicados no respectivo preservCutGeo do país:
make publicating_geojsons_<nome_do_layer> # exemplo: make publicating_geojsons_via` gera os arquivos em `/var/gits/_dg/preservCutGeo-BR2021/data/AC/RioBranco/_pk0042.01/via/`
make target audit-geojsons_<nome do layer> # exibe informações sobre os arquivos gerados.
Atualmente, apenas em casos excepcionais é necessário recorrer a busca de parametros de distribuição.
Subir para o repositório
Concluída a geração dos arquivos publicavéis, fazer o pull
dos arquivos gerados na branch main do no respectivo preservCutGeo do país, para aguardar aprovação.
Copiar informações para DL05s_main
A execução dos targets de ingestão e publicação geram dados na tabela ingest.donated_packcomponent
da base de dados ingest
que foi utilizada no processo. A base ingest
é transitória. Findo os passos anteriores, os dados gerados devem ser movidos para a base de dados permanente DL05s_main
.
Para copiar o conteúdo da tabela ingest.donated_packcomponent
para optim.donated_PackComponent_not_approved
em DL05s_main
:
pushd /var/gits/_dg/preserv/src
make to_donated_packcomponent pg_db=ingestXX pg_datalake=dl05s_main
Aprovação
A aprovação se dá pela avaliação dos arquivos e movendo os dados de optim.donated_PackComponent_not_approved
para optim.donated_PackComponent
em DL05s_main
:
# obter a variavel id
psql postgres://postgres@localhost/dl05s_main <<< "SELECT * FROM optim.donated_PackComponent_not_approved;"
pushd /var/gits/_dg/preserv/src
make approved_donated_packcomponent id=ZZ pg_datalake=dl05s_main
Nesse momento, os novos dados fazem parte das estátisticas disponibilizadas em API. Também, listas disponibilizadas no site addressforall e em documentações podem ser atualizadas.
Licenças
Executar o target make insert_license
utiliza os dados de digital-guard/licenses para gerar no respectivo make_conf.yaml o seguinte, por exemplo:
license_evidences: definition: [ODbL-1.0, odbl, http://www.opendefinition.org/licenses/odc-odbl]
onde definition:
equivale a [name, family, url]
conforme discutido em https://github.com/digital-guard/preserv/issues/32
Manualmente, inserir file
e uri_evidency
, conforme discutido em https://github.com/digital-guard/preserv/issues/19:
file: f0cbf591bda09880dc27cdbfcf4ee45189eb1e2c3742800c066f0b5576d81744.zip uri_evidency: http://web.archive.org/web/20211012105347/https://www.openstreetmap.org/copyright
onde file
indica o sha256 do arquivo compactado contendo as evidencias e uri_evidency
indica o sha256.eml ou archive.org/url como discutido aqui https://github.com/digital-guard/preserv/issues/32#issuecomment-998347112.
Resultando em:
license_evidences: definition: [ODbL-1.0, odbl, http://www.opendefinition.org/licenses/odc-odbl] file: f0cbf591bda09880dc27cdbfcf4ee45189eb1e2c3742800c066f0b5576d81744.zip uri_evidency: http://web.archive.org/web/20211012105347/https://www.openstreetmap.org/copyright
Exemplo utilizado em https://github.com/digital-guard/preserv-CO/blob/main/data/_pk0004.01/make_conf.yaml
Gerar README.md
Template em ptbr: https://github.com/digital-guard/preserv/blob/main/src/maketemplates/readme_ptbr.mustache
Template em es: https://github.com/digital-guard/preserv/blob/main/src/maketemplates/readme_es.mustache
A seguir exemplo fictício de make_conf.yaml para gerar um README.md do pacote. Reparar nas chaves: comments, comment, test_evidence, standardized_fields, other_fields, other_files e to-do
.
Informações extras ou que não se encaixam nas referidas chaves devem ser incluídas num arquivo attachment.md, que terá seu conteúdo anexado ao final do README.md numa seção chamada anexo.
pack_id: 81.1
pkversion: 001
schemaId_input:
schemaId_template:
codec:descr_encode: srid=31983
files:
-
p: 1
file: d9cddc63f7782d250fc80f0572b9fb884ee7ec1911e19deea4381a4ad5d0a172.zip
name: Bairros
comments: Comentários sobre o arquivo, se houver.
size: 1234
layers:
geoaddress:
subtype: ext
method: shp2sql
file: 1
sql_select: ['gid', 'numnovo as hnum', 'cod_log', 'geom']
orig_filename: pg_renumeracoes
comments: Comentários referente ao layer, se houver.
test_evidence: endereço da imagem de evidencia do layer.
# dados relevantes, padronizados
standardized_fields:
-
name: nome do campo ou combinação de campos
standard: 'nome padronizado, por exemplo: hnum'
comment: comentários sobre o campo, se houver.
# dados relevantes, NÃO padronizados, se houver
other_fields:
-
name: nome do campo ou combinação de campos
comment: comentários sobre o campo, se houver.
comments: Comentários gerais sobre os dados, sobre o pacote, etc, se houver.
test_evidence: endereço da imagem de evidencia de todos os dados.
# outros arquivos que podem ser úteis
other_files:
-
p: 2
file: pg_div_municipio.zip
name: pg_div_municipio
format: shp
comment: Arquivo com a divisa territorial de guarulhos e vizinhos.
# Lista de tarefas
to-do:
- Tarefa 1.
Como gerar
Exemplo de geração de README.md:
pushd /var/gits/_dg/preserv-BR/src make all pushd /var/gits/_dg/preserv-BR/data/AC/RioBranco/_pk0042.01 make readme pg_db=ingest99 popd popd
Exemplos:
- https://github.com/digital-guard/preserv-BR/tree/main/data/SP/SaoPaulo/_pk0033.01
- https://github.com/digital-guard/preserv-BR/tree/main/data/AC/RioBranco/_pk0042.01
- https://github.com/digital-guard/preserv-BR/tree/main/data/SP/Atibaia/_pk0021.01
- https://github.com/digital-guard/preserv-BR/tree/main/data/ES/CachoeiroItapemirim/_pk0091.01