1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
| Public Sub batch()
Dim Coordxmin As Long
Dim I As Long
Dim J As Long
Dim I2 As Long
Dim J2 As Long
Dim Pas As Long
Dim Pas2 As Long
Dim Pas3 As Long
Dim CoordXvalid As Long
Dim CoordYvalid As Long
Dim Coordxmax As Long
Dim Coordymin As Long
Dim Coordymax As Long
Dim Gdalcy2 As Long
Dim Gdalcy1 As Long
Dim Gdalcx1 As Long
Dim Gdalcx2 As Long
Dim X As Integer
Dim Y As Integer
Dim T As Variant
Dim L As Variant
Dim dossier As Object, Rep As Object
Dim chemin As String
Dim MonBatch As String
Dim Monbacth_info As String
Dim bat As String
Dim monraster_src As Object
Dim objFichier As Object
Dim objAppli As Object
Dim descrFichier As String
Dim monraster As String
Dim monraster_2 As String
Dim chaine_gdalinfo As String
Dim NomFic As String, Chaine As String, Chaine2 As String, Chaine3 As String, chaine4 As String
Dim bat_sans_bat As String
Dim nom_dossier As String
'fonction GDAL
Const Gdalinfo As String = "gdalinfo"
Const Gdal_translate As String = "gdal_translate -of GTiff -srcwin "
'taille du pixel en mètre fournit par GDALINFO
T = Range("E2")
'pas terrain que l'on souhaite avoir pour découpage en mètre
L = Range("F2")
'coordo en pixel des coins nord ouest et sud est
Coordxmin = Range("A2")
Coordxmax = Range("B2")
Coordymin = Range("C2")
Coordymax = Range("D2")
'calcul du pas pour en pixel
Pas = (L / T)
I = 0
J = 0
'calcul du nombre d'itérations nécessaires pour les calculs en appliquant la focntion d'arrondi supérieur
X = RoundUp((Coordxmax - Coordxmin) / Pas - 1)
Y = RoundUp((Coordymax - Coordymin) / Pas - 1)
'Initialisation de tous les paramètres, afin de compléter le fichier batch
'Active l'appli shell pour lancer l'ouverture du répertoire
Set dossier = CreateObject("Shell.Application")
'Ouvre la boîte de dialogue "sélection d'un répertoire"
Set Rep = dossier.BrowseForFolder(&H0&, "Sélectionner un répertoire", &H1&)
'Si le chemin est vide, alors prend le chemin que l'on donne
If Not Rep Is Nothing Then
Set Rep = Rep.items.Item
chemin = Rep.Path
End If
'saisir le nom du fichier batch que l'on va mettre dans le répertoire choisit précédemment
MonBatch = InputBox("Saisir le nom du Fichier batch TRANSLATE")
Monbacth_info = InputBox("saisir le nom du batch pour GDALINFO")
'concatenation du chemin d'accès
bat = chemin & "\" & MonBatch
'retire au chemin d'accès l'extention du fichier .bat
bat_sans_bat = Left(bat, Len(bat) - 4)
'Active l'appli shell pour lancer l'ouverture du répertoire source des données raster
Set monraster_src = CreateObject("Shell.Application")
'Ouverture de la boîte de dialogue pour sélectionner le fichier voulu
Set objFichier = monraster_src.BrowseForFolder(&H0&, "Veuillez indiquer le chemin d'accès au fichier " & descrFichier & " à importer", &H4000&)
monraster = chemin & "\" & objFichier
monraster_2 = chemin & "\" & Monbacth_info
Open monraster_2 For Output As #1
chaine_gdalinfo = Gdalinfo & " " & monraster & " " & ">" & " " & monraster & ".txt"
Print #1, chaine_gdalinfo
'"cd" & " " & chemin & "\",
Close #1
nom_dossier = "C:\soft\FWTools2.1.1\setfw.bat"
Shell "cmd.exe /K " & nom_dossier & ">" & "cd" & " " & chemin & ">" & Monbacth_info, vbNormalFocus |
Partager