changeset 502:33574b94f09e

corrected a bug and improved code
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 27 May 2014 15:43:14 -0400
parents c81cbd6953fb
children 7978b286fcfa
files python/pavement.py
diffstat 1 files changed, 14 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/python/pavement.py	Tue May 20 15:18:55 2014 -0400
+++ b/python/pavement.py	Tue May 27 15:43:14 2014 -0400
@@ -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