OSM-es / CatAtom2Osm

Tool to convert INSPIRE data sets from the Spanish Cadastre ATOM Services to OSM files.
BSD 2-Clause "Simplified" License
13 stars 5 forks source link

Mover la lógica del clip al fichero Layer #81

Closed Crashillo closed 2 years ago

Crashillo commented 2 years ago
  1. Se ha eliminado la dependencia inicial del CRS como argumento del split_zoning
  2. Prefiero obtener la geometría haciendo uso de Geometry.merge_adjacent_features por si hay que cambiar el CRS
  3. Aplicar transformación de manera condicional
  4. He probado con geojson que contengan lineas o puntos
  5. Se podría eliminar la función split_zoning, e incluirlo directamente bajo el options
  6. Tengo un error del método Geometry.merge_adjacent_features para el geojson siguiente:
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{},"geometry":{"type":"Polygon","coordinates":[[[-5.441156029701233,42.080172799623455],[-5.442346930503845,42.07954769902057],[-5.441113114356995,42.07840100165121],[-5.439616441726685,42.07945612325587],[-5.441011190414429,42.080292244897784],[-5.441156029701233,42.080172799623455]]]}},{"type":"Feature","properties":{},"geometry":{"type":"Point","coordinates":[-5.439777374267578,42.0806864127078]}}]}

Aunque tiene un punto, no falla por eso, sino porque [f for f in layer.getFeatures()] no le devuelve nada. No entiendo el problema.

Crashillo commented 2 years ago

En https://github.com/OSM-es/CatAtom2Osm/pull/81/commits/969000eb3bf86c639e45b7d2b679f2d9c36d8af2 he dado con el problema de generar un exceso de edificios y tareas. Consiste en aplicar el corte nada más se leen los gml,

Ahora bien, lo encuentro inestable (prueba cuando puedas) ya que se queda colgado en un punto muy posterior de la ejecución, no comprendo a qué se puede deber.

javiersanp commented 2 years ago

Los cambios los veo bien excepto los comentarios que te he puesto. Ya lo cambio yo.

El fichero geojson que me pasas a mi no me da problema. Lo hablamos.

Añadiendo la construcción de self.zone y un par de cosas más me parece que funciona. Fusiono y le subo un par de cambios luego.

La función split_zoning la mantendré para que mantener get_building más corto.

Como norma de estilo estoy manteniendo dos líneas en blanco entre clases, una entre métodos y dentro de los métodos generalmente ninguna.