Suite

Boolean If then instructions dans ModelBuilder et modèle répétitif ?

Boolean If then instructions dans ModelBuilder et modèle répétitif ?


J'ai un grand modèle en plusieurs étapes qui parcourt les classes d'entités dans un dossier en prenant plusieurs points lat longs horodatés et remplit plusieurs champs dans la table attributaire. Une fois le modèle terminé, je cherche à établir une déclaration if/then basée sur le dérivé « KMPerHour ». Si des enregistrements sont supérieurs à 40 km/h, je dois supprimer les points situés au-dessus de ce seuil et répéter l'intégralité du modèle en utilisant le sous-ensemble des données. Une fois que tous les segments sont en dessous du seuil de 40 km/h, le modèle s'arrêtera. Je sais que j'aurai besoin d'utiliser une boucle while, mais je ne sais pas comment le faire. Je joins deux captures d'écran. L'une est une capture d'écran de la fin du modèle et l'autre est le début du modèle avec l'itération. si quelqu'un pouvait aider avec les prochaines étapes pour établir la déclaration if then :

Si tous les enregistrements de 'KmperHour'<40, arrêtez le modèle, sinon supprimez tous les points au-dessus de 40 et utilisez le nouvel ensemble de données comme entrée du modèle.


Solution rapide et sale : itérez (Pendant que) jusqu'à ce que la route maximale soit < 40 km/h, en utilisant votre fonction SORT pour trouver la route avec le km/h le plus élevé. Ensuite, sélectionnez tout sauf cette route. Ensuite, connectez une boucle de rétroaction de la variable de sortie à l'ensemble de données d'origine ; chaque fois que le modèle s'exécute, il exclura la route avec le km/h le plus élevé et continuera à itérer jusqu'à ce que la variable km/h soit inférieure à 40.