MASTER_GEOMATIQUE

View on GitHub

Exercices

Jeu du + ou +

# Importer les librairies
from random import randint
# Generer un nombre aleatoire et d'autres variable
nbAdeviner = randint(1,200)
chercheToujours = True
c = 0
# Demarrer la boucle
while (chercheToujours):
    print('')
    # Entrezun chiffre
    n = int(input("Entrez un nombre ==> "))
    # Agir en fonction du résultat
    if n > nbAdeviner:
        print("c'est moins !")
        c += 1
    elif n < nbAdeviner:
        print("c'est plus !")
        c += 1
    else:
        print ('Bingo, vous avez trouvé en '+str(c + 1)+' coup(s)')

Amélioration du jeu du + ou du -

Exercice du marcheur ivre

À chaque itération, le marcheur, ivre, peut se déplacer vers l’Est, l’Ouest, le Nord ou le Sud. La direction est déterminée de manière aléatoire à chaque itération (par exemple, 100 ou 10 000 déplacements avant l’arrêt, car trop ivre).

Le point de départ est le Gros Horloge, situé aux coordonnées (121475.93, 6350115.88, EPSG::3857).

walk

Amélioration du jeu du marcheur ivre

import random
import matplotlib.pyplot as plt
import os

# Position du marcheur
x = [5000]
y = [5000]
# Nombre mouvements
nOfMouv = 100

# Debuter la marche 
for i in range(nOfMouv):
    print('Mouvement ', i)
    direction = random.choice(['N', 'O', 'S', 'E'])
    
    if direction == 'O':
        print('GOOOO ===> Ouest')
        x.append(x[-1] - 5)
        y.append(y[-1])
    elif direction == 'N':
        print('GOOOO ===> Nord')
        y.append(y[-1] + 5)
        x.append(x[-1])
    elif direction == 'E':
        print('GOOOO ===> Est')
        x.append(x[-1] + 5)
        y.append(y[-1])
    else:
        print('GOOOO ===> Sud')
        y.append(y[-1] - 5)
        x.append(x[-1])

    # Plot and save each iteration as an image
    plt.plot(x, y, color='blue')
    plt.xlim(4900, 5100)  # Fix x-axis limits to keep it stable
    plt.ylim(4900, 5100)  # Fix y-axis limits to keep it stable
    plt.title(f'Movement {i+1}')
    plt.show()
###########################################################
###########################################################
####                     PROJET                        ####
####                                                   ####
###########################################################
###########################################################

###############################################################################
# ==============================================================================
# Import des librairies et des fonctions externes
# ==============================================================================
###############################################################################

import numpy as np
import matplotlib.pyplot as plt
from osgeo import gdal, ogr, osr
import os

###############################################################################
# ==============================================================================
# Script principal
# ==============================================================================
###############################################################################

# Fixer un repertoire de travail
os.chdir("/home/gilleol2/Desktop/MASTER_2")

#Initialiser un driver pour gerer le futur fichier
driver = ogr.GetDriverByName("ESRI Shapefile")

#Definir un nom pour le nouveau shapefile
output = "start.shp"

#Supprimer shapefile si il existe deja
if os.path.exists(output):
    driver.DeleteDataSource(output)
    
#Creer les sources de donnee avec la methode CreateDataSource
ds = driver.CreateDataSource(output)

#Importer le src depuis la librairie osr
spatialref = osr.SpatialReference()  # Fixe le scr
spatialref.ImportFromEPSG(3857)

#Creer la couche ou le layer avec la methode CreateLayer
layer = ds.CreateLayer('Point', spatialref, geom_type=ogr.wkbPoint)

#Ajouter un champ dans la table attributaire
#Definir l'attribut (FieldDefn)
fielddef = ogr.FieldDefn("ID", ogr.OFTInteger)
#Ajouter l'attribut a la table (CreateField)
layer.CreateField(fielddef)

# Créer l'entité
point = ogr.Geometry(ogr.wkbPoint)
# Fixer le point dans l'espace
point.AddPoint(121475.93, 6350115.88)
# Ajouter les attributs et contruire l'entité 
featureDefn = layer.GetLayerDefn()
feature = ogr.Feature(featureDefn)
feature.SetGeometry(point)
feature.SetField('ID', 1)
layer.CreateFeature(feature)
# Supprimer les fichier temporaires
del layer, ds               

iface.addVectorLayer("start.shp", "start", "ogr")