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

#1 Tue 10 July 2012 17:49

batardy
Participant occasionnel
Date d'inscription: 24 Nov 2005
Messages: 43

création de polygones à partir d'excel

Bonjour

Je dispose de la version 9.2 d'arcgis.
Je cherche à générer des polygones à partir d'un fichier excel comprenant : xmin,ymin et xmax,ymax dans 4 colonnes distinctes.
Comment puis je faire ?
Merci
Christophe Batardy
02 40 14 28 01

Hors ligne

 

#2 Wed 11 July 2012 09:07

nitram
Participant assidu
Lieu: Brest
Date d'inscription: 19 May 2009
Messages: 990
Site web

Re: création de polygones à partir d'excel

Bonjour,

1. Soit cet outil, par contre il faudrait une mise en forme du fichier de départ.
http://webhelp.esri.com/arcgisdesktop/9 … Samples%29

Ton fichier devra se présenter comme ceci :

Code:

Polygon
polygon_id part_number
pnt_id x y z m
pnt_id x y z m
...
InteriorRing
pnt_id x y z m
pnt_id x y z m
...
polygon_id part_number
pnt_id x y z m
pnt_id x y z m
...
END

"In the example below, there are two polygons. Polygon zero has two parts. The second part has an interior ring. Polygon one is a normal polygon."


2. Sinon sans mettre en forme le .xls, la manip consisterait à passer par des fichiers de point (ajouter données xy).
Donc réaliser 4 imports différents, pour chacun des coins -> NW (x=XMIN; y=YMAX), NE (x=XMAX; y=YMAX) ... SE  ... SW ...
Combiner les points en un seul shape, enfin réaliser un "point to polygone"

3. Si quelqu'un connait une autre méthode, je suis bien preneur aussi!

Martin

Dernière modification par nitram (Wed 11 July 2012 09:48)

Hors ligne

 

#3 Wed 11 July 2012 14:32

dominique.lys
Participant assidu
Date d'inscription: 5 Oct 2006
Messages: 473
Site web

Re: création de polygones à partir d'excel

Possible aussi avec un petit script python utilisant la librairie pyShp:

http://www.portailsig.org/content/pytho … e-utiliser
http://code.google.com/p/pyshp/

Par exemple en partant d'un fichier csv contenant xmin, ymin, xmax et ymax, du style :
0;0;4;4
4;0;8;4
0;4;4;8
4;4;8;8

Ce bout de code fait le boulot:

Code:

# -*- coding:Latin-1 -*-
import shapefile

#Chemins (à mettre à jour)
txtFilePath="C:\\folder\\poly.csv"
outShpPath="C:\\folder\\output.shp"

#Lecture du fichier texte
fich = open(txtFilePath,"r")
lines = fich.readlines()
fich.close()

#Création du shape
outShp = shapefile.Writer(shapefile.POLYGON)
outShp.field('num','C','2')#ajout d'un champs textuel de 2 caractères

#Peupler le shape
for ind, line in enumerate(lines):
    xmin, ymin, xmax, ymax = map(float, line.split(";"))
    pts = [(xmin, ymin), (xmin, ymax), (xmax, ymax), (xmax, ymin)]
    pts.append(pts[0])#close polygon
    outShp.poly([pts])#liste de liste car un polygone peut être multipart
    outShp.record(str(ind+1).zfill(2))#remplir le champs (ici un numéro en format string)

#Sauver
outShp.save(outShpPath)

A modifier selon les usages

Hors ligne

 

#4 Wed 11 July 2012 15:52

Franck B
Membre
Lieu: PACA
Date d'inscription: 6 Sep 2005
Messages: 1382
Site web

Re: création de polygones à partir d'excel

Bonjour,

Pas vraiment nécessaire de sortir d'ArcGIS pour créer une classe d'entités en Python à partir d'un fichier.
Il est possible d'utiliser l'objet Geometry.
Tu trouveras un exemple ici : Writing geometries.

Bonne journée

Franck

Hors ligne

 

Pied de page des forums

Powered by FluxBB