Mercurial Hosting > traffic-intelligence
diff python/pavement.py @ 511:ad518f0c3218
merged pulling from main
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Wed, 28 May 2014 17:46:38 -0400 |
parents | 7978b286fcfa |
children | 3058e00887bc |
line wrap: on
line diff
--- a/python/pavement.py Fri May 23 17:33:11 2014 -0400 +++ b/python/pavement.py Wed May 28 17:46:38 2014 -0400 @@ -15,7 +15,7 @@ durabilities = {1: 98, #96 to 100 2: 85, #75 to 96 - 3: 72, #50 to 75 + 3: 62, #50 to 75 4: 32, #15 to 50 5: 7 #0 to 15 } @@ -106,12 +106,12 @@ '''Computes several winter maintenance indicators data = entretien_hivernal = pylab.csv2rec('C:\Users\Alexandre\Documents\Cours\Poly\Projet\mesures_entretien_hivernal\mesures_deneigement.txt', delimiter = ',')''' import datetime - somme_eau, somme_neige, somme_abrasif, somme_sel, somme_lc, somme_lrg, somme_lrd, premiere_neige, compteur_somme_abrasif = 0,0,0,0,0,0,0,0,0 + somme_eau, somme_neige, somme_abrasif, somme_sel, somme_lc, somme_lrg, somme_lrd, compteur_premiere_neige, compteur_somme_abrasif = 0,0,0,0,0,0,0,0,0 if circuitReference in data['ref_circuit']: for i in range(len(data)): if data['ref_circuit'][i] == circuitReference and (data['date'][i] + datetime.timedelta(days = 6)) <= endDate and (data['date'][i] + datetime.timedelta(days = 6)) > startDate: - premiere_neige += data['premiere_neige'][i] + compteur_premiere_neige += float(data['premiere_neige'][i]) somme_neige += float(data['neige'][i]) somme_eau += float(data['eau'][i]) somme_abrasif += float(data['abrasif'][i]) @@ -119,7 +119,11 @@ somme_lc += float(data['lc'][i]) somme_lrg += float(data['lrg'][i]) somme_lrd += float(data['lrd'][i]) - compteur_somme_abrasif += float(data['autre_abrasif_binaire'][i]) + compteur_somme_abrasif += float(data['autre_abrasif_binaire'][i]) + if compteur_premiere_neige >= 1: + premiere_neige = 1 + else: + premiere_neige = 0 if compteur_somme_abrasif >= 1: autres_abrasifs = 1 else: @@ -133,7 +137,7 @@ return (somme_eau, somme_neige, neigeMTQ_sup_seuil, somme_abrasif, somme_sel, somme_lc, somme_lrg, somme_lrd, premiere_neige, autres_abrasifs) -def ecWeatherIndicators(data, startDate, endDate, snowThreshold, weatherDatatype, minProportionMeasures = 0.): +def weatherIndicators(data, startDate, endDate, snowThreshold, weatherDatatype, minProportionMeasures = 0.): '''Computes the indicators from Environment Canada files (loaded as a recarray using csv2rec in data), between start and end dates (datetime.datetime objects) @@ -147,11 +151,12 @@ seuils_T = [20,15,10,5] deltas_T = [0,0,0,0] startIndex = find(data['date'] == startDate) - nDays = (endDate - startDate).days+1 - if startIndex.size != 0: - for i in range(startIndex, startIndex+int(nDays)): + nDays = int((endDate - startDate).days)+1 + if len(startIndex) > 0 and startIndex+nDays <= len(data): + startIndex = startIndex[0] + for i in range(startIndex, startIndex+nDays): if not np.isnan(data['tmax'][i]): - tmax = data['tmax'][i] + tmax = data['tmax'][i] else: tmax = None if not np.isnan(data['tmin'][i]): @@ -197,6 +202,7 @@ return [None]*2+[[None]*len(seuils_T)]+[None]*5 def mtqWeatherIndicators(data, startDate, endDate,tmax,tmin,tmoy): + print("Deprecated, use weatherIndicators") from matplotlib.mlab import find nbre_jours_T_negatif,nbre_jours_gel_degel,ecart_type_T = 0,0,0 compteur,nbre_jours_gel_consecutifs=0,0 @@ -296,7 +302,7 @@ dates = self.data[nonZeroIndices]['date_mesure'] measures = self.data[nonZeroIndices][dataLabel] for i in range(1, len(dates)): - nDaysTNegative, nDaysThawFreeze, deltaTemp, nConsecutiveFrozenDays, totalRain, totalSnow, snowAboveThreshold, stdevTemp = ecWeatherIndicators(weatherData, dates[i-1], dates[i], snowThreshold, weatherDataType, minProportionMeasures) + nDaysTNegative, nDaysThawFreeze, deltaTemp, nConsecutiveFrozenDays, totalRain, totalSnow, snowAboveThreshold, stdevTemp = weatherIndicators(weatherData, dates[i-1], dates[i], snowThreshold, weatherDataType, minProportionMeasures) if dates[i-1].year+1 == dates[i].year: winter = 1 if days[i-1]<365: