Je suis confronté à un dilemme en essayant d'utiliser v.generalize pour simplifier des polygones dont la taille et la structure sont similaires à celles des comtés ou des États américains. Souvent, je perds des polygones de l'ensemble de données après avoir exécuté une méthode de simplification ou de lissage sur eux. Ce qui me trouble, c'est qu'il ne semble pas y avoir de modèle cohérent à ce comportement. Dans certains cas, le même ensemble de commandes appliquées à différents ensembles de données provoque des résultats complètement différents. Par conséquent, je ne suis pas en mesure de développer un flux de travail reproductible et je commence à contrecœur à rechercher d'autres outils de simplification qui préservent la topologie. Voici un exemple:
# LOAD AND CLEAN
v.in.ogr dsn=counties.shp output=county
v.build.polylines input=county output=county_polylines
v.clean input=county_polylines output=county_clean tool=bpol,rmdupl type=boundary
# SMOOTH AND GENERALIZE
v.generalize input=county_clean output=county_smooth method=sliding_averaging look_ahead=7 slide=1
v.generalize input=county_smooth output=county_general method=douglas threshold=.005
Chacune des étapes v.generalize entraîne la disparition de certains des polygones. Je voudrais comprendre pourquoi cela se produit. Est-ce dû au chargement de fonctionnalités dans une mémoire insuffisante? Mes paramètres sont-ils suffisamment «serrés» pour entraîner l'exclusion des entités parce qu'elles répondent à une sorte de critère de géométrie? (Notez que je perds de très grandes fonctionnalités.) Y a-t-il un problème avec la topologie des fonctionnalités supprimées qui les efface? En ce qui concerne cette dernière question, je suppose que build.polylines et les opérations propres que je fais initialement devraient prendre soin de cela, mais je ne suis pas entièrement certain, et je n'arrive pas à trouver de bonnes instructions qui répondent à cela. Y a-t-il?
Appréciez toutes les informations que les gens peuvent donner, en particulier celles basées sur une expérience personnelle avec l'outil v.generalize.
Roger
la source
Réponses:
Réponse de l'équipe de développement GRASS.
"La disparition des polygones [dans la v 6.4.1] s'est produite parce que les frontières lissées qui violaient la topologie vectorielle ont été supprimées, après quoi toutes les frontières qui étaient topologiquement incorrectes. violer la topologie vectorielle. "
la source