Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error tras actualización de archivos GML de Catastro #47

Closed
egofer opened this issue Nov 16, 2019 · 8 comments
Closed

Error tras actualización de archivos GML de Catastro #47

egofer opened this issue Nov 16, 2019 · 8 comments
Labels
bug Something isn't working

Comments

@egofer
Copy link
Collaborator

egofer commented Nov 16, 2019

Se ha reportado en el grupo de Telegram de OSM España que recientemente CatAtom2OSM lanza un error sin llegar a procesar los archivos y que afecta a todos los municipios.

root@40633846530b:/home/CatAtom2Osm# catatom2osm 39088
2019-11-16 10:49:01,336 - INFO - Comienza el procesado de '39088'
2019-11-16 10:49:01,425 - INFO - Leídos 40 características en '39088/A.ES.SDGC.CP.39088.cadastralzoning.gml'
2019-11-16 10:49:02,180 - INFO - Municipio: 'Tresviso'
...
2019-11-16 10:49:04,293 - INFO - Generado 'urban_zoning.geojson'
2019-11-16 10:49:04,304 - INFO - Generado 'rustic_zoning.geojson'
Traceback (most recent call last):
  File "/home/CatAtom2Osm/main.py", line 120, in <module>
    run()
  File "/home/CatAtom2Osm/main.py", line 113, in run
    process(args, options)
  File "/home/CatAtom2Osm/main.py", line 51, in process
    app.run()
  File "/home/CatAtom2Osm/catatom2osm.py", line 133, in run
    self.rustic_zoning.append(self.urban_zoning)
  File "/home/CatAtom2Osm/layer.py", line 977, in append
    zone = feature['levelName'][3]
TypeError: 'QPyNullVariant' object does not support indexing

Probablemente esté asociado a una actualización reciente de los archivos GML de Catastro (26-10-2019) motivado por algún cambio en la estructura de los archivos A.ES.SDGC.CP.*.cadastralzoning.gml (atributo levelName de CadastralZoning)

Probado en:

  • CatAtom2Osm 1.1.8
  • GDAL 2.2.3, released 2017/11/20
  • QGIS - 2.18.17 'Las Palmas'
@JorgeSanzS
Copy link

Usando la misma versión que egofer me da exactamente el mismo error.

Usando la versión en desarrollo me da error en la segunda pasada pero creo que es por el mismo motivo porque ha dejado de funcionar a la vez.

parallels@parallels-Parallels-Virtual-Platform:~/Desktop/catastro$ catatom2osm 37009 --log DEBUG
2019-11-16 15:41:15,293 - DEBUG - Usando Python 2.7.15
2019-11-16 15:41:15,293 - DEBUG - Running with lxml.etree
2019-11-16 15:41:16,213 - DEBUG - Inicializada la API de QGIS 2.18.17
2019-11-16 15:41:16,214 - DEBUG - Usando GDAL 2.2.3
2019-11-16 15:41:16,215 - INFO - Comienza el procesado de '37009'
2019-11-16 15:41:16,327 - INFO - Leídos 43 características en '37009/A.ES.SDGC.CP.37009.cadastralzoning.gml'
Agregar: 100%|██████████| 43/43 [00:00<00:00, 536.83it/s, file=rustic_zoning.shp]
2019-11-16 15:41:16,437 - DEBUG - Cargados 5 características en 'rusticzoning' desde 'cadastralzoning.gml'
2019-11-16 15:41:17,883 - INFO - Municipio: 'Alba de Yeltes'
Agregar: 100%|██████████| 43/43 [00:00<00:00, 2271.42it/s, file=urban_zoning.shp]
2019-11-16 15:41:17,911 - DEBUG - Cargados 37 características en 'urbanzoning' desde 'cadastralzoning.gml'
2019-11-16 15:41:17,912 - DEBUG - 5 multipolígonos divididos a 10 poligonos en la capa 'urbanzoning'
2019-11-16 15:41:17,937 - INFO - Leídos 327 características en '37009/A.ES.SDGC.AD.37009.gml'
2019-11-16 15:41:17,955 - INFO - Leídos 1 características en '37009/A.ES.SDGC.AD.37009.gml'
2019-11-16 15:41:17,973 - INFO - Leídos 18 características en '37009/A.ES.SDGC.AD.37009.gml'
Agregar: 100%|██████████| 327/327 [00:00<00:00, 4813.43it/s, file=address.shp]
2019-11-16 15:41:18,094 - DEBUG - Cargados 327 características en 'address' desde 'address.gml'
Unir campo: 100%|██████████| 328/328 [00:00<00:00, 8039.01it/s, file=address.shp]
2019-11-16 15:41:18,160 - DEBUG - Combinado 'postaldescriptor.gml' a 'address'
Unir campo: 100%|██████████| 345/345 [00:00<00:00, 8891.97it/s, file=address.shp]
2019-11-16 15:41:18,214 - DEBUG - Combinado 'thoroughfarename.gml' a 'address'
2019-11-16 15:41:18,265 - INFO - Generado 'address.geojson'
2019-11-16 15:41:18,304 - DEBUG - Eliminadas 7 direcciones rechazadas por nombre de vial
  0%|          | 0/42 [00:00<?, ?it/s]Traceback (most recent call last):
  File "/home/parallels/catastro/CatAtom2Osm-development/main.py", line 113, in <module>
    run()
  File "/home/parallels/catastro/CatAtom2Osm-development/main.py", line 102, in run
    process(options)
  File "/home/parallels/catastro/CatAtom2Osm-development/main.py", line 39, in process
    app.run()
  File "/home/parallels/catastro/CatAtom2Osm-development/catatom2osm.py", line 103, in run
    self.process_zoning()
  File "/home/parallels/catastro/CatAtom2Osm-development/catatom2osm.py", line 260, in process_zoning
    self.urban_zoning.topology()
  File "/home/parallels/catastro/CatAtom2Osm-development/layer.py", line 689, in topology
    pbar = self.get_progressbar(_("Topology"), len(geometries))
  File "/home/parallels/catastro/CatAtom2Osm-development/layer.py", line 583, in get_progressbar
    pbar.set_description(description)
  File "/home/parallels/.local/lib/python2.7/site-packages/tqdm/std.py", line 1312, in set_description
    self.refresh()
  File "/home/parallels/.local/lib/python2.7/site-packages/tqdm/std.py", line 1274, in refresh
    self.display()
  File "/home/parallels/.local/lib/python2.7/site-packages/tqdm/std.py", line 1397, in display
    self.sp(self.__repr__() if msg is None else msg)
  File "/home/parallels/.local/lib/python2.7/site-packages/tqdm/std.py", line 1042, in __repr__
    return self.format_meter(**self.format_dict)
  File "/home/parallels/.local/lib/python2.7/site-packages/tqdm/std.py", line 469, in format_meter
    nobar = bar_format.format(bar=full_bar, **format_dict)
UnicodeEncodeError: 'ascii' codec can't encode character u'\xed' in position 7: ordinal not in range(128)
Exception UnicodeEncodeError: UnicodeEncodeError('ascii', u'Topolog\xeda:   0%|', 7, 8, 'ordinal not in range(128)') in <object repr() failed> ignored

Con:

  • Python 2.7.15
  • CatAtom2Osm 1.2 dev
  • GDAL 2.2.3
  • QGIS 2.18.17

@JorgeSanzS
Copy link

Subiendo de versión python y QGIS me hace más pero acaba dando error al crear el zoning.geojson pero las tareas me las crea.

Con:

  • Python 3.6.8
  • CatAtom2Osm 1.2 dev
  • GDAL 2.2.3
  • QGIS 3.4.13

El error que da:

Diferencia: : 44it [00:00, 565.32it/s, file=rustic_zoning.shp]                                                                             
Agregar:   0%|                                                                                                      | 0/34 [00:00<?, ?it/s]Traceback (most recent call last):
  File "/home/parallels/catastro/CatAtom2Osm/main.py", line 113, in <module>
    run()
  File "/home/parallels/catastro/CatAtom2Osm/main.py", line 102, in run
    process(options)
  File "/home/parallels/catastro/CatAtom2Osm/main.py", line 39, in process
    app.run()
  File "/home/parallels/catastro/CatAtom2Osm/catatom2osm.py", line 139, in run
    self.rustic_zoning.append(self.urban_zoning)
  File "/home/parallels/catastro/CatAtom2Osm/layer.py", line 1060, in append
    zone = feature['levelName'][3]
TypeError: 'QVariant' object does not support indexing
Agregar:   0%|                                                                              | 0/34 [00:00<?, ?it/s, file=rustic_zoning.shp]

@javiersanp
Copy link
Member

javiersanp commented Nov 18, 2019 via email

@javiersanp
Copy link
Member

Cambio en la estructura del archivo. El campo levelName pasa a ser LocalisedCharacterString.

@javiersanp
Copy link
Member

Cambio en la estructura del archivo. El campo levelName pasa a ser LocalisedCharacterString.

Negativo. Ese cambio ya estaba desde diciembre de 2017 #53

javiersanp pushed a commit that referenced this issue Nov 27, 2019
El campo _localId_ del archivo de zonificación antes se leía con la denominación 'inspireId_localId', mientras que ahora aparece simplemente 'localId'. También se asegura que renombra _LocalisedCharacterString_ a _levelName_.
@javiersanp
Copy link
Member

El problema está identificado. El campo localId del archivo de zonificación antes se leía con la denominación 'inspireId_localId', mientras que ahora aparece simplemente 'localId'. También se asegura que renombra LocalisedCharacterString a levelName.
Debe funcionar correctamente en master y development
Para resolver temporalmente el problema con el error de unicode, renombra la carpeta locale para forzar a usar inglés. Cuando la librería tqdm esté actualizada forzaré la dependencia a la versión corregida.

@javiersanp javiersanp added the bug Something isn't working label Nov 27, 2019
@JorgeSanzS
Copy link

He probado con ambas pruebas realizadas con la versión dev. Python 2 y 3. Tengo que comprobar el resultado final si es correcto pero finaliza así que parece solucionado. He forzado yo la actualización de tqdm en la maquina que tenia con python 2 que era en el que daba error y también solucionado. Con master no he tenido tiempo de comprobarlo.
Gracias por la corrección.

@egofer
Copy link
Collaborator Author

egofer commented Nov 27, 2019

Probado con la rama master y no ha dado problemas. He comprobado los archivos que genera y no parece haber ningún error. Gracias @javiersanp por resolver el bug.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants