Algoritmos adecuados para simplificar polígonos de isocronas

8

Estoy buscando un algoritmo para simplificar las isócronas que se generaron utilizando datos de OSM.

En general, se caracterizan por tener muchos "agujeros" pequeños, principalmente debido a la falta de datos OSM, pero también con frecuencia tienen "islas" pequeñas debido al uso del transporte como el metro. He intentado una serie de herramientas para esto, pero todas son demasiado agresivas para reducir el espacio, lo más crítico es eliminar las islas. La accesibilidad a estas islas de transporte público es muy importante.

Entonces, en lugar de centrarme en las herramientas, quería retroceder un poco y preguntar si algún algoritmo en particular es adecuado o no para esa tarea. es decir, ser agresivo para eliminar agujeros pero conservador para no eliminar islas.

Las isócronas comienzan su vida en formato GeoJSON. Eventualmente serán importados a PostGIS.

rgareth4
fuente
Para calcular isócronas más simples, puede estar interesado en api.oalley.fr . El algoritmo genera áreas de isócronas sin agujeros. Puede verse como una ventaja o como un defecto, pero si necesita zonas más simples, puede estar interesado. Nota: Soy uno de los desarrolladores, hasta ahora los cálculos necesitan mejorar y esto es principalmente un experimento, pero estamos dejando que todos jueguen con él de forma gratuita.
Overdrivr

Respuestas:

2

Tal vez la resolución es comenzar desde el principio?

¿De qué manera estás creando isócronas?

Estoy usando pg_routing y devuelve un conjunto de bordes alcanzables en un tiempo especificado en lugar de un polígono para poder dibujar polígonos a partir de estos datos de la manera que quiero: puedo usar st_ConvexHull, st_ConcaveHull, st_Buffer ...

La primera función es como colocar algo en el globo de goma, la segunda es como aspirar aire de este globo, y esta función podría pensarse que está buscando porque devolverá la geometría representa una geometría posiblemente cóncava que encierra todas las geometrías dentro del conjunto y tengo parámetros que evitan agujeros en la geometría devuelta ...

Pero aún no estoy seguro de si es una buena manera: obtendrá una geometría que no será cierta, porque no puede saltar del tren mientras está en funcionamiento. ¿Quizás tenga que usar ST_ExteriorRing para sacar agujeros y luego st_simplify para simplificar las geometrías?

Agregue un comentario que me guíe de la manera correcta si cree que esta respuesta podría ser útil para que pueda volver a editarla para que sea correcta.

Jendrusk
fuente
Estoy usando OpenTripPlanner para generar isócronas. pgRouting no parece tener el soporte adecuado para el horario GTFS / transporte público, por eso elegí OTP. Mi idea es hacer que OTP genere con alta precisión que le apliquen mi propio suavizado personalizado. Estoy de acuerdo en que "saltar de un tren mientras está en marcha" sería un problema fatal con las isócronas, de ahí que las islas necesiten estar allí.
rgareth4