Closed crebollobr closed 1 year ago
Situação excelente pra exemplificar a diferença entre sql_view
e sql_select
.
Simplificadamente, é isso que acontece com um arquivo:
tabname
;A partir daí, dois caminhos são possíveis:
sql_view
:
3.1. CREATE wv_file1 AS sql_view FROM tabname
;
3.2. any_load
é aplicada em wv_file1
;ou
sql_select
:
3.1 any_load
é aplicada em tabname LATERAL sql_select
;Por isso, se usar sql_select
o conteúdo do array não pode criar novos nomes que conflitem com as colunas já existentes de tabname
(geom
já existe em tabname
então, ST_MakePolygon(geom) AS geom
cria outra igual. Daí a ambiguidade). Ainda, sempre é bom lembrar que é sql_select
ou (exclusivo) sql_view
.
Então, no caso em questão, você deve usar sql_view
:
sql_view: SELECT row_number() OVER () AS gid, ST_MakePolygon(geom) AS geom FROM $(tabname)
Mas, o arquivo em questão é um .dxf. No meu teste o programa ogr2ogr
carrega o arquivo de tal maneira que ST_SetSRID(geom)=0
. Isso evidencia que o ogr2ogr
não reconhece o SRID em todos os casos, como foi suposto na implementação do método ogr2ogr
. Essa suposição implicou em não usar os valores de SRID oriundos de codec:descr_encode
e de codec
na chamada do programa ogr2ogr
.
Então, três possibilidades para os casos onde o programa ogr2ogr
não reconhece o SRID:
sql_view: SELECT row_number() OVER () AS gid, ST_SetSRID(ST_MakePolygon(geom),31984) AS geom FROM $(tabname)
sql_view: SELECT row_number() OVER () AS gid, ST_MakePolygon(geom) AS geom FROM $(tabname)
method_opts: -a_srs EPSG:31984
Ver doc de a_srs
em https://gdal.org/programs/ogr2ogr.html#cmdoption-ogr2ogr-a_srs.
Usar a_srs
em todos os casos, consumindo os valores de codec:descr_encode
e de codec
sql_view: SELECT row_number() OVER () AS gid, ST_MakePolygon(geom) AS geom FROM $(tabname)
Notar que implementei a opção número 3, citada acima.
Então, você deve usar, apenas:
sql_view: SELECT row_number() OVER () AS gid, ST_MakePolygon(geom) AS geom FROM $(tabname)
Não consegui identificar o erro no sql link https://github.com/digital-guard/preserv-BR/tree/main/data/BA/Salvador/_pk0050.01 make parcel pg_db=ingest20