Giter VIP home page Giter VIP logo

Comments (18)

javiersanp avatar javiersanp commented on July 17, 2024 1

Centrándonos en la opción de procesar municipios grandes en trozos más pequeños, lo he estado pensando y tienes razón, sería posible modificar el programa para que trabajara sobre un trozo más pequeño. Es interesante y lo voy a estudiar.

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

Es posible hacerlo, fácil y no hace falta modificar el programa. Está documentado.

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

Respecto al problema de tiempo de proceso la única solución es una máquina más potente.

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

Modificar el programa para que trabaje sobre trozos más pequeños que un municipio no es fácil. Se me ocurre que edites los archivos A.ES.SDGC.*.zip con QGIS, los fracciones y lances el el programa contra los trozos. ¿Me explico?

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

Añadirle una opción al programa para que no procese las piscinas (otherconstruction) es más fácil de programar. Puedo ponerme con ello. De todas formas, no tarda por las piscinas (14170 frente a 124183+839881). Tarda por que está revisando la topología de los edificios. Fíjate en que pone "file=building.shp" a la derecha del todo en la línea de "Topología: "

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

La unidad de trabajo para la salida sería una zona. Las zonas pueden ser polígonos de rústica o manzanas de urbana. Las primeras se identifican internamente por el campo 'label' , un número de tres dígitos, las segundas por uno de cinco. Este número aparece a determinadas escalas como una etiqueta en el centro de la zona en los mapas de Catastro. Para facilitar su localización se puede incluir en zoning.geojson como paso previo de #65.

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

El parámetro CLI podría ser

-o [label], --z(o)ne [label]

Procesa edificios y direcciones de la zona identificada por 'label'. Combinar con -b si se desea sólo edificios o con -d si se desea sólo direcciones.

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

Aunque las etiquetas de manzanas urbanas tienen 5 dígitos, su valor entero puede coincidir con una etiqueta de polígono rústico. Por ejemplo 00010 y 010. Habrá que separar dos opciones para rústica y urbana.

-r [label], --rustic [label]
-u [label], --urban [label]

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

El filtrado espacial por los límites de la zona no funciona. Los límites son muy imprecisos y pasan por encima de los edificios.

La otra opción es filtrar por la referencia catastral que incluye la etiqueta de la zona. De esta forma pueden aparecer algún edificio cercano a la zona pero son pocos casos y al menos cada edificio queda unívocamente dentro de una zona.

Para una referencia urbana, la etiqueta de la manzana ocupa los 5 primeros caracteres.
label = '60860'
localid = '6086003CS7458N'
regexp_match('localId', '^' + label)

Para una referencia rústica la etiqueta del polígono ocupa la posición 7 a 9.
label = '005'
localid = '38900A00500304'
regexp_match('localId', '^.{6}' + label)

from catatom2osm.

Crashillo avatar Crashillo commented on July 17, 2024

Pregunto desde la ignorancia, cuando se generan las tareas, cada una tiene sus límites en los que están bien contenidos los edificios (no cortados). Por tanto, ¿se podría calcular si el bounding_box de una tarea está contenido en el polígono solicitado? De esa manera te asegurarías que los edificios no se cortan, ya que su tarea (su boundary) está contenido en el polígono solicitado. Me explico con una imagen:

imagen

Las tareas verdes están dentro de la zona a exportar, así que sabes que sus edificios también. La blanca la descartarías, y la roja quedaría duda: se podría ignorar para la zona actual y generar otro grupo de tareas "limítrofes"; o bien calcular el área y ver si tiene más de un 50% de área dentro de la zona a crear.

¿Es posible enfocarlo de ese modo?

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

La estrategia de consulta por referencia catastral no funciona. Los resultados de las pruebas muestran que hay edificios cuya referencia no se ajusta al esquema comentado más arriba y se quedan sin asignar a ninguna zona. Hay que regresar a la consulta espacial con la siguiente estrategia.

  • Para evitar las zonas rojas incluir los edificios que están contenidos y los que se superponen a la zona.
  • Para evitar que un edificio salga en dos zonas distintas llevar un registro en un archivo de los edificios que ya tienen asignada una zona.

from catatom2osm.

Crashillo avatar Crashillo commented on July 17, 2024

¿Sería posible comprobar si el tamaño (veáse área, o incluso valdría con el punto central) de cada tarea/edificio entra en la "zona a crear"? Por ejemplo, en el dibujo la zona roja, está ligeramente más fuera que dentro, por lo que quedaría fuera de la zona que estamos creando; no se generaría.

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

Sumaría tiempo de proceso. Si vemos que es necesario lo estudiamos, pero si se puede mantener simple mejor.

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

Realizadas pruebas para construir un índice de referencia_catastral:etiqueta_de_zona para todo el municipio de Madrid. Tiempo necesario aproximadamente 100 segundos con CPU de 4 núcleos a 3600 MHz. En la siguiente ejecución lo lee de archivo y no tarda nada. Da tiempo para asignar la zona cuando haya varias candidatas en función de la que tenga más área intersectada como sugiere @Crashillo.

En relación con #65, usar este índice para las tareas.

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

Pruebas

              05015            03001           38012
          1.3.10 1.5.0dev  1.3.10 1.5.0dev  1.3.10 1.5.0dev
nodos       2480  2478       8686  8688      19610 19637
vías         612   612       1668  1668       4516  4516
relaciones     0     0         10    10         53    53
edificios     518  518        883   883       2785  2785
partes        156  156        632   632       1923  1923
piscinas        0    0        157   157         26    26
direcciones   287  287        276   280        901   953

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

Recuento de tres municipios procesados al completo con la versión master y zona por zona con la versión de desarrollo. Coincide el número de edificios y partes. Las direcciones se incrementan por que la combinación con los datos de OSM se hace en un área más pequeña.

from catatom2osm.

javiersanp avatar javiersanp commented on July 17, 2024

@Crashillo prueba la última versión disponible en Docker. Ya está operativo. Por ejemplo:

catatom2osm -o 47798 28900

En la opción -o le pones la etiqueta de la zona que quieres procesar. Es el número de color violeta que sale en el centro de las manzanas y polígonos en el mapa de Catastro. En las ejecuciones posteriores del municipio va un poco más rápido.

De esta forma puedes sacar un listado de todas las zonas disponibles.

catatom2osm --list-zones 28900

from catatom2osm.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.