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 !.
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GeoRezo est partenaire média de la Conférence Francophone SIG 2017 organisée par ESRI.

Les bénévoles de l'association seront présents les 11 et 12 Octobre aux Docks de Paris.

Le programme est riche, mais vous trouverez bien un  moment pour venir faire une pause au stand GeoRezo, et rencontrer les animateurs du portail francophone de la géomatique.

Nous serons à votre écoute pour partager avec vous notre passion pour l’animation du portail GeoRezo.

L'équipe GeoRezo

#1 mar. 27 juin 2017 09:38

mich
Membre
Lieu: Grenoble
Date d'inscription: 1 août 2007
Messages: 32

GDAL/OGR: Partage d'automatisation

Lors d’une commande, nous devions fournir l’ensemble des données rasters et vecteurs comprises dans le périmètre de notre site.
Cela représentait plus d’une 100 aine de couches vecteurs et plus de 1500 dalles rasters. Au vue du nombre important d’information à transmettre, cette tâche ingrate devenait en plus chronophage…

Ce type de demande devant potentiellement se reproduire, nous nous sommes penchés sur la fabuleuse boîte à outils GDAL/OGR ;-) nous permettant ainsi d’automatiser au maximum ces tâches.

Rentrons dans le vif du sujet :

Outils : Shell OSGeo4W

Les vecteurs :

la méthode est connue mais je la remets :

Créer autant de nouvelles couches découpées en fonction de la zone d'étude pour chaque shape se trouvant dans votre répertoire de travail (celui que vous allez via le SHELL).

Via le shell OSGeo4W se placer dans le répertoire de travail, là où se trouve vos données et où vous devez avoir une couche nommée “site_etude.shp”.

Code:

FOR /r %Q IN (*.shp) DO ogr2ogr -t_srs EPSG:2154 -clipsrc site_etude.shp -f "ESRI Shapefile" "%~dpnQ_decoupe_site_etude.shp" "%Q"

Avant :
C:\REPERTOIRE_DE_TRAVAIL\site_etude.shp
C:\REPERTOIRE_DE_TRAVAIL\DOSSIER1\Zone1.shp
C:\REPERTOIRE_DE_TRAVAIL\DOSSIER2\Reserve.shp
C:\REPERTOIRE_DE_TRAVAIL\DOSSIER1\DOSSIER11\CENXX.shp
...

APRES la commande :
C:\site_etude.shp,
C:\REPERTOIRE_DE_TRAVAIL\DOSSIER1\Zone1.shp, Zone1_zone_etude.shp
C:\REPERTOIRE_DE_TRAVAIL\DOSSIER2\Reserve.shp, reserve_zone_etude.shp
C:\REPERTOIRE_DE_TRAVAIL\DOSSIER1\DOSSIER11\CENXX.shp, CENXX_site_etude.shp
...

Pour les rasters :


Récupérer les rasters (sous forme de tuiles) qui intersectent votre zone d’étude et les copier dans le répertoire nommé EXPORT.

Au préalable, vous devez disposer d’une couche reprenant le contour de votre site que j'ai nommé ici “site_etude.shp” et qui doit se trouver dans le même répertoire que vos rasters.

Ça se décompose en plusieurs étapes :
1/création d'un répertoire EXPORT :
MD EXPORT

2/Réaliser une grille d'assemblage des rasters (*.jp2) du répertoire (table attributaire avec le nom des rasters composant cette grille)
gdaltindex EXPORT\Grille_assemblage.shp *.jp2

3/Découper la grille d'assemblage en fonction du contour du site d'étude.
ogr2ogr -a_srs EPSG:2154 -t_srs EPSG:2154 -s_srs EPSG:2154 -clipsrc site_etude.shp EXPORT\Grille_assemblage_zone_etude.shp EXPORT\Grille_assemblage.shp

4/Récupérer l'ensemble des rasters (contenus dans la table attributaire) dans un fichier CSV
ogr2ogr -f CSV EXPORT\liste_fichier.csv EXPORT\Grille_assemblage_zone_etude.dbf -dialect sqlite -sql "SELECT replace(location,'.jp2','') as NOM_FICHIER FROM Grille_assemblage_zone_etude"

5/Convertir le CSV en TXT
REN EXPORT\liste_fichier.csv liste_fichier.txt

6/Copier les fichiers se trouvant dans le txt dans le dossier EXPORT
FOR /f "tokens=1-2 delims=," %Q IN ('type EXPORT\liste_fichier.txt') DO COPY "%~dpnQ.*" "%~dpQEXPORT"


Vous pouvez chaîner les différentes commandes avec le symbole “&
ce qui donne :

Code:

MD EXPORT & gdaltindex EXPORT\Grille_assemblage.shp *.jp2 & ogr2ogr -a_srs EPSG:2154 -s_srs EPSG:2154 -clipsrc site_etude.shp EXPORT\Grille_assemblage_zone_etude.shp EXPORT\Grille_assemblage.shp & ogr2ogr -f CSV EXPORT\liste_fichier.csv EXPORT\Grille_assemblage_zone_etude.dbf -dialect sqlite -sql "SELECT replace(location,'.jp2','') as NOM_FICHIER FROM Grille_assemblage_zone_etude" & REN EXPORT\liste_fichier.csv liste_fichier.txt & FOR /f "tokens=1-2 delims=," %Q IN ('type EXPORT\liste_fichier.txt') DO COPY "%~dpnQ.*" "%~dpQEXPORT"

Création de la grille d'assemblage et de la gille d'assemblage du site.
http://imagik.fr/images/2017/06/27/shema1.md.png
Contenu de la table attributaire
http://imagik.fr/images/2017/06/27/shema2.png

Dernière modification par mich (mer. 28 juin 2017 09:47)

Hors ligne

 

#2 mar. 27 juin 2017 15:37

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 janv. 2006
Messages: 999
Site web

Re: GDAL/OGR: Partage d'automatisation

Merci pour le partage David.


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#3 mar. 27 juin 2017 17:55

Robin
GeoRezo Team
Lieu: France
Date d'inscription: 31 août 2005
Messages: 13437
Site web

Re: GDAL/OGR: Partage d'automatisation

Très sympa de partager la méthodo, merci. A tester


Association GeoRezo.net

Hors ligne

 

Pied de page des forums

Powered by FluxBB

Partagez  |