<?xml 
version="1.0" encoding="utf-8"?>
<rss version="2.0" 
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
>

<channel xml:lang="fr">
	<title>www.mesmaths.com</title>
	<link>http://www.mesmaths.com/</link>
	<description>site pr&#233;sentant les cours de math&#233;matiques de Florent Girod, professeur de math&#233;matiques &#224; l'Externat Notre Dame &#224; Grenoble</description>
	<language>fr</language>
	<generator>SPIP - www.spip.net (Sarka-SPIP)</generator>

	<image>
		<title>www.mesmaths.com</title>
		<url>https://www.mesmaths.com/local/cache-vignettes/L144xH58/siteon0-1ef1e.jpg</url>
		<link>http://www.mesmaths.com/</link>
		<height>58</height>
		<width>144</width>
	</image>



 
	<item xml:lang="fr">
		<title>3-itin&#233;raire routier</title>
		<link>https://www.mesmaths.com/spip.php?article422</link>
		<guid isPermaLink="true">https://www.mesmaths.com/spip.php?article422</guid>
		<dc:date>2023-06-20T11:39:30Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Florent Girod</dc:creator>



		<description>Gr&#226;ce &#224; la fonction Router de la biblioth&#232;que pyroutelib3, il va &#234;tre possible de g&#233;n&#233;rer automatiquement un itin&#233;raire entre deux points donn&#233;s. pour commencer Ci-dessous un code permettant de voir le fonctionnement des fonctions relatives &#224; Router ; copiez/collez-le dans Pyzo et faites-le fonctionner : code &#224; copier/coller ##import des biblioth&#232;ques from pyroutelib3 import Router import folium ##choix du type de parcours et de l'icone router = Router(&quot;car&quot;)#on cherche &#224; construire un parcours (...)

-
&lt;a href="https://www.mesmaths.com/spip.php?rubrique114" rel="directory"&gt;5-Cartographie&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Gr&#226;ce &#224; la fonction &lt;strong&gt;Router&lt;/strong&gt; de la biblioth&#232;que &lt;strong&gt;pyroutelib3&lt;/strong&gt;, il va &#234;tre possible de g&#233;n&#233;rer automatiquement un itin&#233;raire entre deux points donn&#233;s.&lt;/p&gt; &lt;div class=&quot;onglets_bloc_initial&quot;&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;pour commencer&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;Ci-dessous un code permettant de voir le fonctionnement des fonctions relatives &#224; Router ; copiez/collez-le dans Pyzo et faites-le fonctionner :&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;code &#224; copier/coller&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;##import des biblioth&#232;ques&lt;br /&gt; from pyroutelib3 import Router&lt;br /&gt; import folium&lt;br /&gt; &lt;br /&gt; ##choix du type de parcours et de l'icone&lt;br /&gt; router = Router(&quot;car&quot;)#on cherche &#224; construire un parcours pour : car, cycle, foot, horse, tram, train&lt;br /&gt; icone=&quot;car&quot;#choix de l'icone des marqueurs&lt;br /&gt; &lt;br /&gt; ##on identifie les points de d&#233;part et d'arriv&#233;e&lt;br /&gt; point_depart = (45.128046, 5.588483)&lt;br /&gt; point_arrivee = (45.0667, 5.55)&lt;br /&gt; &lt;br /&gt; depart = router.findNode(point_depart[0], point_depart[1])&lt;br /&gt; arrivee = router.findNode(point_arrivee[0], point_arrivee[1])&lt;br /&gt; status, route = router.doRoute(depart, arrivee)&lt;br /&gt; if status == 'success':&lt;br /&gt; routeLatLons = list(map(router.nodeLatLon, route))&lt;br /&gt; #routeLatLons est un tuple qui stocke les latitudes et les longitudes&lt;br /&gt; #routeLatLons[0] est la liste des latitudes&lt;br /&gt; #routeLatLons[1] est la liste des longitudes&lt;br /&gt; &lt;br /&gt; ##initialisation de la carte et choix de l'&#233;chelle&lt;br /&gt; c= folium.Map(location=[(point_depart[0]+point_arrivee[0])/2, (point_depart[1]+point_arrivee[1])/2], zoom_start=13)#carte centr&#233;e sur le milieu du segment [depart ; arrivee]&lt;br /&gt; #on marque le d&#233;part&lt;br /&gt; folium.Marker(routeLatLons[0], popup=&quot;D&#233;part&quot;, icon=folium.Icon(icon=icone, prefix=&quot;fa&quot;, color=&quot;green&quot;)).add_to(c)&lt;br /&gt; #on marque l'arriv&#233;e&lt;br /&gt; folium.Marker(routeLatLons[-1], popup=&quot;Arriv&#233;e apr&#232;s &quot;+str(distance)+ &quot; km&quot;, icon=folium.Icon(icon=icone, prefix=&quot;fa&quot;, color=&quot;red&quot;)).add_to(c)&lt;br /&gt; &lt;br /&gt; ##on trace la route&lt;br /&gt; folium.PolyLine(routeLatLons, color=&quot;red&quot;, weight=2.5, opacity=1).add_to(c)#on trace la route en une couleur voulue&lt;br /&gt; &lt;br /&gt; ##carte sauvegard&#233;e&lt;br /&gt; c.save('maRoute.html')&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/br&gt;
&lt;p&gt;&lt;strong&gt;A faire&lt;/strong&gt; : choisissez un autre lieu de d&#233;part et un autre lieu d'arriv&#233;e ; modifier le type de mode de circulation et observez.&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;distance&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;Il faut tout d'abord bien noter que dans ce programme, &lt;code class='spip_code' dir='ltr'&gt; routeLatLons &lt;/code&gt; est une liste qui stocke les coordonn&#233;es de nombreux points qui composent le parcours.&lt;/p&gt; &lt;p&gt;Dans cette biblioth&#232;que, &lt;strong&gt;une fonction permet de calculer directement la distance entre deux points&lt;/strong&gt; dont on conna&#238;t les coordonn&#233;es (latitude, longitude).&lt;/p&gt; &lt;p&gt;Sa syntaxe est : &lt;code class='spip_code' dir='ltr'&gt;distance( coord(point) , coord(point suivant) )&lt;/code&gt;.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;A faire&lt;/strong&gt; : cr&#233;er une liste &lt;code class='spip_code' dir='ltr'&gt;d[]&lt;/code&gt; qui contiendra la distance entre deux points successifs du parcours, et une liste &lt;code class='spip_code' dir='ltr'&gt;d_cum[]&lt;/code&gt; qui contiendra la distance cumul&#233;e entre le point de d&#233;part et un point du parcours.&lt;/p&gt; &lt;p&gt;&lt;i&gt;Aide&lt;/i&gt; : la fonction &lt;code class='spip_code' dir='ltr'&gt;sum(d)&lt;/code&gt; retourne la somme des valeurs contenues dans la liste &lt;code class='spip_code' dir='ltr'&gt;d&lt;/code&gt;.&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;##calcul des distances cumul&#233;es&lt;br /&gt; L=len(routeLatLons)#taille de la liste = nombre de points&lt;br /&gt; d=[]#initialisation de la distance : liste vide&lt;br /&gt; d_cum=[]#initialisation de la distance cumul&#233;e: liste vide&lt;br /&gt; for i in range(1, L):&lt;br /&gt; d.append(router.distance(routeLatLons[i-1],routeLatLons[i]))#liste des distances entre deux points&lt;br /&gt; d_cum.append(sum(d))#liste des distances cumul&#233;es&lt;br /&gt; distance=round(d_cum[-1], 2)#&#233;criture arrondie &#224; deux chiffres apr&#232;s la virgule&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;marquage de l'itin&#233;raire&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;On peut &#224; pr&#233;sent marquer des points sur l'itin&#233;raire donnant par exemple le cumul de la distance au fur et &#224; mesure.&lt;/p&gt; &lt;p&gt;On rappelle :&lt;/p&gt; &lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; pour marquer un point : &lt;code class='spip_code' dir='ltr'&gt;folium.Circle((latitude, longitude), radius=2)&lt;/code&gt; place un cercle de rayon 2 (un point) au lieu dont les coordonn&#233;es (latitude, longitude) sont pr&#233;cis&#233;es.&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code' dir='ltr'&gt;d_cum=[i]&lt;/code&gt; donne la valeur de la distance cumul&#233;e entre le point de d&#233;part et i&lt;sup&gt;&#232;me&lt;/sup&gt; point du parcours.&lt;/li&gt;&lt;li&gt; pour indiquer du texte relatif &#224; un point, on ajouter comme param&#232;tre &lt;code class='spip_code' dir='ltr'&gt;popup=&quot; texte &quot;&lt;/code&gt; dans la fonction &lt;code class='spip_code' dir='ltr'&gt;folium.Circle&lt;/code&gt; pr&#233;c&#233;dente.&lt;/li&gt;&lt;/ul&gt;
&lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;##on marque certains points&lt;br /&gt; pas=10&lt;br /&gt; for i in range(1, L, pas):#on positionne des marqueurs tous les ...pas... points&lt;br /&gt; folium.Circle(routeLatLons[i], radius=2, popup=&quot;point n&#176;&quot;+str(i)+&quot; : &quot;+str(round(d_cum[i],2))+&quot; km&quot;).add_to(c)&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;sultat attendu&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;&lt;span class='spip_document_1948 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/png/res.png&quot; class=&quot;fancybox&quot; title=&quot;PNG - 466.9 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH447/res-aca08.png&quot; width='500' height='447' alt=&quot;PNG - 466.9 ko&quot; style='height:447px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>2-parcours</title>
		<link>https://www.mesmaths.com/spip.php?article421</link>
		<guid isPermaLink="true">https://www.mesmaths.com/spip.php?article421</guid>
		<dc:date>2023-06-20T11:39:23Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Florent Girod</dc:creator>



		<description>Nous allons ajouter progressivement sur une carte un parcours avec divers &#233;l&#233;ments. trace GPS Les compteurs de v&#233;lo (type Garmin) ou montres de ce type enregistrent les coordonn&#233;es GPS. Voici deux fichiers .gpx pr&#234;ts &#224; l'emploi, d&#233;j&#224; convertis correctement avec une extension .csv : parcours1 parcours2 Vous pouvez travailler &#224; partir de vos propres donn&#233;es ; ci-dessous une aide pour le faire : aide pour utiliser ses propres donn&#233;es Une fois le compteur (ou la montre) connect&#233; &#224; (...)

-
&lt;a href="https://www.mesmaths.com/spip.php?rubrique114" rel="directory"&gt;5-Cartographie&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;Nous allons ajouter progressivement sur une carte un parcours avec divers &#233;l&#233;ments.&lt;/p&gt; &lt;div class=&quot;onglets_bloc_initial&quot;&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;trace GPS&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;Les compteurs de v&#233;lo (type Garmin) ou montres de ce type &lt;strong&gt;enregistrent les coordonn&#233;es GPS&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;Voici deux fichiers &lt;strong&gt;.gpx&lt;/strong&gt; pr&#234;ts &#224; l'emploi, d&#233;j&#224; convertis correctement avec une extension &lt;strong&gt;.csv&lt;/strong&gt; :&lt;/p&gt; &lt;table class=&quot;spip&quot;&gt;
&lt;tbody&gt;
&lt;tr class='row_even'&gt;
&lt;td&gt;&lt;dl class='spip_document_1946 spip_documents spip_documents_center'&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.mesmaths.com/IMG/csv/tour2.csv&quot; title='Comma Separated Values - 538.4 ko' type=&quot;text/csv&quot;&gt;&lt;img src='https://www.mesmaths.com/local/cache-vignettes/L52xH52/csv-50508.png' width='52' height='52' alt='Comma Separated Values - 538.4 ko' style='height:52px;width:52px;' /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:120px;'&gt;&lt;strong&gt;parcours1&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;/td&gt;
&lt;td&gt;&lt;dl class='spip_document_1945 spip_documents spip_documents_center'&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.mesmaths.com/IMG/csv/tour3.csv&quot; title='Comma Separated Values - 693.5 ko' type=&quot;text/csv&quot;&gt;&lt;img src='https://www.mesmaths.com/local/cache-vignettes/L52xH52/csv-50508.png' width='52' height='52' alt='Comma Separated Values - 693.5 ko' style='height:52px;width:52px;' /&gt;&lt;/a&gt;&lt;/dt&gt;
&lt;dt class='spip_doc_titre' style='width:120px;'&gt;&lt;strong&gt;parcours2&lt;/strong&gt;&lt;/dt&gt;
&lt;/dl&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Vous pouvez travailler &#224; partir de vos propres donn&#233;es ; ci-dessous une aide pour le faire :&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;aide pour utiliser ses propres donn&#233;es&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;Une fois le compteur (ou la montre) connect&#233; &#224; l'ordinateur, on t&#233;l&#233;charge le fichier retra&#231;ant un parcours ; sur un compteur Garmin, le fichier est en .fit&lt;/p&gt; &lt;p&gt;On doit le convertir en .gpx&lt;/p&gt; &lt;p&gt;Ce site &lt;a href=&quot;https://www.gpsies.com/convert.do?language=fr&amp;client=summit&quot; class='spip_out' rel='external'&gt;https://www.gpsies.com/convert.do?language=fr&amp;client=summit&lt;/a&gt; le fait ; apr&#232;s s'&#234;tre inscrit, on peut simplement faire la conversion en d&#233;posant le fichier .fit ; un fichier .gpx est rendu ; on l'enregistre ensuite avec l'extension .csv.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Petite manipulation &#224; faire&lt;/strong&gt; : &lt;font color=blue&gt;il faut supprimer toutes les espaces &lt;font color=black&gt;(qui sont comptabilis&#233;es en python et qui poseront probl&#232;me).&lt;/p&gt; &lt;p&gt;Pour cela, faire &lt;strong&gt;Ctrl H&lt;/strong&gt;, puis taper une espace dans la partie 'rechercher', rien dans la partie 'remplacer' et demander &#224; remplacer partout.&lt;/p&gt; &lt;p&gt;Une &lt;a href=&quot;https://www.dropbox.com/s/3cttlblq4gcwl39/Untitled.mp4?dl=0&quot; class='spip_out' rel='external'&gt;vid&#233;o&lt;/a&gt; pour illustrer.&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;font color=black&gt;&lt;/font&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;import&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;On va &lt;strong&gt;importer&lt;/strong&gt; dans un programme Python &lt;strong&gt;un fichier .csv&lt;/strong&gt; contenant de nombreuses informations, notamment les &lt;font color=blue&gt;coordonn&#233;es GPS (latitude, longitude)&lt;font color=black&gt; de nombreux points, leur &lt;font color=blue&gt;altitude&lt;font color=black&gt; et &lt;font color=blue&gt;l'heure&lt;font color=black&gt; &#224; laquelle on se trouvait &#224; cet endroit.&lt;/p&gt; &lt;p&gt;En voici le code comment&#233; :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;##importation des biblioth&#232;ques&lt;br /&gt; import os&lt;br /&gt; import folium&lt;br /&gt; &lt;br /&gt; ##fonction permettant de stocker les donn&#233;es qui nous concernent dans des listes&lt;br /&gt; def lire_fich(file):&lt;br /&gt; f = open(file, mode = &quot;r&quot;)#ouverture du fichier en mode lecture (&quot;r&quot; pour read)&lt;br /&gt; lc, la, lt = [], [], [] #initalisation des listes lc (liste coordonn&#233;es) / la (liste altitudes) / lt (liste temps)&lt;br /&gt; for ligne in f:&lt;br /&gt; if ligne[:5] == &quot;&lt;trkp&quot;:#recherche des lignes contenant &lt;trkp&lt;br /&gt; l = ligne.split('&quot;')#on trie les donn&#233;es s&#233;par&#233;es par &quot; par .split('&quot;')&lt;br /&gt; lc.append( (float(l[1]), float(l[3])) )#on ne conserve que les valeurs voulues&lt;br /&gt; elif ligne[:3] == &quot;&lt;el&quot;:#recherche des lignes contenant &lt;el&lt;br /&gt; l = ligne.split(&quot;ele&quot;)#on trie les donn&#233;es s&#233;par&#233;es par ele par .split('ele')&lt;br /&gt; la.append( float(l[1][1:-2]) )#on ne conserve que les valeurs voulues&lt;br /&gt; elif ligne[:3] == &quot;&lt;ti&quot;:#recherche des lignes contenant &lt;ti&lt;br /&gt; l = ligne.split(&quot;:&quot;)#on trie les donn&#233;es s&#233;par&#233;es par : par .split(':')&lt;br /&gt; lt.append( int(l[0][-2:]+l[1]+l[2][:2]) )#on ne conserve que les valeurs voulues&lt;br /&gt; f.close()#on ferme le fichier&lt;br /&gt; return lc, la, lt #on retourne trois listes ; la premi&#232;re est une &quot;liste de listes&quot; car chaque valeur est un couple de coordon&#233;es.&lt;br /&gt; &lt;br /&gt; ##programme principal&lt;br /&gt; data=lire_fich(&quot;tour3.csv&quot;)#on d&#233;code le fichier gps -&gt; data est un tuple (~une liste) dont le premier terme est le couple de coordonn&#233;es, le second l'altitude et le troisi&#232;me donne le temps&lt;br /&gt; c= folium.Map(location=[data[0][0][0], data[0][0][1]],zoom_start=12)#intialisation de la carte aux premi&#232;res coordonn&#233;es gps, avec un zoom de 12&lt;br /&gt; L=len(data[0])#nombre de points dans le fichier&lt;br /&gt; &lt;br /&gt; #des marqueurs pour le d&#233;part et l'arriv&#233;e (on y indiquera l'altitude)&lt;br /&gt; folium.Marker(data[0][0], popup=&quot;DEPART altitude : &quot;+str(data[1][0]), icon=folium.Icon(icon=&quot;bicycle&quot;, prefix=&quot;fa&quot;, color=&quot;green&quot;)).add_to(c)&lt;br /&gt; folium.Marker(data[0][L-1], popup=&quot;ARRIVEE altitude : &quot;+str(data[1][0]), icon=folium.Icon(icon=&quot;bicycle&quot;, prefix=&quot;fa&quot;, color=&quot;red&quot;)).add_to(c)&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; folium.PolyLine(data[0], color=&quot;red&quot;, weight=2.5, opacity=1).add_to(c)#on trace la route en une couleur voulue&lt;br /&gt; &lt;br /&gt; c.save('monParcours3.html')#sauvegarde du fichier en extension .html&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;A faire&lt;/strong&gt; : modifier quelques param&#232;tres dans ce code (la couleur du parcours, la mani&#232;re d'indiquer le d&#233;part et l'arriv&#233;e) et visualiser les effets en rafra&#238;chissant la page (par F5).&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;profil&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;On peut &#224; pr&#233;sent exploiter les donn&#233;es stock&#233;es dans &lt;code class='spip_code' dir='ltr'&gt;data&lt;/code&gt; et chercher &#224; produire un &lt;strong&gt;profil du parcours&lt;/strong&gt;.&lt;/p&gt; &lt;p&gt;En effet, &lt;code class='spip_code' dir='ltr'&gt;data[1]&lt;/code&gt; est une liste qui contient toutes les altitudes.&lt;/p&gt; &lt;p&gt;On pourra dans un premier temps repr&#233;senter ces altitudes en supposant que la distance parcourue entre deux marqueurs est la m&#234;me.&lt;/p&gt; &lt;p&gt;On obtient une courbe du type :
&lt;span class='spip_document_1947 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/png/profil.png&quot; class=&quot;fancybox&quot; title=&quot;PNG - 79.8 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH249/profil-4cc23.png&quot; width='500' height='249' alt=&quot;PNG - 79.8 ko&quot; style='height:249px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;###profil du parcours&lt;br /&gt; import matplotlib.pyplot as plt&lt;br /&gt; abscisse=[]&lt;br /&gt; for i in range(L):&lt;br /&gt; abscisse.append(i)&lt;br /&gt; plt.plot(abscisse, data[1])&lt;br /&gt; plt.show()&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;kilom&#233;trage&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;On peut chercher &#224; donner un &lt;strong&gt;cumul&#233; du kilom&#233;trage&lt;/strong&gt; qui serait indiqu&#233; par exemple sur chaque 'popup'&lt;/p&gt; &lt;p&gt;On utilise pour cela la fonction suivante (pas &#233;vidente du tout !!)&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;code de la fonction distance&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;###distance entre deux points&lt;br /&gt; import math#pour utiliser la fonction racine carr&#233;e (sqrt)&lt;br /&gt; &lt;br /&gt; def distance(origin, destination):#fonction donnant la distance entre deux points connaissant leurs coordonn&#233;es gps ; la variable &quot;origin&quot; est un couple de valeurs (long, lat) de m&#234;me que la variable &quot;destination&quot;&lt;br /&gt; lat1, lon1 = origin&lt;br /&gt; lat2, lon2 = destination&lt;br /&gt; radius = 6371 # km&lt;br /&gt; &lt;br /&gt; dlat = math.radians(lat2-lat1)&lt;br /&gt; dlon = math.radians(lon2-lon1)&lt;br /&gt; a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(math.radians(lat1)) \&lt;br /&gt; * math.cos(math.radians(lat2)) * math.sin(dlon/2) * math.sin(dlon/2)&lt;br /&gt; c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))&lt;br /&gt; d = radius * c&lt;br /&gt; &lt;br /&gt; return d#distance donn&#233;e en km&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/br&gt;
&lt;p&gt;Ainsi, &lt;code class='spip_code' dir='ltr'&gt;distance( data[0][0] , data[0][1])&lt;/code&gt; donne la distance (en km) entre les deux premiers points relev&#233;s par le GPS.
&lt;/br&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;A faire&lt;/strong&gt; : stocker dans une liste &lt;code class='spip_code' dir='ltr'&gt;d_entre&lt;/code&gt; les distances entres deux points GPS, puis dans une liste &lt;code class='spip_code' dir='ltr'&gt;d_cum&lt;/code&gt; la distance parcourue depuis le d&#233;part.&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;##distance et distance cumul&#233;e&lt;br /&gt; d_entre=[]&lt;br /&gt; d=0&lt;br /&gt; d_cum=[]&lt;br /&gt; &lt;br /&gt; for i in range(L-1):&lt;br /&gt; d_entre.append(distance(data[0][i] , data[0][i+1]))&lt;br /&gt; d=d+distance(data[0][i] , data[0][i+1])&lt;br /&gt; d_cum.append(d)&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;des points sur le parcours&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;On peut &#233;galement positionner &lt;strong&gt;des points le long du parcours qui indiqueront par exemple l'altitude&lt;/strong&gt; du lieu.&lt;/p&gt; &lt;p&gt;Les points &#233;tant trop nombreux, on ne les placera pas tous.&lt;/p&gt; &lt;p&gt;Voici le code :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;pas=100&lt;br /&gt; for i in range(0, L, pas):#on positionne des marqueurs tous les ...pas... points&lt;br /&gt; folium.Circle([data[0][i][0], data[0][i][1]], radius=2, popup=&quot;point n&#176;&quot;+str(i)+&quot; : &quot;+str(data[1][i])+&quot; d'altitude&quot;).add_to(c)&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;A faire&lt;/strong&gt; : modifier l'indication donn&#233;e par chaque point afin qu'elle renseigne sur (au choix) : la distance partielle parcourue, le d&#233;nivel&#233; cumul&#233;.&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;remarques&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;On peut &#224; pr&#233;sent tracer le '&lt;strong&gt;vrai profil&lt;/strong&gt;' du parcours, en construisant les points d'abscisse 'distance parcourue' et d'ordonn&#233;e 'altitude'&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;##vrai profil&lt;br /&gt; import matplotlib.pyplot as plt&lt;br /&gt; d_cum.insert(0, 0)#on ajoute &#224; la liste d_cum 0 en premi&#232;re position&lt;br /&gt; plt.plot(d_cum, data[1])#pour rappel, data[1] est une liste contenant les altitudes des points&lt;br /&gt; plt.show()&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;hr class=&quot;spip&quot; /&gt;
&lt;p&gt;D&#233;termination du d&#233;nivel&#233; cumul&#233; (positif et n&#233;gatif)&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;##d&#233;nivel&#233; cumul&#233;&lt;br /&gt; cum_pos=0&lt;br /&gt; cum_neg=0&lt;br /&gt; &lt;br /&gt; for i in range(L-1):&lt;br /&gt; delta=data[1][i+1]-data[1][i]&lt;br /&gt; if delta&gt;0:&lt;br /&gt; cum_pos+=delta&lt;br /&gt; else:&lt;br /&gt; cum_neg-=delta&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>1-une carte</title>
		<link>https://www.mesmaths.com/spip.php?article420</link>
		<guid isPermaLink="true">https://www.mesmaths.com/spip.php?article420</guid>
		<dc:date>2023-06-20T11:39:16Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Florent Girod</dc:creator>



		<description>On va montrer comment cr&#233;er pas &#224; pas une carte &#224; laquelle on va ajouter des informations gr&#226;ce &#224; un programme python pour commencer Faire fonctionner le code suivant : import folium c= folium.Map(location=[45.188529, 5.724524],zoom_start=10) c.save('maCarte.html') question 1 : Que s'est-il pass&#233; ? r&#233;ponse Une page web s'ouvre, centr&#233;e sur Grenoble, &#224; l'&#233;chelle du d&#233;partement. remarque : on peut par la suite zoomer &#224; l'aide de la molette de la souris ou d'une ic&#244;ne -/+ en haut &#224; gauche de la (...)

-
&lt;a href="https://www.mesmaths.com/spip.php?rubrique114" rel="directory"&gt;5-Cartographie&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;p&gt;On va montrer comment cr&#233;er pas &#224; pas une carte &#224; laquelle on va ajouter des informations gr&#226;ce &#224; un programme python&lt;/p&gt; &lt;div class=&quot;onglets_bloc_initial&quot;&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;pour commencer&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;Faire fonctionner le code suivant :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;import folium&lt;br /&gt; c= folium.Map(location=[45.188529, 5.724524],zoom_start=10)&lt;br /&gt; c.save('maCarte.html')&lt;/code&gt;&lt;/div&gt;
&lt;hr class=&quot;spip&quot; /&gt;
&lt;p&gt;&lt;strong&gt;question 1&lt;/strong&gt; : Que s'est-il pass&#233; ?&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;Une page web s'ouvre, centr&#233;e sur Grenoble, &#224; l'&#233;chelle du d&#233;partement.&lt;/p&gt; &lt;p&gt;&lt;i&gt;remarque&lt;/i&gt; : on peut par la suite zoomer &#224; l'aide de la molette de la souris ou d'une ic&#244;ne -/+ en haut &#224; gauche de la carte.&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;hr class=&quot;spip&quot; /&gt;
&lt;p&gt;&lt;strong&gt;question 2&lt;/strong&gt; : Modifier la valeur &lt;code class='spip_code' dir='ltr'&gt;zoom_start=10 &lt;/code&gt; ; quel est l'effet obtenu ? (pour visualiser, il suffit de rafra&#238;chir la page web en faisant F5 par exemple)&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;L'&#233;chelle est modifi&#233;e :&lt;/p&gt; &lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; &lt;code class='spip_code' dir='ltr'&gt;zoom_start=5 &lt;/code&gt; donne la carte de l'Europe !&lt;/li&gt;&lt;li&gt; &lt;code class='spip_code' dir='ltr'&gt;zoom_start=20 &lt;/code&gt; donne une &#233;chelle permettant de voir le quartier autour duquel on est centr&#233; au d&#233;part.&lt;/li&gt;&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;hr class=&quot;spip&quot; /&gt;
&lt;p&gt;&lt;strong&gt;question 3&lt;/strong&gt; : En recherchant les coordonn&#233;es (latitude, longitude) du Mont-Blanc, faites un travail similaire pour obtenir une page ouvrant sur une carte centr&#233;e sur le Mont-Blanc, avec un zoom r&#233;gler sur 10.&lt;/p&gt; &lt;p&gt;Nommer la page &quot;montblanc.html&quot;.&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;import folium&lt;br /&gt; c= folium.Map(location=[45.832622, 6.865175],zoom_start=10)&lt;br /&gt; c.save('montblanc.html')&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;marqueurs&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;On peut avoir envie d'ajouter des marqueurs ; compiler ce code :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;import folium&lt;br /&gt; c= folium.Map(location=[45.188529, 5.724524],zoom_start=20)&lt;br /&gt; folium.Marker([45.188529, 5.724524], popup=&quot;place Victor Hugo&quot;).add_to(c)&lt;br /&gt; c.save('maCarte.html')&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;question 4&lt;/strong&gt; : Que se passe-t-il ?&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;Un marqueur pointe exactement la place Victor Hugo et lorsque la souris arrive sur ce marqueur, le message 'place Victor Hugo' appara&#238;t.&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;hr class=&quot;spip&quot; /&gt;
&lt;p&gt;On peut changer le type de marqueur ainsi que sa couleur en ajoutant des param&#232;tres comme dans cet exemple :&lt;/p&gt; &lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;folium.Marker([45.188529, 5.724524],popup=&quot;place de Verdun&quot;,folium.Icon(icon='ambulance', prefix=&quot;fa&quot;, color='red')).add_to(c)&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;question 5&lt;/strong&gt; : Faites diff&#233;rents essais en modifiant le symbole et sa couleur.&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;les couleurs possibles&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;'red', 'blue', 'green', 'purple', 'orange', 'darkred', 'lightred', 'beige', 'darkblue', 'darkgreen', 'cadetblue', 'darkpurple', 'white', 'pink', 'lightblue', 'lightgreen', 'gray', 'black', 'lightgray'&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;/br&gt;
&lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;des icones&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;'home', 'glass', 'flag', 'star', 'bookmark', 'info-sign', 'cloud', 'ambulance'&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;liste&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;S'il on veut pointer plusieurs lieux avec des marqueurs diff&#233;rents, on peut recopier plusieurs fois le code pr&#233;c&#233;dent en indiquant les param&#232;tres voulus (longitude, latitude, type d'ic&#244;ne, couleur de l'ic&#244;ne) mais ce sera tr&#232;s long et r&#233;p&#233;titif.&lt;/p&gt; &lt;p&gt;On pr&#233;sente ici une m&#233;thode utilisant une liste :&lt;/p&gt; &lt;ul class=&quot;spip&quot;&gt;&lt;li&gt; une liste pour les latitudes&lt;/li&gt;&lt;li&gt; une liste pour les longitudes&lt;/li&gt;&lt;li&gt; une liste pour les types d'ic&#244;ne&lt;/li&gt;&lt;li&gt; une liste pour la couleur&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;par exemple, si on veut saisir 4 points, on aura des listes du type :&lt;/p&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;lat=[45.1167, 45.0667 , 45.1333, 45.1833]&lt;br /&gt; long=[5.5833, 5.55, 5.5333, 5.6167]&lt;br /&gt; nom_lieu=['Lans en Vercors', 'Villard de Lans', 'M&#233;audre', 'Engins']&lt;br /&gt; col=['green', 'blue' ,'red', 'gray']&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;question 6&lt;/strong&gt; : choisir 4 lieux autour de Grenoble (si vous le souhaitez, les coordonn&#233;es donn&#233;es pr&#233;c&#233;demment) sur lesquels on placera une ic&#244;ne en forme de bicyclette avec 4 couleurs diff&#233;rentes par la m&#233;thode de parcours d'une liste.&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;objectif&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;&lt;span class='spip_document_1944 spip_documents spip_documents_center'&gt; &lt;a href=&quot;https://www.mesmaths.com/IMG/png/carte1.png&quot; class=&quot;fancybox&quot; title=&quot;PNG - 845.8 ko&quot;&gt; &lt;img src=&quot;https://www.mesmaths.com/local/cache-vignettes/L500xH392/carte1-baee3.png&quot; width='500' height='392' alt=&quot;PNG - 845.8 ko&quot; style='height:392px;width:500px;' /&gt; &lt;/a&gt; &lt;/span&gt;&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;
&lt;/br&gt;
&lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;import folium&lt;br /&gt; &lt;br /&gt; lat=[45.1167, 45.0667 , 45.1333, 45.1833]&lt;br /&gt; long=[5.5833, 5.55, 5.5333, 5.6167]&lt;br /&gt; nom_lieu=['Lans en Vercors', 'Villard de Lans', 'M&#233;audre', 'Engins']&lt;br /&gt; col=['green', 'blue' ,'red', 'gray']&lt;br /&gt; c= folium.Map(location=[45.166672, 5.71667],zoom_start=11)&lt;br /&gt; for i in range(4):&lt;br /&gt; folium.Marker([lat[i], long[i]],popup=nom_lieu[i],icon=folium.Icon(icon=&quot;bicycle&quot;, prefix=&quot;fa&quot;, color=col[i])).add_to(c)&lt;br /&gt; c.save('maCarte.html')&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;import&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;On peut faire beaucoup mieux que pr&#233;c&#233;demment ! Imaginez que vous ayez envie de saisir des dizaines de points ... il sera bien plus pratique de les saisir dans un fichier annexe et de l'importer ; voici un mod&#232;le reprenant un cas similaire au pr&#233;c&#233;dent.&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;document en .csv&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;p&gt;Enregistrez ce qui suit dans un &#233;diteur de texte (Notepaad++ ou bloc note) et enregistrez-le dans le m&#234;me dossier que votre programme en cours.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Bien penser &#224; indiquer l'extension .csv&lt;/strong&gt;&lt;/p&gt; &lt;blockquote class=&quot;spip&quot;&gt;
&lt;p&gt;Lieu,Latitude,Longitude,Icon,Color&lt;/p&gt; &lt;p&gt;Lans-en-Vercors,45.1167,5.5833,bicycle,green&lt;/p&gt; &lt;p&gt;VillarddeLans,45.0667,5.55,bicycle,blue&lt;/p&gt; &lt;p&gt;M&#233;audre,45.1333,5.5333,bicycle,red&lt;/p&gt; &lt;p&gt;Engins,45.1833,5.6167,bicycle,gray&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/br&gt;
On peut ensuite, gr&#226;ce &#224; une fonction de la biblioth&#232;que &lt;strong&gt;pandas&lt;/strong&gt; importer ces donn&#233;es ; par exemple &lt;code class='spip_code' dir='ltr'&gt;data.iloc[i,0]&lt;/code&gt; importe la i&lt;sup&gt;&#232;me&lt;/sup&gt; ligne de la 1&lt;sup&gt;&#232;re&lt;/sup&gt; colonne (index&#233;e &#224; 0).
&lt;p&gt;Ce qui est import&#233; est consid&#233;r&#233; comme &lt;strong&gt;une cha&#238;ne de caract&#232;res&lt;/strong&gt; (ce qui convient ici pour la premi&#232;re colonne qui correspond aux lieux)
&lt;/br&gt;&lt;/p&gt; &lt;p&gt;Pour la seconde colonne qui donne la latitude, il faudra forcer l'import &#224; retourner un nombre 'flottant' par &lt;code class='spip_code' dir='ltr'&gt;float(data.iloc[i,1])&lt;/code&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;question 7&lt;/strong&gt; : adapter le code pr&#233;c&#233;dent avec les informations pr&#233;c&#233;dents pour utiliser le fichier .cvs et l'importer.&lt;/p&gt; &lt;div class='cs_blocs'&gt;&lt;h4 class='blocs_titre blocs_replie blocs_click'&gt;&lt;a href='javascript:;'&gt;r&#233;ponse&lt;/a&gt;&lt;/h4&gt;&lt;div class='blocs_destination blocs_invisible blocs_slide'&gt;
&lt;div style='text-align: left;' class='spip_code' dir='ltr'&gt;&lt;code&gt;import folium&lt;br /&gt; import pandas#pour traiter les donn&#233;es&lt;br /&gt; data=pandas.read_csv('import.csv',sep=',')#import des donn&#233;es&lt;br /&gt; c= folium.Map(location=[45.166672, 5.71667],zoom_start=11)&lt;br /&gt; &lt;br /&gt; for i in range(data.shape[0]):#nombre de lignes&lt;br /&gt; nom_lieu=data.iloc[i,0]&lt;br /&gt; lat=float(data.iloc[i,1])&lt;br /&gt; long=float(data.iloc[i,2])&lt;br /&gt; icone=data.iloc[i,3]&lt;br /&gt; col=data.iloc[i,4]&lt;br /&gt; folium.Marker([lat, long], popup=nom_lieu, icon=folium.Icon(icon=icone, prefix=&quot;fa&quot;, color=col)).add_to(c)&lt;br /&gt; c.save('maCarte.html')&lt;/code&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;projet&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;Des id&#233;es :&lt;/p&gt; &lt;p&gt;* proposer un parcours th&#233;matique &#224; Grenoble ou dans votre lieu de vie avec des indications.&lt;/p&gt; &lt;p&gt;* faites une cartographie de vos amis et/ou famille en incluant un code couleur et des indications.&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>
	<item xml:lang="fr">
		<title>s&#233;quence</title>
		<link>https://www.mesmaths.com/spip.php?article424</link>
		<guid isPermaLink="true">https://www.mesmaths.com/spip.php?article424</guid>
		<dc:date>2023-06-20T11:39:05Z</dc:date>
		<dc:format>text/html</dc:format>
		<dc:language>fr</dc:language>
		<dc:creator>Florent Girod</dc:creator>



		<description>s&#233;ance n&#176;1 En classe, classe enti&#232;re activit&#233; 1 : mat&#233;riel n&#233;cessaire : n&gt;3 m&#232;tres (si possible m&#232;tres ruban) et une figurine des &#233;l&#232;ves mod&#233;lisent des satellites ; on positionne la figurine quelques part et on veut savoir combien de satellites sont n&#233;cessaires pour d&#233;terminer l'unique point o&#249; se situe la figurine. conclusion : avec trois satellites, on peut d&#233;terminer exactement la position d'u point, connaissant la distance avec chacun de ces satellites. question : pourquoi est-il n&#233;cessaire (...)

-
&lt;a href="https://www.mesmaths.com/spip.php?rubrique114" rel="directory"&gt;5-Cartographie&lt;/a&gt;


		</description>


 <content:encoded>&lt;div class='rss_texte'&gt;&lt;div class=&quot;onglets_bloc_initial&quot;&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;s&#233;ance n&#176;1&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;En classe, classe enti&#232;re&lt;/p&gt; &lt;p&gt;activit&#233; 1 :&lt;/p&gt; &lt;p&gt;&lt;strong&gt;mat&#233;riel n&#233;cessaire : n&gt;3 m&#232;tres (si possible m&#232;tres ruban) et une figurine&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;des &#233;l&#232;ves mod&#233;lisent des satellites ; on positionne la figurine quelques part et on veut savoir combien de satellites sont n&#233;cessaires pour d&#233;terminer l'unique point o&#249; se situe la figurine.&lt;/p&gt; &lt;p&gt;conclusion : avec trois satellites, on peut d&#233;terminer exactement la position d'u point, connaissant la distance avec chacun de ces satellites.&lt;/p&gt; &lt;p&gt;question : pourquoi est-il n&#233;cessaire d'avoir 4 satellites pour positionner un point ?&lt;/p&gt; &lt;hr class=&quot;spip&quot; /&gt;
&lt;p&gt;activit&#233; 2 :
Trame NMEA &#224; programmer sur calculatrice / Python (voir fiche TI)&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;s&#233;ance n&#176;2&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;En demi groupes, en salle informatique&lt;/p&gt; &lt;p&gt;A partir d'une trame NMEA, positionner le point rep&#233;r&#233; sur une carte : utilisation de la biblioth&#232;que folium et autres activit&#233;s (marqueurs etc.)&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;s&#233;ance n&#176;3&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;En classe, classe enti&#232;re&lt;/p&gt; &lt;p&gt;Expos&#233; ?&lt;/p&gt; &lt;p&gt;calculs d'itin&#233;raires en classe &#224; partir d'une carte routi&#232;re : recherche du chemin le plus court (le plus rapide)&lt;/p&gt; &lt;p&gt;&lt;strong&gt;mat&#233;riel : carte photocopi&#233;e en couleur (20 exemplaires ?) plastifi&#233;e&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;pr&#233;sentation de l'algorithme de Djistra par vid&#233;o : &lt;a href=&quot;https://www.youtube.com/watch?v=JPeCmKFrKio&quot; class='spip_out' rel='external'&gt;ici par exemple&lt;/a&gt;
questions : en classe ? &#224; la maison ? pr&#233;parer un petit questionnaire &#224; compl&#233;ter pendant la vid&#233;o&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;onglets_contenu&quot;&gt;&lt;h2 class=&quot;cs_onglet&quot;&gt;&lt;a href=&quot;#&quot;&gt;s&#233;ance n&#176;4&lt;/a&gt;&lt;/h2&gt;&lt;div&gt;
&lt;p&gt;En demi groupes, en salle informatique&lt;/p&gt; &lt;p&gt;un rapide passage sur le site G&#233;oportail pour voir le principe d'une SIG avec diff&#233;rentes couches &#224; voir sur la carte&lt;/p&gt; &lt;p&gt;poursuite du travail sur les programmes Python (folium)&lt;/p&gt; &lt;p&gt;site personnel compl&#233;t&#233; avec ce qui a &#233;t&#233; fait sur la s&#233;quence&lt;/p&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
		
		</content:encoded>


		

	</item>


 
	


 
	

</channel>
</rss>
