Closed crebollobr closed 2 years ago
Alguns exemplos onde usa method e method_ops:
via em https://github.com/AddressForAll/digital-preservation-BR/blob/master/data/in/MG/BeloHorizonte/_pk012/make_conf.yaml (makefile). variáveis YALM: subtype:, method, method_opts
comando docker run --rm --network host -v $(sandbox):/tmp osgeo/gdal ogr2ogr -overwrite -f "PostgreSQL" PG:" dbname='$(pg_db)' host='localhost' port='5432' user='postgres' " /tmp/{{{orig_tabname}}} {{{origtabname}}} -nln $(tabname)
O PR https://github.com/digital-guard/preserv-BR/pull/5 atende os três itens dessa issue. No entanto, não atende a issue https://github.com/AddressForAll/digital-preservation-BR/issues/18.
Nessa issue o comando é, considerando a variável orig_ext: docker run --rm --network host -v $(sandbox):/tmp osgeo/gdal ogr2ogr -overwrite -f "PostgreSQL" PG:" dbname='$(pg_db)' host='localhost' port='5432' user='postgres' " "/tmp/{{orig_filename}}{{orig_ext}}" {{{orig_tabname}}} -nln $(tabname)
Na issue subsequente, https://github.com/AddressForAll/digital-preservation-BR/issues/18, o comando desconsidera orig_ext: docker run --rm --network host -v $(sandbox):/tmp osgeo/gdal ogr2ogr -overwrite -f "PostgreSQL" PG:" dbname='$(pg_db)' host='localhost' port='5432' user='postgres' " /tmp/{{{orig_tabname}}} {{{origtabname}}} -nln $(tabname)
A variavel deve ser orig_tabname, origtabname foi um erro de digitação
Ok. Mas não era bem isso minha dúvida.
Essa situação: /tmp/{{{orig_tabname}}} {{{origtabname}}}
Engloba essa situação: /tmp/{{orig_filename}}{{orig_ext}} {{{origtabname}}}
Ou são situações disjuntas e para cada uma delas a variável method no arquivo yaml terá valores diferentes para cada uma delas?
Essa é a proposta da issue, exemplos orig_ext: .TAB orig_ext: .gpkg orig_ext: .xls
orig_ext = .TAB
Funcionam para extenções diferentes com o mesmo template. O ogr2ogr trabalha com muitos formatos
restaria padronizar, ver Wikipedia em inglês:
orig_ext: .csv
seria esperado virgula .tsv
(não tab!) então usar orig_ext: .tsv
para esse casoImportante lembrar: o padrão textual é UTF-8, qualquer outra coisa precisa ser convertida.
A situação descrita está implementada. Utilizar no respectivo layer:
method: ogr2ogr
orig_ext: .extensão
para .xlsx usar
method:csv2shp
orig_ext: .xlsx
method_opts: indicar a planilha com -s [0-9], se necessário.
@0e1 e @crebollobr precisamos criar um "guia rápido do YAML" com link para os exemplos de caso... Por exemplo depois de explicar method_opts: -D
pode ilustrar com esse caso pk003.
1) Colocar o ogr2ogr no template make_ref027a.mustache.mk {{>common003_shp2pgsql}} {{>common005_ogr2ogr}}
Porque a mesma cidade tem ogr2ogr e shapefile
2) Extração mais genérica sem o ponto para extrair gdb, subpasta ou coleção de arquivos
cd $(sandbox); 7z x -y $(part{{file}}_path) "{{orig_filename}}.*" ; chmod -R a+rx . > /dev/null
cd $(sandbox); 7z x -y $(part{{file}}_path) "{{orig_filename}}*" ; chmod -R a+rx . > /dev/null
3) ogr2ogr com uma variável a mais opicional {{orig_ext}}
docker run --rm --network host -v $(sandbox):/tmp osgeo/gdal ogr2ogr -overwrite -f "PostgreSQL" PG:" dbname='$(pg_db)' host='localhost' port='5432' user='postgres' " "/tmp/{{orig_filename}}{{orig_ext}}" {{{orig_tabname}}} -nln $(tabname)
exemplos orig_ext: .TAB orig_ext: .gpkg orig_ext: .xls