diff --git a/data/input/fishLight.xml b/data/input/fishLight.xml index 7527e06c433147f10ac226852449e7e6b121cc89..af122de84e1a1074a7df23fa998c42f421bb02e9 100644 --- a/data/input/fishLight.xml +++ b/data/input/fishLight.xml @@ -7,11 +7,16 @@ <processes> <processesAtBegin> - + <pikelake.environment.Time> + + </pikelake.environment.Time> + <pikelake.pikes.PikesPopulateProcess> - <initialNumberOfPikes>5</initialNumberOfPikes> + <initialNumberOfPikes>20</initialNumberOfPikes> </pikelake.pikes.PikesPopulateProcess> + + </processesAtBegin> <processesEachStep> @@ -21,6 +26,11 @@ </pikelake.environment.Time> + + <pikelake.Marnage> + + </pikelake.Marnage> + <!-- pikelake.Grid> </pikelake.Grid--> diff --git a/data/input/leshorairesdusoleil.csv b/data/input/leshorairesdusoleil.csv new file mode 100644 index 0000000000000000000000000000000000000000..9e9a1bb2e2c4055c894484217d16779ca015204c --- /dev/null +++ b/data/input/leshorairesdusoleil.csv @@ -0,0 +1,367 @@ +lever;coucher;duree +01/01/2012 08:31;01/01/2012 17:20;08:49 +02/01/2012 08:31;02/01/2012 17:21;08:50 +03/01/2012 08:31;03/01/2012 17:22;08:51 +04/01/2012 08:31;04/01/2012 17:23;08:52 +05/01/2012 08:31;05/01/2012 17:24;08:53 +06/01/2012 08:31;06/01/2012 17:25;08:54 +07/01/2012 08:31;07/01/2012 17:26;08:55 +08/01/2012 08:31;08/01/2012 17:27;08:56 +09/01/2012 08:30;09/01/2012 17:28;08:58 +10/01/2012 08:30;10/01/2012 17:29;08:59 +11/01/2012 08:30;11/01/2012 17:30;09:00 +12/01/2012 08:29;12/01/2012 17:32;09:03 +13/01/2012 08:29;13/01/2012 17:33;09:04 +14/01/2012 08:28;14/01/2012 17:34;09:06 +15/01/2012 08:28;15/01/2012 17:35;09:07 +16/01/2012 08:27;16/01/2012 17:37;09:10 +17/01/2012 08:27;17/01/2012 17:38;09:11 +18/01/2012 08:26;18/01/2012 17:39;09:13 +19/01/2012 08:25;19/01/2012 17:41;09:16 +20/01/2012 08:25;20/01/2012 17:42;09:17 +21/01/2012 08:24;21/01/2012 17:43;09:19 +22/01/2012 08:23;22/01/2012 17:45;09:22 +23/01/2012 08:22;23/01/2012 17:46;09:24 +24/01/2012 08:21;24/01/2012 17:47;09:26 +25/01/2012 08:20;25/01/2012 17:49;09:29 +26/01/2012 08:19;26/01/2012 17:50;09:31 +27/01/2012 08:18;27/01/2012 17:52;09:34 +28/01/2012 08:17;28/01/2012 17:53;09:36 +29/01/2012 08:16;29/01/2012 17:54;09:38 +30/01/2012 08:15;30/01/2012 17:56;09:41 +31/01/2012 08:14;31/01/2012 17:57;09:43 +01/02/2012 08:13;01/02/2012 17:59;09:46 +02/02/2012 08:12;02/02/2012 18:00;09:48 +03/02/2012 08:11;03/02/2012 18:02;09:51 +04/02/2012 08:09;04/02/2012 18:03;09:54 +05/02/2012 08:08;05/02/2012 18:05;09:57 +06/02/2012 08:07;06/02/2012 18:06;09:59 +07/02/2012 08:06;07/02/2012 18:07;10:01 +08/02/2012 08:04;08/02/2012 18:09;10:05 +09/02/2012 08:03;09/02/2012 18:10;10:07 +10/02/2012 08:01;10/02/2012 18:12;10:11 +11/02/2012 08:00;11/02/2012 18:13;10:13 +12/02/2012 07:59;12/02/2012 18:15;10:16 +13/02/2012 07:57;13/02/2012 18:16;10:19 +14/02/2012 07:56;14/02/2012 18:18;10:22 +15/02/2012 07:54;15/02/2012 18:19;10:25 +16/02/2012 07:53;16/02/2012 18:20;10:27 +17/02/2012 07:51;17/02/2012 18:22;10:31 +18/02/2012 07:49;18/02/2012 18:23;10:34 +19/02/2012 07:48;19/02/2012 18:25;10:37 +20/02/2012 07:46;20/02/2012 18:26;10:40 +21/02/2012 07:45;21/02/2012 18:28;10:43 +22/02/2012 07:43;22/02/2012 18:29;10:46 +23/02/2012 07:41;23/02/2012 18:30;10:49 +24/02/2012 07:40;24/02/2012 18:32;10:52 +25/02/2012 07:38;25/02/2012 18:33;10:55 +26/02/2012 07:36;26/02/2012 18:35;10:59 +27/02/2012 07:34;27/02/2012 18:36;11:02 +28/02/2012 07:33;28/02/2012 18:37;11:04 +29/02/2012 07:31;29/02/2012 18:39;11:08 +01/03/2012 07:29;01/03/2012 18:40;11:11 +02/03/2012 07:27;02/03/2012 18:41;11:14 +03/03/2012 07:26;03/03/2012 18:43;11:17 +04/03/2012 07:24;04/03/2012 18:44;11:20 +05/03/2012 07:22;05/03/2012 18:45;11:23 +06/03/2012 07:20;06/03/2012 18:47;11:27 +07/03/2012 07:18;07/03/2012 18:48;11:30 +08/03/2012 07:17;08/03/2012 18:49;11:32 +09/03/2012 07:15;09/03/2012 18:51;11:36 +10/03/2012 07:13;10/03/2012 18:52;11:39 +11/03/2012 07:11;11/03/2012 18:53;11:42 +12/03/2012 07:09;12/03/2012 18:55;11:46 +13/03/2012 07:07;13/03/2012 18:56;11:49 +14/03/2012 07:05;14/03/2012 18:57;11:52 +15/03/2012 07:04;15/03/2012 18:59;11:55 +16/03/2012 07:02;16/03/2012 19:00;11:58 +17/03/2012 07:00;17/03/2012 19:01;12:01 +18/03/2012 06:58;18/03/2012 19:03;12:05 +19/03/2012 06:56;19/03/2012 19:04;12:08 +20/03/2012 06:54;20/03/2012 19:05;12:11 +21/03/2012 06:52;21/03/2012 19:07;12:15 +22/03/2012 06:50;22/03/2012 19:08;12:18 +23/03/2012 06:48;23/03/2012 19:09;12:21 +24/03/2012 06:47;24/03/2012 19:10;12:23 +25/03/2012 06:45;25/03/2012 19:12;12:27 +26/03/2012 06:43;26/03/2012 19:13;12:30 +27/03/2012 06:41;27/03/2012 19:14;12:33 +28/03/2012 06:39;28/03/2012 19:16;12:37 +29/03/2012 06:37;29/03/2012 19:17;12:40 +30/03/2012 06:35;30/03/2012 19:18;12:43 +31/03/2012 06:33;31/03/2012 19:19;12:46 +01/04/2012 06:31;01/04/2012 19:21;12:50 +02/04/2012 06:30;02/04/2012 19:22;12:52 +03/04/2012 06:28;03/04/2012 19:23;12:55 +04/04/2012 06:26;04/04/2012 19:24;12:58 +05/04/2012 06:24;05/04/2012 19:26;13:02 +06/04/2012 06:22;06/04/2012 19:27;13:05 +07/04/2012 06:20;07/04/2012 19:28;13:08 +08/04/2012 06:18;08/04/2012 19:30;13:12 +09/04/2012 06:17;09/04/2012 19:31;13:14 +10/04/2012 06:15;10/04/2012 19:32;13:17 +11/04/2012 06:13;11/04/2012 19:33;13:20 +12/04/2012 06:11;12/04/2012 19:35;13:24 +13/04/2012 06:09;13/04/2012 19:36;13:27 +14/04/2012 06:08;14/04/2012 19:37;13:29 +15/04/2012 06:06;15/04/2012 19:39;13:33 +16/04/2012 06:04;16/04/2012 19:40;13:36 +17/04/2012 06:02;17/04/2012 19:41;13:39 +18/04/2012 06:01;18/04/2012 19:42;13:41 +19/04/2012 05:59;19/04/2012 19:44;13:45 +20/04/2012 05:57;20/04/2012 19:45;13:48 +21/04/2012 05:56;21/04/2012 19:46;13:50 +22/04/2012 05:54;22/04/2012 19:47;13:53 +23/04/2012 05:52;23/04/2012 19:49;13:57 +24/04/2012 05:51;24/04/2012 19:50;13:59 +25/04/2012 05:49;25/04/2012 19:51;14:02 +26/04/2012 05:48;26/04/2012 19:52;14:04 +27/04/2012 05:46;27/04/2012 19:54;14:08 +28/04/2012 05:44;28/04/2012 19:55;14:11 +29/04/2012 05:43;29/04/2012 19:56;14:13 +30/04/2012 05:41;30/04/2012 19:58;14:17 +01/05/2012 05:40;01/05/2012 19:59;14:19 +02/05/2012 05:38;02/05/2012 20:00;14:22 +03/05/2012 05:37;03/05/2012 20:01;14:24 +04/05/2012 05:35;04/05/2012 20:03;14:28 +05/05/2012 05:34;05/05/2012 20:04;14:30 +06/05/2012 05:33;06/05/2012 20:05;14:32 +07/05/2012 05:31;07/05/2012 20:06;14:35 +08/05/2012 05:30;08/05/2012 20:07;14:37 +09/05/2012 05:29;09/05/2012 20:09;14:40 +10/05/2012 05:27;10/05/2012 20:10;14:43 +11/05/2012 05:26;11/05/2012 20:11;14:45 +12/05/2012 05:25;12/05/2012 20:12;14:47 +13/05/2012 05:24;13/05/2012 20:13;14:49 +14/05/2012 05:23;14/05/2012 20:15;14:52 +15/05/2012 05:21;15/05/2012 20:16;14:55 +16/05/2012 05:20;16/05/2012 20:17;14:57 +17/05/2012 05:19;17/05/2012 20:18;14:59 +18/05/2012 05:18;18/05/2012 20:19;15:01 +19/05/2012 05:17;19/05/2012 20:20;15:03 +20/05/2012 05:16;20/05/2012 20:21;15:05 +21/05/2012 05:15;21/05/2012 20:22;15:07 +22/05/2012 05:14;22/05/2012 20:23;15:09 +23/05/2012 05:14;23/05/2012 20:24;15:10 +24/05/2012 05:13;24/05/2012 20:25;15:12 +25/05/2012 05:12;25/05/2012 20:26;15:14 +26/05/2012 05:11;26/05/2012 20:27;15:16 +27/05/2012 05:10;27/05/2012 20:28;15:18 +28/05/2012 05:10;28/05/2012 20:29;15:19 +29/05/2012 05:09;29/05/2012 20:30;15:21 +30/05/2012 05:08;30/05/2012 20:31;15:23 +31/05/2012 05:08;31/05/2012 20:32;15:24 +01/06/2012 05:07;01/06/2012 20:33;15:26 +02/06/2012 05:07;02/06/2012 20:34;15:27 +03/06/2012 05:06;03/06/2012 20:34;15:28 +04/06/2012 05:06;04/06/2012 20:35;15:29 +05/06/2012 05:05;05/06/2012 20:36;15:31 +06/06/2012 05:05;06/06/2012 20:37;15:32 +07/06/2012 05:05;07/06/2012 20:37;15:32 +08/06/2012 05:04;08/06/2012 20:38;15:34 +09/06/2012 05:04;09/06/2012 20:39;15:35 +10/06/2012 05:04;10/06/2012 20:39;15:35 +11/06/2012 05:04;11/06/2012 20:40;15:36 +12/06/2012 05:04;12/06/2012 20:40;15:36 +13/06/2012 05:04;13/06/2012 20:41;15:37 +14/06/2012 05:04;14/06/2012 20:41;15:37 +15/06/2012 05:04;15/06/2012 20:42;15:38 +16/06/2012 05:04;16/06/2012 20:42;15:38 +17/06/2012 05:04;17/06/2012 20:42;15:38 +18/06/2012 05:04;18/06/2012 20:43;15:39 +19/06/2012 05:04;19/06/2012 20:43;15:39 +20/06/2012 05:04;20/06/2012 20:43;15:39 +21/06/2012 05:04;21/06/2012 20:43;15:39 +22/06/2012 05:05;22/06/2012 20:44;15:39 +23/06/2012 05:05;23/06/2012 20:44;15:39 +24/06/2012 05:05;24/06/2012 20:44;15:39 +25/06/2012 05:06;25/06/2012 20:44;15:38 +26/06/2012 05:06;26/06/2012 20:44;15:38 +27/06/2012 05:06;27/06/2012 20:44;15:38 +28/06/2012 05:07;28/06/2012 20:44;15:37 +29/06/2012 05:07;29/06/2012 20:44;15:37 +30/06/2012 05:08;30/06/2012 20:43;15:35 +01/07/2012 05:08;01/07/2012 20:43;15:35 +02/07/2012 05:09;02/07/2012 20:43;15:34 +03/07/2012 05:10;03/07/2012 20:43;15:33 +04/07/2012 05:10;04/07/2012 20:42;15:32 +05/07/2012 05:11;05/07/2012 20:42;15:31 +06/07/2012 05:12;06/07/2012 20:42;15:30 +07/07/2012 05:12;07/07/2012 20:41;15:29 +08/07/2012 05:13;08/07/2012 20:41;15:28 +09/07/2012 05:14;09/07/2012 20:40;15:26 +10/07/2012 05:15;10/07/2012 20:40;15:25 +11/07/2012 05:16;11/07/2012 20:39;15:23 +12/07/2012 05:16;12/07/2012 20:38;15:22 +13/07/2012 05:17;13/07/2012 20:38;15:21 +14/07/2012 05:18;14/07/2012 20:37;15:19 +15/07/2012 05:19;15/07/2012 20:36;15:17 +16/07/2012 05:20;16/07/2012 20:36;15:16 +17/07/2012 05:21;17/07/2012 20:35;15:14 +18/07/2012 05:22;18/07/2012 20:34;15:12 +19/07/2012 05:23;19/07/2012 20:33;15:10 +20/07/2012 05:24;20/07/2012 20:32;15:08 +21/07/2012 05:25;21/07/2012 20:31;15:06 +22/07/2012 05:26;22/07/2012 20:30;15:04 +23/07/2012 05:27;23/07/2012 20:29;15:02 +24/07/2012 05:28;24/07/2012 20:28;15:00 +25/07/2012 05:29;25/07/2012 20:27;14:58 +26/07/2012 05:30;26/07/2012 20:26;14:56 +27/07/2012 05:31;27/07/2012 20:25;14:54 +28/07/2012 05:33;28/07/2012 20:24;14:51 +29/07/2012 05:34;29/07/2012 20:22;14:48 +30/07/2012 05:35;30/07/2012 20:21;14:46 +31/07/2012 05:36;31/07/2012 20:20;14:44 +01/08/2012 05:37;01/08/2012 20:19;14:42 +02/08/2012 05:38;02/08/2012 20:17;14:39 +03/08/2012 05:39;03/08/2012 20:16;14:37 +04/08/2012 05:41;04/08/2012 20:15;14:34 +05/08/2012 05:42;05/08/2012 20:13;14:31 +06/08/2012 05:43;06/08/2012 20:12;14:29 +07/08/2012 05:44;07/08/2012 20:10;14:26 +08/08/2012 05:45;08/08/2012 20:09;14:24 +09/08/2012 05:47;09/08/2012 20:07;14:20 +10/08/2012 05:48;10/08/2012 20:06;14:18 +11/08/2012 05:49;11/08/2012 20:04;14:15 +12/08/2012 05:50;12/08/2012 20:03;14:13 +13/08/2012 05:51;13/08/2012 20:01;14:10 +14/08/2012 05:53;14/08/2012 20:00;14:07 +15/08/2012 05:54;15/08/2012 19:58;14:04 +16/08/2012 05:55;16/08/2012 19:56;14:01 +17/08/2012 05:56;17/08/2012 19:55;13:59 +18/08/2012 05:57;18/08/2012 19:53;13:56 +19/08/2012 05:59;19/08/2012 19:51;13:52 +20/08/2012 06:00;20/08/2012 19:50;13:50 +21/08/2012 06:01;21/08/2012 19:48;13:47 +22/08/2012 06:02;22/08/2012 19:46;13:44 +23/08/2012 06:03;23/08/2012 19:45;13:42 +24/08/2012 06:05;24/08/2012 19:43;13:38 +25/08/2012 06:06;25/08/2012 19:41;13:35 +26/08/2012 06:07;26/08/2012 19:39;13:32 +27/08/2012 06:08;27/08/2012 19:38;13:30 +28/08/2012 06:09;28/08/2012 19:36;13:27 +29/08/2012 06:11;29/08/2012 19:34;13:23 +30/08/2012 06:12;30/08/2012 19:32;13:20 +31/08/2012 06:13;31/08/2012 19:30;13:17 +01/09/2012 06:14;01/09/2012 19:28;13:14 +02/09/2012 06:15;02/09/2012 19:27;13:12 +03/09/2012 06:17;03/09/2012 19:25;13:08 +04/09/2012 06:18;04/09/2012 19:23;13:05 +05/09/2012 06:19;05/09/2012 19:21;13:02 +06/09/2012 06:20;06/09/2012 19:19;12:59 +07/09/2012 06:21;07/09/2012 19:17;12:56 +08/09/2012 06:23;08/09/2012 19:15;12:52 +09/09/2012 06:24;09/09/2012 19:13;12:49 +10/09/2012 06:25;10/09/2012 19:12;12:47 +11/09/2012 06:26;11/09/2012 19:10;12:44 +12/09/2012 06:27;12/09/2012 19:08;12:41 +13/09/2012 06:29;13/09/2012 19:06;12:37 +14/09/2012 06:30;14/09/2012 19:04;12:34 +15/09/2012 06:31;15/09/2012 19:02;12:31 +16/09/2012 06:32;16/09/2012 19:00;12:28 +17/09/2012 06:34;17/09/2012 18:58;12:24 +18/09/2012 06:35;18/09/2012 18:56;12:21 +19/09/2012 06:36;19/09/2012 18:54;12:18 +20/09/2012 06:37;20/09/2012 18:52;12:15 +21/09/2012 06:38;21/09/2012 18:50;12:12 +22/09/2012 06:40;22/09/2012 18:48;12:08 +23/09/2012 06:41;23/09/2012 18:47;12:06 +24/09/2012 06:42;24/09/2012 18:45;12:03 +25/09/2012 06:43;25/09/2012 18:43;12:00 +26/09/2012 06:45;26/09/2012 18:41;11:56 +27/09/2012 06:46;27/09/2012 18:39;11:53 +28/09/2012 06:47;28/09/2012 18:37;11:50 +29/09/2012 06:48;29/09/2012 18:35;11:47 +30/09/2012 06:49;30/09/2012 18:33;11:44 +01/10/2012 06:51;01/10/2012 18:31;11:40 +02/10/2012 06:52;02/10/2012 18:29;11:37 +03/10/2012 06:53;03/10/2012 18:28;11:35 +04/10/2012 06:54;04/10/2012 18:26;11:32 +05/10/2012 06:56;05/10/2012 18:24;11:28 +06/10/2012 06:57;06/10/2012 18:22;11:25 +07/10/2012 06:58;07/10/2012 18:20;11:22 +08/10/2012 07:00;08/10/2012 18:18;11:18 +09/10/2012 07:01;09/10/2012 18:16;11:15 +10/10/2012 07:02;10/10/2012 18:15;11:13 +11/10/2012 07:03;11/10/2012 18:13;11:10 +12/10/2012 07:05;12/10/2012 18:11;11:06 +13/10/2012 07:06;13/10/2012 18:09;11:03 +14/10/2012 07:07;14/10/2012 18:08;11:01 +15/10/2012 07:09;15/10/2012 18:06;10:57 +16/10/2012 07:10;16/10/2012 18:04;10:54 +17/10/2012 07:11;17/10/2012 18:02;10:51 +18/10/2012 07:13;18/10/2012 18:01;10:48 +19/10/2012 07:14;19/10/2012 17:59;10:45 +20/10/2012 07:15;20/10/2012 17:57;10:42 +21/10/2012 07:17;21/10/2012 17:56;10:39 +22/10/2012 07:18;22/10/2012 17:54;10:36 +23/10/2012 07:19;23/10/2012 17:52;10:33 +24/10/2012 07:21;24/10/2012 17:51;10:30 +25/10/2012 07:22;25/10/2012 17:49;10:27 +26/10/2012 07:23;26/10/2012 17:48;10:25 +27/10/2012 07:25;27/10/2012 17:46;10:21 +28/10/2012 07:26;28/10/2012 17:45;10:19 +29/10/2012 07:28;29/10/2012 17:43;10:15 +30/10/2012 07:29;30/10/2012 17:42;10:13 +31/10/2012 07:30;31/10/2012 17:40;10:10 +01/11/2012 07:32;01/11/2012 17:39;10:07 +02/11/2012 07:33;02/11/2012 17:37;10:04 +03/11/2012 07:34;03/11/2012 17:36;10:02 +04/11/2012 07:36;04/11/2012 17:35;09:59 +05/11/2012 07:37;05/11/2012 17:33;09:56 +06/11/2012 07:39;06/11/2012 17:32;09:53 +07/11/2012 07:40;07/11/2012 17:31;09:51 +08/11/2012 07:41;08/11/2012 17:30;09:49 +09/11/2012 07:43;09/11/2012 17:28;09:45 +10/11/2012 07:44;10/11/2012 17:27;09:43 +11/11/2012 07:46;11/11/2012 17:26;09:40 +12/11/2012 07:47;12/11/2012 17:25;09:38 +13/11/2012 07:48;13/11/2012 17:24;09:36 +14/11/2012 07:50;14/11/2012 17:23;09:33 +15/11/2012 07:51;15/11/2012 17:22;09:31 +16/11/2012 07:52;16/11/2012 17:21;09:29 +17/11/2012 07:54;17/11/2012 17:20;09:26 +18/11/2012 07:55;18/11/2012 17:19;09:24 +19/11/2012 07:56;19/11/2012 17:18;09:22 +20/11/2012 07:58;20/11/2012 17:17;09:19 +21/11/2012 07:59;21/11/2012 17:17;09:18 +22/11/2012 08:00;22/11/2012 17:16;09:16 +23/11/2012 08:02;23/11/2012 17:15;09:13 +24/11/2012 08:03;24/11/2012 17:14;09:11 +25/11/2012 08:04;25/11/2012 17:14;09:10 +26/11/2012 08:05;26/11/2012 17:13;09:08 +27/11/2012 08:07;27/11/2012 17:13;09:06 +28/11/2012 08:08;28/11/2012 17:12;09:04 +29/11/2012 08:09;29/11/2012 17:12;09:03 +30/11/2012 08:10;30/11/2012 17:11;09:01 +01/12/2012 08:11;01/12/2012 17:11;09:00 +02/12/2012 08:13;02/12/2012 17:10;08:57 +03/12/2012 08:14;03/12/2012 17:10;08:56 +04/12/2012 08:15;04/12/2012 17:10;08:55 +05/12/2012 08:16;05/12/2012 17:10;08:54 +06/12/2012 08:17;06/12/2012 17:10;08:53 +07/12/2012 08:18;07/12/2012 17:09;08:51 +08/12/2012 08:19;08/12/2012 17:09;08:50 +09/12/2012 08:20;09/12/2012 17:09;08:49 +10/12/2012 08:21;10/12/2012 17:09;08:48 +11/12/2012 08:22;11/12/2012 17:09;08:47 +12/12/2012 08:22;12/12/2012 17:10;08:48 +13/12/2012 08:23;13/12/2012 17:10;08:47 +14/12/2012 08:24;14/12/2012 17:10;08:46 +15/12/2012 08:25;15/12/2012 17:10;08:45 +16/12/2012 08:25;16/12/2012 17:10;08:45 +17/12/2012 08:26;17/12/2012 17:11;08:45 +18/12/2012 08:27;18/12/2012 17:11;08:44 +19/12/2012 08:27;19/12/2012 17:12;08:45 +20/12/2012 08:28;20/12/2012 17:12;08:44 +21/12/2012 08:28;21/12/2012 17:13;08:45 +22/12/2012 08:29;22/12/2012 17:13;08:44 +23/12/2012 08:29;23/12/2012 17:14;08:45 +24/12/2012 08:30;24/12/2012 17:14;08:44 +25/12/2012 08:30;25/12/2012 17:15;08:45 +26/12/2012 08:30;26/12/2012 17:16;08:46 +27/12/2012 08:31;27/12/2012 17:16;08:45 +28/12/2012 08:31;28/12/2012 17:17;08:46 +29/12/2012 08:31;29/12/2012 17:18;08:47 +30/12/2012 08:31;30/12/2012 17:19;08:48 +31/12/2012 08:31;31/12/2012 17:20;08:49 diff --git a/src/main/java/pikelake/Grid.java b/src/main/java/pikelake/Grid.java index aff2656921404a42b385465d8bab4066e9563095..ab8afa0a05767ca281fa2c370d1a8b4bf0b1d566 100644 --- a/src/main/java/pikelake/Grid.java +++ b/src/main/java/pikelake/Grid.java @@ -9,6 +9,7 @@ import java.util.StringTokenizer; import pikelake.Cell; import pikelake.environment.AreaMovement; +import pikelake.environment.Time; import pikelake.pikes.Pike; import fr.cemagref.simaqualife.extensions.spatial2D.Grid2D; import fr.cemagref.simaqualife.kernel.AquaNismsGroup; @@ -17,6 +18,8 @@ import fr.cemagref.simaqualife.pilot.Pilot; public class Grid extends Grid2D<Cell, Individual> { + //public Time temp = new Time(); + public Grid(int gridWidth, int gridHeight, NeighborsType neighborsType) { super(gridWidth, gridHeight, neighborsType); // TODO Auto-generated constructor stub @@ -41,9 +44,9 @@ public class Grid extends Grid2D<Cell, Individual> { for (int cptCell = 0; cptCell < (gridWidth * gridHeight - 1); cptCell++) { grid[cptCell] = new Cell(cptCell, -1); } - + // Lecture fichier contenant les HSI de toutes les mailles - String filePath = "data/input/HSI/hsi_BROETE507.txt"; + String filePath = "data/input/HSI/hsi_BRO" + Time.getSeason() + calculMarnage() + ".txt"; Scanner scanner = new Scanner(new File(filePath)); // Initialisation de chaque cellule contenant HSI @@ -77,56 +80,88 @@ public class Grid extends Grid2D<Cell, Individual> { scanner.close(); } - /* public void doProcess (Pilot pilot) throws FileNotFoundException { + + public String calculMarnage () { - StringTokenizer sLigne; - @SuppressWarnings("unused") - double hsiStd = 0, hsiMoy = 0; - int idCell = 0, yPike = 0, xPike = 0; - - // Initialisation grille vide - grid = new Cell[gridWidth * gridHeight]; - - // Initialisation de toute la grille avec hsi = -1 - for (int cptCell = 0; cptCell < (gridWidth * gridHeight - 1); cptCell++) { - grid[cptCell] = new Cell(cptCell, -1); - } - - // Lecture fichier contenant les HSI de toutes les mailles + String temp[] = null; + String file = "data/input/CoteCorrige_01012012_30042014.txt"; - String filePath = "data/input/HSI/hsi_BROETE507.txt"; - Scanner scanner = new Scanner(new File(filePath)); - - // Initialisation de chaque cellule contenant HSI - // On boucle sur chaque ligne detectée - String line = scanner.nextLine(); - while (scanner.hasNextLine()) { - line = scanner.nextLine(); - - // Decoupage ligne : id, hsiStd, hsiMoy - sLigne = new StringTokenizer (line); - if (sLigne.hasMoreTokens()) - idCell = Integer.parseInt(sLigne.nextToken())-1; - if (sLigne.hasMoreTokens()) - hsiStd = Double.parseDouble(sLigne.nextToken()); - if (sLigne.hasMoreTokens()) - hsiMoy = Double.parseDouble(sLigne.nextToken()); - - // Conversion idCell en coordonnees (x, y) - // (x, y) avec les id de cellules de 0 à n-1 - yPike = (int) Math.floor(idCell / gridWidth); - xPike = (int) idCell - (yPike * gridWidth); - - // Inversion des coordonnees en Y (place l'origine en bas à gauche) - yPike = (gridHeight-1) - yPike ; - // Conversion des coordonnees (x, y) en idCell - idCell = xPike + yPike * gridWidth; - - // Initialisation du hsi de la cellule(idCell) - grid[idCell] = new Cell(idCell, hsiMoy); - } - scanner.close(); - }*/ + try { + Scanner scanner = new Scanner(new File(file)); + // On boucle sur chaque ligne detectée + String line = scanner.nextLine(); + while (scanner.hasNextLine()) { + + line = scanner.nextLine(); + + temp = line.split("[/:\t ]+"); + + if (Time.jourMois == Integer.parseInt(temp[0]) & Time.mois == Integer.parseInt(temp[1]) & Time.heure == Integer.parseInt(temp[3])) break; + } + scanner.close(); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return temp[6].substring(0, temp[6].length()-1).replace(".", "_"); + } + + public void majCote () { + + StringTokenizer sLigne; + @SuppressWarnings("unused") + double hsiStd = 0, hsiMoy = 0; + int idCell = 0, yPike = 0, xPike = 0; + + // Initialisation grille vide + grid = new Cell[gridWidth * gridHeight]; + + // Initialisation de toute la grille avec hsi = -1 + for (int cptCell = 0; cptCell < (gridWidth * gridHeight - 1); cptCell++) { + grid[cptCell] = new Cell(cptCell, -1); + } + + // Lecture fichier contenant les HSI de toutes les mailles + String filePath = "data/input/HSI/hsi_BRO" + Time.getSeason() + calculMarnage() + ".txt"; + Scanner scanner; + try { + scanner = new Scanner(new File(filePath)); + + // Initialisation de chaque cellule contenant HSI + // On boucle sur chaque ligne detectée + String line = scanner.nextLine(); + while (scanner.hasNextLine()) { + line = scanner.nextLine(); + + // Decoupage ligne : id, hsiStd, hsiMoy + sLigne = new StringTokenizer (line); + if (sLigne.hasMoreTokens()) + idCell = Integer.parseInt(sLigne.nextToken())-1; + if (sLigne.hasMoreTokens()) + hsiStd = Double.parseDouble(sLigne.nextToken()); + if (sLigne.hasMoreTokens()) + hsiMoy = Double.parseDouble(sLigne.nextToken()); + + // Conversion idCell en coordonnees (x, y) + // (x, y) avec les id de cellules de 0 à n-1 + yPike = (int) Math.floor(idCell / gridWidth); + xPike = (int) idCell - (yPike * gridWidth); + + // Inversion des coordonnees en Y (place l'origine en bas à gauche) + yPike = (gridHeight-1) - yPike ; + // Conversion des coordonnees (x, y) en idCell + idCell = xPike + yPike * gridWidth; + + // Initialisation du hsi de la cellule(idCell) + grid[idCell] = new Cell(idCell, hsiMoy); + } + scanner.close(); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + public void addAquaNism(Individual ind, AquaNismsGroup<?, ?> group) { super.addAquaNism(ind, group); @@ -153,7 +188,7 @@ public class Grid extends Grid2D<Cell, Individual> { */ public List<Cell> getNeighbours(Cell position) { - + List<Cell> neighbours = new ArrayList<Cell>(); List<String> listeCoord = null; int xPike = 0, yPike = 0; @@ -163,8 +198,11 @@ public class Grid extends Grid2D<Cell, Individual> { xPike = (position.getIndex() - (yPike * gridWidth)); // Calcul de la liste des mailles pour une distance donnee - AreaMovement aa = new AreaMovement("ETE","AUBE"); - listeCoord = aa.getArea(); + AreaMovement aa = new AreaMovement(Time.getSeason(),Time.getPhaseJour()); + + listeCoord = aa.getAreaMax(); + + // Calcul des mailles comprises dans le lac for (String liste : listeCoord) { diff --git a/src/main/java/pikelake/Marnage.java b/src/main/java/pikelake/Marnage.java new file mode 100644 index 0000000000000000000000000000000000000000..57dccb3bb7849819cf4d436883627f3e22e65d9d --- /dev/null +++ b/src/main/java/pikelake/Marnage.java @@ -0,0 +1,18 @@ +package pikelake; + +import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess; +import pikelake.pikes.Pike; +import pikelake.pikes.PikesGroup; + + +public class Marnage extends AquaNismsGroupProcess<Pike,PikesGroup> { + + @Override + public void doProcess(PikesGroup object) { + + Grid grid = (Grid) pilot.getAquaticWorld().getEnvironment() ; + + grid.majCote(); + + } +} diff --git a/src/main/java/pikelake/environment/AreaMovement.java b/src/main/java/pikelake/environment/AreaMovement.java index 812618dad02dfded6c0162a3cf8978cb00fd4e27..de2746081abf25e9aac722a01106edf323fc6086 100644 --- a/src/main/java/pikelake/environment/AreaMovement.java +++ b/src/main/java/pikelake/environment/AreaMovement.java @@ -9,11 +9,11 @@ import java.util.StringTokenizer; public class AreaMovement { - static List<String> area = new ArrayList<String>(); - String saison = null, phaseJour = null; int distMin = 0, distMoy = 0, distMax = 0, std = 0; - StringTokenizer sLigne; - + String saison = null, phaseJour = null; + static List<String> areaMin = new ArrayList<String>(); + static List<String> areaMoy = new ArrayList<String>(); + static List<String> areaMax = new ArrayList<String>(); public AreaMovement(String saisonRef, String phaseJourRef) { @@ -25,10 +25,10 @@ public class AreaMovement { // On boucle sur chaque ligne detectée String line = scanner.nextLine(); while (scanner.hasNextLine()) { + line = scanner.nextLine(); - // Decoupage ligne : saison ; phase du jour ; distance : minimun, moyenne, maximum et std - sLigne = new StringTokenizer (line); + StringTokenizer sLigne = new StringTokenizer (line); if (sLigne.hasMoreTokens()) saison = sLigne.nextToken(); if (sLigne.hasMoreTokens()) @@ -43,19 +43,22 @@ public class AreaMovement { std = Integer.parseInt(sLigne.nextToken()); if (saison.equals(saisonRef) & phaseJour.equals(phaseJourRef)) { - calculationArea (distMax); + areaMin = calculationArea (distMin); + areaMoy = calculationArea (distMoy); + areaMax = calculationArea (distMax); break; } - } + + } + scanner.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } - public List<String> calculationArea (int distance) { - + List<String> area = new ArrayList<String>(); int xi = 0, yi = 0; // Conversion distance en nombre de cellule int distCell = (int) Math.round(distance/10.); @@ -92,7 +95,13 @@ public class AreaMovement { public String getPhaseJour () { return phaseJour; } - public List<String> getArea () { - return area; + public List<String> getAreaMax () { + return areaMax; + } + public List<String> getAreaMin () { + return areaMin; + } + public List<String> getAreaMoy () { + return areaMoy; } } diff --git a/src/main/java/pikelake/environment/Movement2DWithinShapeObserver.java b/src/main/java/pikelake/environment/Movement2DWithinShapeObserver.java index 845ce9563d577202283f16a533c1ddddaea5eff7..ef7689f50a2cd443f2d5b8936f7d207efaf078c0 100644 --- a/src/main/java/pikelake/environment/Movement2DWithinShapeObserver.java +++ b/src/main/java/pikelake/environment/Movement2DWithinShapeObserver.java @@ -277,17 +277,11 @@ public class Movement2DWithinShapeObserver extends ObserverListener implements C xx[cptCell] = xHSI2; yy[cptCell] = yHSI2; - - } } - - - oneShot = true; + oneShot = true; } - - if (colorsIterator.hasNext()) g.setColor(colorsIterator.next()); for (Pike aquanism : group.getAquaNismsList() ) { ////for (Pike pike : group.getAquaNismsList()){ diff --git a/src/main/java/pikelake/environment/Time.java b/src/main/java/pikelake/environment/Time.java index 315e462a3d87726bb1723264f60fc26757a9708b..59e427ecd28b828be3d36254d991ddf2bcd26a8e 100644 --- a/src/main/java/pikelake/environment/Time.java +++ b/src/main/java/pikelake/environment/Time.java @@ -1,59 +1,41 @@ package pikelake.environment; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.TimeZone; +import java.io.File; +import java.io.FileNotFoundException; +import java.util.Scanner; import pikelake.pikes.Pike; import pikelake.pikes.PikesGroup; -import uk.me.jstott.coordconv.LatitudeLongitude; -import uk.me.jstott.sun.Sun; -import uk.me.jstott.util.JulianDateConverter; import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess; -import fr.cemagref.simaqualife.pilot.Pilot; - public class Time extends AquaNismsGroupProcess<Pike,PikesGroup> { - // Donnees definissant la zone d'etude (lac des Bariousses) - private TimeZone GMT = TimeZone.getTimeZone("Europe/Paris"); - private LatitudeLongitude LAT_LONG_ROYAN = new LatitudeLongitude(LatitudeLongitude.NORTH,45,33,55,LatitudeLongitude.WEST,1,49,16); - - // Date de debut de la simulation - private Calendar startSimulationTime = new GregorianCalendar(2012,1,1,0,0,0); public static long yearOfBegin = 2012 ; - - + protected final static Time simulationTimeInstance = new Time(); public static enum PhaseJour {AUBE, JOUR, CREP, NUIT}; public static enum Season {PRINTEMPS, ETE, AUTOMNE, HIVER}; - public static enum Mois {JANVIER, FEVRIER, MARS, AVRIL, MAI, JUIN, JUILLET, AOUT, SEPTEMBRE, OCTOBRE, NOVEMBRE, DECRMBRE}; - public static int mois = 0, jour = 0, saison = 0, annee = 0, phaseJour = 0, heure = 0; + public static enum Mois {JANVIER, FEVRIER, MARS, AVRIL, MAI, JUIN, JUILLET, AOUT, SEPTEMBRE, OCTOBRE, NOVEMBRE, DECEMBRE}; + public static int mois = 0, jour = 0, jourMois = 1, saison = 0, annee = 0, phaseJour = 0, heure = 0; - @Override - public void doProcess (PikesGroup group) { /////// heure,jour,mois,saison, annee - Calendar date = startSimulationTime; - + public void doProcess (PikesGroup group) { + long nbrIter = group.getPilot().getCurrentTime(); - - heure = (int) nbrIter % 24; - - ////////////////// Calcul de la phase de la journee - //System.out.println(isNight((int) nbrIter)); - + // Pas de temps Horaire + heure = (int) nbrIter % 24; jour = (int) Math.ceil(nbrIter / 24.); - - while (jour>365) { - yearOfBegin = yearOfBegin + 1; + if (jour>365) { + annee = annee + 1; jour = jour - 365; } + // Calcul du mois if (jour <= 31) mois = 0; // Janv else if (jour <= 59) mois = 1; // Fev else if (jour <= 90) mois = 2; // Mars - else if (jour <= 120) mois = 3; // Avril + else if (jour <= 120) mois = 3;// Avril else if (jour <= 151) mois = 4; // Mai else if (jour <= 181) mois = 5; // Juin else if (jour <= 212) mois = 6; // Juillet @@ -63,46 +45,90 @@ public class Time extends AquaNismsGroupProcess<Pike,PikesGroup> { else if (jour <= 334) mois = 10; // Nov else if (jour <= 365) mois = 11; // Dec else mois = 0; + + calculSaison(); + calculPhaseJour(); + + if (heure == 0) + jourMois = jourMois + 1; + // RAZ jourMois + if ((mois == 0 | mois == 2 | mois == 4 | mois == 6 | mois == 7 | mois == 9 | mois == 11) & jourMois == 32) jourMois = 1; + else if ((mois == 3 | mois == 5 | mois == 8 | mois == 10) & jourMois == 31) jourMois = 1; + else if (mois == 1 & jourMois == 29) jourMois = 1; - switch (mois) { - case 2 : - case 3 : - case 4 : saison = 0; - break; - case 5 : - case 6 : - case 7 : saison = 1; - break; - case 8 : - case 9 : - case 10: saison = 2; - break; - case 11: - case 0 : - case 1 : - default: saison = 3; - break; - } + //System.out.println(yearOfBegin + " " + Season.values()[saison] + " " + Mois.values()[mois] + " " + jour + " " + jourMois + " " + heure + " " + PhaseJour.values()[phaseJour]); + } + + public void calculSaison () { + if (mois == 2 & jour >= 20) saison = 0; + else if (mois == 5 & jour >= 20) saison = 1; + else if (mois == 8 & jour >= 22) saison = 2; + else if (mois == 11 & jour >= 21) saison = 3; + } + + public void calculPhaseJour () { - System.out.println(yearOfBegin + " " + Season.values()[saison] + " " + Mois.values()[mois] + " " + jour + " " + heure); + String temp[] = null, dateCompleteLever[] = null, dateCompleteCoucher[] = null; + int jourLever = 0, moisLever = 0, heureLever = 0, heureCoucher = 0; + @SuppressWarnings("unused") + int minLever = 0, minCoucher = 0; + + // Lecture fichier contenant les hoiraires de lever et de coucher du soleil + String filePath = "data/input/leshorairesdusoleil.csv"; + Scanner scanner; + try { + scanner = new Scanner(new File(filePath)); + // On boucle sur chaque ligne detectée + String line = scanner.nextLine(); + while (scanner.hasNextLine()) { + line = scanner.nextLine(); + temp = line.split(";"); + + // Détermination heure de lever du soleil + dateCompleteLever = temp[0].split("[/: ]+"); + dateCompleteCoucher = temp[1].split("[/: ]+"); + // Calcul date + jourLever = Integer.parseInt(dateCompleteLever[0]); + moisLever = Integer.parseInt(dateCompleteLever[1]); + // Lever du soleil + heureLever = Integer.parseInt(dateCompleteLever[3]); + minLever = Integer.parseInt(dateCompleteLever[4]); + // Coucher du soleil + heureCoucher = Integer.parseInt(dateCompleteCoucher[3]); + minCoucher = Integer.parseInt(dateCompleteCoucher[4]); + + // Calcul de la phase de la journee + if (jourMois == jourLever & mois == (moisLever-1)) { + if (heure > heureLever-2 & heure < heureLever+2) phaseJour = 0; + else if (heure > heureLever+1 & heure < heureCoucher-1) phaseJour = 1; + else if (heure > heureCoucher-2 & heure < heureCoucher+2) phaseJour = 2; + else phaseJour = 3; + break; + } + } + scanner.close(); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public static String getPhaseJour () { + return PhaseJour.values()[phaseJour].toString(); } - public static Mois getMois () { - return Mois.values()[mois]; + public static String getMois () { + return Mois.values()[mois].toString(); } - public static Season getSeason(){ - return Season.values()[saison]; + public static String getSeason(){ + return Season.values()[saison].toString(); } - - public static long getYear(){ + /*public static long getYear(){ return yearOfBegin; } - - - public static long getNbYearFromBegin(long time){ return (long) Math.floor(time / Season.values().length); } @@ -111,24 +137,7 @@ public class Time extends AquaNismsGroupProcess<Pike,PikesGroup> { return 1./ Season.values().length; } - public static Time getInstance(){ return simulationTimeInstance; - } - - - public boolean isNight(int currentTime){ - - Calendar date = startSimulationTime; - date.add(Calendar.SECOND,currentTime); - double currentSecondInTheDay = (date.get(Calendar.HOUR)*60 + date.get(Calendar.MINUTE))*60 + date.get(Calendar.SECOND); - double julianDay= JulianDateConverter.dateToJulian(date); - uk.me.jstott.sun.Time morningTwilightTime= Sun.morningAstronomicalTwilightTime(julianDay, LAT_LONG_ROYAN, GMT,false); - uk.me.jstott.sun.Time eveningTwilightTime= Sun.eveningAstronomicalTwilightTime(julianDay, LAT_LONG_ROYAN, GMT,false); - double morningTwilightSecondInTheDay = (morningTwilightTime.getHours()*60 + morningTwilightTime.getMinutes())*60 + morningTwilightTime.getSeconds(); - double eveningTwilightSecondInTheDay = (eveningTwilightTime.getHours()*60 + eveningTwilightTime.getMinutes())*60 + eveningTwilightTime.getSeconds(); - - return ((currentSecondInTheDay<morningTwilightSecondInTheDay) & (currentSecondInTheDay > eveningTwilightSecondInTheDay)); - } - + }*/ } diff --git a/src/main/java/pikelake/pikes/PikeMovement.java b/src/main/java/pikelake/pikes/PikeMovement.java index c349300048fae98f88e7514e5603b2cc2d492b92..01f893a01ac7f8a81db88cb2c6320ccc163c6f6c 100644 --- a/src/main/java/pikelake/pikes/PikeMovement.java +++ b/src/main/java/pikelake/pikes/PikeMovement.java @@ -7,7 +7,6 @@ import java.util.ArrayList; import java.util.List; import pikelake.Cell; -import pikelake.environment.Time; import umontreal.iro.lecuyer.probdist.UniformDist; import umontreal.iro.lecuyer.randvar.UniformGen; import fr.cemagref.simaqualife.pilot.Pilot;