Algorithmes appropriés pour simplifier les polygones isochrones

8

Je recherche un algorithme pour simplifier les isochrones générés à l'aide de données OSM.

Ceux-ci sont généralement caractérisés comme ayant beaucoup de petits "trous" principalement en raison de données OSM manquantes mais aussi souvent avec de petites "îles" en raison de l'utilisation des transports comme les métros. J'ai essayé un certain nombre d'outils pour cela, mais tous sont trop agressifs pour réduire l'espace - plus important encore, pour supprimer les îles. L'accessibilité à ces îles de transport public est très importante.

Donc, plutôt que de me concentrer sur les outils, j'ai voulu prendre un peu de recul et demander si des algorithmes particuliers sont bien ou pas bien adaptés à une telle tâche? c'est-à-dire être agressif pour enlever les trous mais conservateur pour ne pas enlever les îles.

Les isochrones commencent leur vie au format GeoJSON. Ils seront finalement importés dans PostGIS.

rgareth4
la source
Pour calculer des isochrones plus simples, vous pourriez être intéressé par api.oalley.fr . L'algorithme génère des zones isochrones sans trous. Cela peut être considéré comme un avantage ou un défaut, mais si vous avez besoin de zones plus simples, vous pourriez être intéressé. Remarque: je suis l'un des développeurs, jusqu'à présent, les calculs doivent être améliorés et cette chose est principalement une expérience, mais nous laissons tout le monde jouer gratuitement avec.
Overdrivr

Réponses:

2

Peut-être que la résolution commence à partir du début?

De quelle façon vous créez des isochrones?

J'utilise pg_routing et il retourne un ensemble d'arêtes accessibles dans le temps spécifié au lieu d'un polygone afin que je puisse dessiner un polygone à partir de ces données comme je le souhaite - je peux utiliser st_ConvexHull, st_ConcaveHull, st_Buffer ...

La première fonction est comme placer quelque chose dans un ballon en caoutchouc, la seconde est comme aspirer l'air de ce ballon, et cette fonction pourrait être que vous recherchez car elle renverra la géométrie représente une géométrie éventuellement concave qui enferme toutes les géométries dans l'ensemble et ont un paramètre empêchant les trous dans la géométrie retournée ...

Mais je ne sais toujours pas si c'est un bon moyen - vous obtiendrez une géométrie qui ne sera pas vraie, car vous ne pouvez pas sauter du train pendant qu'il roule. Peut-être que vous devez utiliser ST_ExteriorRing pour sortir les trous, puis st_simplify pour simplifier les géométries?

Veuillez ajouter un commentaire qui me guidera dans le bon sens si vous pensez que cette réponse pourrait être utile afin que je puisse la rééditer pour être correcte.

Jendrusk
la source
J'utilise OpenTripPlanner pour générer des isochrones. pgRouting ne semble pas avoir un support horaire GTFS / transports publics approprié, c'est pourquoi j'ai opté pour OTP. Mon idée est d'avoir OTP générer à haute précision les appliquer mon propre lissage personnalisé. Je suis d'accord que "sauter d'un train pendant qu'il roule" serait un problème fatal avec les isochrones - d'où la raison pour laquelle les îles doivent être là.
rgareth4