Comments (18)
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.
Es posible hacerlo, fácil y no hace falta modificar el programa. Está documentado.
from catatom2osm.
Respecto al problema de tiempo de proceso la única solución es una máquina más potente.
from catatom2osm.
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.
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.
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.
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.
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.
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.
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:
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.
from catatom2osm.
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.
¿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.
Sumaría tiempo de proceso. Si vemos que es necesario lo estudiamos, pero si se puede mantener simple mejor.
from catatom2osm.
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.
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.
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.
@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)
- ERROR - 'geom_invalid_building'
- ERROR 1: XML parsing of GML file failed HOT 1
- ERROR - 'NoneType' object has no attribute 'split' HOT 1
- ERROR - Null geometry cannot be converted to a point
- Añadir excepciones propias
- No detecta municipios incorrectos
- Recurso sin cerrar cuando no hay respuesta de Overpass HOT 1
- Fallo de codificación en prueba de parcelario vacío HOT 3
- GEOS exception: TopologyException: side location conflict
- Parcelas con zona tipo float HOT 1
- Cambio de idioma en Windows HOT 3
- Anotar en el log si el archivo de configuración está mal formado HOT 1
- Incluir en el informe report.txt el archivo de configuración que se ha usado HOT 3
- Fallo al exportar multipolígonos a zoning.geojson. HOT 1
- Error procesando Melilla
- Error calculando posición media de relación al leer lugares de OSM HOT 1
- No carga configuración definida por el usuario
- Obtener municipios y áreas de búsqueda en línea HOT 1
- Las partes de edificio no cubren todo el contorno HOT 2
- ERROR - Could not read metadata from 'CDAU'
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from catatom2osm.