diff --git a/data/sensor_data_results.csv b/data/sensor_data_results.csv new file mode 100644 index 000000000..7ff586738 --- /dev/null +++ b/data/sensor_data_results.csv @@ -0,0 +1,1000 @@ +sensor,status +Sensor 1 at ibadan, Unsafe +Sensor 2 at ibadan, Unsafe +Sensor 3 at ibadan, Unsafe +Sensor 4 at ibadan, Unsafe +Sensor 5 at ibadan, Unsafe +Sensor 6 at ibadan, Unsafe +Sensor 7 at ibadan, Unsafe +Sensor 8 at ibadan, Unsafe +Sensor 9 at ibadan, Unsafe +Sensor 10 at ibadan, Unsafe +Sensor 11 at ibadan, Unsafe +Sensor 12 at ibadan, Unsafe +Sensor 13 at ibadan, Unsafe +Sensor 14 at ibadan, Unsafe +Sensor 15 at ibadan, Unsafe +Sensor 16 at ibadan, Unsafe +Sensor 17 at ibadan, Unsafe +Sensor 18 at ibadan, Unsafe +Sensor 19 at ibadan, Unsafe +Sensor 20 at ibadan, Unsafe +Sensor 21 at ibadan, Unsafe +Sensor 22 at ibadan, Unsafe +Sensor 23 at ibadan, Unsafe +Sensor 24 at ibadan, Unsafe +Sensor 25 at ibadan, Unsafe +Sensor 26 at ibadan, Unsafe +Sensor 27 at ibadan, Unsafe +Sensor 28 at ibadan, Unsafe +Sensor 29 at ibadan, Unsafe +Sensor 30 at ibadan, Unsafe +Sensor 31 at ibadan, Unsafe +Sensor 32 at ibadan, Unsafe +Sensor 33 at ibadan, Unsafe +Sensor 34 at ibadan, Unsafe +Sensor 35 at ibadan, Unsafe +Sensor 36 at ibadan, Unsafe +Sensor 37 at ibadan, Unsafe +Sensor 38 at ibadan, Unsafe +Sensor 39 at ibadan, Unsafe +Sensor 40 at ibadan, Unsafe +Sensor 41 at ibadan, Unsafe +Sensor 42 at ibadan, Unsafe +Sensor 43 at ibadan, Unsafe +Sensor 44 at ibadan, Unsafe +Sensor 45 at ibadan, Unsafe +Sensor 46 at ibadan, Unsafe +Sensor 47 at ibadan, Safe +Sensor 48 at ibadan, Safe +Sensor 49 at ibadan, Unsafe +Sensor 50 at ibadan, Unsafe +Sensor 51 at ibadan, Unsafe +Sensor 52 at ibadan, Unsafe +Sensor 53 at ibadan, Unsafe +Sensor 54 at ibadan, Unsafe +Sensor 55 at ibadan, Unsafe +Sensor 56 at ibadan, Unsafe +Sensor 57 at ibadan, Unsafe +Sensor 58 at ibadan, Unsafe +Sensor 59 at ibadan, Unsafe +Sensor 60 at ibadan, Unsafe +Sensor 61 at ibadan, Unsafe +Sensor 62 at ibadan, Unsafe +Sensor 63 at ibadan, Unsafe +Sensor 64 at ibadan, Unsafe +Sensor 65 at ibadan, Unsafe +Sensor 66 at ibadan, Unsafe +Sensor 67 at ibadan, Unsafe +Sensor 68 at ibadan, Unsafe +Sensor 69 at ibadan, Unsafe +Sensor 70 at ibadan, Unsafe +Sensor 71 at ibadan, Unsafe +Sensor 72 at ibadan, Unsafe +Sensor 73 at ibadan, Unsafe +Sensor 74 at ibadan, Unsafe +Sensor 75 at ibadan, Unsafe +Sensor 76 at ibadan, Unsafe +Sensor 77 at ibadan, Unsafe +Sensor 78 at ibadan, Unsafe +Sensor 79 at ibadan, Unsafe +Sensor 80 at ibadan, Unsafe +Sensor 81 at ibadan, Unsafe +Sensor 82 at ibadan, Unsafe +Sensor 83 at ibadan, Unsafe +Sensor 84 at ibadan, Unsafe +Sensor 85 at ibadan, Unsafe +Sensor 86 at ibadan, Unsafe +Sensor 87 at ibadan, Unsafe +Sensor 88 at ibadan, Unsafe +Sensor 89 at ibadan, Unsafe +Sensor 90 at ibadan, Unsafe +Sensor 91 at ibadan, Unsafe +Sensor 92 at ibadan, Unsafe +Sensor 93 at ibadan, Safe +Sensor 94 at ibadan, Unsafe +Sensor 95 at ibadan, Unsafe +Sensor 96 at ibadan, Unsafe +Sensor 97 at ibadan, Unsafe +Sensor 98 at ibadan, Unsafe +Sensor 99 at ibadan, Unsafe +Sensor 100 at ibadan, Unsafe +Sensor 101 at ibadan, Unsafe +Sensor 102 at ibadan, Unsafe +Sensor 103 at ibadan, Unsafe +Sensor 104 at ibadan, Unsafe +Sensor 105 at ibadan, Unsafe +Sensor 106 at ibadan, Unsafe +Sensor 107 at ibadan, Unsafe +Sensor 108 at ibadan, Unsafe +Sensor 109 at ibadan, Unsafe +Sensor 110 at ibadan, Unsafe +Sensor 111 at ibadan, Unsafe +Sensor 112 at ibadan, Unsafe +Sensor 113 at ibadan, Unsafe +Sensor 114 at ibadan, Unsafe +Sensor 115 at ibadan, Safe +Sensor 116 at ibadan, Unsafe +Sensor 117 at ibadan, Unsafe +Sensor 118 at ibadan, Unsafe +Sensor 119 at ibadan, Unsafe +Sensor 120 at ibadan, Unsafe +Sensor 121 at ibadan, Unsafe +Sensor 122 at ibadan, Unsafe +Sensor 123 at ibadan, Unsafe +Sensor 124 at ibadan, Unsafe +Sensor 125 at ibadan, Unsafe +Sensor 126 at ibadan, Unsafe +Sensor 127 at ibadan, Unsafe +Sensor 128 at ibadan, Unsafe +Sensor 129 at ibadan, Unsafe +Sensor 130 at ibadan, Unsafe +Sensor 131 at ibadan, Unsafe +Sensor 132 at ibadan, Unsafe +Sensor 133 at ibadan, Unsafe +Sensor 134 at ibadan, Unsafe +Sensor 135 at ibadan, Unsafe +Sensor 136 at ibadan, Unsafe +Sensor 137 at ibadan, Unsafe +Sensor 138 at ibadan, Unsafe +Sensor 139 at ibadan, Unsafe +Sensor 140 at ibadan, Unsafe +Sensor 141 at ibadan, Unsafe +Sensor 142 at ibadan, Unsafe +Sensor 143 at ibadan, Unsafe +Sensor 144 at ibadan, Unsafe +Sensor 145 at ibadan, Unsafe +Sensor 146 at ibadan, Unsafe +Sensor 147 at ibadan, Unsafe +Sensor 148 at ibadan, Unsafe +Sensor 149 at ibadan, Unsafe +Sensor 150 at ibadan, Unsafe +Sensor 151 at ibadan, Unsafe +Sensor 152 at ibadan, Unsafe +Sensor 153 at ibadan, Unsafe +Sensor 154 at ibadan, Unsafe +Sensor 155 at ibadan, Unsafe +Sensor 156 at ibadan, Unsafe +Sensor 157 at ibadan, Unsafe +Sensor 158 at ibadan, Unsafe +Sensor 159 at ibadan, Unsafe +Sensor 160 at ibadan, Unsafe +Sensor 161 at ibadan, Unsafe +Sensor 162 at ibadan, Unsafe +Sensor 163 at ibadan, Unsafe +Sensor 164 at ibadan, Unsafe +Sensor 165 at ibadan, Unsafe +Sensor 166 at ibadan, Unsafe +Sensor 167 at ibadan, Unsafe +Sensor 168 at ibadan, Unsafe +Sensor 169 at ibadan, Unsafe +Sensor 170 at ibadan, Unsafe +Sensor 171 at ibadan, Unsafe +Sensor 172 at ibadan, Unsafe +Sensor 173 at ibadan, Unsafe +Sensor 174 at ibadan, Unsafe +Sensor 175 at ibadan, Unsafe +Sensor 176 at ibadan, Unsafe +Sensor 177 at ibadan, Unsafe +Sensor 178 at ibadan, Unsafe +Sensor 179 at ibadan, Unsafe +Sensor 180 at ibadan, Unsafe +Sensor 181 at ibadan, Unsafe +Sensor 182 at ibadan, Unsafe +Sensor 183 at ibadan, Unsafe +Sensor 184 at ibadan, Unsafe +Sensor 185 at ibadan, Unsafe +Sensor 186 at ibadan, Unsafe +Sensor 187 at ibadan, Unsafe +Sensor 188 at ibadan, Unsafe +Sensor 189 at ibadan, Unsafe +Sensor 190 at ibadan, Unsafe +Sensor 191 at ibadan, Unsafe +Sensor 192 at ibadan, Unsafe +Sensor 193 at ibadan, Unsafe +Sensor 194 at ibadan, Unsafe +Sensor 195 at ibadan, Unsafe +Sensor 196 at ibadan, Unsafe +Sensor 197 at ibadan, Unsafe +Sensor 198 at ibadan, Unsafe +Sensor 199 at ibadan, Unsafe +Sensor 200 at ibadan, Unsafe +Sensor 201 at ibadan, Unsafe +Sensor 202 at ibadan, Unsafe +Sensor 203 at ibadan, Unsafe +Sensor 204 at ibadan, Unsafe +Sensor 205 at ibadan, Unsafe +Sensor 206 at ibadan, Unsafe +Sensor 207 at ibadan, Unsafe +Sensor 208 at ibadan, Unsafe +Sensor 209 at ibadan, Unsafe +Sensor 210 at ibadan, Unsafe +Sensor 211 at ibadan, Unsafe +Sensor 212 at ibadan, Unsafe +Sensor 213 at ibadan, Unsafe +Sensor 214 at ibadan, Unsafe +Sensor 215 at ibadan, Unsafe +Sensor 216 at ibadan, Unsafe +Sensor 217 at ibadan, Unsafe +Sensor 218 at ibadan, Unsafe +Sensor 219 at ibadan, Unsafe +Sensor 220 at ibadan, Unsafe +Sensor 221 at ibadan, Unsafe +Sensor 222 at ibadan, Unsafe +Sensor 223 at ibadan, Unsafe +Sensor 224 at ibadan, Unsafe +Sensor 225 at ibadan, Unsafe +Sensor 226 at ibadan, Unsafe +Sensor 227 at ibadan, Unsafe +Sensor 228 at ibadan, Unsafe +Sensor 229 at ibadan, Unsafe +Sensor 230 at ibadan, Unsafe +Sensor 231 at ibadan, Unsafe +Sensor 232 at ibadan, Unsafe +Sensor 233 at ibadan, Unsafe +Sensor 234 at ibadan, Unsafe +Sensor 235 at ibadan, Unsafe +Sensor 236 at ibadan, Unsafe +Sensor 237 at ibadan, Unsafe +Sensor 238 at ibadan, Unsafe +Sensor 239 at ibadan, Unsafe +Sensor 240 at ibadan, Unsafe +Sensor 241 at ibadan, Safe +Sensor 242 at ibadan, Unsafe +Sensor 243 at ibadan, Unsafe +Sensor 244 at ibadan, Unsafe +Sensor 245 at ibadan, Unsafe +Sensor 246 at ibadan, Unsafe +Sensor 247 at ibadan, Unsafe +Sensor 248 at ibadan, Unsafe +Sensor 249 at ibadan, Unsafe +Sensor 250 at ibadan, Unsafe +Sensor 251 at ibadan, Unsafe +Sensor 252 at ibadan, Unsafe +Sensor 253 at ibadan, Unsafe +Sensor 254 at ibadan, Unsafe +Sensor 255 at ibadan, Unsafe +Sensor 256 at ibadan, Unsafe +Sensor 257 at ibadan, Unsafe +Sensor 258 at ibadan, Unsafe +Sensor 259 at ibadan, Unsafe +Sensor 260 at ibadan, Unsafe +Sensor 261 at ibadan, Unsafe +Sensor 262 at ibadan, Unsafe +Sensor 263 at ibadan, Unsafe +Sensor 264 at ibadan, Unsafe +Sensor 265 at ibadan, Unsafe +Sensor 266 at ibadan, Unsafe +Sensor 267 at ibadan, Unsafe +Sensor 268 at ibadan, Unsafe +Sensor 269 at ibadan, Unsafe +Sensor 270 at ibadan, Unsafe +Sensor 271 at ibadan, Unsafe +Sensor 272 at ibadan, Unsafe +Sensor 273 at ibadan, Unsafe +Sensor 274 at ibadan, Unsafe +Sensor 275 at ibadan, Unsafe +Sensor 276 at ibadan, Unsafe +Sensor 277 at ibadan, Unsafe +Sensor 278 at ibadan, Unsafe +Sensor 279 at ibadan, Unsafe +Sensor 280 at ibadan, Unsafe +Sensor 281 at ibadan, Unsafe +Sensor 282 at ibadan, Unsafe +Sensor 283 at ibadan, Unsafe +Sensor 284 at ibadan, Unsafe +Sensor 285 at ibadan, Unsafe +Sensor 286 at ibadan, Unsafe +Sensor 287 at ibadan, Safe +Sensor 288 at ibadan, Unsafe +Sensor 289 at ibadan, Unsafe +Sensor 290 at ibadan, Unsafe +Sensor 291 at ibadan, Unsafe +Sensor 292 at ibadan, Unsafe +Sensor 293 at ibadan, Unsafe +Sensor 294 at ibadan, Unsafe +Sensor 295 at ibadan, Unsafe +Sensor 296 at ibadan, Unsafe +Sensor 297 at ibadan, Unsafe +Sensor 298 at ibadan, Unsafe +Sensor 299 at ibadan, Unsafe +Sensor 300 at ibadan, Unsafe +Sensor 301 at ibadan, Unsafe +Sensor 302 at ibadan, Unsafe +Sensor 303 at ibadan, Unsafe +Sensor 304 at ibadan, Unsafe +Sensor 305 at ibadan, Unsafe +Sensor 306 at ibadan, Unsafe +Sensor 307 at ibadan, Unsafe +Sensor 308 at ibadan, Unsafe +Sensor 309 at ibadan, Unsafe +Sensor 310 at ibadan, Unsafe +Sensor 311 at ibadan, Unsafe +Sensor 312 at ibadan, Unsafe +Sensor 313 at ibadan, Unsafe +Sensor 314 at ibadan, Unsafe +Sensor 315 at ibadan, Unsafe +Sensor 316 at ibadan, Unsafe +Sensor 317 at ibadan, Unsafe +Sensor 318 at ibadan, Unsafe +Sensor 319 at ibadan, Unsafe +Sensor 320 at ibadan, Unsafe +Sensor 321 at ibadan, Unsafe +Sensor 322 at ibadan, Unsafe +Sensor 323 at ibadan, Unsafe +Sensor 324 at ibadan, Unsafe +Sensor 325 at ibadan, Unsafe +Sensor 326 at ibadan, Unsafe +Sensor 327 at ibadan, Unsafe +Sensor 328 at ibadan, Unsafe +Sensor 329 at ibadan, Unsafe +Sensor 330 at ibadan, Unsafe +Sensor 331 at ibadan, Unsafe +Sensor 332 at ibadan, Unsafe +Sensor 333 at ibadan, Unsafe +Sensor 334 at ibadan, Unsafe +Sensor 335 at ibadan, Unsafe +Sensor 336 at ibadan, Unsafe +Sensor 337 at ibadan, Unsafe +Sensor 338 at ibadan, Unsafe +Sensor 339 at ibadan, Unsafe +Sensor 340 at ibadan, Unsafe +Sensor 341 at ibadan, Unsafe +Sensor 342 at ibadan, Unsafe +Sensor 343 at ibadan, Unsafe +Sensor 344 at ibadan, Unsafe +Sensor 345 at ibadan, Unsafe +Sensor 346 at ibadan, Unsafe +Sensor 347 at ibadan, Unsafe +Sensor 348 at ibadan, Unsafe +Sensor 349 at ibadan, Unsafe +Sensor 350 at ibadan, Unsafe +Sensor 351 at ibadan, Unsafe +Sensor 352 at ibadan, Unsafe +Sensor 353 at ibadan, Unsafe +Sensor 354 at ibadan, Unsafe +Sensor 355 at ibadan, Unsafe +Sensor 356 at ibadan, Unsafe +Sensor 357 at ibadan, Unsafe +Sensor 358 at ibadan, Unsafe +Sensor 359 at ibadan, Unsafe +Sensor 360 at ibadan, Unsafe +Sensor 361 at ibadan, Unsafe +Sensor 362 at ibadan, Unsafe +Sensor 363 at ibadan, Unsafe +Sensor 364 at ibadan, Unsafe +Sensor 365 at ibadan, Unsafe +Sensor 366 at ibadan, Unsafe +Sensor 367 at ibadan, Unsafe +Sensor 368 at ibadan, Unsafe +Sensor 369 at ibadan, Unsafe +Sensor 370 at ibadan, Unsafe +Sensor 371 at ibadan, Unsafe +Sensor 372 at ibadan, Unsafe +Sensor 373 at ibadan, Unsafe +Sensor 374 at ibadan, Unsafe +Sensor 375 at ibadan, Unsafe +Sensor 376 at ibadan, Unsafe +Sensor 377 at ibadan, Unsafe +Sensor 378 at ibadan, Unsafe +Sensor 379 at ibadan, Unsafe +Sensor 380 at ibadan, Unsafe +Sensor 381 at ibadan, Unsafe +Sensor 382 at ibadan, Unsafe +Sensor 383 at ibadan, Unsafe +Sensor 384 at ibadan, Unsafe +Sensor 385 at ibadan, Unsafe +Sensor 386 at ibadan, Unsafe +Sensor 387 at ibadan, Unsafe +Sensor 388 at ibadan, Unsafe +Sensor 389 at ibadan, Unsafe +Sensor 390 at ibadan, Unsafe +Sensor 391 at ibadan, Unsafe +Sensor 392 at ibadan, Unsafe +Sensor 393 at ibadan, Unsafe +Sensor 394 at ibadan, Unsafe +Sensor 395 at ibadan, Unsafe +Sensor 396 at ibadan, Unsafe +Sensor 397 at ibadan, Unsafe +Sensor 398 at ibadan, Unsafe +Sensor 399 at ibadan, Unsafe +Sensor 400 at ibadan, Unsafe +Sensor 401 at ibadan, Unsafe +Sensor 402 at ibadan, Unsafe +Sensor 403 at ibadan, Unsafe +Sensor 404 at ibadan, Unsafe +Sensor 405 at ibadan, Unsafe +Sensor 406 at ibadan, Unsafe +Sensor 407 at ibadan, Unsafe +Sensor 408 at ibadan, Unsafe +Sensor 409 at ibadan, Unsafe +Sensor 410 at ibadan, Unsafe +Sensor 411 at ibadan, Unsafe +Sensor 412 at ibadan, Unsafe +Sensor 413 at ibadan, Unsafe +Sensor 414 at ibadan, Unsafe +Sensor 415 at ibadan, Unsafe +Sensor 416 at ibadan, Safe +Sensor 417 at ibadan, Unsafe +Sensor 418 at ibadan, Unsafe +Sensor 419 at ibadan, Unsafe +Sensor 420 at ibadan, Unsafe +Sensor 421 at ibadan, Unsafe +Sensor 422 at ibadan, Safe +Sensor 423 at ibadan, Unsafe +Sensor 424 at ibadan, Unsafe +Sensor 425 at ibadan, Unsafe +Sensor 426 at ibadan, Unsafe +Sensor 427 at ibadan, Unsafe +Sensor 428 at ibadan, Unsafe +Sensor 429 at ibadan, Unsafe +Sensor 430 at ibadan, Unsafe +Sensor 431 at ibadan, Unsafe +Sensor 432 at ibadan, Unsafe +Sensor 433 at ibadan, Unsafe +Sensor 434 at ibadan, Unsafe +Sensor 435 at ibadan, Unsafe +Sensor 436 at ibadan, Unsafe +Sensor 437 at ibadan, Unsafe +Sensor 438 at ibadan, Unsafe +Sensor 439 at ibadan, Unsafe +Sensor 440 at ibadan, Unsafe +Sensor 441 at ibadan, Unsafe +Sensor 442 at ibadan, Unsafe +Sensor 443 at ibadan, Unsafe +Sensor 444 at ibadan, Safe +Sensor 445 at ibadan, Unsafe +Sensor 446 at ibadan, Unsafe +Sensor 447 at ibadan, Unsafe +Sensor 448 at ibadan, Unsafe +Sensor 449 at ibadan, Unsafe +Sensor 450 at ibadan, Unsafe +Sensor 451 at ibadan, Unsafe +Sensor 452 at ibadan, Unsafe +Sensor 453 at ibadan, Unsafe +Sensor 454 at ibadan, Unsafe +Sensor 455 at ibadan, Unsafe +Sensor 456 at ibadan, Unsafe +Sensor 457 at ibadan, Unsafe +Sensor 458 at ibadan, Unsafe +Sensor 459 at ibadan, Unsafe +Sensor 460 at ibadan, Unsafe +Sensor 461 at ibadan, Unsafe +Sensor 462 at ibadan, Unsafe +Sensor 463 at ibadan, Unsafe +Sensor 464 at ibadan, Unsafe +Sensor 465 at ibadan, Unsafe +Sensor 466 at ibadan, Unsafe +Sensor 467 at ibadan, Unsafe +Sensor 468 at ibadan, Unsafe +Sensor 469 at ibadan, Unsafe +Sensor 470 at ibadan, Unsafe +Sensor 471 at ibadan, Unsafe +Sensor 472 at ibadan, Unsafe +Sensor 473 at ibadan, Unsafe +Sensor 474 at ibadan, Unsafe +Sensor 475 at ibadan, Unsafe +Sensor 476 at ibadan, Unsafe +Sensor 477 at ibadan, Unsafe +Sensor 478 at ibadan, Unsafe +Sensor 479 at ibadan, Unsafe +Sensor 480 at ibadan, Unsafe +Sensor 481 at ibadan, Unsafe +Sensor 482 at ibadan, Unsafe +Sensor 483 at ibadan, Unsafe +Sensor 484 at ibadan, Unsafe +Sensor 485 at ibadan, Unsafe +Sensor 486 at ibadan, Unsafe +Sensor 487 at ibadan, Unsafe +Sensor 488 at ibadan, Unsafe +Sensor 489 at ibadan, Unsafe +Sensor 490 at ibadan, Unsafe +Sensor 491 at ibadan, Unsafe +Sensor 492 at ibadan, Unsafe +Sensor 493 at ibadan, Unsafe +Sensor 494 at ibadan, Unsafe +Sensor 495 at ibadan, Unsafe +Sensor 496 at ibadan, Unsafe +Sensor 497 at ibadan, Unsafe +Sensor 498 at ibadan, Unsafe +Sensor 499 at ibadan, Unsafe +Sensor 500 at ibadan, Unsafe +Sensor 501 at ibadan, Unsafe +Sensor 502 at ibadan, Unsafe +Sensor 503 at ibadan, Unsafe +Sensor 504 at ibadan, Unsafe +Sensor 505 at ibadan, Unsafe +Sensor 506 at ibadan, Unsafe +Sensor 507 at ibadan, Unsafe +Sensor 508 at ibadan, Unsafe +Sensor 509 at ibadan, Unsafe +Sensor 510 at ibadan, Unsafe +Sensor 511 at ibadan, Unsafe +Sensor 512 at ibadan, Unsafe +Sensor 513 at ibadan, Unsafe +Sensor 514 at ibadan, Unsafe +Sensor 515 at ibadan, Unsafe +Sensor 516 at ibadan, Unsafe +Sensor 517 at ibadan, Unsafe +Sensor 518 at ibadan, Unsafe +Sensor 519 at ibadan, Unsafe +Sensor 520 at ibadan, Unsafe +Sensor 521 at ibadan, Unsafe +Sensor 522 at ibadan, Unsafe +Sensor 523 at ibadan, Unsafe +Sensor 524 at ibadan, Unsafe +Sensor 525 at ibadan, Unsafe +Sensor 526 at ibadan, Unsafe +Sensor 527 at ibadan, Unsafe +Sensor 528 at ibadan, Unsafe +Sensor 529 at ibadan, Unsafe +Sensor 530 at ibadan, Unsafe +Sensor 531 at ibadan, Unsafe +Sensor 532 at ibadan, Unsafe +Sensor 533 at ibadan, Unsafe +Sensor 534 at ibadan, Unsafe +Sensor 535 at ibadan, Unsafe +Sensor 536 at ibadan, Unsafe +Sensor 537 at ibadan, Unsafe +Sensor 538 at ibadan, Unsafe +Sensor 539 at ibadan, Unsafe +Sensor 540 at ibadan, Unsafe +Sensor 541 at ibadan, Unsafe +Sensor 542 at ibadan, Unsafe +Sensor 543 at ibadan, Unsafe +Sensor 544 at ibadan, Unsafe +Sensor 545 at ibadan, Unsafe +Sensor 546 at ibadan, Unsafe +Sensor 547 at ibadan, Unsafe +Sensor 548 at ibadan, Unsafe +Sensor 549 at ibadan, Unsafe +Sensor 550 at ibadan, Unsafe +Sensor 551 at ibadan, Unsafe +Sensor 552 at ibadan, Unsafe +Sensor 553 at ibadan, Unsafe +Sensor 554 at ibadan, Unsafe +Sensor 555 at ibadan, Unsafe +Sensor 556 at ibadan, Unsafe +Sensor 557 at ibadan, Unsafe +Sensor 558 at ibadan, Unsafe +Sensor 559 at ibadan, Unsafe +Sensor 560 at ibadan, Unsafe +Sensor 561 at ibadan, Unsafe +Sensor 562 at ibadan, Unsafe +Sensor 563 at ibadan, Unsafe +Sensor 564 at ibadan, Unsafe +Sensor 565 at ibadan, Unsafe +Sensor 566 at ibadan, Unsafe +Sensor 567 at ibadan, Unsafe +Sensor 568 at ibadan, Unsafe +Sensor 569 at ibadan, Unsafe +Sensor 570 at ibadan, Unsafe +Sensor 571 at ibadan, Unsafe +Sensor 572 at ibadan, Unsafe +Sensor 573 at ibadan, Unsafe +Sensor 574 at ibadan, Unsafe +Sensor 575 at ibadan, Unsafe +Sensor 576 at ibadan, Unsafe +Sensor 577 at ibadan, Unsafe +Sensor 578 at ibadan, Unsafe +Sensor 579 at ibadan, Unsafe +Sensor 580 at ibadan, Unsafe +Sensor 581 at ibadan, Unsafe +Sensor 582 at ibadan, Unsafe +Sensor 583 at ibadan, Unsafe +Sensor 584 at ibadan, Unsafe +Sensor 585 at ibadan, Unsafe +Sensor 586 at ibadan, Unsafe +Sensor 587 at ibadan, Unsafe +Sensor 588 at ibadan, Unsafe +Sensor 589 at ibadan, Unsafe +Sensor 590 at ibadan, Unsafe +Sensor 591 at ibadan, Unsafe +Sensor 592 at ibadan, Unsafe +Sensor 593 at ibadan, Unsafe +Sensor 594 at ibadan, Unsafe +Sensor 595 at ibadan, Unsafe +Sensor 596 at ibadan, Unsafe +Sensor 597 at ibadan, Unsafe +Sensor 598 at ibadan, Unsafe +Sensor 599 at ibadan, Unsafe +Sensor 600 at ibadan, Unsafe +Sensor 601 at ibadan, Unsafe +Sensor 602 at ibadan, Unsafe +Sensor 603 at ibadan, Unsafe +Sensor 604 at ibadan, Unsafe +Sensor 605 at ibadan, Unsafe +Sensor 606 at ibadan, Unsafe +Sensor 607 at ibadan, Unsafe +Sensor 608 at ibadan, Unsafe +Sensor 609 at ibadan, Unsafe +Sensor 610 at ibadan, Unsafe +Sensor 611 at ibadan, Unsafe +Sensor 612 at ibadan, Unsafe +Sensor 613 at ibadan, Unsafe +Sensor 614 at ibadan, Unsafe +Sensor 615 at ibadan, Unsafe +Sensor 616 at ibadan, Unsafe +Sensor 617 at ibadan, Unsafe +Sensor 618 at ibadan, Unsafe +Sensor 619 at ibadan, Unsafe +Sensor 620 at ibadan, Unsafe +Sensor 621 at ibadan, Unsafe +Sensor 622 at ibadan, Unsafe +Sensor 623 at ibadan, Unsafe +Sensor 624 at ibadan, Unsafe +Sensor 625 at ibadan, Unsafe +Sensor 626 at ibadan, Unsafe +Sensor 627 at ibadan, Unsafe +Sensor 628 at ibadan, Unsafe +Sensor 629 at ibadan, Unsafe +Sensor 630 at ibadan, Unsafe +Sensor 631 at ibadan, Unsafe +Sensor 632 at ibadan, Unsafe +Sensor 633 at ibadan, Unsafe +Sensor 634 at ibadan, Unsafe +Sensor 635 at ibadan, Unsafe +Sensor 636 at ibadan, Unsafe +Sensor 637 at ibadan, Unsafe +Sensor 638 at ibadan, Unsafe +Sensor 639 at ibadan, Unsafe +Sensor 640 at ibadan, Unsafe +Sensor 641 at ibadan, Unsafe +Sensor 642 at ibadan, Safe +Sensor 643 at ibadan, Unsafe +Sensor 644 at ibadan, Unsafe +Sensor 645 at ibadan, Unsafe +Sensor 646 at ibadan, Unsafe +Sensor 647 at ibadan, Unsafe +Sensor 648 at ibadan, Unsafe +Sensor 649 at ibadan, Unsafe +Sensor 650 at ibadan, Unsafe +Sensor 651 at ibadan, Unsafe +Sensor 652 at ibadan, Unsafe +Sensor 653 at ibadan, Unsafe +Sensor 654 at ibadan, Safe +Sensor 655 at ibadan, Unsafe +Sensor 656 at ibadan, Unsafe +Sensor 657 at ibadan, Unsafe +Sensor 658 at ibadan, Unsafe +Sensor 659 at ibadan, Unsafe +Sensor 660 at ibadan, Unsafe +Sensor 661 at ibadan, Unsafe +Sensor 662 at ibadan, Unsafe +Sensor 663 at ibadan, Unsafe +Sensor 664 at ibadan, Unsafe +Sensor 665 at ibadan, Unsafe +Sensor 666 at ibadan, Unsafe +Sensor 667 at ibadan, Unsafe +Sensor 668 at ibadan, Unsafe +Sensor 669 at ibadan, Unsafe +Sensor 670 at ibadan, Unsafe +Sensor 671 at ibadan, Unsafe +Sensor 672 at ibadan, Unsafe +Sensor 673 at ibadan, Unsafe +Sensor 674 at ibadan, Unsafe +Sensor 675 at ibadan, Unsafe +Sensor 676 at ibadan, Unsafe +Sensor 677 at ibadan, Unsafe +Sensor 678 at ibadan, Unsafe +Sensor 679 at ibadan, Unsafe +Sensor 680 at ibadan, Unsafe +Sensor 681 at ibadan, Unsafe +Sensor 682 at ibadan, Unsafe +Sensor 683 at ibadan, Unsafe +Sensor 684 at ibadan, Unsafe +Sensor 685 at ibadan, Safe +Sensor 686 at ibadan, Unsafe +Sensor 687 at ibadan, Unsafe +Sensor 688 at ibadan, Unsafe +Sensor 689 at ibadan, Unsafe +Sensor 690 at ibadan, Unsafe +Sensor 691 at ibadan, Unsafe +Sensor 692 at ibadan, Unsafe +Sensor 693 at ibadan, Unsafe +Sensor 694 at ibadan, Unsafe +Sensor 695 at ibadan, Unsafe +Sensor 696 at ibadan, Unsafe +Sensor 697 at ibadan, Unsafe +Sensor 698 at ibadan, Unsafe +Sensor 699 at ibadan, Unsafe +Sensor 700 at ibadan, Unsafe +Sensor 701 at ibadan, Safe +Sensor 702 at ibadan, Unsafe +Sensor 703 at ibadan, Unsafe +Sensor 704 at ibadan, Unsafe +Sensor 705 at ibadan, Unsafe +Sensor 706 at ibadan, Unsafe +Sensor 707 at ibadan, Unsafe +Sensor 708 at ibadan, Unsafe +Sensor 709 at ibadan, Unsafe +Sensor 710 at ibadan, Unsafe +Sensor 711 at ibadan, Unsafe +Sensor 712 at ibadan, Unsafe +Sensor 713 at ibadan, Unsafe +Sensor 714 at ibadan, Unsafe +Sensor 715 at ibadan, Unsafe +Sensor 716 at ibadan, Unsafe +Sensor 717 at ibadan, Unsafe +Sensor 718 at ibadan, Unsafe +Sensor 719 at ibadan, Unsafe +Sensor 720 at ibadan, Unsafe +Sensor 721 at ibadan, Unsafe +Sensor 722 at ibadan, Unsafe +Sensor 723 at ibadan, Unsafe +Sensor 724 at ibadan, Unsafe +Sensor 725 at ibadan, Unsafe +Sensor 726 at ibadan, Unsafe +Sensor 727 at ibadan, Unsafe +Sensor 728 at ibadan, Unsafe +Sensor 729 at ibadan, Unsafe +Sensor 730 at ibadan, Unsafe +Sensor 731 at ibadan, Unsafe +Sensor 732 at ibadan, Unsafe +Sensor 733 at ibadan, Unsafe +Sensor 734 at ibadan, Unsafe +Sensor 735 at ibadan, Unsafe +Sensor 736 at ibadan, Unsafe +Sensor 737 at ibadan, Unsafe +Sensor 738 at ibadan, Unsafe +Sensor 739 at ibadan, Unsafe +Sensor 740 at ibadan, Unsafe +Sensor 741 at ibadan, Unsafe +Sensor 742 at ibadan, Unsafe +Sensor 743 at ibadan, Unsafe +Sensor 744 at ibadan, Unsafe +Sensor 745 at ibadan, Unsafe +Sensor 746 at ibadan, Unsafe +Sensor 747 at ibadan, Unsafe +Sensor 748 at ibadan, Unsafe +Sensor 749 at ibadan, Unsafe +Sensor 750 at ibadan, Unsafe +Sensor 751 at ibadan, Unsafe +Sensor 752 at ibadan, Unsafe +Sensor 753 at ibadan, Unsafe +Sensor 754 at ibadan, Unsafe +Sensor 755 at ibadan, Unsafe +Sensor 756 at ibadan, Unsafe +Sensor 757 at ibadan, Unsafe +Sensor 758 at ibadan, Unsafe +Sensor 759 at ibadan, Unsafe +Sensor 760 at ibadan, Unsafe +Sensor 761 at ibadan, Unsafe +Sensor 762 at ibadan, Unsafe +Sensor 763 at ibadan, Unsafe +Sensor 764 at ibadan, Unsafe +Sensor 765 at ibadan, Unsafe +Sensor 766 at ibadan, Unsafe +Sensor 767 at ibadan, Unsafe +Sensor 768 at ibadan, Unsafe +Sensor 769 at ibadan, Unsafe +Sensor 770 at ibadan, Unsafe +Sensor 771 at ibadan, Unsafe +Sensor 772 at ibadan, Unsafe +Sensor 773 at ibadan, Unsafe +Sensor 774 at ibadan, Unsafe +Sensor 775 at ibadan, Unsafe +Sensor 776 at ibadan, Unsafe +Sensor 777 at ibadan, Unsafe +Sensor 778 at ibadan, Unsafe +Sensor 779 at ibadan, Unsafe +Sensor 780 at ibadan, Unsafe +Sensor 781 at ibadan, Unsafe +Sensor 782 at ibadan, Unsafe +Sensor 783 at ibadan, Unsafe +Sensor 784 at ibadan, Unsafe +Sensor 785 at ibadan, Unsafe +Sensor 786 at ibadan, Unsafe +Sensor 787 at ibadan, Unsafe +Sensor 788 at ibadan, Unsafe +Sensor 789 at ibadan, Unsafe +Sensor 790 at ibadan, Unsafe +Sensor 791 at ibadan, Unsafe +Sensor 792 at ibadan, Unsafe +Sensor 793 at ibadan, Safe +Sensor 794 at ibadan, Unsafe +Sensor 795 at ibadan, Unsafe +Sensor 796 at ibadan, Unsafe +Sensor 797 at ibadan, Unsafe +Sensor 798 at ibadan, Unsafe +Sensor 799 at ibadan, Unsafe +Sensor 800 at ibadan, Unsafe +Sensor 801 at ibadan, Unsafe +Sensor 802 at ibadan, Unsafe +Sensor 803 at ibadan, Unsafe +Sensor 804 at ibadan, Safe +Sensor 805 at ibadan, Unsafe +Sensor 806 at ibadan, Unsafe +Sensor 807 at ibadan, Safe +Sensor 808 at ibadan, Unsafe +Sensor 809 at ibadan, Safe +Sensor 810 at ibadan, Unsafe +Sensor 811 at ibadan, Unsafe +Sensor 812 at ibadan, Unsafe +Sensor 813 at ibadan, Unsafe +Sensor 814 at ibadan, Unsafe +Sensor 815 at ibadan, Unsafe +Sensor 816 at ibadan, Unsafe +Sensor 817 at ibadan, Unsafe +Sensor 818 at ibadan, Unsafe +Sensor 819 at ibadan, Unsafe +Sensor 820 at ibadan, Unsafe +Sensor 821 at ibadan, Unsafe +Sensor 822 at ibadan, Unsafe +Sensor 823 at ibadan, Unsafe +Sensor 824 at ibadan, Unsafe +Sensor 825 at ibadan, Unsafe +Sensor 826 at ibadan, Unsafe +Sensor 827 at ibadan, Unsafe +Sensor 828 at ibadan, Unsafe +Sensor 829 at ibadan, Safe +Sensor 830 at ibadan, Unsafe +Sensor 831 at ibadan, Unsafe +Sensor 832 at ibadan, Unsafe +Sensor 833 at ibadan, Unsafe +Sensor 834 at ibadan, Unsafe +Sensor 835 at ibadan, Unsafe +Sensor 836 at ibadan, Unsafe +Sensor 837 at ibadan, Unsafe +Sensor 838 at ibadan, Unsafe +Sensor 839 at ibadan, Unsafe +Sensor 840 at ibadan, Unsafe +Sensor 841 at ibadan, Unsafe +Sensor 842 at ibadan, Unsafe +Sensor 843 at ibadan, Unsafe +Sensor 844 at ibadan, Unsafe +Sensor 845 at ibadan, Unsafe +Sensor 846 at ibadan, Unsafe +Sensor 847 at ibadan, Unsafe +Sensor 848 at ibadan, Unsafe +Sensor 849 at ibadan, Unsafe +Sensor 850 at ibadan, Unsafe +Sensor 851 at ibadan, Unsafe +Sensor 852 at ibadan, Unsafe +Sensor 853 at ibadan, Unsafe +Sensor 854 at ibadan, Unsafe +Sensor 855 at ibadan, Unsafe +Sensor 856 at ibadan, Unsafe +Sensor 857 at ibadan, Unsafe +Sensor 858 at ibadan, Safe +Sensor 859 at ibadan, Unsafe +Sensor 860 at ibadan, Unsafe +Sensor 861 at ibadan, Unsafe +Sensor 862 at ibadan, Unsafe +Sensor 863 at ibadan, Unsafe +Sensor 864 at ibadan, Unsafe +Sensor 865 at ibadan, Unsafe +Sensor 866 at ibadan, Unsafe +Sensor 867 at ibadan, Unsafe +Sensor 868 at ibadan, Unsafe +Sensor 869 at ibadan, Unsafe +Sensor 870 at ibadan, Unsafe +Sensor 871 at ibadan, Unsafe +Sensor 872 at ibadan, Unsafe +Sensor 873 at ibadan, Unsafe +Sensor 874 at ibadan, Unsafe +Sensor 875 at ibadan, Safe +Sensor 876 at ibadan, Unsafe +Sensor 877 at ibadan, Unsafe +Sensor 878 at ibadan, Unsafe +Sensor 879 at ibadan, Unsafe +Sensor 880 at ibadan, Unsafe +Sensor 881 at ibadan, Unsafe +Sensor 882 at ibadan, Unsafe +Sensor 883 at ibadan, Unsafe +Sensor 884 at ibadan, Unsafe +Sensor 885 at ibadan, Unsafe +Sensor 886 at ibadan, Unsafe +Sensor 887 at ibadan, Unsafe +Sensor 888 at ibadan, Unsafe +Sensor 889 at ibadan, Unsafe +Sensor 890 at ibadan, Unsafe +Sensor 891 at ibadan, Unsafe +Sensor 892 at ibadan, Unsafe +Sensor 893 at ibadan, Unsafe +Sensor 894 at ibadan, Unsafe +Sensor 895 at ibadan, Unsafe +Sensor 896 at ibadan, Unsafe +Sensor 897 at ibadan, Unsafe +Sensor 898 at ibadan, Unsafe +Sensor 899 at ibadan, Unsafe +Sensor 900 at ibadan, Unsafe +Sensor 901 at ibadan, Safe +Sensor 902 at ibadan, Unsafe +Sensor 903 at ibadan, Unsafe +Sensor 904 at ibadan, Unsafe +Sensor 905 at ibadan, Unsafe +Sensor 906 at ibadan, Unsafe +Sensor 907 at ibadan, Unsafe +Sensor 908 at ibadan, Unsafe +Sensor 909 at ibadan, Unsafe +Sensor 910 at ibadan, Unsafe +Sensor 911 at ibadan, Unsafe +Sensor 912 at ibadan, Unsafe +Sensor 913 at ibadan, Unsafe +Sensor 914 at ibadan, Unsafe +Sensor 915 at ibadan, Unsafe +Sensor 916 at ibadan, Unsafe +Sensor 917 at ibadan, Unsafe +Sensor 918 at ibadan, Unsafe +Sensor 919 at ibadan, Unsafe +Sensor 920 at ibadan, Unsafe +Sensor 921 at ibadan, Unsafe +Sensor 922 at ibadan, Unsafe +Sensor 923 at ibadan, Unsafe +Sensor 924 at ibadan, Unsafe +Sensor 925 at ibadan, Unsafe +Sensor 926 at ibadan, Unsafe +Sensor 927 at ibadan, Unsafe +Sensor 928 at ibadan, Unsafe +Sensor 929 at ibadan, Unsafe +Sensor 930 at ibadan, Unsafe +Sensor 931 at ibadan, Unsafe +Sensor 932 at ibadan, Unsafe +Sensor 933 at ibadan, Unsafe +Sensor 934 at ibadan, Unsafe +Sensor 935 at ibadan, Unsafe +Sensor 936 at ibadan, Unsafe +Sensor 937 at ibadan, Unsafe +Sensor 938 at ibadan, Unsafe +Sensor 939 at ibadan, Unsafe +Sensor 940 at ibadan, Unsafe +Sensor 941 at ibadan, Unsafe +Sensor 942 at ibadan, Unsafe +Sensor 943 at ibadan, Unsafe +Sensor 944 at ibadan, Unsafe +Sensor 945 at ibadan, Unsafe +Sensor 946 at ibadan, Unsafe +Sensor 947 at ibadan, Safe +Sensor 948 at ibadan, Unsafe +Sensor 949 at ibadan, Unsafe +Sensor 950 at ibadan, Unsafe +Sensor 951 at ibadan, Unsafe +Sensor 952 at ibadan, Unsafe +Sensor 953 at ibadan, Unsafe +Sensor 954 at ibadan, Unsafe +Sensor 955 at ibadan, Unsafe +Sensor 956 at ibadan, Unsafe +Sensor 957 at ibadan, Unsafe +Sensor 958 at ibadan, Unsafe +Sensor 959 at ibadan, Unsafe +Sensor 960 at ibadan, Unsafe +Sensor 961 at ibadan, Unsafe +Sensor 962 at ibadan, Unsafe +Sensor 963 at ibadan, Unsafe +Sensor 964 at ibadan, Unsafe +Sensor 965 at ibadan, Unsafe +Sensor 966 at ibadan, Unsafe +Sensor 967 at ibadan, Unsafe +Sensor 968 at ibadan, Unsafe +Sensor 969 at ibadan, Unsafe +Sensor 970 at ibadan, Unsafe +Sensor 971 at ibadan, Unsafe +Sensor 972 at ibadan, Unsafe +Sensor 973 at ibadan, Unsafe +Sensor 974 at ibadan, Unsafe +Sensor 975 at ibadan, Unsafe +Sensor 976 at ibadan, Unsafe +Sensor 977 at ibadan, Unsafe +Sensor 978 at ibadan, Unsafe +Sensor 979 at ibadan, Unsafe +Sensor 980 at ibadan, Unsafe +Sensor 981 at ibadan, Unsafe +Sensor 982 at ibadan, Unsafe +Sensor 983 at ibadan, Unsafe +Sensor 984 at ibadan, Unsafe +Sensor 985 at ibadan, Unsafe +Sensor 986 at ibadan, Unsafe +Sensor 987 at ibadan, Unsafe +Sensor 988 at ibadan, Unsafe +Sensor 989 at ibadan, Unsafe +Sensor 990 at ibadan, Unsafe +Sensor 991 at ibadan, Unsafe +Sensor 992 at ibadan, Unsafe +Sensor 993 at ibadan, Unsafe +Sensor 994 at ibadan, Unsafe +Sensor 995 at ibadan, Unsafe +Sensor 996 at ibadan, Unsafe +Sensor 997 at ibadan, Unsafe +Sensor 998 at ibadan, Unsafe +Sensor 999 at ibadan, Unsafe diff --git a/src/__pycache__/clean_data.cpython-311.pyc b/src/__pycache__/clean_data.cpython-311.pyc new file mode 100644 index 000000000..c0b0d4931 Binary files /dev/null and b/src/__pycache__/clean_data.cpython-311.pyc differ diff --git a/src/__pycache__/evaluate.cpython-311.pyc b/src/__pycache__/evaluate.cpython-311.pyc new file mode 100644 index 000000000..8106ec711 Binary files /dev/null and b/src/__pycache__/evaluate.cpython-311.pyc differ diff --git a/src/__pycache__/load_data.cpython-311.pyc b/src/__pycache__/load_data.cpython-311.pyc new file mode 100644 index 000000000..c1dcf168f Binary files /dev/null and b/src/__pycache__/load_data.cpython-311.pyc differ diff --git a/src/clean_data.py b/src/clean_data.py index da613640a..fc5becc47 100644 --- a/src/clean_data.py +++ b/src/clean_data.py @@ -1,7 +1,27 @@ +import pandas as pd +from load_data import load_csv def clean_sensor_data(df: pd.DataFrame) -> pd.DataFrame: """ Clean sensor data by handling missing or invalid values. Returns: pd.DataFrame: Cleaned data. + """ +# Drop rows with any missing values + df = df.dropna() + + # Convert timestamp column to datetime + df['timestamp'] = pd.to_datetime(df['timestamp'], errors='coerce') + df = df.dropna(subset=['timestamp']) # drop if timestamp conversion failed + + # Ensure numeric columns are non-negative + numeric_cols = ['pH', 'turbidity', 'dissolved_oxygen', 'temperature'] + for col in numeric_cols: + df = df[df[col] >= 0] + + #reset index after cleaning + df = df.reset_index(drop=True) + + return df + diff --git a/src/evaluate.py b/src/evaluate.py index 006256224..00fdc4423 100644 --- a/src/evaluate.py +++ b/src/evaluate.py @@ -1,3 +1,5 @@ +import pandas as pd + class WaterQualityEvaluator: def __init__(self, ph_range=(6.5, 8.5), turbidity_threshold=1.0): self.ph_range = ph_range @@ -7,3 +9,28 @@ def is_safe(self, row: pd.Series) -> bool: """ Determine if a row of water data is safe. """ + if pd.isna(row.get("pH")) or pd.isna(row.get("turbidity")): + return False + + return ( + self.ph_range[0] <= row["pH"] <= self.ph_range[1] + and row["turbidity"] <= self.turbidity_threshold + ) + + def evaluate(self, df: pd.DataFrame) -> pd.DataFrame: + """ + Evaluate safety of each row and return a DataFrame with results. + """ + results = [] + + for i, row in df.iterrows(): + location = row.get("location") if pd.notna(row.get("location")) else "Unknown" + sensor_label = f"Sensor {i + 1} at {location}" + status = " Safe" if self.is_safe(row) else " Unsafe" + results.append({"sensor": sensor_label, "status": status}) + + results_df = pd.DataFrame(results) + return results_df + + + diff --git a/src/load_data.py b/src/load_data.py index c0126703a..686efc569 100644 --- a/src/load_data.py +++ b/src/load_data.py @@ -1,4 +1,7 @@ -def load_csv(filepath: str) -> pd.DataFrame: +import pandas as pd + + +def load_csv(filepath: str): """ Load sensor data from a CSV file. @@ -8,3 +11,7 @@ def load_csv(filepath: str) -> pd.DataFrame: Returns: pd.DataFrame: Loaded data as a pandas DataFrame. """ + df = pd.read_csv(filepath) + return(df) + + diff --git a/src/main.py b/src/main.py index e69de29bb..153db47d9 100644 --- a/src/main.py +++ b/src/main.py @@ -0,0 +1,66 @@ +from load_data import load_csv +from clean_data import clean_sensor_data +from evaluate import WaterQualityEvaluator +import pandas as pd + +def show_menu(): + print("\n🌊 Water Quality Monitoring Menu") + print("1. Load and view raw sensor data") + print("2. Clean data (handle missing/invalid)") + print("3. Evaluate water safety and save results") + print("4. Exit") + +# Session variables +raw_df = None +cleaned_df = None +results_df = None +data_path = None + +while True: + show_menu() + choice = input("\nEnter your choice (1-4): ").strip() + + if choice == "1": + data_path = input(" Enter full path to the sensor data CSV file: ").strip() + try: + raw_df = load_csv(data_path) + print("\n Raw Sensor Data Preview:") + print(raw_df.head()) + except FileNotFoundError: + print("āŒ File not found. Please check the path and try again.") + + elif choice == "2": + if raw_df is None: + print("āš ļø Please load the raw data first (Option 1).") + else: + cleaned_df = clean_sensor_data(raw_df) + print("\nāœ… Cleaned Data Preview:") + print(cleaned_df.head()) + + elif choice == "3": + if cleaned_df is None: + print(" Please clean the data first (Option 2).") + else: + location = input("šŸ“ Enter the location name for this data (e.g., 'Lake A'): ").strip() + cleaned_df["location"] = location # Add location to the DataFrame + + evaluator = WaterQualityEvaluator() + results_df = evaluator.evaluate(cleaned_df) + + print("\nšŸ“‹ Evaluation Results:") + for _, row in results_df.iterrows(): + print(f"{row['sensor']}: {row['status']}") + + # Save to CSV + save_path = "results.csv" if not data_path else data_path.replace(".csv", "_results.csv") + results_df.to_csv(save_path, index=False) + print(f"šŸ’¾ Results saved to {save_path}") + + + + elif choice == "4": + print("šŸ‘‹ Exiting. Stay hydrated!") + break + + else: + print("āŒ Invalid choice. Please enter a number between 1 and 4.")