banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#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

Forestis
Participant assidu
Lieu: Aniane (Hérault)
Date d'inscription: 5 Sep 2005
Messages: 168
Site web

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

 

Pied de page des forums

Powered by FluxBB