digital-guard / preserv-CO

Preservación digital de las principales fuentes de la base de datos AddressForAll-Colombia.
http://git.digital-guard.org/preserv-co
0 stars 0 forks source link

Corrir yaml para Ingestão de layers com rural e urbano, _pk003 #1

Closed 0e1 closed 2 years ago

0e1 commented 2 years ago

O código utilizado para a ingestão SaoPaulo de https://github.com/digital-guard/preserv-BR/blob/main/src/maketemplates/common003_shp2pgsql_multiplefiles_zipped.mustache serve para a ingestão dos layers com separação em urbano e rural de pk003.

Para tanto:

  1. layers com o sufixo _rural devem ser removidos, uma vez que não são layers válidos.
  2. Os arquivos urbanos e rurais devem ser compactados separadamente e depois em conjunto e seguir a estrutura e nomenclatura, utilizando como exemplo o layer geoaddress:
├── NOMENCLATURA_DOMICILIARIA_R
│   ├── NOMENCLATURA_DOMICILIARIA_R.dbf
│   ├── NOMENCLATURA_DOMICILIARIA_R.prj
│   ├── NOMENCLATURA_DOMICILIARIA_R.shp
│   └── NOMENCLATURA_DOMICILIARIA_R.shx
├── NOMENCLATURA_DOMICILIARIA_U
│   ├── NOMENCLATURA_DOMICILIARIA_U.dbf
│   ├── NOMENCLATURA_DOMICILIARIA_U.prj
│   ├── NOMENCLATURA_DOMICILIARIA_U.shp
│   └── NOMENCLATURA_DOMICILIARIA_U.shx

Para compactar: zip -r ALGUMNOME.zip NOMENCLATURA_DOMICILIARIA_U.zip NOMENCLATURA_DOMICILIARIA_R.zip

  1. O yaml para o layer deve utilizar orig_subfilename que é a parte comum dos nomes dos arquivos:
  geoaddress:
    subtype: full
    method: shp2sql
    p: 1a
    file: 1
    sql_select: ['gid', 'texto AS house_number',  'geom']
    orig_filename: NOMENCLATURA_DOMICILIARIA
    orig_subfilename: NOMENCLATURA_DOMICILIARIA 

O commit https://github.com/digital-guard/preserv-CO/commit/bece842a00f7a9b5f03d91e15977166410f17a5f suprime os layers com sufixo _rural e cria um template para ingestão dos dados. Restando apenas alterar a nomenclatura e forma de compactar os arquivos dos layers com mais de um arquivo por layer e ajustar o sha256 no yaml de configuração.

Teste de ingestão do layer geoaddress:

a4a@ubuntu:/opt/gits/_dg/preserv-CO/data/IGAC/_pk003$ make geoaddress

------------------------------------------
------ Layer tipo geoaddress_full  ------
-- Incluindo dados do arquivo-1 do package-3_001 na base ingest1 --
 Nome-hash do arquivo-1: 48281334c4de8d73e6a7856cebfd5bce40a98cc6a64de73fa6a73618380ecf72.zip
 Tabela do layer geoaddress sem nome de rua, só com numero predial: pk3_001_p1_geoaddress
 Sub-arquivos do arquivo-1 com o conteúdo alvo: NOMENCLATURA_DOMICILIARIA.*
 Tema dos sub-arquivos: Nomenclatura Domiciliaria urbano e rural
Run with tmux and sudo! (DANGER: seems not idempotent on psql)
a4a
Above user is root? If not, you have permissions for all paths?
 [press ENTER for yes else ^C]
psql postgres://postgres@localhost/ingest1 -c "DROP TABLE IF EXISTS pk3_001_p1_geoaddress CASCADE"
NOTICE:  table "pk3_001_p1_geoaddress" does not exist, skipping
DROP TABLE
Extracting ....
cd /tmp/sandbox/_pk3_001;  7z  x -y  /var/www/preserv.addressforall.org/download/48281334c4de8d73e6a7856cebfd5bce40a98cc6a64de73fa6a73618380ecf72.zip "NOMENCLATURA_DOMICILIARIA*" ; chmod -R a+rx . > /dev/null

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel Xeon E312xx (Sandy Bridge) (206A1),ASM)

Scanning the drive for archives:
1 file, 308068362 bytes (294 MiB)                     

Extracting archive: /var/www/preserv.addressforall.org/download/48281334c4de8d73e6a7856cebfd5bce40a98cc6a64de73fa6a73618380ecf72.zip
--
Path = /var/www/preserv.addressforall.org/download/48281334c4de8d73e6a7856cebfd5bce40a98cc6a64de73fa6a73618380ecf72.zip
Type = zip
Physical Size = 308068362

Everything is Ok                      

Files: 2
Size:       308067960
Compressed: 308068362
Extraindo ...
cd /tmp/sandbox/_pk3_001;  7z x -y "NOMENCLATURA_DOMICILIARIA*" ; chmod -R a+rx . > /dev/null

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel Xeon E312xx (Sandy Bridge) (206A1),ASM)

Scanning the drive for archives:
2 files, 308067960 bytes (294 MiB)

Extracting archive: NOMENCLATURA_DOMICILIARIA_R.zip
--
Path = NOMENCLATURA_DOMICILIARIA_R.zip
Type = zip
Physical Size = 7649388

Everything is Ok                                                    

Extracting archive: NOMENCLATURA_DOMICILIARIA_U.zip
--
Path = NOMENCLATURA_DOMICILIARIA_U.zip
Type = zip
Physical Size = 300418572

Everything is Ok                                                    

Archives: 2
OK archives: 2
Folders: 2
Files: 16
Size:       2265680406
Compressed: 308067960
Executando shp2pgsql ...
cd /tmp/sandbox/_pk3_001;  find /tmp/sandbox/_pk3_001 -iname "NOMENCLATURA_DOMICILIARIA*.shp" -exec sh -c "psql postgres://postgres@localhost/ingest1 -c 'DROP TABLE IF EXISTS pk3_001_p1_geoaddress'; shp2pgsql  -s 4686 {} pk3_001_p1_geoaddress | psql -q postgres://postgres@localhost/ingest1; psql postgres://postgres@localhost/ingest1 -c \"SELECT ingest.any_load('shp2sql','{}','geoaddress_full','pk3_001_p1_geoaddress','3_001','48281334c4de8d73e6a7856cebfd5bce40a98cc6a64de73fa6a73618380ecf72.zip',array['gid', 'texto AS house_number', 'geom'])\"; chmod -R a+rx . 2> /dev/null" \;
NOTICE:  table "pk3_001_p1_geoaddress" does not exist, skipping
DROP TABLE
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
                            addgeometrycolumn                             
--------------------------------------------------------------------------
 public.pk3_001_p1_geoaddress.geom SRID:4686 TYPE:MULTILINESTRING DIMS:2 
(1 row)

                    any_load                    
------------------------------------------------
 From file_id=295 inserted type=geoaddress_full+
 in feature_asis 87040 items.
(1 row)

DROP TABLE
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
                            addgeometrycolumn                             
--------------------------------------------------------------------------
 public.pk3_001_p1_geoaddress.geom SRID:4686 TYPE:MULTILINESTRING DIMS:2 
(1 row)

                    any_load                    
------------------------------------------------
 From file_id=296 inserted type=geoaddress_full+
 in feature_asis 3027719 items.
(1 row)

Confira os resultados nas tabelas ingest.layer_file e ingest.feature_asis.
FIM.
a4a@ubuntu:/opt/gits/_dg/preserv-CO/data/IGAC/_pk003$ 
crebollobr commented 2 years ago

Corrigido