Commit 2470fda3 authored by Commandre Benjamin's avatar Commandre Benjamin
Browse files

Merge branch 'develop'

parents 27ea2426 03af9c2b
Programme de téléchargement des images Sentinel2 à partir d'un fichier vecteur représentant l'emprise ou de l'identifiant des tuiles S2 à télécharger.
\ No newline at end of file
Programme de téléchargement des images Sentinel2 à partir d'un fichier vecteur représentant l'emprise ou de l'identifiant des tuiles S2 à télécharger.
Exemple d'utilisation :
`python3 telis.py -config config.ini`
......@@ -66,7 +66,7 @@ class Archive():
self.liste_archive = []
self.url = ''
def vector_projection_with_epsg(self, chemin_vecteur, output_path, epsg=32631):
def vector_projection_with_epsg(self, chemin_vecteur, output_path, epsg=32630):
driver = ogr.GetDriverByName('ESRI Shapefile')
......@@ -128,19 +128,20 @@ class Archive():
# Processus to convert the UTM shapefile
# in decimal degrees shapefile with ogr2ogr in command line
utm_outfile = "{0}/UTM_{1}".format(os.path.split(self.emprise)[0], os.path.split(self.emprise)[1])
# utm_outfile = "{0}/UTM_{1}".format(os.path.split(self.emprise)[0], os.path.split(self.emprise)[1])
if os.path.exists(utm_outfile):
os.remove(utm_outfile)
# if os.path.exists(utm_outfile):
# os.remove(utm_outfile)
# wgs84 : 4326
self.vector_projection_with_epsg(self.emprise, utm_outfile, epsg=4326)
# self.vector_projection_with_epsg(self.emprise, utm_outfile, epsg=4326)
# To get shapefile extent
# Avec import ogr
driver = ogr.GetDriverByName('ESRI Shapefile')
# Open shapefile
data_source = driver.Open(utm_outfile, 0)
# data_source = driver.Open(utm_outfile, 0)
data_source = driver.Open(self.emprise, 0)
if data_source is None:
self.logger.error('Could not open file')
......@@ -153,14 +154,10 @@ class Archive():
## Close source data
data_source.Destroy()
area_coord_corner = str(extent_[2]) + ',' + str(extent_[0]) + ',' + str(extent_[3]) + ',' + str(extent_[1])
return "{},{},{},{}".format(extent_[2], extent_[0], extent_[3], extent_[1])
return "{},{},{},{}".format(extent_[0], extent_[2], extent_[1], extent_[3])
def listing_by_tile(self):
nbImage = 0
for tuile in self.liste_tuiles :
self.requete['location'] = tuile
......@@ -172,8 +169,10 @@ class Archive():
def listing_by_coord(self):
self.requete['box'] = self.coord_box_dd()
self.url = "{0}/{1}/api/collections/{2}/search.json?{3}".format(self.serveur, self.resto, self.capteur, urlencode(self.requete))
print(self.url)
self.get_liste_images()
......@@ -287,7 +286,7 @@ class Archive():
sauvegarde = configparser.ConfigParser()
# Pour toutes les images disponible
# Pour toutes les images disponible
for l in self.liste_archive :
# Récupération de la date quand l'image a été prise
......@@ -299,7 +298,7 @@ class Archive():
# Lecture du fichier de sauvegarde
sauvegarde.read("{}/sauvegarde.ini".format(self.dossier_sortie))
# Si la date existe dans le fichier de sauvegarde ...
# Si la date existe dans le fichier de sauvegarde ...
if str(date) in sauvegarde.keys() :
# ... mais pas l'image, on la rajoute dans la liste des images à traiter.
......@@ -373,7 +372,7 @@ class Archive():
del liste_content
# Mis à jour du fichier de sauvegarde
# Mis à jour du fichier de sauvegarde
# Lecture du fichier de sauvegarde
sauvegarde.read("{}/sauvegarde.ini".format(self.dossier_sortie))
......@@ -486,7 +485,7 @@ class Archive():
tuiles_image = []
tuiles_nuage = []
# Options Gdal pour la fusion des bandes
# Options Gdal pour la fusion des bandes
options_vrt = gdal.ParseCommandLine('-resolution highest -srcnodata -10000 -vrtnodata NaN -separate')
self.logger.info("Extraction des images")
......@@ -516,8 +515,8 @@ class Archive():
# liste_bandes.append(gdal.Open(mmap_name))
liste_bandes.append(mmap_name)
# On fusionne les différentes bandes en une seule image
# on découpe l'image selon l'emprise
# On fusionne les différentes bandes en une seule image
# on découpe l'image selon l'emprise
# et on conserve l'image obtenue
vrt = gdal.BuildVRT("", liste_bandes, options=options_vrt)
......@@ -568,7 +567,7 @@ class Archive():
self.logger.debug("Dossier image : {0}".format(dossier))
# On effectue une mosaïque des images qu'on découpe selon l'emprise.
# On effectue une mosaïque des images qu'on découpe selon l'emprise.
Outils.clip(tuiles_image, self.emprise, form="GTiff", dst="{0}/{1}.tif".format(dossier,date))
del tuiles_nuage
......
[donnees]
# chemin/vers/shapefile/emprise
# Le shapefile doit en géographie WGS84 (EPSG:4326)
chemin_emprise =
# chemin/vers/shapefile/zone_etude
# Si vide, zone d'étude = emprise
# Le shapefile doit en géographie WGS84 (EPSG:4326)
chemin_zone_etude =
# Liste des tuiles Sentinel2 à télécharger
......@@ -36,7 +38,7 @@ chemin =
# - Tuile (Regroupe les images en fonction de la tuile sentinel2 auquelle elles correspondent )
groupe = Tuile
# Vrai si extraction des images des archives, faux si téléchagement de celles-ci
# "True" si extraction des images des archives, "False" si téléchagement de celles-ci
extraction = False
[theia]
......
configparser
argparse
requests
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment