géomatique....HELP !

Une difficulté, une précision posez vos questions

Modérateur: WIN32-[GG]

géomatique....HELP !

Messagede remidici le 12 Jan 2018 16:04

Bonjour à vous programmeurs experts !
je m'inscrit aujourd'hui sur votre site car j'y navigue depuis quelques jour où je viens chercher des infos, seulement je suis un NOOB++ du batch alors j'ai besoin de vous; je m'explique:
Je suis un apprenant en géomatique (Géographie+Informatique=~Cartographie) et j'ai récupéré un petit script qui me permet de transformer des données cadastrales en "couches"(=~calques en DAO) de type "ESRI Shapefiles". Il dézippe à deux reprises mes fichiers d'origine (1zip dans un autre) puis fusionne les résultats (commande "-append" de l'outil "ogr2ogr"; outil de géomaticien)
Seulement j'ai deux ou trois petits soucis:
- j'aimerai renommer tous les fichiers de sortie afin de leur rajouter "_2017" à la fin
- j'aimerai aussi que mon script aille faire son job dans tous les dossiers voisins de l'endroit où je le place
- on verra le 3eme soucis plus tard...

Il se nomme "EDIGEO2SHP", il est en pièce jointe, en .txt pour éviter le blocage du forum.

Merci d'avance
Fichiers joints
EDIGEO2SHP.7z
(510 Octets) Téléchargé 25 fois
remidici
Batcheur occasionnel
 
Messages: 2
Inscription: 12 Jan 2018 15:47

Re: géomatique....HELP !

Messagede barnabe0057 le 14 Jan 2018 19:59

Bonjour,

Pour pouvoir t'aider il faudrait plus de détails, par exemple que contiennent les différents dossiers après chaque traitement ?

En attendant je me suis amusé à optimiser ton code :

Code: Tout sélectionner
@echo on
setlocal enableextensions enabledelayedexpansion

set 7zip="C:\Program Files\7-Zip\7z.exe"
set ogr="C:\Program Files\QGIS\bin\ogr2ogr" -f "ESRI Shapefile"

set WORKSPACE=U:\cadastre_com1\com-001

cd /d %WORKSPACE% || exit /B 1

for /f "tokens=*" %%A in ('dir /b /ad "%WORKSPACE%"') do (
    set DOSSIER=%WORKSPACE%\%%~A

    for /f "tokens=*" %%G in ('dir "%%~dpnA\*.zip" /b') do (
        MKDIR !DOSSIER!\TAR
        call %7zip% e "%%~dpnA\%%~nxG" -o!DOSSIER!\TAR\ -r

        MKDIR !DOSSIER!\FEUILLES\
%%~nG
        call
%7zip% e "!DOSSIER!\TAR\%%~nxG" -o!DOSSIER!\FEUILLES\%%~nG\ -r

        MKDIR !DOSSIER!\FEUILLES_SHP\
%%~nG
        call
%ogr% !DOSSIER!\FEUILLES_SHP\%%~nG !DOSSIER!\FEUILLES\%%~nG\*.THF

        MKDIR !DOSSIER!\COMMUNE
        call
%ogr% -append !DOSSIER!\COMMUNE !DOSSIER!\FEUILLES_SHP\%%~nG        
    )

    MKDIR
%WORKSPACE%\FUSION
    call
%ogr% -append %WORKSPACE%\FUSION !DOSSIER!\COMMUNE
)

pause
Endlocal
exit
barnabe0057
King Of Batch
 
Messages: 41
Inscription: 24 Jan 2017 13:41

Re: géomatique....HELP !

Messagede remidici le 15 Jan 2018 11:40

Bonjour, et merci de cette réponse.
Je viens de tester le script que vous m'avez modifié. Malheureusement, pour l'instant il ne fait rien......
J'ai déplacé la commande "-f "shapefile" qui est un argument à écrire après chaque appel de l'exécutable "ogr2ogr" (ogr2ogr est un outil de transformation de fichier, il faut lui dire le type du fichier de sortie que l'on désire à chaque fois)

Le .bat existant crée les dossiers suivants:
Dans chaque dossier existant:
- il dézippe le .tar.bz2 en un .tar et le range dans un premier dossier nommé "TAR"
- il dézippe ce .tar et le range dans un nouveau dossier nommé "feuilles"
- il transforme ce fichier en de multiples "shapefiles" et les range dans un dossier "feuilles.shp"
Enfin; dans le dossier parent; il crée un dossier fusion dans le quel il fusionne entre elles toutes les couches shapefiles des sous-dossiers qui portent le même nom.

En attendant, je continue à chercher et modifier.
remidici
Batcheur occasionnel
 
Messages: 2
Inscription: 12 Jan 2018 15:47

Re: géomatique....HELP !

Messagede barnabe0057 le 16 Jan 2018 00:33

Est-ce que tu peux me passer un de tes fichiers tar.bz2 pour que je puisse tester en situation réelle ?
Tu peux le déposer ici : https://jirafeau.murky-lane.top/

Effectivement quelques erreurs au niveau du script, je ne l'avais pas testé, voilà la correction :
Code: Tout sélectionner
@echo off
setlocal enableextensions enabledelayedexpansion

set WORKSPACE=U:\cadastre_com1\com-001

cd /d %WORKSPACE% || exit /B 1

for /f "tokens=*" %%A in ('dir /b /ad "%WORKSPACE%"') do (call :fonction "%%~dpnA")

pause
Endlocal
exit

:fonction
for /f "tokens=*" %%G in ('dir /b "%~1\*.bz2"') do (

"
%ProgramFiles(x86)%\7-Zip\7z.exe" e "%~1\%%~nxG" -o"%~1\TAR\" -r
"
%ProgramFiles(x86)%\7-Zip\7z.exe" e "%~1\TAR\%%~nG" -o"%~1\FEUILLES\%%~nG\" -r

cls
echo. & echo 1 - Decompression de l'archive
%%~nxG ==^>^> OK
echo. & echo 2 - Extraction de l'archive
%%~nG ==^>^> OK
echo.

"C:\Program Files\QGIS\bin\ogr2ogr.exe" -f "ESRI Shapefile"
%~1\FEUILLES_SHP\%%~nG %~1\FEUILLES\%%~nG\*.THF
"C:\Program Files\QGIS\bin\ogr2ogr.exe" -f "ESRI Shapefile" -append
%~1\COMMUNE %~1\FEUILLES_SHP\%%~nG        

)

MKDIR
%WORKSPACE%\FUSION
"C:\Program Files\QGIS\bin\ogr2ogr.exe" -f "ESRI Shapefile" -append
%WORKSPACE%\FUSION %~1\COMMUNE

goto :eof

rem
barnabe0057
King Of Batch
 
Messages: 41
Inscription: 24 Jan 2017 13:41


Retourner vers Création de batchs, problèmes...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron