Closed luisfelipebr closed 1 year ago
Precisamos analisar as duas coisas, o perfil dos dados e a documentação, precisam estar consistentes. No perfil dos dados temos por exemplo:
geo:11.13518055,-74.22753138
= 47001 | 1 | CL 142 1 99 DP S 63
, bate com ponto dentro de CO-47001Aqui interpretamos como padrão Geo URI, portanto WGS84, portanto SRID 4326.
Analisando o GCS_MAGNA por sua string PROJ: +proj=tmerc +lat_0=4.596200416666666 +lon_0=-74.07750791666666 +k=1 +x_0=1000000 +y_0=1000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m
.
... Precisamos entender melhor a que se refere a documentação, se aos dados publicados ou se ao sistema-origem da aquisição dos dados de localização (ex. mapas da prefeituras), que aparentemente teriam sido transformados.
select concat('[',dpto_mpio,'](https://osm.codes/CO-',dpto_mpio,')') as dpto_mpio,
direccion_normalizada,
concat('[',geouri,'](https://osm.codes/',geouri,';u=20)') as geouri
from (
SELECT dpto_mpio, direccion_normalizada,
'geo:'||replace(latitud,',','.')||','||replace(longitud,',','.') as geouri
FROM mmdm12345 TABLESAMPLE BERNOULLI (0.00035)
) t order by 1,2;
A abreviação GCS de GCS_MAGNA
refere-se apenas ao termo genérico "Geographic Coordinate System".
Existe um homônimo, https://epsg.io/4997 (nome oficial "MAGNA-SIRGAS") que é consistente com as unidade, longitude-latitude:
select proj4text from spatial_ref_sys where srid=4997;
-- +proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs
Agora sim, temos compatibilidade entre o padrão Geo URI e o PDF descritor dos dados:
A string PROJ mostra que o SIRGAS é sinônoimo de WGS85, ou seja, podemos usar SRID=4326.
O necessário para ingerir os dados já está pronto:
No entanto a ingestão não acontece. Precisar decidir como lidar com linhas do tipo:
grep -a -n "PISO" Marco_Maestro_Direcciones_Multiproposito.txt
19852623:76275|1|CL 12 21 37 �PISO 12 21 37�PISO|3,327908|-76,236952
19864909:76275|1|CL 12 16 66 �PISO 12 16 66�PISO|3,326374|-76,233133
19876209:76275|1|KR 9 S I 10 2 5 9 10 25 �PISO|3,322549|-76,228034
19876660:76275|1|CL 13 S I 13 0 1�PISO 13 13 01 �PISO|3,318168|-76,233134
19881506:76275|1|CL 10 S I 10A 1 0�PISO 10 10A 10�PISO|3,322482|-76,228113
19883133:76109|1|KR 65A 24 2 KR 65 A 24 2 APARTAMETO SEGUDOPISO|3,87148|-76,998876
Teoricamente o charset do arquivo é us-ascii:
file -i Marco_Maestro_Direcciones_Multiproposito.txt
Marco_Maestro_Direcciones_Multiproposito.txt: text/plain; charset=us-ascii
No entanto a ingestão não acontece. Precisar decidir como lidar com linhas do tipo:
Torcendo para que seja só bug de conversão de charset no linux... Parece que adulterou os dados originais.
Talvez não sejam tantos endereços assim, mas a palavra "PISO" evidencia que a string de endereço está incluindo o complemento, o que nos força a escolher um dentre vários endereços horizontais repetidos.
select st_geohash( ST_SetSRID(ST_MakePoint( replace(longitud,',','.')::float, replace(latitud,',','.')::float) , 4326), 8) as geohash, count(*) n, array_agg(direccion_normalizada) from mmdm12345 where direccion_normalizada like '%PISO%' group by 1 having count(*)>1 order by 2 desc
Exemplo de repetição com margem de metros:
geohash8 | n | prefixo-comum { endereços } |
---|---|---|
d2g69pmx | 10 | CL 64B 105H {"CL 64B 105G 03 CASATERCERPISO","KR 105G 64A 09 CASASEGUNDOPISO","CL 64B 105H 21 CASATERCERPISO","CL 64B 105H 15 CASATERCERPISO","CL 64B 105H 09 CASASEGUNDOPISO","CL 64B 105H 05 CASAPRIMERPISO","CL 64B 105G 21 CASAPRIMERPISO","CL 64B 105G 03 CASASEGUNDOPISO","CL 64B 105G 09 CASASEGUNDOPISO PISO","CL 64B 105H 15 SEGUNDOPISO"} |
d2g69puv | 9 | CL 65A 108 {"CL 65A 108 47 CASASEGUNDOPISO 201","CL 65A 108 53 CASASEGUNDOPISO","CL 65A 108 83 CASAPRIMERPISO","CL 65A 108 53 CASATERCERPISO","CL 65A 108 71 CASAPRIMERPISO 101","CL 65A 108 53 CASAPRIMERPISO","CL 65A 108 65 CASASEGUNDOPISO","CL 65A 108 47 CASASEGUNDOPISO 202","CL 65A 108 77 CASAPRIMERPISO"} |
d2g66w7c | 9 | CL 62 13A 25 {"CL 62 13A 25 TERCERPISO 16","CL 62 13A 25 TERCERPISO 13","CL 62 13A 25 TERCERPISO 4","CL 62 13A 25 TERCERPISO 15","CL 62 13A 25 TERCERPISO 3","CL 62 13A 25 TERCERPISO 6","CL 62 13A 25 TERCERPISO 5","CL 62 13A 25 TERCERPISO 7","CL 62 13A 25 TERCERPISO 2"} |
d2g69pvn | 8 | CL 65B 108 {"CL 65B 108 29 CASATERCERPISO","CL 65B 108 41 CASAPRIMERPISO","CL 65B 108 53 CASASEGUNDOPISO","CL 65B 108 53 TERCERPISO","CL 65B 108 35 PISOTERCEROCASA","CL 65B 108 41 CASATERCERPISO","CL 65B 108 41 CASAPISOPRIMER","CL 65B 108 35 CASAPRIMERPISO"} |
d2f5qpe6 | 7 | ... {"PT 5 SEGUNDOPISO CA 122","PT 5 PRIMERPISO CA 122","PT 5 SEGUNDOPISO CA 123","PT 5 SEGUNDOPISO CA 125","PT 4 PRIMERPISO CA 126","PT 4 130SEGUNDOPISO","PT 4 SEGUNDOPISO CA 126"} |
d2g69psr | 7 | {"CL 64C 108 83 CASASEGUNDOPISO","CL 64C 108 77 CASAPRIMERPISO","CL 64C 108 77 CASASEGUNDOPISO","CL 64C 108 83 CASAPRIMERPISO","CL 64C 108 71 CASATERCERPISO","KR 64 108 71 CASAPRIMERPISO","CL 64C 108 77 CASASEGUNDOPISO 201"} |
d2g69ptq | 6 | {"CL 64F 106A 25 CASAPRIMERPISO","CL 64F 106A 33 CASATERCERPISO","CL 64F 106A 45 CASASEGUNDOPISO","CL 64F 106A 33 CASASEGUNDOPISO","CL 64F 106A 39 CASASEGUNDOPISO","CL 64F 106A 45 CASAPRIMERPISO"} |
d2g69ptj | 6 | {"CL 64C 106A 54 TERCERPISO","CL 64C 106A 53 CASASEGUNDOPISO","KR 108 64C 10 TERCERPISO","CL 64C 106A 54 CASASEGUNDOPISO","CL 64C 106A 74 SEGUNDOPISO","CL 64C 106A 70 CUARTOPISO"} |
d29fcku7 | 6 | {"KR 9 S I 10A 5 1 PISO 9 10A 51","CL 10 S I 9 6 0PISO 10 9 60PISO","CL 10A S I 8 1 3PISO 10A 8 13PISO","KR 9 S I 10 2 5 9 10 25PISO","KR 9 S I 10 2 5 9 10 25 PISO","CL 10 S I 8 8 2PISO 10 8 82"} |
d2g69pv3 | 6 | {"KR 107C 65A 03 CASACUARTOPISO","CL 65B 107C 11 CASAPRIMERPISO","KR 107C 65 27 CASATERCERPISO","CL 65B 107C 11 CASASEGUNDOPISO","CL 65B 107C 05 CASATERCERPISO","CL 65B 65A 15 CASAPRIMERPISO"} |
d347b15s | 6 | {"KR 76 92 18 TERCERPISO","KR 75B 92 83 TERCETPISO","KR 76 92 96 SEGUNDOPISO","KR 76 92 154 SEGUNDOPISO","KR 75B 92 75 PRIMERPISO","KR 76 92 124 PRIMERPISO"} |
d2g69puy | 6 | {"CL 65A 108 89 CASASEGUNDOPISO","CL 65A 108 83 CASATERCEROPISO","CL 65A 108 83 CASASEGUNDOPISO","CL 65A 108 89 CASAPRIMERPISO","CL 65A 108 77 CASATERCERPISO","CL 65A 108 71 CASASEGUNDOPISO"} |
d2g69pug | 6 | {"CL 64F 108 12 CASAQUINTOPISO","CL 65 108 35 CASAPRIMERPISO","KR 64F 108 18 CASASEGUNDOPISO","CL 65 108 41 CASASEGUNDOPISO","CL 65 108 23 CASASEGUNDOPISO","CL 65 108 41 CASATERCERPISO"} |
d347056b | 5 | {"TV 34 E 32C 76 PRIMERPISO","TV 34DDS 32C 50 SEGUNDOPISO","TV 34 E 32C 26 SEGUNDOPISO","TV 34DD 32C 33 SEGUNDOPISO","TV 34 E 32C 16 SEGUNDOPISO"} |
d2g69psv | 5 | {"CL 64C 106A 73 SEGUNDOPISO","CL 64C 106A 69 PISOSEGUNDO","CL 64C 106A 61 TERCERPISO","CL 64C 106A 77 CASATERCERPISO","CL 65C 106A 69 CASAPRIMERPISO"} |
d29fcku2 | 5 | {"CL 10 S I 9 7 0PISO 10 9 70","CL 10 S I 10 6 2 10 10 62PISO","CL 10A S I 8 6 1PISO 10 8 61PISO","CL 10 S I 10 5 0PISO 10 10 50PISO","CL 10 S I 8 11 8PISO 10 8 118"} |
d29fcku6 | 5 | {"CL 10A S I 8 6 1PISO 10ANO 8 61PISO","CL 10 S I 8 1 8PISO 10 8 18","CL 10 S I 10A 1 0PISO 10 10A 10PISO","CL 10 S I 10 4 4 10 10 44 PISO","CL 10 S I 9 2 4PISO 10 9 24"} |
d2g69pu8 | 5 | {"KR 109A 64C 10 CASAPRIMERPISO","CL 64C 108 84 CASASEGUNDOPISO","CL 64C 108 78 CASAPRIMERPISO","KR 109A 64C 04 CASASEGUNDOPISO 201","CL 64C 108 84 CASATERCERPISO"} |
d2g69puu | 4 | {"CL 65 108 41 CASAPRIMERPISO","CL 65 108 35 CASASEGUNDOPISO","CL 64F 108 12 CASATERCERPISO","CL 65 108 29 CASAPRIMERPISO"} |
d347b15t | 4 | {"CL 92 75B 20 SEGUNDOPISO","KR 76 92 94 TERCERPISO","CL 92 75B 24 TERCERPISO","CL 94 75B 29 PRIMERPISO"} |
d2g69pvd | 4 | {"KR 107C 65A 03 CASATERCERPISO","KR 107C 65 21 CASAPRIMERPISO","KR 107C 65 27 CASAPRIMERPISO","KR 107C 65 21 CASASEGUNDOPISO"} |
Os mais repetidos:
geohash8 | n |
---|---|
d34k15mg | 3112 |
d2g6dnve | 3041 |
d2d2qyuq | 2623 |
d344zpus | 2606 |
d345p1jm | 2582 |
d347bx8j | 2434 |
d2g63605 | 2407 |
d2g607jh | 2279 |
d2g6fxph | 2252 |
d2g4y8tr | 2173 |
d2g6ch05 | 2090 |
d34k03fn | 2075 |
d347by11 | 2059 |
d2g62nys | 2040 |
d2g4rv3h | 2018 |
d2g6fz1t | 1980 |
d2g6fy9y | 1958 |
d34k04y8 | 1954 |
d2g63wtr | 1889 |
d2g71bgb | 1816 |
d2g6bgzu | 1813 |
d2g631xm | 1797 |
d2g4y87z | 1786 |
d2g6d0zk | 1779 |
... | |
d2g7s4x9 | 275 |
d2g741r4 | 275 |
... |
Consultando o geohash do primeiro, d34k15mg
, confirmamos se tratar de fato de um grande conjunto habitacional, Florida Norteamerica:
Aparentemente para todos os outros, o último, d2g741r4
, Conjunto Monterredondo:
Reduzindo de Geohash8 (\~15 metros) para Geohash9 (\~5m), as duplicações praticamente não se reduzem, a ordem dos mais repetidos continua praticamente a mesma:
geohash9 | n |
---|---|
d34k15mg8 = d34k15mg | 3111 |
d2g6dnvek = d2g6dnve | 2995 |
d2d2qyuqp = d2d2qyuq | 2623 |
d345p1jmz = d345p1jm | 2582 |
d344zpusw = d344zpus | 2472 |
d347bx8jt = ... | 2431 |
d2g63605b | 2407 |
d2g6fxphr | 2174 |
d2g4y8tr4 | 2173 |
d2g607jh7 | 2058 |
d347by11m | 2057 |
d2g62nysr | 2038 |
d2g4rv3h4 | 1985 |
d2g6fy9y3 | 1949 |
d34k04y8y | 1945 |
d2g6ch050 | 1923 |
d2g6fz1tw | 1919 |
d2g63wtrs | 1889 |
d34k03fns | 1817 |
d2g631xmv | 1792 |
... | ... |
Alguns minutos atrás iniciei teste da ingestão particionada dos dados, usando o divipola. Cerca de 2 minutos por divipola, nesse inicio. Dados sendo ingeridos na ingest99 e output da ingestão indo para testeloop na pasta do pacote no servidor.
Atualização: dados sem divipola paralizaram a ingestão particionada por divipola. https://github.com/digital-guard/preserv-CO/commit/30ed80c0afa149090573ebeb3ea458680d39113a associa -1 a esses dados. Teste foi reiniciado.
Por problemas na manipulação de gid ocorreu o erro
ERROR: integer out of range
O https://github.com/digital-guard/preserv/commit/7713bee2ea334ee92e2b90611330e0514e2f6a80 corrige a situação. Novo teste iniciado.
como a ingestão já foi realizada pelo menos uma vez, issue obsoleta.
sha256sum pronto. Segue dúvidas:
Código del Sistema: GCS_MAGNA Descripción del Sistema: Datum: D_MAGNA Prime Meridian: Greenwich Angular Unit: Degree Responsable: European Petroleum Survey Group - EPSG
Os dados estão em txt. Separador de colunas = "|". Separador decimal = ",". Qual método utilizar?
Estou utilizando house_number temporariamente