Toutes les évolutions du produit, version par version : nouvelles capacités, corrections et effets mesurés. Sectora est en bêta privée ; les versions suivent un versionnage sémantique.
Sectoriser des unités existantes (IRIS, communes, secteurs) avec une charge composite
Jusqu'ici, une sectorisation à charge composite construisait toujours son propre carroyage. Un nouveau champ « Unités spatiales » permet de regrouper à la place des polygones déjà en place — IRIS, communes, secteurs existants — en y agrégeant les sources du graphe de charge.
Ajouté
Unités spatiales explicites. Un champ optionnel « Unités spatiales » accepte une couche surfacique du projet : ses polygones deviennent les unités à regrouper, et toutes les sources du graphe de charge (semis de points, réseaux linéaires, emprises surfaciques) y sont agrégées avant l'équilibrage. Le carroyage automatique reste le comportement par défaut.
Agrégation fidèle à chaque géométrie source. Un semis de points compte ses entités dans l'unité qui les contient ; un réseau linéaire est proraté au prorata de la longueur tombant dans chaque unité ; une emprise surfacique au prorata de sa surface. Les entités hors de toute unité — les couches d'unités ne pavent pas toujours l'emprise des données — sont rattachées à l'unité la plus proche, et le nombre concerné est reporté.
Filtre par secteur de nouveau disponible. Avec des unités spatiales, l'attribut de filtre porte sur ces unités : une partition indépendante par valeur redevient possible en charge composite.
Effet mesuré (Lyon — 4 unités surfaciques jointives, semis source de 485 points dont 15 hors emprise des unités)
Entités source rattachées à une unité
485 sur 485
avant : 470 — les entités hors emprise rejoignent l'unité la plus proche
Charge obtenue par unité
132 / 60 / 203 / 90
somme conservée : 485
Limitations connues
L'emboîtement est refusé avec des unités spatiales : les unités choisies jouent déjà le rôle de contenant.
Une couche ne peut pas être à la fois la couche d'unités et une source du graphe de charge.
Un réseau linéaire ou une emprise partiellement hors des unités ne contribue qu'au prorata de la part couverte.
Contraindre les secteurs à l'intérieur de limites administratives et équilibrer une charge issue de plusieurs couches étaient jusqu'ici exclusifs l'un de l'autre. Les deux fonctionnent désormais ensemble.
Ajouté
Emboîtement compatible avec la charge composite. Une génération combinant une frontière en emboîtement et des sources issues d'autres couches était refusée au lancement. Chaque entité source est maintenant rattachée à l'emprise parente la plus proche, puis chaque parent est carroyé, auto-dimensionné et équilibré avec sa propre charge composite. Le nombre de secteurs alloué à chaque parent découle de cette charge complète, et non plus de la seule couche sectorisée.
Aucune entité source perdue. Une entité tombant dans une emprise parente dépourvue d'entité à sectoriser rejoint le groupe voisin le plus proche plutôt que de disparaître du calcul. Une entité à cheval sur deux emprises est rattachée à une seule, selon son point représentatif — même règle que la couche sectorisée.
Effet mesuré (Lyon — semis de 80 points sectorisé, semis source de 60 points, 2 emprises parentes jointives)
Charge du parent ouest
90
avant : 50 — les 40 entités source du parent y sont désormais comptées
Charge du parent est
50
avant : 30
Secteurs alloués (ouest / est)
3 / 2
dérivés de la charge composite
Limitations connues
Le filtre par secteur (partition indépendante par valeur d'attribut) reste incompatible avec la charge composite : utiliser une frontière en emboîtement, qui couvre le même besoin sur une couche surfacique.
Charge composite : toutes les couches de points sont rattachées aux secteurs
En charge composite, une seule couche — la première déclarée dans l'éditeur — recevait la colonne de secteur et servait de référence aux diagnostics. Ce choix implicite disparaît : toutes les couches ponctuelles du graphe de charge sont traitées à égalité.
Ajouté
Colonne de secteur sur chaque couche ponctuelle. Toute couche de points utilisée dans la charge composite reçoit désormais, sur place, la colonne indiquant le secteur qui contient chaque entité — y compris quand la couche sectorisée est un réseau linéaire. Les entités dont la maille a été retirée par une barrière sont rattachées au secteur le plus proche ; les entités sans géométrie sont comptées à part, couche par couche.
Diagnostic de concentration ponctuelle sur chaque couche. L'alerte de charge insécable (entités strictement superposées, qu'aucune finesse de carroyage ne sépare) n'examinait que la première couche. Elle est maintenant produite pour chacune, la cible par secteur restant calculée sur la charge totale. Exemple détecté : 40 entités superposées d'une couche source à 119 % de la cible par secteur, jusqu'ici invisible.
Répartition par secteur détaillée par couche. L'analyse « points par secteur » conserve son cumul et présente en plus le décompte de chaque couche enrichie.
Corrigé
Maillage continu quand des points s'ajoutent à un réseau linéaire. Avec une couche linéaire sectorisée, les mailles sans longueur de réseau étaient écartées — même lorsqu'un semis de points voisin portait de la charge, ce qui fragmentait le carroyage et forçait des secteurs parasites. Les mailles vides sont désormais conservées dès qu'une couche ponctuelle contribue à la charge, et écartées seulement si toutes les couches contributrices sont linéaires ou surfaciques.
Effet mesuré (Lyon — réseau linéaire rectiligne de 3,1 km sectorisé, semis source de 40 points à 1,3 km au nord)
Composantes connexes du carroyage
31
avant : 120
Entités du semis source rattachées à un secteur
40 sur 40
avant : 0
Couches ponctuelles portant la colonne de secteur (charge à deux couches de points, 80 + 45 entités)
2 sur 2
avant : 1 sur 2
Note
Sous les sélecteurs d'attribut (centralité, filtre par secteur), l'interface rappelle désormais de quelle couche proviennent les attributs proposés.
Charge composite : calcul sur les données brutes, entité par entité
Les opérateurs du graphe de charge s'appliquent désormais aux données brutes de chaque couche, entité par entité — la répartition sur le carroyage est implicite, au prorata de la fraction de longueur ou de surface de chaque entité dans la maille. L'éditeur reflète ce principe : on choisit une donnée, pas un agrégat.
Corrigé
La multiplication d'attributs retrouve son sens. En charge composite, multiplier deux attributs d'une même couche valait « produit des sommes par maille » — deux entités de valeurs 2 × 3 et 5 × 7 dans la même maille donnaient 70 au lieu de 41. Le résultat est désormais la somme des produits calculés entité par entité, conforme au comportement historique de la charge mono-couche.
Le dénombrement d'un réseau linéaire est additif. Une polyligne source était comptée une fois dans chaque maille traversée, gonflant la charge totale proportionnellement à la finesse du carroyage. Chaque polyligne est désormais répartie fractionnairement entre les mailles traversées : la charge totale égale le nombre de polylignes, quelle que soit la maille.
Ajouté
Attributs numériques sur les couches surfaciques sources. Un nœud d'entrée référençant une couche de polygones peut désormais utiliser un attribut (ex. population, tonnage) en plus de la surface : la valeur de chaque entité est répartie entre les mailles au prorata de la fraction de surface — le total équilibré égale la somme de l'attribut.
Modifié
Libellés de l'éditeur de charge clarifiés. Le sélecteur de source propose « Attributs » (et non plus « Attributs (somme) »), « Surface (m²) » (et non plus « intersectée »), et l'aide décrit la donnée brute de la couche plutôt qu'une « valeur agrégée par maille » — l'agrégation est un mécanisme interne, pas un choix de l'utilisateur.
Effet mesuré (Lyon — semis de 50 points, 3 polylignes rectilignes d'environ 2,6 km)
Dénombrement du réseau linéaire source (charge totale)
3,0
avant : 759 — une unité par polyligne, répartie sur les mailles traversées
Multiplication de deux attributs, deux entités dans une même maille
41
avant : 70 — somme des produits entité par entité
Note
Les emprises surfaciques qui se recouvrent contribuent désormais chacune pour leur propre surface (auparavant, les recouvrements n'étaient comptés qu'une fois via leur union). Les charges composites linéaires (additions et coefficients) restent strictement identiques.
Charge composite : équilibrer des données issues de plusieurs couches
Jusqu'ici, la charge à équilibrer ne pouvait provenir que de la couche sectorisée elle-même. Pour la sectorisation d'un semis de points ou d'un réseau de lignes, l'éditeur de charge accepte désormais des sources issues d'autres couches du projet — par exemple une charge de collecte = points à desservir + 3 × signalements + 0,001 × surface à traiter.
Ajouté
Nœud d'entrée « autre couche » dans l'éditeur de charge. En plus du dénombrement et des attributs de la couche d'entrée, un nœud d'entrée peut référencer une autre couche du projet : sa valeur est agrégée par maille du carroyage — dénombrement ou somme d'un attribut pour un semis de points, longueur pour un réseau linéaire, surface intersectée (en m²) pour une couche surfacique. Les opérateurs existants (addition, multiplication, coefficient) combinent librement ces sources dans une charge unique.
Le maillage couvre toutes les couches contributrices. L'emprise et la résolution du carroyage tiennent compte de l'ensemble des sources : un amas d'une couche secondaire situé hors du semis d'entrée génère ses propres mailles et sa charge est intégralement équilibrée — aucune évaporation. Vérifié sur un semis synthétique de 300 points en deux amas (Lyon), une couche secondaire de 120 points dont un amas excentré et une couche surfacique : la charge totale du maillage restitue exactement la somme des trois contributions.
Modifié
L'éditeur de charge définit seul les données de la génération. Le sélecteur de couche d'entrée disparaît : chaque nœud d'entrée du graphe choisit sa couche puis sa source (dénombrement, longueur, surface ou attribut), et les couches utilisées par la génération sont déduites du graphe au lancement. La première couche de points/lignes du graphe sert de couche de rattachement (elle reçoit la colonne secteur en sortie) ; un graphe limité à une seule couche de polygones conserve la sectorisation de polygones classique.
Conseil de réglage
Les unités des sources ne sont pas homogénéisées : une surface en m² additionnée telle quelle à un dénombrement dominerait l'équilibrage. Pondérer chaque source avec un nœud coefficient (ex. 0,001 × m²) avant de les additionner.
Limitations connues
La charge composite (plusieurs couches) est disponible pour la sectorisation d'un semis de points ou d'un réseau de lignes ; le mode polygones suivra. Incompatible pour l'instant avec le filtre par secteur et l'emboîtement dans des limites administratives (le lancement est bloqué avec un message explicite).
Seule la couche de rattachement est enrichie de la colonne secteur en sortie ; les autres couches sources ne sont pas encore rattachées à leurs secteurs.
Note
Les graphes de charge existants doivent re-préciser la couche de chaque nœud d'entrée (un message le signale dans l'éditeur) avant de relancer une génération.
Sectorisation de points : îlots enfin réglables à toutes les échelles, nouveau mode « continu »
La sectorisation d'un semis de points regroupé en agglomérations distinctes (échelle d'une métropole ou d'un territoire national) produisait facilement des îlots, sans qu'aucun réglage n'ait de prise dessus. Les réglages avancés agissent désormais réellement, et un nouveau mode garantit un maillage d'un seul tenant.
Ajouté
Mode « Continu (aucun îlot) » pour la distance de fusion. Le maillage couvre l'enveloppe convexe du semis d'un seul tenant : aucun secteur « îlots » en sortie (hors lambeaux découpés par une barrière infranchissable, qui reste respectée), contour extérieur lissé. Sur une très grande emprise, la maille est automatiquement grossie pour que le calcul reste fluide. Mesuré sur Paris — semis de 1 907 points regroupés sur 380 localisations, voies d'eau en barrière : l'équilibrage s'améliore aussi (écart max 27,7 → 20,7 %, coefficient de variation 15,7 → 10,0 %).
Corrigé
Le réglage « Distance de fusion / seuil d'îlot » agit à toutes les échelles. Sur un semis en agglomérations distinctes, « serré », « moyen » et « large » produisaient un maillage strictement identique ; les trois positions modulent désormais réellement la fusion ou la préservation des îlots.
La finesse du maillage respecte sa gradation sur les grandes emprises. À l'échelle d'un territoire national, « fin » pouvait produire une maille plus grossière que « moyen » ; l'ordre grossier → moyen → fin est maintenant garanti et chaque niveau se rapproche de sa cible de résolution.
Modifié
La finesse « auto » vise désormais le milieu de la gamme (équivalent à « moyen », compromis résolution / vitesse) au lieu de tendre vers « fin » : sur un semis urbain fragmenté par des barrières, cela évite un maillage inutilement lourd et davantage d'îlots ; « fin » reste disponible pour la résolution maximale.
Effet mesuré (semis synthétique de 2 400 points en 30 agglomérations sur une emprise de 900 km)
Composantes du maillage serré / moyen / large
130 / 41 / 31
avant : 30 / 30 / 30 (identiques)
Mode « continu »
1 seul tenant
avant : 30 îlots
Gradation de la finesse (fin / moyen / grossier)
492 m / 1 129 m / 2 113 m
avant : « fin » (1 982 m) plus grossier que « moyen » (1 834 m)
Conseil de réglage
Pour un rendu sans aucun îlot et des limites extérieures lissées, choisir « continu ». À l'inverse, « serré » préserve désormais nettement plus d'îlots qu'avant (il était sans effet) : re-vérifier les générations configurées en « serré ».
Confort d'usage : écrans d'erreur, dates et analyse
Améliorations de confort : écrans d'erreur plus clairs, dates en français et onglet Analyse qui se sélectionne tout seul.
Corrigé
Une adresse inexistante affiche une vraie page d'erreur (avec retour à l'accueil) au lieu d'une page vide ; le statut renvoyé aux moteurs de recherche est correct.
Les dates s'affichent en français partout (« 9 juil. 2026 » au lieu de « 9 Jul 2026 » dans certaines listes, dont le tableau de bord).
Fin de la notification « Génération terminée » fantôme au retour sur un projet dont la génération était déjà achevée : elle ne s'affiche plus qu'à la fin réelle d'un calcul.
Le rappel des types de géométrie acceptés par l'algorithme ne contient plus de doublon.
Modifié
L'onglet Analyse s'ouvre directement sur la dernière génération terminée, comme le fait déjà la carte, au lieu d'attendre une sélection manuelle.
Tableau de bord plus lisible : grands nombres formatés (« 2 000 000 » au lieu de « 2000000 ») et libellés de navigation harmonisés en français.
Effet mesuré
Données téléchargées avant le premier affichage de l'application : 220 Ko → 91 Ko (compressées, hors fonds de carte et illustrations).
Carte du projet : affichage stable et panneau de couches clarifié
La vue « Carte & Données » du projet gagne en stabilité et en lisibilité.
Corrigé
La carte ne se recharge plus toute seule (fond de plan qui clignote, position et zoom perdus) à la fin d'une génération, à l'import d'une couche ou à la sélection d'un résultat : seules les couches concernées sont ajoutées, retirées ou recadrées.
Fin des messages d'erreur techniques au-dessus de la carte au changement de projet ; les erreurs restantes s'affichent en langage clair et se ferment d'un clic.
Le renommage d'une couche s'applique immédiatement, sans rechargement de la page.
Modifié
Une couche fraîchement importée s'affiche d'office et la carte se recadre sur son emprise ; les couches affichées sont mémorisées et restaurées à la réouverture du projet.
Panneau de couches clarifié : icône de type de géométrie (surfacique, ponctuelle, linéaire) devant chaque nom, action « Renommer » déplacée dans le volet de configuration de la couche, curseur signalant tous les éléments cliquables.
Charge par dénombrement et panneau de maillage clarifié
L'éditeur de charge sait désormais équilibrer le simple nombre d'entités par secteur, et le panneau de configuration du maillage n'apparaît plus quand ses réglages sont ignorés.
Ajouté
Dénombrement dans l'éditeur de charge. Un nœud d'entrée peut prendre « Dénombrement (1 par élément) » comme source, seul ou combiné à des attributs pondérés (addition, multiplication, coefficient) : chaque entité compte pour 1, ce qui permet d'équilibrer les secteurs sur le seul nombre de points.
Corrigé
Le panneau « Configuration de la grille » ne s'affiche plus à tort. Pour un semis de points ou un réseau de lignes, il n'apparaît que si l'option « Forcer la configuration de maillage » est cochée — il était auparavant toujours visible, alors qu'en dimensionnement automatique ses réglages sont ignorés.
Sectorisation de points : semis à localisations répétées et barrières mieux respectées
Correctifs pour la sectorisation d'un semis de points dont de nombreux points partagent les mêmes localisations, et pour le respect des barrières infranchissables.
Corrigé
Un semis regroupé sur peu de localisations distinctes ne bloque plus la génération. Ce cas (plusieurs objets par site) pouvait rendre la génération interminable ; elle aboutit désormais en quelques dizaines de secondes, avec une maille adaptée à l'emprise.
Les barrières infranchissables ne sont plus enjambées par endroits. Certaines mailles restaient à cheval sur les deux rives d'un canal ou d'une rivière, rattachant des points à la mauvaise rive ; toutes les mailles traversées sont désormais découpées le long du tracé et chaque point est rattaché au secteur qui le contient réellement.
Modifié
Le réglage « Finesse du maillage » agit désormais sur tous les types de semis : « grossier » (calcul plus rapide, contours plus larges), « moyen »/« auto » et « fin » (contours plus fidèles, calcul plus long) produisent bien trois découpages distincts, y compris sur un semis regroupé sur peu de localisations — ils étaient identiques dans ce cas.
Effet mesuré (Paris — semis de 1 907 points regroupés sur 380 localisations, voies d'eau surfaciques en barrière infranchissable)
Durée de génération
20 s
avant : > 20 min sans aboutir
Points hors de leur secteur
0
avant : rattachements à la mauvaise rive
Secteurs franchissant une voie d'eau
0
avant : franchissements de canal
Gradation de la finesse (maille)
135 → 68 m
avant : identique pour les trois réglages
Limitations connues
En finesse « grossier », un motif plus étroit que la maille (ex. une île fluviale d'une centaine de mètres) n'est plus résoluble : préférer « moyen » ou « fin » quand de tels motifs comptent.
Si la couche-barrière comporte des lacunes de numérisation, un secteur peut légitimement passer par le trou : vérifier la continuité de la couche en amont.
Maillage : carte propre du bloc principal par défaut
Ajustement du réglage par défaut du générateur Maillage. Auparavant, « Générer des îlots » était coché par défaut : une génération standard incluait d'emblée les moindres groupes de points isolés — dont les erreurs de géocodage lointaines — sous forme de petites taches éparses sans rapport avec l'agglomération.
Modifié
Une génération standard donne directement une carte propre. Le maillage se concentre désormais par défaut sur le bloc principal (la composante principale du semis, l'agglomération réelle) : les groupes de points isolés ne sont plus maillés sauf demande explicite. Pour les inclure (cas d'un territoire réellement multipolaire), il suffit de cocher « Générer des îlots » — l'option reste disponible dans tous les modes et n'écarte, elle, aucun point.
Note
Le comportement de calcul n'a pas changé : seul le réglage par défaut est inversé. Les projets existants conservent leur réglage déjà enregistré ; le nouveau défaut s'applique aux nouveaux projets. Le maillage automatique de Sectora (semis de points/lignes auto-dimensionné) n'est pas concerné.
Maillage : fin des mailles vides inutiles et des points perdus
Le générateur Maillage ne se laisse plus déborder par les points aberrants (erreurs de géocodage éloignées de l'agglomération, très courantes dans les données ouvertes) : fini le tapis de mailles vides.
Corrigé
« Couvrir toute la zone » ne couvre plus que la zone réelle. L'emprise maillée suit désormais une enveloppe concave fidèle à la morphologie du semis (au lieu de l'enveloppe convexe) : les creux internes restent comblés par des mailles à zéro, mais quelques points aberrants ne génèrent plus un immense tapis de mailles vides — ils forment de petits îlots à part.
« Sans îlots » ne jette plus la périphérie. Seuls les groupes de points réellement isolés du bloc principal sont écartés — plus de pans entiers de périphérie urbaine supprimés silencieusement.
Plus aucun point perdu en bordure d'emprise : tous les points sont comptabilisés, y compris ceux situés exactement sur la limite du semis.
Ajouté
Alerte sur les points aberrants. Le journal de génération signale les points anormalement éloignés du reste du semis (effectif, distance, seuil) — dans le générateur Maillage et dans Sectora.
L'option « Générer des îlots » est disponible dans tous les modes ; la décocher est le moyen d'écarter les points aberrants.
Effet mesuré (Bordeaux — 12 172 points, tessellation hexagonale 1 km, réglages par défaut)
Mailles générées
268
avant : 2 511
Part de mailles vides
27 %
avant : 92 %
Emprise maillée
696 km²
avant : 6 524 km²
Points écartés à tort par « sans îlots » (mailles de 500 m) : 180 → 36 (les 36 restants sont réellement isolés).
Note
Le maillage automatique de Sectora (mode semis de points/lignes) reste inchangé ; les grilles déjà générées ne changent pas, le nouveau comportement s'applique à la prochaine génération.
Barrières : cours d'eau et plans d'eau surfaciques pris en compte
Une barrière définie par une couche surfacique (grand cours d'eau ou plan d'eau numérisé comme une surface, cas courant des référentiels publics) était silencieusement ignorée : les secteurs pouvaient la traverser.
Corrigé
Les barrières surfaciques sont désormais respectées, en infranchissable comme en pénalisé : les berges servent de limite, aucun secteur ne traverse la surface ni n'y pénètre, et deux zones d'une même rive ne sont pas séparées inutilement. Vaut pour les deux modes (surfacique et semis de points/lignes).
Ajouté
Intérieur des surfaces en eau retiré du maillage (mode semis de points/lignes, barrière infranchissable) : le lit du cours d'eau ou le plan d'eau n'apparaît plus sous forme de petites zones « îlots » posées au milieu de l'eau. Le nombre de mailles retirées est indiqué dans le journal.
Note
Rien à refaire sur les découpages existants ; les barrières définies par une couche linéaire (polylignes) fonctionnent exactement comme avant.
Équilibrage : fin des secteurs étirés et surchargés
Sur le mode semis de points, certaines découpes produisaient un secteur très étiré et surchargé pendant qu'un autre restait sous-chargé — sans que la compacité ni le poids d'équilibrage n'y changent quoi que ce soit.
Corrigé
Initialisations multiples, la partition la mieux équilibrée est retenue. L'optimisation n'effectuait qu'une seule initialisation et pouvait se figer sur une partition très déséquilibrée. Elle explore désormais plusieurs initialisations (multi-start) et conserve la plus équilibrée, à compacité comparable. Le mode surfacique (polygones) conserve, lui, une initialisation unique (adaptée aux gros volumes).
Effet mesuré (Lyon — semis de 112 000 points, réseau hydrographique en barrière, 20 secteurs, charge portée par un attribut quantitatif)
Rapport entre secteur le plus et le moins chargé
1,5×
avant : 3,1×
Dispersion des charges (coefficient de variation)
0,09
avant : 0,21
Le secteur le plus chargé repasse dans la tolérance ; il subsiste au plus un secteur périphérique sous-chargé (zone peu dense dont l'étendue est imposée par l'équilibrage).
Conseil de réglage
Une finesse plus fine et une distance de fusion plus serrée (plutôt que « moyen » / « large ») produisent un maillage plus détaillé et un équilibrage encore meilleur, au prix d'un temps de calcul un peu plus long.
Correctifs de qualité de rendu sur le mode semis de points combiné à une barrière, observés sur un cas réel dense (métropole lyonnaise).
Corrigé
Plus de lacunes ni d'entailles à l'intérieur des secteurs. Au milieu de certains secteurs apparaissaient de petits vides (mailles sans points) et de fines entailles le long des limites — perçues comme des « arêtes qui reviennent à l'intérieur » du secteur. Ces lacunes sont désormais comblées et les entailles supprimées. Les grands vides légitimes (plans d'eau, emprises non couvertes) restent préservés. Découpage et charges inchangés (correctif purement cartographique).
Barrières fragmentées mieux suivies. Une couche-barrière composée de nombreux tronçons (réseau hydrographique) est raccordée topologiquement en polylignes continues avant la découpe, réduisant les cas où un secteur déborde de l'autre côté.
Effet mesuré (Lyon — semis de 112 000 points, réseau hydrographique en barrière, 20 secteurs)
Lacunes internes des secteurs : ~18 → 0.
Mailles débordant de la barrière : légèrement réduites.
Limitations connues
Là où un tronçon de barrière se termine réellement à l'intérieur du territoire (source, affluent isolé), la maille contenant cette extrémité ne peut pas être coupée et peut encore chevaucher la barrière : quelques débordements subsistent.
Une barrière infranchissable isole parfois de petits secteurs d'un côté qui restent sous-chargés : la charge ne pouvant pas franchir la barrière, ce déséquilibre est intrinsèque à la séparation demandée (et non un défaut de répartition).
Sectora unifié : surfacique et semis de points dans un seul outil
Jusqu'ici, sectoriser une couche surfacique (polygones) et sectoriser un semis de points (ou un réseau linéaire) passaient par deux entrées distinctes, avec des réglages présentés différemment. Les deux ne forment plus qu'un seul outil « Sectora » : on choisit sa couche — surfacique, ponctuelle ou linéaire — et le formulaire s'adapte automatiquement au type de géométrie.
Modifié
Un seul outil pour tous les types de géométrie. Plus besoin de choisir entre deux variantes : « Sectora » accepte indifféremment une couche surfacique (polygones), ponctuelle (semis de points) ou linéaire (réseau). Les réglages communs (nombre de secteurs, compacité, tolérance, équilibrage, centralités, frontières…) sont identiques quel que soit le type de couche.
La charge se définit de la même façon partout. L'éditeur de charge — qui permet de composer la grandeur à équilibrer à partir des attributs — est désormais utilisé aussi bien pour le surfacique que pour les points/lignes. Pour un semis de points, ne rien définir revient à équilibrer le nombre de points ; composer une formule équilibre la grandeur correspondante (population, capacité…). Les anciens sélecteurs rapides « nombre / somme d'un attribut » sont remplacés par cet éditeur unique.
Formulaire qui s'adapte à la couche choisie. Les réglages propres au maillage interne (finesse, distance de fusion, forçage de la configuration de maillage) n'apparaissent que pour les points/lignes ; l'enrichissement d'une couche de points distincte n'apparaît que pour le surfacique. Tout le reste est commun.
Ajouté
Report d'attributs disponible aussi pour les points et lignes. On peut désormais reporter sur chaque secteur des attributs agrégés (dénombrement, somme, moyenne) à partir d'un semis de points, comme c'était déjà possible pour le surfacique.
Note
Aucune action requise : les découpages existants continuent de fonctionner à l'identique.
Semis de points : nombre de secteurs maîtrisé et maillage propre
Sur le mode semis de points / lignes combiné à une barrière (réseau hydrographique…), 20 secteurs demandés pouvaient en produire plus de 80, avec un équilibrage erratique.
Corrigé
Le nombre de secteurs respecte la demande. Les petits fragments isolés par une barrière dense ne deviennent plus chacun un secteur : ils sont regroupés dans la zone « îlots », tandis que les grandes composantes de part et d'autre de la barrière gardent leurs secteurs (au prorata de leur charge). La séparation reste exacte : aucun secteur ne franchit la barrière.
Réglage « distance de fusion » de nouveau opérant. Les niveaux serré / moyen / large n'avaient aucun effet sur un semis localement dense ; ils modulent désormais réellement le comblement des vides du maillage.
Effet mesuré (Lyon — semis de 112 000 points, réseau hydrographique en barrière, 20 secteurs)
Secteurs produits
21
avant : plus de 80
Équilibrage (coefficient de variation)
0,08
avant : ≈ 6,9
Les 21 secteurs = les 20 demandés + une zone « îlots » de résidus réellement détachés.
Résultat stable quelle que soit la finesse du maillage (auparavant : de 168 à 358 secteurs selon le réglage).
Limitations connues
La zone « îlots » regroupe les amas que la barrière isole totalement : on ne peut pas les rattacher sans la franchir. L'option Exclure les îlots permet de les retirer du résultat.
Deux correctifs de qualité de rendu sur le mode semis de points combiné à une barrière : mailles vides parasites en zone « îlots » et débordements le long des barrières.
Corrigé
Îlots vides retirés du résultat. Les mailles sans aucun point isolées en bordure de secteur ou derrière une barrière apparaissaient comme des pavés vides, voire des lacunes au milieu des secteurs. Elles sont désormais supprimées ; la zone « îlots » ne contient plus que les groupes de points réellement détachés du territoire principal.
Discontinuités des barrières fragmentées refermées. Les petits écarts entre tronçons d'une couche-barrière (réseau hydrographique…) sont raccordés automatiquement — sans connecter des tronçons réellement distants — réduisant les débordements de secteurs de l'autre côté.
Limitations connues
Là où un tronçon de barrière se termine réellement à l'intérieur du territoire (source, affluent isolé), un débordement local reste possible ; la séparation reste exacte là où la barrière est continue.
Correctif de qualité géométrique : certains secteurs apparaissaient découpés en plusieurs blocs ne se rejoignant qu'en un point de contact — limites internes visibles, voire une parcelle isolée « pontant » deux blocs par un simple coin.
Corrigé
La continuité territoriale d'un secteur s'appuie désormais sur la seule contiguïté d'arête (dite « rook ») : un contact par un simple sommet (« queen ») ne suffit plus à relier deux blocs au même secteur. Les secteurs ressortent d'un seul tenant, sans pincement ni parcelle pendante.
Vaut pour les deux modes (surfacique et semis de points/lignes).
Effet mesuré (Lyon — semis de points, réseau hydrographique en barrière, 20 secteurs)
Blocs reliés par un simple sommet : 4 → 0 ; les secteurs concernés retrouvent chacun leur continuité territoriale.
Limitations connues
Quelques mailles chevauchant encore une barrière, et des îlots épars résiduels, subsistent — traités séparément.
Les secteurs respectent désormais des barrières physiques ou administratives (cours d'eau, autoroute, limite communale). C'est la capacité la plus structurante ajoutée depuis la lutte anti-spaghetti.
Ajouté
Barrières infranchissables. La barrière agit comme une coupure stricte : aucun secteur ne la franchit, quelle que soit la suite du calcul.
Barrières pénalisées. Le franchissement reste possible mais fortement découragé, avec trois niveaux d'intensité (faible, moyenne, forte). Dissuasion réelle mais probabiliste, pas une garantie absolue.
Emboîtement. Chaque secteur reste entièrement contenu dans son territoire parent (commune, département…), le nombre de secteurs étant réparti entre parents proportionnellement à leur charge. « Aucun secteur ne déborde de son parent » est garanti par construction.
Territoires coupés en deux bien gérés. Une barrière infranchissable sépare légitimement le territoire en plusieurs parties ; le nombre de secteurs demandé est alors réparti entre elles au prorata de leur charge (au moins un chacune), sans qu'aucun côté ne disparaisse.
Explication des frontières. Restitution dédiée du nombre de franchissements résiduels et des coupures appliquées, dans le PDF, l'export de données et un panneau de consultation en direct.
Effet mesuré
Sur données réelles, les barrières pénalisées réduisent d'environ 33 % les franchissements par rapport à un découpage sans barrière.
Limitations connues
Pas encore de points de passage (ponts, échangeurs), de réglage automatique de l'intensité, d'import de référentiels routiers ni d'outil de dessin de barrières — prévus pour des versions ultérieures.
Pas de nouveauté ici, mais une mise au clair : les curseurs avancés sont passés au banc d'essai pour savoir, chiffres à l'appui, ce que chacun change vraiment au résultat. Comportement inchangé.
Effet mesuré
Le poids d'équilibrage est confirmé comme le levier déterminant : réglé à zéro, le résultat sort de la tolérance (écart de charge de 11 à 15 %) ; à sa valeur par défaut, il y entre (2,7 à 9 %). Au-delà, le gain devient marginal.
Le poids de « pénalité de tolérance » s'avère sans effet mesurable au réglage par défaut : il pourrait être retiré dans une prochaine version.
Modifié
La documentation des réglages a été corrigée et enrichie d'une section « impact mesuré des poids », pour choisir ses valeurs en connaissance de cause.
Compacité : un raffinement qui ne crée plus de « spaghettis »
Diagnostic : les zones « spaghetti » (secteurs filandreux qui s'intercalent les uns dans les autres) étaient en grande partie fabriquées par l'étape de lissage des formes elle-même, sur les territoires où la densité de charge est très hétérogène.
Modifié
Le lissage des formes refuse désormais tout ajustement qui créerait une nouvelle intrusion d'un secteur dans un autre.
Le moteur calcule deux résultats finaux — avec et sans lissage — et conserve le meilleur (moins d'intrusions, puis meilleure compacité). Sur les territoires à densité très contrastée, le lissage est automatiquement écarté.
Anti-spaghetti : fin des intrusions entre secteurs
Lutte contre les « spaghettis » : deux secteurs adjacents s'envoyaient mutuellement des excroissances filamenteuses pour récupérer de la charge — un secteur sous-chargé grignotait l'intérieur d'un secteur chargé jusqu'à le couper en deux.
Ajouté
Détection des intrusions. Une zone est jugée « intrusive » lorsqu'un secteur voisin l'entoure nettement plus que le sien — un critère qui fonctionne aussi bien sur tessellations hexagonales que sur carroyages carrés.
Prévention pendant le calcul. L'optimisation décourage activement la formation de ces excroissances au fil de la découpe.
Réparation. Une passe finale résorbe les excroissances restantes (par la pointe) vers le secteur qui les enclave — uniquement si le secteur d'origine conserve sa continuité territoriale et la tolérance de charge.
Restitution. Le nombre d'intrusions résiduelles par secteur est indiqué dans le journal et les statistiques finales.
Arbitrage assumé
La charge prime : une intrusion strictement nécessaire à l'équilibrage n'est pas retirée (mais reste détectée et signalée).
Un moteur jusqu'à 27× plus rapide, plus juste et plus robuste
Refonte majeure issue d'un audit complet du moteur de découpe. Sectora passe de « prototype lent et imprévisible » à « outil exploitable » : mêmes réglages, résultats plus justes, obtenus en une fraction du temps.
Performances
Jeu de 18 563 polygones
~76 s
avant : 130 min
Jeu de 1 662 polygones
~13 s
avant : 354 s
Jeu de 664 polygones
~7 s
avant : 102 s
Le moteur ne recalcule plus tout le territoire à chaque micro-ajustement : seuls les secteurs réellement touchés sont réévalués. Les cartes s'allègent aussi : géométries généralisées pour l'affichage au-delà d'un certain volume (la couche enregistrée, elle, n'est jamais généralisée).
Justesse des calculs
Distances calculées dans une vraie projection métrique, adaptée au territoire. Auparavant, les distances est-ouest étaient fortement dilatées aux latitudes françaises, faussant voisinages et formes.
Sous-charge pénalisée comme la surcharge. Un secteur trop léger est désormais autant corrigé qu'un secteur trop lourd : sur un jeu de test, l'écart maximal passe de 25 % à 9,8 %.
Le respect de la tolérance prime. Entre plusieurs essais de découpe, un résultat dans la tolérance de charge l'emporte toujours sur un résultat plus compact mais hors tolérance.
Réparations plus prudentes. Quand un fragment isolé doit être rattaché à un secteur, il l'est en priorité vers un secteur qui reste sous son plafond de charge.
Robustesse
Messages d'erreur explicites : centralités insuffisantes, nombre de secteurs trop grand, tolérance impossible à tenir (un seul élément dépasse déjà le plafond d'un secteur)… au lieu d'un message générique.
Géométries invalides réparées automatiquement au chargement.
Attribut de centralité interprété largement : « true », « 1 », « oui »… sont correctement reconnus.
Graine aléatoire exposée dans les options avancées : résultats reproductibles à graine fixée.
Multi-secteurs, agrégations et enrichissement de points
Trois nouvelles cordes à l'arc de Sectora : découper par groupes, garnir les secteurs de chiffres agrégés, et étiqueter un semis de points.
Ajouté
Mode multi-secteurs : un découpage indépendant par valeur distincte d'un attribut de regroupement (une agence, un département…), le tout réuni en une seule couche de sortie, chaque zone étant préfixée par son secteur. Le nombre de zones demandé s'applique à chaque secteur.
Agrégations d'attributs : report sur chaque zone d'attributs de la couche d'entrée (dénombrement, somme, moyenne).
Enrichissement d'une couche de points : ajout d'une colonne indiquant, pour chaque point, le secteur qui le contient (jointure spatiale).
Grand ménage sous le capot : tout le suivi des générations est remis à plat — plus lisible, plus fiable, et sans le moindre fichier qui traîne.
Modifié
Le journal de génération et les cartes interactives sont archivés de façon fiable avec chaque génération, et consultables a posteriori.
Journal structuré par étape, aligné sur la barre de progression affichée pendant le calcul (chargement, connexité, partition initiale, optimisation, statistiques, sauvegarde) : on sait toujours où en est la génération et ce qui s'y est passé.
Les secteurs ne démarrent plus au petit bonheur : leurs points de départ sont choisis là où ça compte vraiment.
Ajouté
Détection automatique des centralités (k-means++ pondéré par la charge) : les centres initiaux sont choisis en tenant compte de la charge et de l'éloignement mutuel — les secteurs démarrent là où il y a de la matière, bien répartis sur le territoire.
Mode attribut : un attribut de la couche peut désigner directement les centres de secteur (vos agences, vos dépôts) ; le nombre de secteurs s'en déduit automatiquement.
Réglages d'objectif exposés : compacité, tolérance et poids d'équilibrage ajustables par curseurs.
Effet
Compacité nettement moins aléatoire et convergence plus rapide qu'avec des centres tirés au hasard.
Fini le démarrage à froid : l'optimisation ne part plus d'une page blanche, mais d'une première découpe déjà présentable.
Ajouté
Découpage initial par expansion progressive depuis chaque centralité : chaque secteur grandit de proche en proche, en s'écartant des autres centres et en respectant un plafond de charge, jusqu'à couvrir tout le territoire.
Modifié
L'optimisation démarre désormais toujours d'un découpage initial cohérent (l'ancien démarrage à vide est abandonné). Taux d'échec et temps de convergence fortement réduits.
Connexité et gestion des îlots (territoires fragmentés)
Îles, enclaves, morceaux détachés : jusqu'ici le moteur calait dès qu'un territoire n'était pas d'un seul tenant. Il apprend enfin à composer avec les archipels.
Ajouté
Analyse de connexité du territoire : détection des composantes connexes détachées du bloc principal.
Gestion des îlots : le bloc principal est découpé normalement ; les morceaux non connectés sont soit regroupés dans une zone dédiée, soit exclus, au choix de l'utilisateur.
Limitations connues
Perte « silencieuse » de charge si les îlots portent une part significative du total (seul le journal le signale).
Tout commence ici. Une première version qui sait déjà l'essentiel : prendre un territoire, un nombre de secteurs, et rendre un découpage d'un seul tenant. Grossier, lent, un brin susceptible — mais c'est le pépin d'où tout Sectora a poussé.
Ajouté
Zonage de base. On fournit un territoire et un nombre de secteurs ; Sectora le découpe en autant de zones d'un seul tenant, en cherchant — grossièrement — à équilibrer la charge et à garder des formes à peu près compactes.
Un pipeline en deux temps. D'abord l'évaluation de la charge portée par chaque entité, ensuite l'optimisation de la découpe. Cette colonne vertébrale n'a plus jamais bougé depuis.
Une interface pour tout piloter, et une sortie volontairement simple : une couche avec un secteur fusionné par zone, prête à réutiliser.
État initial — tout, ou presque, restait à écrire
Très lent et assez imprévisible : l'objectif était recalculé de fond en comble à chaque micro-déplacement, sans la moindre borne de durée.
Taux d'erreur élevé : plantage sur les territoires morcelés (non connexes) ou sur les découpes un peu trop ambitieuses.
Compacité au petit bonheur : centres de secteurs tirés au hasard, indice de forme non borné.
Calculs non métriques : distances et voisinages faussés aux latitudes moyennes.
Et pour le reste : ni statistiques, ni export, ni gestion des îlots, des intrusions ou des frontières. Autant de chapitres que les versions suivantes se chargeront d'écrire.