digital-guard / preserv-BR

Digital Preservation of Brazilian metadata of donated maps.
http://git.digital-guard.org/preserv-BR
3 stars 1 forks source link

Ingestão Cachoeiro de Itapemirim - ES #122

Closed luisfelipebr closed 2 years ago

luisfelipebr commented 2 years ago

make_conf disponível aqui.

Varias tarefas sao necessarias:

  1. Implementar custom_crs.
  2. Apenas uma observacao: o arquivo de lotes possui numero inicial e final, mas eles sao ficticios. Quando testei vi que eles nao batem com os numeros em campo. Como ainda estamos solicitando uma tabela com os enderecos por IPTU (geoaddress), coloquei os numeros inicial e final como campo adicional.
  3. Necessario adicionar sql_view para construir nome dos logradouros urbanos
  4. Logradouros rurais em arquivo separado, sem nome do logradouro. Necessario fazer join entre os arquivos via.

@crebollobr @0e1

0e1 commented 2 years ago
  1. Implementar custom_crs.

Para essas situações temos a chave srid_proj, desenvolvida a partir do caso de dados de Porto Alegre/RS.

Ver exemplo em https://github.com/digital-guard/preserv-BR/blob/main/data/RS/PortoAlegre/_pk0018.01/make_conf.yaml#L6, ressalto o trecho importante:

pack_id: 18.1
pkversion: 001
schemaId_input:    ref027a
schemaId_template: ref027a
srid_proj: +proj=tmerc +lat_0=0 +lon_0=-51 +k=0.999995 +x_0=300000 +y_0=5000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

Você consegue reescrever custom_crs na sintaxe usada no exemplo de Porto Alegre?

2. Apenas uma observacao: o arquivo de lotes possui numero inicial e final, mas eles sao ficticios. Quando testei vi que eles nao batem com os numeros em campo. Como ainda estamos solicitando uma tabela com os enderecos por IPTU (geoaddress), coloquei os numeros inicial e final como campo adicional.

Quando os dados chegarem, eles podem ser usados para join com parcel e geoaddress, complementando os dois layers. Claro, se for possível. Sugiro trocar standard: por comments: nesse campo adicional para descrever o dado.

3. Necessario adicionar sql_view para construir nome dos logradouros urbanos

sql_view: |-
     SELECT gid, tip_logr || ' ' || textstring AS via_name, geometry AS geom FROM $(tabname)

4. Logradouros rurais em arquivo separado, sem nome do logradouro. Necessario fazer join entre os arquivos via.

Essa é uma situação de union ao ínves de join.

Temos algumas possibilidades para union discutidas/implementadas em https://github.com/digital-guard/preserv/issues/101#issuecomment-1095404904. No caso em questão, temos dois arquivos (sha256 diferentes) para um mesmo layer. Isso não é uma das possibilidades elencadas no link anterior. Então, as possibilidades são: a. juntar os dois arquivos em um único sha256, para usar a estratégia de union usando array. Porém, conforme o comentário https://github.com/digital-guard/preserv-BR/issues/90#issuecomment-1133213325 essa possibilidade está disponível apenas se usar sql_select. Não é o caso pois sql_view é usada, conforme item anterior. b. fazer pacotes diferentes com o mesmo fornecedor, conforme comentário https://github.com/digital-guard/preserv-BR/issues/90#issuecomment-1159543603 feito em situação semelhante. Então, o caminho é usar b.

luisfelipebr commented 2 years ago

@0e1 agora apenas nsvia e via estão dando erro. No caso de nsvia, pode ser por conta da definição de um SRID diferente. No caso de via, preciso testar 'Latin1', mas não sei como adicionar. Você pode me ajudar nessas questões?

nsvia

Screen Shot 2022-09-21 at 11 22 01

via

Screen Shot 2022-09-21 at 11 23 56
luisfelipebr commented 2 years ago

@0e1 consegui adicionar o "Latin1" em via. Só nsvia continua dando erro

0e1 commented 2 years ago

Acredito ter arrumado o problema relacionado a nsvia. Eu testei e funcionou. Teste também, porém você precisa recriar a base ingest que você está utilizando.

Quando usamos srid_proj, é feito um insert em spatial_ref_sys. O problema estava quando o srid era sobrescrito na chave codec do layer. O que acontecia era que o srid informado no layer estava sendo inserido em spatial_ref_sys, um erro. Corrigi.

@0e1 consegui adicionar o "Latin1" em via. Só nsvia continua dando erro

Testei e funcionou.

Notar que codec: SHP~Latin1;srid=31984 é equivalente a codec: SHP;srid=31984 pois a variante (Latin1) é ignorada quando existir sobrescrição (;srid=31984). Mais infos sobre codec em https://github.com/digital-guard/preserv/issues/31#issuecomment-996061179.

Enfim, me parece tudo funcionando. Se julgar que não tem mais problemas pode encerrar a issue.