1 224
edições
Sem resumo de edição |
|||
(54 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
{{Dg info}} | |||
<pre> | |||
Carlos, Luiz e Igor favor refazer ou revisar esta seção. | |||
</pre> | |||
Fluxo de trabalho do Igor e do Carlos | |||
== Resumo geral e opções == | |||
[[Arquivo:DG-workflow2023-Limpo-v1.png|thumb|420px]] | |||
O fluxo de trabalho (''workflow'') completo envolve diversas etapas, que no futuro poderão vir automatizadas pelo [[Airflow]], mas por hora precisam ser realizadas por uma pessoa previamente treinada no uso do console Linux. | |||
No dia-a-dia da Digita-guard são 3 três serviços relativamente independentes, que não precisam ser realizados simultaneamente: | |||
# [[dg:Workflow#Pré-Ingestão|Pré-Ingestão]]: são tarefas de preparo dos metadados e dos arquivos de ''download'', durante ou logo após o recebimento. Seu principal resultado é o arquivo <code>make_conf.yaml</code>. | |||
# [[dg:Workflow#Ingestão|Ingestão]]: filtra e leva os dados brutos (externos da doação) para dentro do banco SQL, viabilizando todas as demais ações. Seu principal resultado são os ''dados filtrados'', no banco. | |||
# [[dg:Workflow#Publicação|Publicação]]: é a ação mais importante, entrega o produto. Os dados filtrados são preservados no ''git'' "preservCutGeo" do país (podendo ser reusados posteriormente pelo banco de dados). | |||
Demais ações são auxiliares, para manutenção da base, do ''sandbox'' ou integração com outros recursos, como o site ESRI de publicação amigável. | |||
--------- | |||
== Pré-Ingestão == | |||
=== Atualização do optim === | |||
'''Se''' [[dg:Guia de preenchimento da Planilha de Doadores|donor.csv]] (em qualquer jurisdição) ou [[dg:Guia de preenchimento da Planilha de Pacotes|donatedPack.csv]] '''forem alterados''' ou um '''novo''' ''make_conf.yaml'' for criado, é necessário atualizar as tabelas do [https://git.digital-guard.org/preserv/blob/main/src/optim-step1-ini.sql schema optim]: | |||
<syntaxhighlight lang="sh">cd /var/gits/_dg/preserv/src | |||
make load_optim_csv pg_datalake=dl05s_main</syntaxhighlight> | |||
=== Atualização de sha256 === | |||
Se o ''sha256'' de arquivos for alterado em um make_conf existente: | |||
# incrementar <code>pkversion</code>; | |||
# inserir nova entrada no arquivo donatePack.csv; | |||
# Atualizar tabelas de optim. | |||
Ver [https://git.digital-guard.org/preserv-BR/issues/68#issuecomment-1081026983 preserv-BR/issues/68] | |||
=== Gerar sha256 === | |||
Ver [[dg:Guia_do_sha256]]. | |||
=== Preservação digital === | |||
Ver [[dg:Convenções/Armazenamento_de_dados]]. | |||
=== Estrutura do make_conf === | |||
Exemplo fictício de make_conf. Reparar nas chaves: <code>comments, comment, test_evidence, standardized_fields, other_fields, other_files e to-do</code> utilizadas na geração automatizada de README.md. Informações extras ou que não se encaixam nas referidas chaves podem ser incluidas no arquivo ''attachment.md'', anexado ao final do README.md na seção ''Anexo''. Templates em [https://git.digital-guard.org/preserv/blob/main/src/maketemplates/readme_ptbr.mustache ptbr] e [https://git.digital-guard.org/preserv/blob/main/src/maketemplates/readme_es.mustache es]. | |||
<syntaxhighlight lang="yaml">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.</syntaxhighlight> | |||
=== Arquivos não compactados === | |||
Em casos que o arquivo original doado não for compactado<ref>https://github.com/digital-guard/preserv-BR/issues/149#issuecomment-1810758833</ref>: | |||
* compactar (em zip, preferencialmente), informar o hash do arquivo compactado ao doador (respondendo email); | |||
* preservar o arquivo compactado; | |||
* usar ''hash'' do arquivo compactado no make_conf. | |||
== Ingestão == | == Ingestão == | ||
Linha 28: | Linha 141: | ||
make # vai listar as opções | make # vai listar as opções | ||
make all # copia makefile inicial em todos pacotes de dados | make all # copia makefile inicial em todos pacotes de dados | ||
Linha 35: | Linha 149: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Exemplo do pk42.01 === | ==== Exemplo do pk42.01 ==== | ||
Verificando a situação no filesystem: | Verificando a situação no ''filesystem'': | ||
<syntaxhighlight lang="sh">make fix_permissions # vai solicitar sudor | <syntaxhighlight lang="sh">make fix_permissions # vai solicitar sudor | ||
cd /var/gits/_dg/preserv-BR/data/ | cd /var/gits/_dg/preserv-BR/data/ | ||
ls AC/RioBranco/_pk0042.01/ | ls AC/RioBranco/_pk0042.01/ | ||
Linha 49: | Linha 164: | ||
# ... até aqui foi só conferir se batem IDs, hashes e títulos | # ... até aqui foi só conferir se batem IDs, hashes e títulos | ||
more make_conf.yaml | more make_conf.yaml # detectamos problemas por ser antigo: falta licença, faltam file sizes, etc. | ||
# detectamos problemas por ser antigo: falta licença, faltam file sizes, etc. | |||
make me # responder senhas ENTERs etc. use pg_db=ingestXX para uma ingest diferente de commomFirst.yaml. Idem para qualquer target em preserv-BR | |||
make insert_size # inserir tamanho dos arquivos se necessário | |||
#make insert_license # inserir licença. Cuidado, experimental! | |||
# . | |||
make all_layers # para ingerir todos os layers ou make <nome_do_layer> para ingerir um layer especifico. | make all_layers # para ingerir todos os layers ou make <nome_do_layer> para ingerir um layer especifico. | ||
make all_joins # para executar todos os joins ou se existir a necessidade.</syntaxhighlight> | make all_joins # para executar todos os joins ou se existir a necessidade.</syntaxhighlight> | ||
=== Exemplo do pk0004.01 (OpenStreetMap) === | ==== Exemplo do pk0004.01 (OpenStreetMap) ==== | ||
<syntaxhighlight lang="sh">make fix_permissions # vai solicitar sudor | <syntaxhighlight lang="sh">make fix_permissions # vai solicitar sudor | ||
cd /var/gits/_dg/preserv-BR/data/_pk0004.01 | |||
ls _pk0004.01/ | ls _pk0004.01/ | ||
grep "^4," donor.csv | grep "^4," donor.csv | ||
grep ",4,1" donatedPack.csv | grep ",4,1" donatedPack.csv | ||
cd _pk0004.01/ | |||
more sha256sum.txt | more sha256sum.txt | ||
grep file make_conf.yaml | grep file make_conf.yaml | ||
# ... até aqui foi só conferir se batem IDs, hashes e títulos | # ... até aqui foi só conferir se batem IDs, hashes e títulos | ||
more make_conf.yaml | more make_conf.yaml # detectamos problemas por ser antigo: falta licença, faltam file sizes, etc. | ||
# 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. | make me # para a ingest indicada em commomFirst.yaml ou make me pg_db=ingestXX para uma ingest diferente. | ||
Linha 84: | Linha 200: | ||
make openstreetmap # executar antes da ingestão, apenas uma vez. | make openstreetmap # executar antes da ingestão, apenas uma vez. | ||
# .. responder senhas ENTERs etc. | # .. responder senhas ENTERs etc. | ||
make all_layers | make all_layers | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Publicação == | == Publicação == | ||
=== Gerar os arquivos | === Gerar os arquivos === | ||
Para gerar os arquivos que serão publicados no respectivo ''preservCutGeo'' do país: | Para gerar os arquivos que serão publicados no respectivo ''preservCutGeo'' do país: | ||
<syntaxhighlight lang="sh">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/` | <syntaxhighlight lang="sh">cd /var/gits/_dg/preserv-<caminho_do_pacote_de_dados> | ||
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/`</syntaxhighlight> | |||
ou, para gerar todos os arquivos (verificar se todos foram gerados): | |||
<syntaxhighlight lang="sh">cd /var/gits/_dg/preserv-<caminho_do_pacote_de_dados> | |||
make all_publications</syntaxhighlight> | |||
<syntaxhighlight lang="sh">make target audit-geojsons_<nome do layer> | |||
# exibe informações sobre os arquivos gerados.</syntaxhighlight> | |||
Atualmente, apenas em casos excepcionais é necessário recorrer a [https://github.com/digital-guard/preserv/blob/main/docs/pt/man-diversos.md#par%C3%A2metros-de-publica%C3%A7%C3%A3o busca de parâmetros de distribuição]. | Atualmente, apenas em casos excepcionais é necessário recorrer a [https://github.com/digital-guard/preserv/blob/main/docs/pt/man-diversos.md#par%C3%A2metros-de-publica%C3%A7%C3%A3o busca de parâmetros de distribuição]. | ||
=== Subir para o repositório === | === Subir para o repositório === | ||
Concluída a geração dos arquivos publicáveis, fazer o <code>pull</code> dos arquivos gerados na ''branch main'' do no respectivo ''preservCutGeo'' do país | Concluída a geração dos arquivos publicáveis, fazer o <code>pull</code> dos arquivos gerados na ''branch main'' do no respectivo ''preservCutGeo'' do país: | ||
<syntaxhighlight lang="sh">cd /var/gits/_dg/<repositorio CutGeo> | |||
git pull</syntaxhighlight> | |||
=== Copiar para datalake === | |||
Para copiar o conteúdo da tabela <code>ingest.donated_packcomponent</code> para <code>optim.donated_PackComponent_not_approved</code> em <code>DL05s_main</code>: | Para copiar o conteúdo da tabela <code>ingest.donated_packcomponent</code> para <code>optim.donated_PackComponent_not_approved</code> em <code>DL05s_main</code>: | ||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh">cd /var/gits/_dg/preserv/src | ||
make to_donated_packcomponent pg_db= | make to_donated_packcomponent pg_db=<nome_base_ingest> pg_datalake=dl05s_main</syntaxhighlight> | ||
=== Aprovação === | === Aprovação === | ||
Linha 122: | Linha 242: | ||
<syntaxhighlight lang="sh"># obter a variavel id | <syntaxhighlight lang="sh"># obter a variavel id | ||
psql postgres://postgres@localhost/dl05s_main <<< "SELECT * FROM optim.donated_PackComponent_not_approved;" | psql postgres://postgres@localhost/dl05s_main <<< "SELECT * FROM optim.donated_PackComponent_not_approved;" | ||
cd /var/gits/_dg/preserv/src | |||
make approved_donated_packcomponent id=ZZ pg_datalake=dl05s_main</syntaxhighlight> | make approved_donated_packcomponent id=ZZ pg_datalake=dl05s_main</syntaxhighlight> | ||
Comando para gerar uma lista de comandos, escolher os que precisar por meio do id: | |||
<syntaxhighlight lang="sh">psql postgres://postgres@localhost/dl05s_main -qtAX -c "SELECT packvers_id, 'make approved_donated_packcomponent pg_datalake=dl05s_main id=' || id FROM optim.donated_packcomponent_not_approved ORDER BY 1;"</syntaxhighlight> | |||
Escolhido o que será aprovado executar, por exemplo: | |||
<syntaxhighlight lang="sh">cd /var/gits/_dg/preserv/src | |||
make approved_donated_packcomponent pg_datalake=dl05s_main id=2</syntaxhighlight> | |||
Nesse momento, os novos dados fazem parte das estatísticas disponibilizadas em API. Também, listas disponibilizadas no site addressforall e em documentações podem ser atualizadas. | Nesse momento, os novos dados fazem parte das estatísticas disponibilizadas em API. Também, listas disponibilizadas no site addressforall e em documentações podem ser atualizadas. | ||
== Reprodutibilidade == | |||
=== Como gerar === | |||
<syntaxhighlight lang="sh">cd /var/gits/_dg/preserv-<caminho_do_pacote_de_dados> | |||
make me_reproducibility # gerar/atualizar script reproducibility.sh</syntaxhighlight> | |||
== Filtrados == | |||
São os arquivos utilizados para publicação no provedor de visualizaçao de dados. | |||
=== Como gerar === | |||
Para gerar Shapefile ou CSV dos dados ingeridos: | |||
<syntaxhighlight lang="sh">cd /var/gits/_dg/preserv-<caminho_do_pacote_de_dados> | |||
make all_filtered | |||
# exemplo de output: | |||
/var/gits/_dg/preserv-BR/data/RS/NovoHamburgo/_pk0063.01 | |||
/tmp /var/gits/_dg/preserv-BR/data/RS/NovoHamburgo/_pk0063.01 | |||
Generating ziped shapefile... | |||
Initializing... | |||
Done (postgis major version: 3). | |||
Output shape: Polygon | |||
Dumping: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | |||
... | |||
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX [130936 rows]. | |||
adding: a4a_br_rs_novohamburgo_building_7600006301101/ (stored 0%) | |||
adding: a4a_br_rs_novohamburgo_building_7600006301101/a4a_br_rs_novohamburgo_building_7600006301101.shx (deflated 58%) | |||
adding: a4a_br_rs_novohamburgo_building_7600006301101/a4a_br_rs_novohamburgo_building_7600006301101.dbf (deflated 87%) | |||
adding: a4a_br_rs_novohamburgo_building_7600006301101/a4a_br_rs_novohamburgo_building_7600006301101.prj (deflated 40%) | |||
adding: a4a_br_rs_novohamburgo_building_7600006301101/a4a_br_rs_novohamburgo_building_7600006301101.cpg (stored 0%) | |||
adding: a4a_br_rs_novohamburgo_building_7600006301101/a4a_br_rs_novohamburgo_building_7600006301101.shp (deflated 59%) | |||
Upload and get uri cloud... | |||
Insert infos in optim.donated_PackComponent_cloudControl... | |||
File available at: http://dl.digital-guard.org/out/a4a_br_rs_novohamburgo_building_7600006301101.zip | |||
File available at: https://addressforall-my.sharepoint.com/personal/operacao_addressforall_org/_layouts/15/download.aspx?share=EaJb5nvzNblLthafTgulxToBYNG-bvSbv3Q7oPNiUGwYnw | |||
File available at: /tmp/a4a_br_rs_novohamburgo_building_7600006301101.zip | |||
End.</syntaxhighlight> | |||
=== Visualização === | |||
Ver a seção [[dg:Workflow#Visualização_de_filtrados]]. | |||
== | == Gerar README == | ||
=== Como gerar === | |||
Para gerar README.md: | |||
< | <syntaxhighlight lang="sh">cd /var/gits/_dg/preserv-BR/src | ||
make all | make all | ||
cd /var/gits/_dg/preserv-BR/data/AC/RioBranco/_pk0042.01 | |||
make | make readme pg_db=ingest99 | ||
</syntaxhighlight> | |||
=== 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 | |||
== Atualizar Listas e site == | |||
=== Downloads por jurisdição === | |||
==== MediaWiki ==== | |||
Para atualizar a página [[dg:Listagem_dos_downloads_por_jurisdi%C3%A7%C3%A3o]] gerar a lista em formato mediawiki com o comando | |||
<syntaxhighlight lang="sh">psql postgres://postgres@localhost/dl05s_main -qtAX -c "SELECT optim.generate_list('/tmp/pg_io/list_jurisd_without_filtered_mediawiki.txt','/var/gits/_dg/preserv/src/list_jurisd_without_filtered_mediawiki.mustache');"</syntaxhighlight> | |||
e copiar e colar o conteúdo do arquivo '''/tmp/pg_io/list_jurisd_without_filtered_mediawiki.txt''' na referida página. | |||
Notar que '''não é exibido''' os arquivos filtrados na lista. | |||
Caso seja necessário '''exibir''' os filtrados usar o comando | |||
<syntaxhighlight lang="sh">psql postgres://postgres@localhost/dl05s_main -qtAX -c "SELECT optim.generate_list('/tmp/pg_io/list_jurisd_mediawiki.txt','/var/gits/_dg/preserv/src/list_jurisd_mediawiki.mustache');"</syntaxhighlight> | |||
e então utilizar o conteúdo do arquivo '''/tmp/pg_io/list_jurisd_mediawiki.txt'''. | |||
Consulte [https://github.com/AddressForAll/site-v2/blob/main/README.md README.md] para entender como gerar o site. | |||
==== Markdown ==== | |||
Para atualizar a seção http://addressforall.org/en/downloads atualizar o arquivo https://github.com/AddressForAll/site-v2/blob/main/content/list_downloads.md com o conteúdo do arquivo gerado pelo comando a seguir no formato markdown | |||
<syntaxhighlight lang="sh">psql postgres://postgres@localhost/dl05s_main -qtAX -c "SELECT optim.generate_list('/tmp/pg_io/list_jurisd_with_filtered_markdown.txt','/var/gits/_dg/preserv/src/list_jurisd.mustache');"</syntaxhighlight> | |||
Notar que '''são exibidos''' os arquivos filtrados na lista. | |||
Caso seja necessário '''não exibir''' os filtrados usar o comando | |||
<syntaxhighlight lang="sh">psql postgres://postgres@localhost/dl05s_main -qtAX -c "SELECT optim.generate_list('/tmp/pg_io/list_jurisd_with_filtered_markdown.txt','/var/gits/_dg/preserv/src/list_jurisd_without_filtered.mustache');"</syntaxhighlight> | |||
=== Downloads por hash === | |||
==== MediaWiki ==== | |||
Para atualizar a página [[dg:Listagem_dos_downloads_por_hash]] gerar a lista em formato mediawiki com o comando | |||
<syntaxhighlight lang="sh">psql postgres://postgres@localhost/dl05s_main -qtAX -c "SELECT optim.generate_list_hash('/tmp/pg_io/list_hash_mediawiki.txt','/var/gits/_dg/preserv/src/list_hash_wiki.mustache');"</syntaxhighlight> | |||
e copiar e colocar o conteúdo na referida página. | |||
==== Markdown ==== | |||
Se for necessário gerar a lista em formato Markdown, usar o comando | |||
= | <syntaxhighlight lang="sh">psql postgres://postgres@localhost/dl05s_main -qtAX -c "SELECT optim.generate_list_hash('/tmp/pg_io/list_hash_markdown.txt');"</syntaxhighlight> | ||
=== Páginas viz === | |||
Para atualizar o conteúdo de http://addressforall.org/viz selecionar o comando referente ao pacote de dados desejado da lista de comandos gerada por | |||
<syntaxhighlight lang="sh">psql postgres://postgres@localhost/dl05s_main -qtAX -c "SELECT 'make generate_pages pg_datalake=dl05s_main folder=/tmp/pg_io/genpages isolabel=' || isolabel_ext || ' pk=' || pack_number FROM optim.vw03publication ;"</syntaxhighlight> | |||
Por exemplo, para gerar em ''/tmp/pg_io/genpages'' as páginas referentes ao ''pk=_pk0063.01'' do ''isolabel=BR-RS-NovoHamburgo'' utilizando os dados presentes em <code>optim.donated_PackComponent</code> do ''pg_datalake=dl05s_main'' executar: | |||
<syntaxhighlight lang="sh"> | |||
cd /var/gits/_dg/preserv/src | |||
make generate_pages pg_datalake=dl05s_main folder=/tmp/pg_io/genpages isolabel=BR-RS-NovoHamburgo pk=_pk0063.01</syntaxhighlight> | |||
Notar que é gerado um ''index.html'' atualizado, contendo lista não ordenada com os hiperlinks para todos pacotes publicados. | |||
Depois de gerar as páginas, movê-las para ''/var/www/addressforall.org/teste2'': | |||
<syntaxhighlight lang="sh">mv /tmp/pg_io/genpages/*.html /var/www/addressforall.org/viz | |||
rm -rf /tmp/pg_io/genpages</syntaxhighlight> | |||
Por fim, para atualizar a seção http://addressforall.org/en/visualization atualizar o arquivo https://github.com/AddressForAll/site-v2/blob/main/content/list_visualization.md com o conteúdo do arquivo ''/tmp/pg_io/index_teste2.md'' gerado pelo comando a seguir, já no formato markdown (conteúdo equivalente ao ''index.html'' gerado anteriormente) | |||
<syntaxhighlight lang="sh">psql postgres://postgres@localhost/dl05s_main -qtAX -c "SELECT optim.publicating_index_pagemd('/tmp/pg_io/index_teste2.md','/var/gits/_dg/preservDataViz/src/preservCutGeo/index_page_markdown.mustache');"</syntaxhighlight> | |||
Consulte [https://github.com/AddressForAll/site-v2/blob/main/README.md README.md] para entender como gerar o site. | |||
== Clean sandbox == | |||
O processo de ingestão utiliza subpastas no caminho informado em <code>sandbox</code>, cujo valor default é informado no ''commomFirst.yaml''. Antes na execução da ingestão de cada layer, o target <code>makedirs</code> cria ou limpa a subpasta utilizada pelo layer. Após a execução, o target <code>clean-sandbox</code> remove a subpasta, evitando que arquivos não mais necessários permanecem no sistema de arquivos. | |||
<syntaxhighlight lang="sh">cd /var/gits/_dg/preserv-<caminho_do_pacote_de_dados> | |||
make clean_sandbox</syntaxhighlight> | |||
== Visualização de filtrados == | |||
Os dados gerados em [[dg:Workflow#Filtrados]] são publicados em provedor externo para visualização. | |||
=== Publicar layers === | |||
Descrever aqui o processo de publicação no provedor externo para visualização de camadas de dados. | |||
==== Atualizar redirecionador ==== | |||
Após publicar no provedor externo, ver [[a4a:Conven%C3%A7%C3%B5es/Visualiza%C3%A7%C3%A3o_de_dados]] para atualizar o redirecionador. | |||
== Diagrama == | |||
https://lucid.app/lucidchart/03536d69-dd73-4f38-92ec-4d32542b29c0/edit?invitationId=inv_9b03ed68-54ce-4d0f-ad77-da1eff87ed43&page=0_0# | |||
[[Arquivo:DigitalGuardWorkflow.png|thumb|420px|Workflow da DG.]] | |||
=== | == Outros == | ||
=== Inserir size no make_conf === | |||
Para inserir <code>size</code> em <code>files</code> de um make_conf a qualquer tempo: | |||
< | <syntaxhighlight lang="sh">cd /var/gits/_dg/preserv-BR/src | ||
make all | make all | ||
cd /var/gits/_dg/preserv-BR/data/AC/RioBranco/_pk0042.01 | |||
make | make me | ||
make wget_files orig=/tmp/pg_io/tmpfolder | |||
make insert_size orig=/tmp/pg_io/tmpfolder | |||
=== | rm -rf /tmp/pg_io/tmpfolder</syntaxhighlight> | ||
=== Inserir Licenças no make_conf === | |||
Executar o target <code>make insert_license</code> utiliza os dados de [http://git.digital-guard.org/licenses digital-guard/licenses] para gerar no respectivo ''make_conf.yaml'' o seguinte, por exemplo: | |||
<pre>license_evidences: | |||
definition: [ODbL-1.0, odbl, http://www.opendefinition.org/licenses/odc-odbl]</pre> | |||
onde <code>definition:</code> equivale a <code>[name, family, url]</code> conforme discutido em https://github.com/digital-guard/preserv/issues/32 | |||
Manualmente, inserir <code>file</code> e <code>uri_evidency</code>, conforme discutido em https://github.com/digital-guard/preserv/issues/19: | |||
<pre> file: f0cbf591bda09880dc27cdbfcf4ee45189eb1e2c3742800c066f0b5576d81744.zip | |||
uri_evidency: http://web.archive.org/web/20211012105347/https://www.openstreetmap.org/copyright</pre> | |||
onde <code>file</code> indica o ''sha256'' do arquivo compactado contendo as evidencias e <code>uri_evidency</code> indica o ''sha256.eml'' ou ''archive.org/url'' como discutido aqui https://github.com/digital-guard/preserv/issues/32#issuecomment-998347112. | |||
Resultando em: | |||
<pre>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</pre> | |||
Exemplo utilizado em https://github.com/digital-guard/preserv-CO/blob/main/data/_pk0004.01/make_conf.yaml | |||
== No rule to make target == | === No rule to make target === | ||
Ao executar <code>make layer</code> ou <code>make all_layers</code>, caso encontre um erro do tipo | Ao executar <code>make layer</code> ou <code>make all_layers</code>, caso encontre um erro do tipo | ||
Linha 269: | Linha 472: | ||
Observação: atualmente, [https://github.com/digital-guard/preserv/blob/main/src/maketemplates/common002_layerHeader.mustache#L18 common002_layerHeader.mustache] interage com o usuário solicitando a confirmação de download de dl.digital-guard.org ou o fornecimento do valor correto de orig. Caso o download seja realizado, o arquivo estará localizado na respectiva sandbox do layer. Notar que se <code>nointeraction=y</code> não haverá interação com o usuário e o download será feito. | Observação: atualmente, [https://github.com/digital-guard/preserv/blob/main/src/maketemplates/common002_layerHeader.mustache#L18 common002_layerHeader.mustache] interage com o usuário solicitando a confirmação de download de dl.digital-guard.org ou o fornecimento do valor correto de orig. Caso o download seja realizado, o arquivo estará localizado na respectiva sandbox do layer. Notar que se <code>nointeraction=y</code> não haverá interação com o usuário e o download será feito. | ||
= | === make com nointeraction === | ||
== make | |||
Para rodar um ''target'' sem serem solicitadas confirmações do usuário, utilizar <code>nointeraction=y</code>. | Para rodar um ''target'' sem serem solicitadas confirmações do usuário, utilizar <code>nointeraction=y</code>. | ||
Linha 282: | Linha 481: | ||
== | === Workflow da edição de planilhas === | ||
Os arquivos CSV do Github infelizmente não são amigavelmente editáveis. Algumas planilhas todavia são ainda dependentes da interface humana nas primeiras etapas do ''workflow'' do trabalho, ao dar entrada em um novo ''donor'' ou ''donatedPack''. Este é o passo-a-passo a ser seguido: | |||
# [https://docs.google.com/spreadsheets/d/1-FQjjhHjJnAOxSWYEdFU_RePxAJDsJCnLviOyDo3QMM/edit#gid=815577163 Editar a planilha colaborativa amigável]; | |||
make | # Baixar e normalizar com <code>make getEdits</code> ou os comandos <code>curl</code> do ''target'' (ver exemplo) | ||
# fazer <code>git diff -wb</code> para conferir. | |||
# se tudo ok fazer <code>git pull</code>, <code>git add</code>, commit e push. | |||
== | ==== Exemplo ==== | ||
<syntaxhighlight lang="sh">cd preserv-BR/data/ | |||
curl "https://docs.google.com/spreadsheets/d/1-FQjjhHjJnAOxSWYEdFU_RePxAJDsJCnLviOyDo3QMM/gviz/tq?tqx=out:csv&gid=815577163" \ | |||
| csvformat > donor.csv | |||
git diff -wb donor.csv | |||
curl "https://docs.google.com/spreadsheets/d/1-FQjjhHjJnAOxSWYEdFU_RePxAJDsJCnLviOyDo3QMM/gviz/tq?tqx=out:csv&gid=42455849" \ | |||
| csvformat > donatedPack.csv | |||
git diff -wb donatedPack.csv</syntaxhighlight> | |||
A solução CSVkit requer instalar, <code>sudo pip install csvkit</code>, que instala também o comando <code>csvformat</code>. | |||
PS1: conforme [https://superuser.com/a/1692737/276588 discutido] API do Gogle está baixando com um monte de aspas, diferente do download direto da interface. Uma solução seria baixar manualmente... O melhor é normalizar. No futuro o comando <code>frictionless</code> talvez incorpore a normalização. Sugiro incluir normalização UTF8 que usamos no PostgreSQL. | |||
PS2: o google/spreadsheets também oferece opção de sql_query na API, o que permite descartar os campos de cache da planilha donatedPack... [https://developers.google.com/chart/interactive/docs/dev/implementing_data_source#request-format ver aqui]. | |||
== Referências == | |||
[[Categoria:Digital-guard]] | [[Categoria:Digital-guard]] |
edições