コード例 #1
0
     villeDepart = C.Ret_Coord_csv()
     villeArrivee = villeDepart # seulement pour avoir le même type de données
     while(villeDepart == villeArrivee or not(memeZone(villeDepart[0], villeDepart[1], villeArrivee[0], villeArrivee[1]))):
         villeArrivee = C.Ret_Coord_csv()
 else:
     # sinon on choisit la dernière ville d'arrivée
     villeDepart = villeArrivee
     while(villeDepart == villeArrivee or not(memeZone(villeDepart[0], villeDepart[1], villeArrivee[0], villeArrivee[1]))):
         villeArrivee = C.Ret_Coord_csv()
 
 # 2 - on génère le parcours
 parcours = generationParcours(villeDepart[0], villeDepart[1], villeArrivee[0], villeArrivee[1], api_key, False)
 
 # 3 - on génère le trajet
 trajet = generationConduite(parcours, T, V, tempsMax, vitesseMax, fact, d_arret, limites)
 tableauRegime = fonctionRegimemoteurRapport(alpha, vitessesInput, regimesInput, regimeChangementrapport, vitesseMax)
 trajet['regimeMoteur'] = tableauRegime.iloc[trajet ['vitesse'].apply(int)]['regime'].values
 trajet['distance'] = (trajet['x'].diff()**2 + trajet['y'].diff()**2).apply(math.sqrt).cumsum()
 trajet['distance'].fillna(0, inplace = True)
 
 # 5 - on génère les brulages FAP
 # 1ere condition: rester au-dessus d'un régime moteur donné pendant un temps minimum
 conditionBrulage1 = pd.stats.moments.rolling_sum(trajet['regimeMoteur'] >= regimeMin_brulage, window = tempsMin_brulage)
 conditionBrulage1.fillna(0, inplace = True)
 conditionBrulage1 = (conditionBrulage1 == tempsMin_brulage) # quand Vrai, signifie que la condition 1 est remplie
 
 # 2eme condition: être au-dessus d'une vitesse minimum au moment du brulage
 conditionBrulage2 = trajet['vitesse'] >= vitesseMin_brulage
 
 # 3eme condition: être dans la fenêtre [distance avant brûlage ; distance avant brûlage + distance avant panne]
 conditionBrulage3 = trajet['distance'] % (distance_avant_brulage + distance_avant_panne)
コード例 #2
0
ファイル: chargeChemins.py プロジェクト: amoussoubaruch/PSA
'''
main
'''

# charge tous les chemins pour un conducteur donné
conducteur = '178'
trajets = chargeTrajets('/home/roms/Kaggle/AXA/Data/drivers/' + conducteur)

# définit les paramètres pour le calcul du rapport/régime moteur
alpha = np.array([-0.020, -0.018, -0.016, -0.014, -0.012, -0.010])
vitessesInput = np.array([20.0,35.0,55.0,75.0,90.0,110.0])
regimesInput = np.array([2000.0,2500.0,2500.0,2500.0,2500.0,2500.0])
regimeChangementrapport = [3000,3000,3000,3000,3000,9000]
vitesseMax = 200
valeursMoteur = fonctionRegimemoteurRapport(alpha, vitessesInput, regimesInput, regimeChangementrapport, vitesseMax)

# calcule le régime/rapport moteur
trajets['regime'] = valeursMoteur['regime'][trajets['vitesse'].apply(round)].values
trajets['rapport'] = valeursMoteur['rapport'][trajets['vitesse'].apply(round)].values

# quelques statistiques
plt.title('Temps pour chaque rapport de boite')
plt.xlabel('rapport')
plt.ylabel('heures')
val = trajets['rapport'].value_counts()/3600
plt.bar(val.index , val.values, align = 'center')

bins_ = range(0, 4500, 500)
plt.title('Temps pour chaque régime')
plt.xlabel('régime')
コード例 #3
0
'''
main
'''

# charge tous les chemins pour un conducteur donné
conducteur = '178'
trajets = chargeTrajets('/home/roms/Kaggle/AXA/Data/drivers/' + conducteur)

# définit les paramètres pour le calcul du rapport/régime moteur
alpha = np.array([-0.020, -0.018, -0.016, -0.014, -0.012, -0.010])
vitessesInput = np.array([20.0, 35.0, 55.0, 75.0, 90.0, 110.0])
regimesInput = np.array([2000.0, 2500.0, 2500.0, 2500.0, 2500.0, 2500.0])
regimeChangementrapport = [3000, 3000, 3000, 3000, 3000, 9000]
vitesseMax = 200
valeursMoteur = fonctionRegimemoteurRapport(alpha, vitessesInput, regimesInput,
                                            regimeChangementrapport,
                                            vitesseMax)

# calcule le régime/rapport moteur
trajets['regime'] = valeursMoteur['regime'][trajets['vitesse'].apply(
    round)].values
trajets['rapport'] = valeursMoteur['rapport'][trajets['vitesse'].apply(
    round)].values

# quelques statistiques
plt.title('Temps pour chaque rapport de boite')
plt.xlabel('rapport')
plt.ylabel('heures')
val = trajets['rapport'].value_counts() / 3600
plt.bar(val.index, val.values, align='center')