Bonjour � tous!
J'ai cr�� une fonction pour calculer la moyenne de production de plusieurs parcelles
Il y a cependant une erreur: en effet pour chaque parcelle j'obtiens bien un cumul de production selon le calendrier que j'ai d�fini. Puis je fais la somme de ces cumuls et le divise par le nombre de parcelles concern�es. Mais lorsqu'une parcelle n'a pas d'informations sur sa production (dans le geojson les param�tres de la courbe de production affichent NULL ou NaN), la fonction prend tout de m�me en compte cette parcelle: Pour 30 parcelles analys�es, 28 produisent 200 tonnes de bl� mais la moyenne divisent 200 tonnes par 30...ce qui n'est pas logique.
Faut-il int�grer une fonction qui lit les lignes du GeoJson mais �vite de r�cup�rer les infos si c'est NULL? Si oui est-ce que cela �vitera que la parcelle ne soit comptabilis�e?
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 function moyProd(){ var calendrier...//ici j'ai créé un calendrier if(nbParcelles>0){ var listeValeurProd = new Array(calendrier.length);//valeur Y pour chaque jour for(var p = 0; p<nbParcelles;p++) { var idParcelle = geojson_OGRGeoJSON.features[p]["properties"]["id"]; //info id de la parcelle var courbeProd = new Array(listeNomParametre.length); //tableau des param sigmo var cumulProdParcelle =-1; //variable Total production pour une parcelle //Get Valeurs de la courbe depuis GeoJson for(var nomDuParametre=0; nomDuParametre < listeNomParametre.length; nomDuParametre++){ var Param = [listeNomParametre[nomDuParametre]; var testVal =geojson_OGRGeoJSON.features[p]["properties"][preParam]; if(testVal!= null || isNaN(testVal)!=false){ courbeProd[listeNomParametre[nomDuParametre]]=parseFloat(testVal); } } listeValeurProd =courbe(calendrier, courbeProd); //il ne faut pas que la prod soit NaN cumulProdParcelle = SommeValeurs(listeValeurProd,calendrier); //cumul de la production pour une parcelle try { var x = cumulProdParcelle; if(x == "") throw "empty"; if(isNaN(x)) throw "not a number"; x = Number(x); resCumulTotal = resCumulTotal + cumulProdParcelle; } catch(err) { console.log("Input is " + err ); } } return resCumulTotal / nbParcelles; // cumul total des productions de toutes les parcelles/ nombre de parcelles concernées } else{ return null; }
Partager