Skip to main content

Généralisation de jeux de données volumineux à l’aide de partitions

Les outils de géotraitement qui prennent en compte plusieurs thèmes de données de manière contextuelle doivent charger toutes les données en entrée en mémoire en amont du traitement. Les limites de mémoire associées à ces outils peuvent être facilement dépassées par de volumineux jeux de données ou de nombreux jeux de données en entrée. Le partitionnement est un moyen de répartir un important volume de données en ensembles d’entités plus petits et plus gérables.

Lorsque les outils sont exécutés sur des données partitionnées, chaque partition est traitée de façon séquentielle. Les entités situées sur ou à proximité des limites de partition sont gérées de près pour éviter les écarts. Des données supplémentaires au-delà de chaque partition sont chargées par l’outil et prises en compte lors du traitement, mais seules les entités de la partition sont modifiées à ce moment-là. Il en résulte une sortie finale directe.

En général, s’il y a plus d’environ 100 000 entités collectivement dans toutes les couches en entrée, ou si les entités sont complexes avec un grand nombre de sommets, pensez à utiliser le partitionnement pour exécuter l’outil. Les outils suivants peuvent être activés pour le partitionnement :

Comment activer le partitionnement

Le partitionnement est rendu possible pour les outils de géotraitement mentionnés ci-dessus en spécifiant une classe d’entité de partition dans le cadre de l’environnement de géotraitement Partitions cartographiques. Utiliser ce paramètre invite les outils concernés à traiter les entités en entrée séquentiellement en portions plutôt que toutes en même temps.

La classe d’entités de partition devrait couvrir sensiblement la zone d’intérêt et répartir de manière assez égale les entités en entrée. Les partitions trop volumineuses dépassent toujours les limites de mémoire, mais utiliser des partitions trop petites diminue les considérations contextuelles de l’outil, et la qualité des résultats pourrait en pâtir.

Éléments utiliser comme partitions

Les entités de partition peuvent provenir de différentes sources. Certains flux de travail peuvent déjà inclure des partitions logiques inhérentes, comme les étendues de données affichées sur un ensemble contigu de cartes imprimées. Les feuilles cartographiques modélisées sous forme de polygones sont souvent 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 constituent des partitions raisonnables à condition que les données en entrée soient relativement uniformément réparties dans la zone d’intérêt.

En cartographie web, le schéma de tuilage de cache peut constituer un ensemble approprié de partitions. Envisagez d’utiliser l’outil Structure de tuilage du cache de serveur de carte en polygones pour créer une grille de polygones représentant ce schéma. À l’instar de l’utilisation des étendues de feuilles cartographiques, c’est un flux de travail valide lorsque les entités en entrée sont relativement uniformément réparties.

Dans certains flux de travail, un ensemble de données peut inclure une classe de caractéristiques qui forme des partitions naturellement contiguës, telles que les comtés ou les codes postaux. En supposant que ces entités couvrent et répartissent de manière appropriée les éléments en entrée, elles peuvent être utilisées comme partitions. Il s’agit là d’une bonne approche avec des distributions de données qui varient en densité. Par exemple, les polygones des codes postaux sont probablement plus petits là où la densité de logements est plus élevée, donc les codes postaux peuvent constituer de bonnes partitions pour résoudre des conflits de bâtiments.

Si aucun polygone adapté n’est immédiatement accessible, vous avez également la possibilité d’en créer spécifiquement pour le partitionnement. Utilisez l’outil Créer des partitions cartographiques pour générer un ensemble contigu de polygones qui englobent un nombre à peu près égal d’entités en entrée ou de sommets.

Exigences de partition

  • La taille de chaque partition doit être telle qu’elle n’enferme pas plus de données en entrée que ce qui dépasserait les capacités de l’outil. Ce seuil est généralement déterminé par le nombre d’entités provenant de toutes les couches en entrée et la complexité de ces entités. Cela varie également selon l’outil utilisé et la façon dont les paramètres ont été définis. En règle générale, il convient de tenir compte des partitions qui ne contiennent pas plus d’environ 50 000 entités en entrée. Si vous utilisez des sommets comme méthode de partition, choisissez une valeur basée sur la quantité de mémoire disponible. Bien que cela varie selon l’outil, 1 million de sommets utilisent environ 0,5 Go de mémoire.

  • 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. Il peut s’agir d’un jeu d’entités liées spatialement, tel que des comtés ou autres limites administratives, de polygones qui représentent des feuilles cartographiques individuelles, comme ceux créés avec l’outil Entités de l’index du quadrillage ; ou des partitions de polygones créées spécifiquement dans cet objectif par l’outil Créer les partitions cartographiques.

  • 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 aussi simple que possible. Des géométries complexes impactent la performance de l’outil lorsque le partitionnement est activé.

Comment fonctionne le traitement avec le partitionnement

Lorsque le partitionnement est activé (en spécifiant une classe d’entités de partition dans le cadre de l’environnement de géotraitement Partitions cartographiques), les outils compatibles avec les partitions traitent les données en entrée en sections, telles que définies par les partitions. Les partitions sont traitées dans l’ordre de l’identifiant d’objet de chaque partition. Pour traiter uniquement des zones spécifiques de la carte, utilisez une couche de la carte comme variable d’environnement, puis sélectionnez uniquement les entités de partition pertinentes avant le traitement. Si la classe d’entité de partition ne couvre pas entièrement les entrées, seules les zones couvertes par les partitions sont traitées.

Même en cas de partitionnement des données, il se peut que la quantité de données en entrée délimitée par une seule 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 passe à la partition suivante. La messagerie de géotraitement indique quelles partitions n’ont pas été traitées. Un champ nommé STATUT est ajouté à la classe d‘entité de partition, et renseigné par l’une des instructions suivantes décrivant son état :

  • 0 – Non traité

  • 1 – Traitement en cours

  • 2 – Traité avec succès

  • 3 – Mémoire insuffisante

  • 4 – Erreur

Conseil :

Si vous devez conserver l’état de traitement actuel dans le champ STATUT, ajoutez un nouveau champ aux données et calculez le champ dans le champ STATUT en amont de l’exécution du prochain outil compatible avec la partition.