Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Erro ao reprojetar usando a função .to_crs

Ao utilizar a o seguinte:

metro=metro.to_crs('+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=km +no_defs')

O console me retorna:

Traceback (most recent call last):

  File "<ipython-input-13-fa5367ff8018>", line 1, in <module>
    metro=metro.to_crs('+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=km +no_defs')

  File "C:\ProgramData\Anaconda3\lib\site-packages\geopandas\geodataframe.py", line 386, in to_crs
    geom = df.geometry.to_crs(crs=crs, epsg=epsg)

  File "C:\ProgramData\Anaconda3\lib\site-packages\geopandas\geoseries.py", line 285, in to_crs
    proj_in = pyproj.Proj(self.crs, preserve_units=True)

  File "C:\ProgramData\Anaconda3\lib\site-packages\pyproj\__init__.py", line 362, in __new__
    return _proj.Proj.__new__(self, projstring)

  File "_proj.pyx", line 129, in _proj.Proj.__cinit__

RuntimeError: b'no arguments in initialization list'
3 respostas

Percebi que este erro está se repetindo ao se trabalhar com arquivos no formato .geojson, ao utilizar o formato .shp o erro não se repetiu.

Oi André,

Qual a versão do geopandas você está utilizando? Esse tipo de problema foi identificado na versão mais recente da biblioteca (0.4.0) e ainda não foi solucionado. Eu mesmo já tive este problema e solucionei de duas formas:

  • Utilizando o código abaixo:
    metro.crs = '+proj=utm +zone=23 +south +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=km +no_defs'
    ou
  • Tente fazer o downgrade (0.3.0) e verifique se o erro ainda acontece.

Em alguns casos esse problema necessita até a reinstalação do Anaconda, pois envolve um conjunto de dependências bastante amplo.

Espero ter ajudado

Abraço

Tentei as duas possíveis soluções. Na primeira, ele 'mudou' a interpretação do crs mas não fez a conversão das coordenadas, ficou como se tivesse em WGS 84 / UTM Zone 23S, no entando as coordenadas continuaram em graus decimais.

Fiz o downgrade do geopandas para a versão 0.3.0 e o problema ao utilizar o .to_crs( ) continuou...

Pude notar que esse problema se repete em outros arquivos, principalmente quando o crs inicial está em sirgas 2000...

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