Généralisation de grands jeux de données à l'aide de partitions
Les outils de géotraitement qui prennent en compte plusieurs thèmes de données contextuellement doivent charger toutes les données en entrée dans la mémoire avant de commencer à les traiter. Les limites de mémoire de ces outils peuvent être aisément dépassées par des jeux de données volumineux ou par un grand nombre de jeux de données en entrée. Le partitionnement est une méthode de subdivision d'une grand quantité de données en ensembles d'entités plus petits, plus gérables.
Lorsque les outils sont exécutés sur des données partitionnées, chaque partition est traitée séquentiellement. Les entités situées sur ou près des limites de partition sont gérées soigneusement pour éviter les différences. Les données supplémentaires au-delà de chaque partition sont chargées par l'outil et prises en compte pendant le traitement, mais seules les entités de la partition sont modifiées à ce moment-là. Le résultat est une sortie définitive transparente.
En général, s'il existe collectivement plus d'environ 100 000 entités dans toutes les couches en entrée, envisagez d'utiliser le partitionnement pour exécuter l'outil. Les outils suivants peuvent être activés pour le partitionnement :
- Outil Agréger des polygones
- Outil Réduire les détails de route
- Outil Délimiter les zones construites
- Outil Détecter les conflits graphiques
- Outil Fusionner les routes séparées
- Outil Résoudre des conflits de construction
- Outil Résoudre les conflits de routes
- Outil Réseau routier affiné
Procédure d'activation du partitionnement
Le partitionnement est activé pour les outils de géotraitement répertoriés ci-dessus en spécifiant une classe d'entités de partition dans le paramètre d'environnement de géotraitement Partitions cartographiques. Ce paramètre permet d'inviter les outils adaptés à traiter séquentiellement les entités en entrée par blocs plutôt qu'en une seule fois.
Les entités de partition peuvent être toute classe d'entités surfaciques qui fractionne conceptuellement des données en entrée en blocs logiques. Une classe d'entités de partitions doit couvrir raisonnablement la zone d'intérêt et diviser les entités en entrée de manière équitable. Idéalement, chaque partition ne contiendra pas plus d'environ 50 000 entités, en tenant compte des entités provenant de toutes les couches en entrée. Les partitions trop grandes dépassent encore les limites de la mémoire, mais l'utilisation de partitions trop petites diminue les éléments pris en compte par l'outil, et la qualité des résultats peut en pâtir.
Éléments à utiliser comme partitions
Les entités de partition peuvent provenir de quelques sources différentes. Certains workflows peuvent déjà inclure des partitions logiques inhérentes, telles que les étendues de données indiquées sur un ensemble contigu de cartes imprimées. Si les feuilles de carte sont modélisées en tant que polygones, elles constitueraient probablement des partitions idéales. Dans ce cas, vous pourriez utiliser l'outil Entités de l'index du quadrillage pour créer une grille d'entités surfaciques rectangulaires. Celles-ci constitueront des partitions acceptables si les données en entrée sont réparties relativement uniformément sur la zone d'intérêt.
Dans la cartographie Web, la structure de tuilage du cache peut constituer un ensemble de partitions adéquat. Envisagez d'utiliser l'outil Structure de tuilage du cache de serveur de carte en polygones pour créer une grille des polygones représentant cette structure. Ce workflow, similaire à l'utilisation d'étendues de feuille de carte, est un workflow valide lorsque les entités en entrée sont réparties quelque peu uniformément.
Dans certains workflow, un jeu de données peut inclure une classe d'entités qui forme des partitions contiguës naturelles, telles que les comtés ou les codes postaux. Si ces entités couvrent et divisent correctement les entités en entrée, ils peuvent être utilisés en tant que partitions. C'est une bonne approche avec les distributions des données qui varient en densité. Par exemple, les polygones de code postal pouvant être plus petits dans les endroits où existe une plus grande densité de résidences, les codes postaux peuvent constituer de bonnes partitions lors de la résolution de conflits de bâtiments.
Si aucun polygone adapté n'est disponible, vous pouvez en créer spécifiquement quelques-uns pour les besoins de la partition. Utilisez l'outil Créer des partitions cartographiques pour créer un ensemble contigu de polygones qui englobe un nombre approximativement égal d'entités en entrée.
Conditions liées à la partition
- La taille de chaque partition ne doit pas contenir un nombre de données en entrée susceptible de dépasser la capacité de l'outil. Ce seuil est déterminé en général par le nombre d'entités de toutes les couches en entrée et la complexité de ces entités. Il varie également quelque peu selon l'outil exécuté et la façon dont les paramètres ont été définis. En règle générale, utilisez des partitions qui contiennent un maximum de 50 000 entités en entrée.
- Les entités de partition doivent être une classe d'entités surfaciques ou un fichier de formes de polygone avec une référence spatiale valide.
- Les entités de partition doivent être correctes topologiquement. Les contours de polygone adjacents doivent correspondre, et il ne peut pas y avoir de superpositions. Les trous entre les entités de partition sont acceptables, mais les entités de partition ne peuvent pas être des polygones multi-parties ou des polygones à trous. Les polygones doivent avoir une géométrie simple, sans superposition.
- Chaque polygone de partition doit avoir une surface supérieure à zéro. Les partitions nulles ou vides ne sont pas traitées et déclenchent un avertissement. Ces partitions sont ignorées lors du traitement.
- Les entités de partition doivent représenter une subdivision logique des entités en entrée qui seront traitées par les outils qui respectent ce paramètre. Les entités en entrée doivent être réparties de manière quasi équitable parmi les entités de partition.
- L'étendue des entités en entrée doit être couverte par les entités de partition.
- La géométrie de la partition doit être la plus simple possible. En effet, les géométries complexes ont une incidence sur les performances de l'outil lorsque le partitionnement est activé.
Fonctionnement du fonctionnement avec le partitionnement
Lorsque le partitionnement est activé (en spécifiant une classe d'entités de partitions dans le paramètre d'environnement de géotraitement Partitions cartographiques), les outils activés par la partition traiteront les données en entrée dans les sections, comme cela est défini par les partitions. Les partitions sont traitées dans l'ordre de l'ID d'objet de chaque partition. Pour traiter uniquement des zones spécifiques de la carte, utilisez une couche dans la carte comme variable d'environnement, puis sélectionnez uniquement les entités de partition pertinentes avant le traitement.
Même lorsque les données sont partitionnées, il peut y avoir des cas où la quantité de données en entrée délimitée par une partition dépasse encore les limites de la mémoire de l'outil de traitement. Dans ce cas, le traitement de cette partition échoue et le traitement de la partition suivante commence. Les messages de géotraitement identifient les partitions qui n'ont pas été traitées. Un champ appelé ETAT est ajouté à la classe d'entités de partitions. Il peut afficher une des mentions suivantes indiquant son état après les tentatives de traitement.
- 0 - Non traité
- 1 - En cours de traitement
- 2 – Traité avec succès
- 3 - Mémoire insuffisante
- 4 - Erreur
Si vous devez conserver l'état de traitement apparaissant dans le champ ETAT, ajoutez un champ aux données et calculez les valeurs du champ correspondant au champ ETAT avant d'exécuter le prochain outil activé par la partition.