Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 04 January 2010 22:31

janhsh
Participant occasionnel
Lieu: Herstal
Date d'inscription: 11 Sep 2005
Messages: 10
Site web

Recherche méthode "rapide" pour arrondir des coordonnées

Bonjour,

J'ai un grand nombre de dossiers (±1000 par lot) contenant des shapefiles et j'ai besoins, dans une procédure de traitement automatisée, d'arrondir les coordonnées des entités de ces fichiers.

J'ai essayé avec une routine en vb utilisant les arc-objet d'esri

La méthode utilisée étant la suivante
- Création d'une geodatabase temporaire avec une précision de 1mm (précision finale des données)
- Import des shp dans la geodatabase
- Re-export en shp

Ca fonctionne très bien, mais le temps de traitement de cette phase d'arrondi est beaucoup trop long (plusieurs jours rien que pour cette phase alors que le reste du traitement se fait en moins d'une journée).

Je recherche donc une méthode intégrable dans mon script de traitement, pouvant être basée sur des librairies libre, pour obtenir le même résultat mais dans des temps beaucoup plus raisonnables.

Hors ligne

 

#2 Tue 05 January 2010 00:33

rouault
Participant assidu
Date d'inscription: 26 Apr 2009
Messages: 168

Re: Recherche méthode "rapide" pour arrondir des coordonnées

Ca devrait être tout à fait réalisable en utilisant la partie vecteur (OGR) de GDAL/OGR ( http://gdal.org/ogr ). Pour les meilleures performances, il faudrait coder en C++  ou en C (je ne garantis évidemment pas le gain au niveau temps d'exécution, mais en tout état de cause ça ne néessite pas de phase d'import/export. On peut même modifier 'en place' le shapefile traité. A bencher !). Sinon pour les réfractaires à C/C++ l'utilisation de l'API Python d'OGR doit permettre de faire le job également, avec des perfos moindres bien sûr. Pour gratter le max de performance, utiliser shapelib directement (en C) : http://shapelib.maptools.org/

Dernière modification par rouault (Tue 05 January 2010 00:33)

Hors ligne

 

#3 Tue 05 January 2010 09:07

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Recherche méthode "rapide" pour arrondir des coordonnées

Bonjour,

En python, un petit extrait de la doc que je suis en train d'écrire :

Code:

import os, sys
from osgeo import ogr
 
#Nom et géométrie d'un shapefile
ds_ref = ogr.Open('D:/monShapeFile.shp', update = 0)
Layer_ref = ds_ref.GetLayer()
print "Layer name : " + Layer_ref.GetName()
print "Number of features : " + str(Layer_ref.GetFeatureCount())
 
#Traitement sur l'objet Layer_ref
 
# Export de la sélection
driver = ogr.GetDriverByName('ESRI Shapefile')
ds_dest=driver.CreateDataSource('D:/maSelection.shp')
ds_dest.CopyLayer (Layer_ref ,  'maSelection')
ds_dest.Destroy()
 
ds_ref.Destroy()

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

Pied de page des forums

Powered by FluxBB