#1 Wed 23 January 2008 15:47
- Trotamundos
- Participant assidu
- Lieu: Geneva
- Date d'inscription: 16 Jan 2007
- Messages: 230
ArcView 9.2 SP4 - Limitation des buffers
Bonjour,
Je cherche à faire un buffer, voire un multi-buffer (un dizaine de ring), sur un polygon comportant près de 300 000 vertex. Du à la complexité du shape, l'outil buffer tourne pendant des heures, parfois quelques minutes seulement, pour ne rien sortir ! J'obtient seulement un shp vide. Y'a t'il une limitation (software ESRI) sur la complexité des features pour sortir des buffers ? Ou une limitation hardware ? J'ai un pentium 4 dual-core 3Ghz avec 2.5 Go RAM. C'est pourtant pas si mauvais que ça...
Hors ligne
#2 Thu 24 January 2008 02:05
Re: ArcView 9.2 SP4 - Limitation des buffers
Bonjour,
Pour avoir fait des multi-buffers sur de nombreuses polylignes la première
chose a voir est : quel est l'outil buffer que vous utiliser ?
Il y en a deux :
un qui provient de la version 8 d'arcgis et qui est récupérable sur la
version 9 , a priori programmé en VB
et un autre qui est dans l'arctoolbox de la version 9 programmé en python
qui se trouve dans analysis tools -> proximity -> multiring buffer
La version python est beaucoup plus efficace mais plante de temps en temps
sur certaines polyligne sans que je comprenne vraiment la raison.
L'autre version marche bien mais la programmation VB sature le travail du
processeur et risque de planté également sur un trop grand nombre de
polyligne.
Autres éléments important lors de la création d'une multiring :
il fait un premier travail de création des buffers puis il les dissolve.
C'est souvent ce disolve qui fait tout planter.
Il y a donc plusieurs solutions :
-tu diminue le nombre de polylignes sur lequel tu travail et tu reconstitue
un fichier global après.
-tu décompose le travail de la multi ring en créant un buffer pour chaque
distance que tu souhaite puis tu les dissolve un a un.
La puissance de ta machine est large par rapport a la mienne (portable DELL
dualcore 2GHz avec 2 giga de ram sur xp pour utiliser moins de ram mais avec
le défaut de n'utiliser qu'un seul des deux cœurs, la prog python utilise la
ram mais jamais tout le processeur, la prog vb utilise plus le processeur)
mais de toute façon ce genre d'opération est très lourde. Lors du dissolve
il va falloir qu'il gère tout les croisements entre les buffers ce qui fait
qu'en travaillant sur 300000 polylignes tu va généré des millions de
croisement, ca fait beaucoup même pour les ordinateurs d'aujourd'hui.
Pour te donner un ordre d'idée j'ai travaillé sur 50 000 routes (soit 52000
km) avec 4 multiring (dont 2 tres simple puisqu'elles étaient a 1 et 2 km ce
qui simplifie bcp le nombre de polygone et deux complexe puisque elles
étaient sur 50 et 100 mètres ce qui augmentent bcp le nombre) et je n'ai
jamais pu toute les faire en même temps. Il a fallut que je travail zone par
zone. Mon travail c'est étalé sur de longues journées...
Bon courage
Matthieu Pette
[Matthieu Pette - Ad Terram] (@Ad_Terram sur le PiouPiou bleu)
~Géomaticien Indépendant~
Hors ligne