Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Copiar base de jurisdições para a primeira versão de stableGeo-BR #93

Open
ppKrauss opened this issue Mar 3, 2022 · 4 comments
Open
Assignees
Labels
dados Trabalho sobre dados development SW development

Comments

@ppKrauss
Copy link
Contributor

ppKrauss commented Mar 3, 2022

Cada jurisdição da base de dados (SQL-schema optim) deve ter seu mapa rastreável e copiado como GeoJSON
em http://git.digital-guard.org/stableGeo-BR

A referência ao package-version vem dentro do próprio GeoJSON, como link de atributo origin_url apontando para o package e seu commit (exemplo), e atributo layer com o item de layers de make_conf.yaml que lhe deu origem. O nome de arquivo segue o nome de layer, exceto pela jurisdição, por exemplo:

  • /data/SP é a pasta usual da jurisdição estadual;
  • /data/SP/jurisdiction.geojson é o mapa da jurisdição estadual;
  • /data/SP/Campinas é a pasta usual da jurisdição municipal;
  • /data/SP/Campinas/jurisdiction.geojson é o mapa da jurisdição municipal;
  • /data/SP/basin.geojson é o mapa das "jurisdições hidrográficas", bacias hidrográficas fixadas pelo Comitê de Bacias de SP.
@ppKrauss ppKrauss added dados Trabalho sobre dados development SW development labels Mar 3, 2022
@0e1
Copy link
Collaborator

0e1 commented Sep 16, 2022

A referência ao package-version vem dentro do próprio GeoJSON, como link de atributo origin_url apontando para o package e seu commit (exemplo), e atributo layer com o item de layers de make_conf.yaml que lhe deu origem.

Não ficou claro pra mim esse trecho e o motivo de jurisdiction.geojson referenciar pacote de dados no preserv-BR (ou seria o make_conf.yaml referenciando o jurisdiction.geojson?). Um exemplo de jurisdiction.geojson (sem a chave geometry) ajudaria o entendimento.


Apenas lembrete para consolidar consolidar as issues relacionadas:
#93
digital-guard/preserv-BR#123
#118
#113
#73
#36
digital-guard/preserv-CO#12

@0e1
Copy link
Collaborator

0e1 commented Jul 5, 2023

@ppKrauss forneça as permissões. Não consegui commitar os geojson das jurisdições de https://github.com/digital-guard/preserv-BR/tree/main/data/_pk0004.01#2018-10-02.

Enter passphrase for key '/home/claiton/.ssh/id_ed25519': 
ERROR: Permission to digital-guard/StableGeo-BR.git denied to 0e1.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

0e1 added a commit to digital-guard/stableGeo-BR that referenced this issue Jul 6, 2023
0e1 added a commit to digital-guard/stableGeo-BR that referenced this issue Jul 6, 2023
0e1 added a commit to digital-guard/stableGeo-BR that referenced this issue Jul 6, 2023
@0e1
Copy link
Collaborator

0e1 commented Jul 6, 2023

Código usado para importar https://github.com/digital-guard/preserv-BR/tree/main/data/_pk0004.01#2018-10-02

wget http://dl.digital-guard.org/477b9c42709f3fd7f5e44dcb38752c1d4f4ef132b2cf39fa1015a742934b42db.pbf && chmod o+rw  477b9c42709f3fd7f5e44dcb38752c1d4f4ef132b2cf39fa1015a742934b42db.pbf
osm2pgsql -E 4326 -c -d ingest_osm2018 -U postgres -H localhost --slim --hstore --extra-attributes --hstore-add-index --multi-geometry --number-processes 4 --style /usr/share/osm2pgsql/empty.style /tmp/477b9c42709f3fd7f5e44dcb38752c1d4f4ef132b2cf39fa1015a742934b42db.pbf
psql postgres://postgres@localhost/ingest_osm2018 -c "SELECT ingest.jplanet_inserts_and_drops(76::smallint,true);"

Código para gerar geojson com geometrias de 2018 e propriedades de optim_jurisdictions:

DROP MATERIALIZED VIEW ingest.vw01full_jurisdiction_geom2;
CREATE MATERIALIZED VIEW ingest.vw01full_jurisdiction_geom2 AS
    SELECT j.osm_id,j.jurisd_base_id,j.jurisd_local_id,j.parent_id,j.admin_level,j.name,j.parent_abbrev,j.abbrev,j.wikidata_id,j.lexlabel,j.isolabel_ext,j.ddd,j.housenumber_system_type,j.lex_urn,j.info,j.name_en,j.isolevel, g.way AS geom
    FROM ingest.vw01full_jurisdiction_geom j
    LEFT JOIN jplanet_osm_polygon g
    ON j.osm_id::bigint = (-1*g.osm_id)::bigint
    -- WHERE way IS NOT null LIMIT 1
;
COMMENT ON MATERIALIZED VIEW ingest.vw01full_jurisdiction_geom2
  IS 'Add geom to optim.jurisdiction.'
;
   
CREATE or replace FUNCTION ingest.jurisdiction_to_geojson(
	p_isolabel_ext text, -- e.g. 'BR-MG-BeloHorizonte'
	p_fileref      text, -- e.g.
	p_pretty_opt   int DEFAULT 3
) RETURNS text  AS $f$
BEGIN
    PERFORM write_geojsonb_features(
      format('SELECT * FROM ingest.vw01full_jurisdiction_geom2 WHERE isolabel_ext = ''%s''',p_isolabel_ext),
      format('%s/%s_jurisd.geojson',p_fileref,lower(replace(p_isolabel_ext,'-','_'))),
      't1.geom',
      'osm_id,jurisd_base_id,jurisd_local_id,parent_id,admin_level,name,abbrev,wikidata_id,lexlabel,isolabel_ext,ddd,name_en,isolevel',
      NULL,NULL,$3,5);

    RETURN (SELECT 'Publicado em ' || p_fileref::text)
  ;
END
$f$ language PLpgSQL;

SELECT ingest.jurisdiction_to_geojson(isolabel_ext,'/var/gits/_dg/StableGeo-BR/data' || (CASE WHEN isolevel::int > 1 THEN '/' || split_part(isolabel_ext,'-',2) ELSE '' END))
FROM ingest.vw01full_jurisdiction_geom2
WHERE jurisd_base_id = 76
;
DROP MATERIALIZED VIEW ingest.vw01full_jurisdiction_geom2;

Resultado da publicação em https://github.com/digital-guard/stableGeo-BR/tree/main/data.

@0e1
Copy link
Collaborator

0e1 commented Aug 30, 2023

De digital-guard/preserv-CO#12 (comment):

Para a carga de isolevel=3, tal como foi feito no Brasil, por ex. AM/jurisdictionLevel8.csv.

Requer geração e recuperação PostgreSQL automáticas por makefile, pois todos encontram-se distribuidos.

Requer makefile standalone para a gestão ser realizada pelos responsáveis locais. Pendente mostrar também que DIVIPOLA, Wikidata e OSM são fontes com respectivos make_confs realizando a contribuição... Depois usar um algoritmo de validação cruzada e consolidação. Os INSERTs e UPDATEs da consolidação também precisam constar: qualquer pessoa com essas fontes deveria ser capaz de reproduzir o processo em comandos make. Documentar em WS como (metodologia) essa reconstrução pode ser feita.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dados Trabalho sobre dados development SW development
Projects
None yet
Development

No branches or pull requests

2 participants