Suite du paragraphe sur UMAP.
This commit is contained in:
parent
d92631a7a6
commit
5554d00bea
130
codes/carteLelbc3.py.bak
Normal file
130
codes/carteLelbc3.py.bak
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
''' Programme de placement de tags images sur un fond OpenStreetMap
|
||||||
|
On place des images géotaguées dans un répertoire
|
||||||
|
Le programme en extrait les coordonnées GPS et la date
|
||||||
|
Il crée des tags avec comme titre le nom des fichiers et la date
|
||||||
|
et les place sur le fond de carte aux coordonnées GPS
|
||||||
|
'''
|
||||||
|
|
||||||
|
#importation des module
|
||||||
|
import os(*@\label{ligne:lemoduleos}@*)
|
||||||
|
import folium(*@\label{ligne:modulefolium}@*)
|
||||||
|
import exifread(*@\label{ligne:exifread}@*)
|
||||||
|
|
||||||
|
def lalatitude(ref,GPSLatitude):
|
||||||
|
'''
|
||||||
|
Convertit les coordonnées GPS EXIF en degrés à virgule flottante
|
||||||
|
:param ref, GPSLongitude:
|
||||||
|
:type ref: string, GPSLongitude: exifread.utils.Ratio
|
||||||
|
:rtype: float
|
||||||
|
'''
|
||||||
|
|
||||||
|
d = GPSLatitude.values[0].num(*@\label{ligne:num1}@*)
|
||||||
|
m = GPSLatitude.values[1].num
|
||||||
|
s = GPSLatitude.values[2].num(*@\label{ligne:num2}@*)
|
||||||
|
|
||||||
|
if ref == 'N':
|
||||||
|
latitude = d + (m / 60.) + (s / 3600.)
|
||||||
|
elif ref == 'S':
|
||||||
|
latitude = -1*(d + (m / 60.0) + (s / 3600.0))
|
||||||
|
else:
|
||||||
|
print('La latitude est fausse !')
|
||||||
|
return latitude
|
||||||
|
|
||||||
|
def lalongitude(ref,GPSLongitude):
|
||||||
|
'''
|
||||||
|
Convertit les coordonnées GPS EXIF en degrés à virgule flottante
|
||||||
|
:param ref, GPSLongitude:
|
||||||
|
:type ref: string, GPSLongitude: exifread.utils.Ratio
|
||||||
|
:rtype: float
|
||||||
|
'''
|
||||||
|
|
||||||
|
d = GPSLongitude.values[0].num(*@\label{ligne:num3}@*)
|
||||||
|
m = GPSLongitude.values[1].num
|
||||||
|
s = GPSLongitude.values[2].num(*@\label{ligne:num4}@*)
|
||||||
|
|
||||||
|
if ref == 'W':
|
||||||
|
longitude = -1*(d + (m / 60.0) + (s / 3600.0))
|
||||||
|
elif ref == 'E':
|
||||||
|
longitude = d + (m / 60.0) + (s / 3600.0)
|
||||||
|
else:
|
||||||
|
print('La longitude est fausse !')
|
||||||
|
return longitude
|
||||||
|
|
||||||
|
# Récupération du facteur de zoom
|
||||||
|
print('Facteur de zoom (nombre entier) :\n\
|
||||||
|
9 : grande zone\n\
|
||||||
|
11 : zone\n\
|
||||||
|
13 : village ou ville\n\
|
||||||
|
16 : petite route')
|
||||||
|
facteurZoom = input('Veuillez entrer le facteur de zoom : ')(*@\label{ligne:input}@*)
|
||||||
|
print('Facteur de zoom : {}'.format(facteurZoom))
|
||||||
|
|
||||||
|
# Ouverture de l'image en mode de lecture binaire
|
||||||
|
path = './images/'
|
||||||
|
fichiers=os.listdir(path)(*@\label{ligne:listdir}@*)
|
||||||
|
i = 0 #indice des images(*@\label{ligne:compteurimages}@*)
|
||||||
|
for nom in fichiers:(*@\label{ligne:boucleprincipale}@*)
|
||||||
|
print("{} : {}".format(i,nom))
|
||||||
|
|
||||||
|
adresseImage = "./images/"+nom
|
||||||
|
titre = nom.split('.')[0]
|
||||||
|
f = open(adresseImage, 'rb')
|
||||||
|
|
||||||
|
# Récupération des tags EXIF
|
||||||
|
tags = exifread.process_file(f, details=False)
|
||||||
|
|
||||||
|
for tag in tags.keys():
|
||||||
|
if tag in ('GPS GPSLatitudeRef',
|
||||||
|
'GPS GPSLatitude',
|
||||||
|
'GPS GPSLongitudeRef',
|
||||||
|
'GPS GPSLongitude',
|
||||||
|
'Image ImageDateTime'):
|
||||||
|
latitude = lalatitude(tags['GPS GPSLatitudeRef'].values,
|
||||||
|
tags['GPS GPSLatitude'])
|
||||||
|
longitude = lalongitude(tags['GPS GPSLongitudeRef'].values,
|
||||||
|
tags['GPS GPSLongitude'])
|
||||||
|
date = tags['EXIF DateTimeOriginal']
|
||||||
|
|
||||||
|
try:(*@\label{ligne:try1}@*)
|
||||||
|
print("Latitude : {}, longitude : {}, date : {}".format(latitude,
|
||||||
|
longitude, date))(*@\label{ligne:try2}@*)
|
||||||
|
except NameError:(*@\label{ligne:except}@*)
|
||||||
|
print('Fichier sans données GPS : ',nom)
|
||||||
|
else:(*@\label{ligne:else}@*)
|
||||||
|
#création de l'objet Python carte, centrée sur les coordonnées
|
||||||
|
#latitude et longitude de la première image
|
||||||
|
|
||||||
|
if i == 0:
|
||||||
|
carte = folium.Map(location=[latitude, longitude],zoom_start=facteurZoom)(*@\label{ligne:carte}@*)
|
||||||
|
|
||||||
|
#création d'un marqueur
|
||||||
|
folium.Marker([latitude, longitude],(*@\label{ligne:markgoutte}@*)
|
||||||
|
popup="<h4>{}</h4> <br> <i>{}</i> <br><br> <img src='{}' width='300'"
|
||||||
|
.format(titre,date,adresseImage)).add_to(carte)(*@\label{ligne:gouttepopup}@*)
|
||||||
|
|
||||||
|
#création d'un simple cercle
|
||||||
|
folium.Circle(
|
||||||
|
radius=100,
|
||||||
|
location=[latitude, longitude],
|
||||||
|
popup='Gallet Park',(*@\label{ligne:cerclepopup}@*)
|
||||||
|
color='crimson',
|
||||||
|
fill=False,
|
||||||
|
).add_to(carte)
|
||||||
|
|
||||||
|
#création d'un marqueur en forme de cercle
|
||||||
|
folium.CircleMarker((*@\label{ligne:markcerclepopup}@*)
|
||||||
|
location=[latitude, longitude],
|
||||||
|
radius=50,
|
||||||
|
popup=titre,
|
||||||
|
color='#3186cc',
|
||||||
|
fill=True,
|
||||||
|
fill_color='#3186cc'
|
||||||
|
).add_to(carte)
|
||||||
|
|
||||||
|
#dereferencement des variables pour lever l'exception
|
||||||
|
del latitude, longitude(*@\label{ligne:deref}@*)
|
||||||
|
#changement d'image
|
||||||
|
i = i + 1
|
||||||
|
|
||||||
|
#création du fichier HTML
|
||||||
|
carte.save('ma_carte.html')(*@\label{ligne:sauvegarde}@*)
|
99
codes/creation_carte_umap.py
Normal file
99
codes/creation_carte_umap.py
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
''' Programme de placement de tags images sur un fond OpenStreetMap
|
||||||
|
On place des images géotaguées dans un répertoire
|
||||||
|
Le programme en extrait les coordonnées GPS et la date
|
||||||
|
Il crée des tags avec comme titre le nom des fichiers et la date
|
||||||
|
et les place sur le fond de carte aux coordonnées GPS
|
||||||
|
'''
|
||||||
|
|
||||||
|
#importation des module
|
||||||
|
import os
|
||||||
|
import folium
|
||||||
|
import exifread
|
||||||
|
|
||||||
|
def lalatitude(ref,GPSLatitude):
|
||||||
|
'''
|
||||||
|
Convertit les coordonnées GPS EXIF en degrés à virgule flottante
|
||||||
|
:param ref, GPSLatitude:
|
||||||
|
:type ref: string, GPSLongitude: exifread.utils.Ratio
|
||||||
|
:rtype: float
|
||||||
|
num signifie numérateur et den dénominateur, car les données
|
||||||
|
sont sous forme de fractions
|
||||||
|
'''
|
||||||
|
|
||||||
|
d = GPSLatitude.values[0].num/GPSLatitude.values[0].den
|
||||||
|
m = GPSLatitude.values[1].num/GPSLatitude.values[1].den
|
||||||
|
s = GPSLatitude.values[2].num/GPSLatitude.values[2].den
|
||||||
|
# print("Degrés : ",d," Minutes : ",m," Secondes : ",s)
|
||||||
|
|
||||||
|
if ref == 'N':
|
||||||
|
latitude = d + (m / 60.) + (s / 3600.)
|
||||||
|
elif ref == 'S':
|
||||||
|
latitude = -1*(d + (m / 60.0) + (s / 3600.0))
|
||||||
|
else:
|
||||||
|
print('La latitude est fausse !')
|
||||||
|
return latitude
|
||||||
|
|
||||||
|
def lalongitude(ref,GPSLongitude):
|
||||||
|
'''
|
||||||
|
Convertit les coordonnées GPS EXIF en degrés à virgule flottante
|
||||||
|
:param ref, GPSLongitude:
|
||||||
|
:type ref: string, GPSLongitude: exifread.utils.Ratio
|
||||||
|
:rtype: float
|
||||||
|
num signifie numérateur et den dénominateur, car les données
|
||||||
|
sont sous forme de fractions
|
||||||
|
'''
|
||||||
|
|
||||||
|
d = GPSLongitude.values[0].num/GPSLongitude.values[0].den
|
||||||
|
m = GPSLongitude.values[1].num/GPSLongitude.values[1].den
|
||||||
|
s = GPSLongitude.values[2].num/GPSLongitude.values[2].den
|
||||||
|
# print("Degrés : ",d," Minutes : ",m," Secondes : ",s)
|
||||||
|
|
||||||
|
if ref == 'W':
|
||||||
|
longitude = -1*(d + (m / 60.0) + (s / 3600.0))
|
||||||
|
elif ref == 'E':
|
||||||
|
longitude = d + (m / 60.0) + (s / 3600.0)
|
||||||
|
else:
|
||||||
|
print('La longitude est fausse !')
|
||||||
|
return longitude
|
||||||
|
|
||||||
|
#--------------- Programme principal -----------------------#
|
||||||
|
|
||||||
|
description = "Test"
|
||||||
|
# Ouverture du fichier csv en mode écriture
|
||||||
|
lefichiercsv = open(r"Tags.csv", "w")
|
||||||
|
lefichiercsv.write("name,description,Lat,Lon\n")
|
||||||
|
# Ouverture de l'image en mode de lecture binaire
|
||||||
|
path = './images/'
|
||||||
|
fichiers=os.listdir(path)
|
||||||
|
i = 0 #indice des images
|
||||||
|
for nom in fichiers:
|
||||||
|
print("{} : {}".format(i,nom))
|
||||||
|
|
||||||
|
adresseImage = "./images_reduites/"+nom
|
||||||
|
titre = nom.split('.')[0]
|
||||||
|
f = open(adresseImage, 'rb')
|
||||||
|
|
||||||
|
# Récupération des tags EXIF
|
||||||
|
tags = exifread.process_file(f, details=False)
|
||||||
|
|
||||||
|
for tag in tags.keys():
|
||||||
|
if tag in ('GPS GPSLatitudeRef','GPS GPSLatitude','GPS GPSLongitudeRef','GPS GPSLongitude','Image ImageDateTime'):
|
||||||
|
latitude = lalatitude(tags['GPS GPSLatitudeRef'].values,tags['GPS GPSLatitude'])
|
||||||
|
longitude = lalongitude(tags['GPS GPSLongitudeRef'].values,tags['GPS GPSLongitude'])
|
||||||
|
date = tags['EXIF DateTimeOriginal']
|
||||||
|
|
||||||
|
try:
|
||||||
|
print("Latitude : {}, longitude : {}, date : {}".format(latitude,
|
||||||
|
longitude, date))
|
||||||
|
except NameError:
|
||||||
|
print('Fichier sans données GPS : ',nom)
|
||||||
|
else:
|
||||||
|
# création de la ligne du fichier csv
|
||||||
|
# {{url_du_fichier}}, description, latitude, longitude et date
|
||||||
|
#lefichiercsv.write("{{{{{}}}}}, {}, {}, {}, {}\n".format(nom,description, latitude,longitude, date))
|
||||||
|
lefichiercsv.write("{},{} {{{{http://www.cvgg.org/MontRacine/HautGeneveysSagne/{}}}}},{},{}\n".format(nom,description, nom, latitude,longitude))
|
||||||
|
#dereferencement des variables pour lever l'exception
|
||||||
|
del latitude, longitude
|
||||||
|
#changement d'image
|
||||||
|
i = i + 1
|
||||||
|
lefichiercsv.close()
|
32
codes/creation_carte_umap2.py
Normal file
32
codes/creation_carte_umap2.py
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import os (*@\label{creationcarteumap2:ligne:num1}@*)
|
||||||
|
import exifread(*@\label{creationcarteumap2:ligne:num2}@*)
|
||||||
|
from creation_carte_umap2_coord import *(*@\label{creationcarteumap2:ligne:num3}@*)
|
||||||
|
|
||||||
|
path = './images/'
|
||||||
|
fichiers=os.listdir(path)
|
||||||
|
description = "Description de l'image"
|
||||||
|
|
||||||
|
lefichiercsv = open(r"Tags.csv", "w")
|
||||||
|
lefichiercsv.write("name,description,Lat,Lon\n")
|
||||||
|
i = 0 #indice des images
|
||||||
|
for nom in fichiers:
|
||||||
|
adresseImage = "./images_reduites/"+nom
|
||||||
|
titre = nom.split('.')[0]
|
||||||
|
f = open(adresseImage, 'rb')
|
||||||
|
tags = exifread.process_file(f, details=False)
|
||||||
|
for tag in tags.keys():
|
||||||
|
if tag in ('GPS GPSLatitudeRef','GPS GPSLatitude','GPS GPSLongitudeRef','GPS GPSLongitude','Image ImageDateTime'):
|
||||||
|
latitude = lalatitude(tags['GPS GPSLatitudeRef'].values,tags['GPS GPSLatitude'])
|
||||||
|
longitude = lalongitude(tags['GPS GPSLongitudeRef'].values,tags['GPS GPSLongitude'])
|
||||||
|
date = tags['EXIF DateTimeOriginal']
|
||||||
|
try:
|
||||||
|
print("{} Fichier traité : {}, Latitude : {}, longitude : {}, date : {}"
|
||||||
|
.format(i,nom,latitude,longitude, date))
|
||||||
|
except NameError:
|
||||||
|
print('Fichier sans données GPS : ',nom)
|
||||||
|
else:
|
||||||
|
lefichiercsv.write("{},{} {{{{http://urldelimagesanssonnom/{}}}}},{},{}\n"
|
||||||
|
.format(nom,description, nom, latitude,longitude))
|
||||||
|
del latitude, longitude
|
||||||
|
i = i + 1
|
||||||
|
lefichiercsv.close()
|
22
codes/creation_carte_umap2_coord.py
Normal file
22
codes/creation_carte_umap2_coord.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
def lalatitude(ref,GPSLatitude):
|
||||||
|
d = GPSLatitude.values[0].num/GPSLatitude.values[0].den
|
||||||
|
m = GPSLatitude.values[1].num/GPSLatitude.values[1].den
|
||||||
|
s = GPSLatitude.values[2].num/GPSLatitude.values[2].den
|
||||||
|
if ref == 'N':
|
||||||
|
latitude = d + (m / 60.0) + (s / 3600.0)
|
||||||
|
elif ref == 'S':
|
||||||
|
latitude = -1*(d + (m / 60.0) + (s / 3600.0))
|
||||||
|
else:
|
||||||
|
print('La latitude est fausse !')
|
||||||
|
return latitude
|
||||||
|
def lalongitude(ref,GPSLongitude):
|
||||||
|
d = GPSLongitude.values[0].num/GPSLongitude.values[0].den
|
||||||
|
m = GPSLongitude.values[1].num/GPSLongitude.values[1].den
|
||||||
|
s = GPSLongitude.values[2].num/GPSLongitude.values[2].den
|
||||||
|
if ref == 'W':
|
||||||
|
longitude = -1*(d + (m / 60.0) + (s / 3600.0))
|
||||||
|
elif ref == 'E':
|
||||||
|
longitude = d + (m / 60.0) + (s / 3600.0)
|
||||||
|
else:
|
||||||
|
print('La longitude est fausse !')
|
||||||
|
return longitude
|
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
\documentclass[11pt,a4paper,twoside]{scrartcl}
|
\documentclass[12pt,a4paper,twoside]{scrartcl}
|
||||||
|
|
||||||
\usepackage{OCI}
|
\usepackage{OCI}
|
||||||
|
|
||||||
@ -1294,6 +1294,43 @@ Puis, il faut choisir le calque sur lequel le POI trouvera sa place (éventuelle
|
|||||||
\subsection{Méthode automatique}
|
\subsection{Méthode automatique}
|
||||||
Évidemment, lorsqu'il faut placer cinquante POI, la méthode manuelle s'avère très fastidieuse. Il faut alors avoir recours à un script qui va extraire les informations de position du POI des métadonnées EXIF des images, puis les mettre dans un fichier texte de type csv.
|
Évidemment, lorsqu'il faut placer cinquante POI, la méthode manuelle s'avère très fastidieuse. Il faut alors avoir recours à un script qui va extraire les informations de position du POI des métadonnées EXIF des images, puis les mettre dans un fichier texte de type csv.
|
||||||
|
|
||||||
|
\medskip
|
||||||
|
La première étape est d'utiliser le script du listing \ref{listing:creationcarteumap} dans un répertoire où se trouve le dossier comprenant les images.
|
||||||
|
|
||||||
|
\subsubsection{Fonctionnement du code}
|
||||||
|
|
||||||
|
Aux lignes \ref{creationcarteumap2:ligne:num1} à \ref{creationcarteumap2:ligne:num3}, on importe les modules nécessaires au script. En particulier, le module \emph{OS} (ligne \ref{creationcarteumap2:ligne:num1}) permet de récupérer les noms des fichiers images du répertoire les contenant, le module \emph{exifread} (ligne \ref{creationcarteumap2:ligne:num2}) permet de récupérer les données EXIF des images et enfin le script \emph{creation\_carte\_umap2\_coord} (ligne \ref{creationcarteumap2:ligne:num3}) fournit les fonction de transformation des coordonnées de degrés, minutes, secondes en degrés décimaux.
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
\lstinputlisting[float,
|
||||||
|
language=python,
|
||||||
|
caption={Le code pour récupérer la position des POI},
|
||||||
|
label={listing:creationcarteumap},
|
||||||
|
numbers=left,
|
||||||
|
firstnumber=1,
|
||||||
|
%linerange={8-11,94-130},
|
||||||
|
%firstline=94,
|
||||||
|
%lastline=130,
|
||||||
|
numberstyle=\tiny,
|
||||||
|
numbersep=6pt,
|
||||||
|
stepnumber=2]
|
||||||
|
{codes/creation_carte_umap2.py}
|
||||||
|
|
||||||
|
\lstinputlisting[float,
|
||||||
|
language=python,
|
||||||
|
caption={Le code de conversion des coordonnées.},
|
||||||
|
label={listing:creationcarteumapcood},
|
||||||
|
numbers=left,
|
||||||
|
firstnumber=1,
|
||||||
|
%linerange={8-11,94-130},
|
||||||
|
%firstline=94,
|
||||||
|
%lastline=130,
|
||||||
|
numberstyle=\tiny,
|
||||||
|
numbersep=6pt,
|
||||||
|
stepnumber=2]
|
||||||
|
{codes/creation_carte_umap2_coord.py}
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
\section{Cartes interactives en python}
|
\section{Cartes interactives en python}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
\documentclass[11pt,a4paper,twoside]{scrartcl}
|
\documentclass[12pt,a4paper,twoside]{scrartcl}
|
||||||
|
|
||||||
\usepackage{OCI}
|
\usepackage{OCI}
|
||||||
|
|
||||||
@ -1289,10 +1289,47 @@ Ensuite, on peut placer sans difficulté un POI sur le fond de carte UMAP. Pour
|
|||||||
|
|
||||||
Ensuite seulement, il faut cliquer sur celui-ci et choisir de l'éditer (un petit crayon). Cela permet d'accéder au options du marqueur. Parmi celles-ci se trouve un onglet \emph{Coordonnées} que vous pouvez remplir des valeurs en degrés décimaux obtenus précédemment.
|
Ensuite seulement, il faut cliquer sur celui-ci et choisir de l'éditer (un petit crayon). Cela permet d'accéder au options du marqueur. Parmi celles-ci se trouve un onglet \emph{Coordonnées} que vous pouvez remplir des valeurs en degrés décimaux obtenus précédemment.
|
||||||
|
|
||||||
Puis, il faut choisir le calque sur lequel le POI trouvera sa place (éventuellement à créer précédemment), dans les \emph{Propriétés de la forme} choisir la forme du POI et dans les \emph{Options d'interaction}, sous \emph{Gabarit du contenu de la popup} et en vous aidant de l'aide, vous pouvez construire le contenu de votre POI en plaçant par exemple un titre à l'aide d'un \# et une image à l'aide d'accolades \{\{ url \}\} préalablement rendue disponible sur un site quelconque.
|
Puis, il faut choisir le calque sur lequel le POI trouvera sa place (éventuellement à créer précédemment), dans les \emph{Propriétés de la forme} choisir la forme du POI et dans les \emph{Options d'interaction}, sous \emph{Gabarit du contenu de la popup} et en vous aidant de l'aide, vous pouvez construire le contenu de votre POI en plaçant par exemple un titre à l'aide d'un \# précédant celui-ci et une image à l'aide d'accolades \{\{ url \}\} entourant le lien vers celle-ci, préalablement rendue disponible sur un site quelconque.
|
||||||
|
|
||||||
\subsection{Méthode automatique}
|
\subsection{Méthode automatique}
|
||||||
Évidemment, lorsqu'il faut placer cinquante POI, la méthode manuelle s'avère très fastidieuse. Il faut alors avoir recours à un script qui va extraire les informations d'un fichier texte au format csv.
|
Évidemment, lorsqu'il faut placer cinquante POI, la méthode manuelle s'avère très fastidieuse. Il faut alors avoir recours à un script qui va extraire les informations de position du POI des métadonnées EXIF des images, puis les mettre dans un fichier texte de type csv.
|
||||||
|
|
||||||
|
\medskip
|
||||||
|
La première étape est d'utiliser le script du listing \ref{listing:creationcarteumap} dans un répertoire où se trouve le dossier comprenant les images.
|
||||||
|
|
||||||
|
\subsubsection{Fonctionnement du code}
|
||||||
|
|
||||||
|
Aux lignes \ref{creationcarteumap2:ligne:num1} à \ref{creationcarteumap2:ligne:num3}, on importe les modules nécessaires au script. En particulier, le module \emph{OS} (ligne \ref{creationcarteumap2:ligne:num1}) permet de récupérer les noms des fichiers images du répertoire les contenant, le module \emph{exifread} (ligne \ref{creationcarteumap2:ligne:num2}) permet de récupérer les données EXIF des images et enfin le script \emph{creation\_carte\_umap2\_coord} (ligne \ref{creationcarteumap2:ligne:num3}) fournit les fonction de transformation des coordonnées de degrés, minutes, secondes en degrés décimaux.
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
\lstinputlisting[float,
|
||||||
|
language=python,
|
||||||
|
caption={Le code pour récupérer la position des POI},
|
||||||
|
label={listing:creationcarteumap},
|
||||||
|
numbers=left,
|
||||||
|
firstnumber=1,
|
||||||
|
%linerange={8-11,94-130},
|
||||||
|
%firstline=94,
|
||||||
|
%lastline=130,
|
||||||
|
numberstyle=\tiny,
|
||||||
|
numbersep=6pt,
|
||||||
|
stepnumber=2]
|
||||||
|
{codes/creation_carte_umap2.py}
|
||||||
|
|
||||||
|
\lstinputlisting[float,
|
||||||
|
language=python,
|
||||||
|
caption={Le code de conversion des coordonnées.},
|
||||||
|
label={listing:creationcarteumapcood},
|
||||||
|
numbers=left,
|
||||||
|
firstnumber=1,
|
||||||
|
%linerange={8-11,94-130},
|
||||||
|
%firstline=94,
|
||||||
|
%lastline=130,
|
||||||
|
numberstyle=\tiny,
|
||||||
|
numbersep=6pt,
|
||||||
|
stepnumber=2]
|
||||||
|
{codes/creation_carte_umap2_coord.py}
|
||||||
|
|
||||||
\newpage
|
\newpage
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user