1
resposta

problema com o georeferenciamento

Nessa parte do exercício eu devo inserir o código

geo_dados['geometry'].within( rj.iloc[0].geometry)

e ele me retorna uma matriz booleana, que diz se o ponto está ou não está dentro do polígono 'rj'.

No vídeo, os resultados são majoriatariamente 'true', enquanto que o meu está tudo retornando 'false'.

Verifiquei o sistema de coordenadas

rj.crs 
geo_dados.crs

e ambos estão iguais, uma vez que fiz a conversão usando as instruções do vídeo

observei que, ao plotar ambos gráficos, eles estão em regioes diferentes no mapa, que não se cruzam - e por isso ocorre o 'erro'

https://spatialreference.org/ref/epsg/31983/proj4/
# site com o ícone de conversão

Uma outra dúvida, que pode ser a origem do problema.

Os meus arquivos 'rj' e 'geo_dados' não estão (inicialmente, antes da transformação) com o sistema de coordenadas iniciais do video, o rj está com o wgs84 e o geo_dados está com o GRS80 (no video ele está com o EPSG: 4326), mas eu fiz a conversão do jeito que ele mostrou no video

nota: o video sobre as coordenadas está em 'sistema de coordenada' / 'modificando o sistema de coordenadas'

1 resposta

Oii Felipe, como você está?

Peço desculpas pela demora em obter um retorno.

Essa discrepância pode ter ocorrido devido a divergência de crs dos dados, uma vez que ambos têm que estar compartilhando o mesmo sistema de coordenadas para trabalhar juntos. Recomendo que verifique as importações dos arquivos e também, para execute a conversão do crs novamente, como mostro a seguir.

Conversão e geração dos arquivos com crs iguais:

rj = gpd.read_file('../01.Dados/Mapas/RJ-MUNIC/RJ-MUNIC.shp')
geo_dados = gpd.read_file('../01.Dados/Mapas/RJ-DATASET/DATASET.shp')
rj = rj.to_crs('+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=km +no_defs')
geo_dados = geo_dados.to_crs('+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=km +no_defs')

rj.to_file('../01.Dados/Mapas/RJ-MUNIC/RJ-MUNIC.shp')
geo_dados.to_file('../01.Dados/Mapas/RJ-DATASET/DATASET.shp')

Importação dos arquivos e verificação dos pontos:

rj = gpd.read_file('../01.Dados/Mapas/RJ-MUNIC/RJ-MUNIC.shp')
geo_dados = gpd.read_file('../01.Dados/Mapas/RJ-DATASET/DATASET.shp')

geo_dados['geometry'].within(rj.iloc[0].geometry)

Quanto a plotagem, enquanto a variável rj irá plotar o contorno do estado do Rio de Janeiro, a variável geo_dados irá plotar o mapeamento de cada ponto/imóveis na cidade do Rio de Janeiro, como mostro abaixo:

Imagem com fundo branco que mostra dois mapas, o primeiro é o contorno do estado do rio de janeiro, que é um polígono com suas pontas achadas. Já o segundo mapa mostra vários pontos que se referem aos imóveis da cidade do rio de janeiro para o contorno do primeiro mapa. Ambos mapas estão na cor azul

Para fins de teste, você pode baixar os arquivos de dados corretos neste link e verificar se irá obter o resultado esperado. Caso não obtenha, peço que compartilhe seu projeto completo para que eu possa verificar e te auxiliar de forma mais direcionada sobre o motivo do erro.

Qualquer dúvida fico à disposição.

Grande abraço e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software