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 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
| Option Explicit
Public chemin As String
Public monraster_2 As String
Public chaine_gdalinfo As String
Public T As Double
Public L_Y As Variant
Public Function RoundUp(ByVal vvaleur As Variant, Optional ByVal iNbDecimal As Integer) As Variant
If Abs(iNbDecimal) < 5 Then RoundUp = -Int(-vvaleur * 10 ^ iNbDecimal) / 10 ^ iNbDecimal
End Function
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 Pas_Y 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 Double
Dim L As Variant
Dim L_Y 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
Dim nom_dossier_txt As String
Dim gdal_acces As String
Dim gdal As String
Dim metadonnees As String
Dim laligne
Dim position_pixel As Long
Dim newHour As Variant
Dim newMinute As Variant
Dim newSecond As Variant
Dim waitTime As Variant
'fonction GDAL
Const Gdalinfo As String = "gdalinfo"
'taille du pixel en mètre fournit par GDALINFO
Const Gdal_translate As String = "gdal_translate -of GTiff -srcwin "
'coordo en pixel des coins nord ouest et sud est
Coordxmin = Range("A2")
Coordxmax = Range("B2")
Coordymin = Range("C2")
Coordymax = Range("D2")
'pas terrain que l'on souhaite avoir pour découpage en mètre
L = Range("E2")
L_Y = Range("F2")
I = 0
J = 0
'Initialisation des paramètres, pour 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
gdal = "C:\soft\FWTOOL~1.2\bin"
Open monraster_2 For Output As #1
gdal_acces = "cd" & " " & gdal
chaine_gdalinfo = Gdalinfo & " " & monraster & " " & ">" & " " & monraster & ".txt"
Print #1, gdal_acces
Print #1, chaine_gdalinfo
Close #1 |
Partager