#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
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
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